打完第二章后七天乐没有开启的bug

This commit is contained in:
chenxi 2023-06-02 18:20:15 +08:00
parent c73734a068
commit 2f2a993c12
4 changed files with 58 additions and 2 deletions

View File

@ -101,6 +101,7 @@ function DataManager:clear()
-- 任务数据最后清理
self.TaskData:clear()
ModuleManager.TaskManager:clear()
self:clearTryOpenFunc()
end
function DataManager:initWithServerData(data)
@ -255,6 +256,44 @@ function DataManager:scheduleGlobal()
end, 1)
end
function DataManager:tryOpenModules()
if not self.tryOpenCallbacks then
return
end
for k, v in pairs(self.tryOpenCallbacks) do
v()
end
end
function DataManager:registerTryOpenFunc(bindId, func)
if not bindId or not func then
return
end
if not self.tryOpenCallbacks then
self.tryOpenCallbacks = {}
end
self.tryOpenCallbacks[bindId] = func
end
function DataManager:unregisterTryOpenFunc(bindId)
if not bindId then
return
end
if not self.tryOpenCallbacks then
return
end
self.tryOpenCallbacks[bindId] = nil
end
function DataManager:clearTryOpenFunc()
if not self.tryOpenCallbacks then
return
end
for k, v in pairs(self.tryOpenCallbacks) do
self.tryOpenCallbacks[k] = nil
end
end
function DataManager:getSignInfo()
local nowTime = Time:getServerTime()
local lastSignTime = self.signInfo.latest_at // 1000

View File

@ -119,6 +119,8 @@ function ChapterManager:endFightFinish(result)
if maxChapter == 1 then
DataManager.ShopData:markPopUpGiftForBeginnerGift()
end
-- 新章节通关,尝试解锁新功能
DataManager:tryOpenModules()
-- 章节通关 标记可弹出章节礼包
DataManager.ShopData:markPopUpGiftForActChapterStore(maxChapter)
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_PASS_CHAPTER)

View File

@ -20,6 +20,7 @@ function PlayerManager:onLevelUpFinish(result)
if diffLv > 0 then
self:showPlayerUpUI(currLv, result.rewards)
ModuleManager.TaskManager:addTaskProgress(GConst.TaskConst.TASK_TYPE.X_PLAYER_LV_REACH, diffLv)
DataManager:tryOpenModules()
end
end
end

View File

@ -13,6 +13,7 @@ function SevenDayData:clear()
self.tasks = {}
self.stepRewards = {}
DataManager:unregisterCrossDayFunc("SevenDayData")
DataManager:unregisterTryOpenFunc("SevenDayData")
end
function SevenDayData:init(data)
@ -35,6 +36,19 @@ function SevenDayData:init(data)
self:calCollectStepCount()
self:initTaskListener()
if self.openTs <= 0 then
DataManager:registerTryOpenFunc("SevenDayData", function()
if self.openTs <= 0 then
if ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.SEVEN_DAY, true) then
self.openTs = Time:getBeginningOfServerToday()
self.endTime = self.openTs + self:getDurationTime()
self.actDay = 1
DataManager:unregisterTryOpenFunc("SevenDayData")
end
end
end)
end
DataManager:registerCrossDayFunc("SevenDayData", function()
self.actDay = self.actDay + 1
self:setDirty()
@ -361,7 +375,7 @@ end
function SevenDayData:initTaskListener()
local nowTime = Time:getServerTime()
-- 活动结束就不用监听了
if self.endTime < nowTime then
if self.endTime > 0 and self.endTime < nowTime then
ModuleManager.TaskManager:unRegisterAllModuleTask("SevenDayData")
return false
end