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