104 lines
2.7 KiB
Lua
104 lines
2.7 KiB
Lua
WeekCardManager = {}
|
|
local this = WeekCardManager
|
|
|
|
--初始化月卡数据
|
|
local _WeekCardData = {}
|
|
function this.InitWeekCardData()
|
|
NetManager.GetWeekCardData(function(msg)
|
|
this.UpdateAllWeekCard(msg)
|
|
end)
|
|
end
|
|
-- 更新所有周卡数据
|
|
function this.UpdateAllWeekCard(msg)
|
|
_WeekCardData = {}
|
|
Log("周卡信息初始化 "..#msg.allWeekCardInfo)
|
|
for i, data in ipairs(msg.allWeekCardInfo) do
|
|
this.UpdateWeekCardData(data)
|
|
end
|
|
-- 发送事件
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.WeekCard.OnWeekCardUpdate)
|
|
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.drop, 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
|
|
|
|
|
|
-- 根据是否有周卡数据,判断周卡功能是否开启
|
|
function this.IsWeekCardOpen()
|
|
local list = this.GetWeekCardDataArray()
|
|
if list and #list > 0 then
|
|
return true
|
|
end
|
|
return false
|
|
end |