miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/WeekCardManager.lua

139 lines
3.7 KiB
Lua

WeekCardManager = {}
local this = WeekCardManager
--初始化月卡数据
local _WeekCardData = {}
function this.InitWeekCardData(id)
NetManager.QueryWeekCardInfoRequest(id,function(msg)
this.UpdateAllWeekCard(msg)
end)
end
-- 更新所有周卡数据
function this.UpdateAllWeekCard(msg)
_WeekCardData = {}
if msg.weekcard then
LogError("推送过来周卡信息")
for i, data in ipairs(msg.weekcard) do
this.UpdateWeekCardData(data)
end
-- 发送事件
Game.GlobalEvent:DispatchEvent(GameEvent.WeekCard.OnWeekCardUpdate)
else
LogError("没有周卡数据 ")
end
end
-- 更新月卡数据
function this.UpdateWeekCardData(data)
-- LogRed("月卡信息更新 "..data.id.." "..tostring(data.isBuy).." "..data.leaveGetRewardDays)
local week = {}
week.id = data.weekcardId
week.leaveGetRewardDays = data.day
LogError("data.weekcardId=="..data.weekcardId)
_WeekCardData[data.weekcardId] = week
-- 检测红点显示
CheckRedPointStatus(RedPointType.WeekCard)
end
-- 请求获取周卡数据
function this.GetWeekCardData(id)
return _WeekCardData[id]
end
-- 获取周卡数据,以数组的形式
function this.GetWeekCardDataArray()
local list = {}
if _WeekCardData then
for id, data in pairs(_WeekCardData) do
table.insert(list, data)
end
end
table.sort(list, function(a, b)
return a.id < b.id
end)
return list
end
-- 请求领取周卡奖励
function this.RequestGetWeekCardReward(id,actId,func)
local data = this.GetWeekCardData(id)
if not data then
LogRed("未找到周卡数据:"..id)
return
end
-- 请求领取
NetManager.GetWeekCardRewardRequest(id, actId,function(msg)
UIManager.OpenPanel(UIName.RewardItemPopup, msg.drop, 1)
-- 累计时间归0
--data.leaveGetRewardDays = 0
this.ChangeCardState(id)
--this.UpdateWeekCardData(data)
CheckRedPointStatus(RedPointType.WeekCard)
if func then
func()
end
end)
end
function this.ChangeCardState(id)
if _WeekCardData[id] then
if _WeekCardData[id].leaveGetRewardDays then
for i=1,#_WeekCardData[id].leaveGetRewardDays do
_WeekCardData[id].leaveGetRewardDays[i].state=2
end
end
end
end
-- 检测是否进入过周卡界面
function this.CheckRedOpen()
local isCheck = PlayerPrefs.GetInt("IsCheckWeekCard_"..PlayerManager.uid, 0)
if isCheck == 1 then
return false
end
return true
end
-- 是否有可以领取的红点
function this.CheckRedReward()
if _WeekCardData then
for id, data in pairs(_WeekCardData) do
if data.leaveGetRewardDays then
for key, value in pairs(data.leaveGetRewardDays) do
if value.state==1 then
return true
end
end
end
end
end
return false
end
function this.CheckTabRedReward(id)
if _WeekCardData then
data=_WeekCardData[id]
if data and data.leaveGetRewardDays then
for key, value in pairs(data.leaveGetRewardDays) do
if value.state==1 then
return true
end
end
end
end
return false
end
-- 根据是否有周卡数据,判断周卡功能是否开启
function this.IsWeekCardOpen()
-- local list = this.GetWeekCardDataArray()
-- if list and #list > 0 then
-- LogError("有周卡数据了-----------")
-- return true
-- end
return false
end