WeekCardManager = {} local this = WeekCardManager --初始化月卡数据 local _WeekCardData = {} function this.InitWeekCardData() NetManager.GetWeekCardData(function(msg) this.UpdateAllWeekCard(msg) end) end -- 更新所有周卡数据 function this.UpdateAllWeekCard(msg) _WeekCardData = {} LogRed("周卡信息初始化 "..#msg.allWeekCardInfo) for i, data in ipairs(msg.allWeekCardInfo) do this.UpdateWeekCardData(data) end end -- 更新月卡数据 function this.UpdateWeekCardData(data) LogRed("月卡信息更新 "..data.id.." "..tostring(data.isBuy).." "..data.leaveGetRewardDays) local week = {} week.id = data.id week.isBuy = data.isBuy week.leaveGetRewardDays = data.leaveGetRewardDays _WeekCardData[data.id] = week -- 检测红点显示 CheckRedPointStatus(RedPointType.WeekCardReward) 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, func) local data = this.GetWeekCardData(id) if not data then LogRed("未找到周卡数据:"..id) return end if not data.isBuy then LogRed("尚未购买周卡:"..id) return end -- 请求领取 NetManager.GetWeekCardReward(id, function(msg) UIManager.OpenPanel(UIName.RewardItemPopup, msg.drops, 1) -- 累计时间归0 data.leaveGetRewardDays = 0 this.UpdateWeekCardData(data) -- if func then func() 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.isBuy and data.leaveGetRewardDays > 0 then return true end end end return false end