139 lines
3.7 KiB
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 |