79 lines
2.8 KiB
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 |