miduo_client/Assets/ManagedResources/~Lua/Modules/FuXingGaoZhao/FuXingGaoZhaoManager.lua

79 lines
2.8 KiB
Lua

FuXingGaoZhaoManager = {}
local this = FuXingGaoZhaoManager
local Data = {}
local timeData = string.split(ConfigManager.GetConfigDataByKey(ConfigName.SpecialConfig,"Id",109).Value,"#")
function this.Initialize()
end
function this.InitRewardData()
local ActData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FuXingGaoZhao)
if not ActData then return end
local configData = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",ActData.activityId)
local actSingleData = ConfigManager.GetConfigDataByKey(ConfigName.GlobalActivity,"Id",ActData.activityId)
Data.activityId = ActData.activityId
Data.ActState = ActData.value
-- LogError("fuxinggaozhao:"..tostring(ActData.value))
Data.startTime = ActData.startTime
Data.rewards = {}
-- LogYellow("表数据数量:"..tostring(#configData))
for key, value in pairs(configData) do
local sData = {}
sData.Id = value.Id
sData.Reward = {value.Reward[1][1],value.Reward[1][2]}
sData.Sort = value.Sort
sData.missionId = 0
sData.State = 0
sData.Progress = 0
Data.rewards[key] = sData
end
this.UpdataRewardData()
end
function this.UpdataRewardData()
local ActData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.FuXingGaoZhao)
if not ActData then return end
Data.activityId = ActData.activityId
Data.ActState = ActData.value
-- LogPink("礼包状态:"..tostring(ActData.value))
Data.startTime = ActData.startTime
table.sort(ActData.mission, function(a, b)
return a.missionId < b.missionId
end)
for key, value in pairs(ActData.mission) do
if Data.rewards[key] then
-- --LogGreen("key:"..tostring(key).." "..tostring(value.missionId).." "..tostring(value.state).." "..tostring(value.progress))
Data.rewards[key].missionId = value.missionId
Data.rewards[key].State = value.state
Data.rewards[key].Progress = value.progress
end
end
end
function this.GetData()
this.UpdataRewardData()
return Data
end
function this.CheckRedPoint()
this.InitRewardData()
if Data.ActState == 0 then
local time = Data.startTime + tonumber(timeData[1])*86400 - GetTimeStamp()
local curDay = math.ceil(time/86400)
local str = PlayerPrefs.GetInt(PlayerManager.uid.."FuXingGaoZhao"..curDay)
if str == 0 then
return true
end
elseif Data.ActState == 1 then
for i = 1, #Data.rewards do
if Data.rewards[i].State == 0 and Data.rewards[i].Progress <= GetTimeStamp() then
-- LogBlue("Return true")
return true
end
end
end
-- LogBlue("Return false")
return false
end
return FuXingGaoZhaoManager