From 34282dc81b883ee87010598726152e68f4a18a7c Mon Sep 17 00:00:00 2001 From: Fang Date: Fri, 11 Aug 2023 15:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=9E=E6=8A=80=E5=9C=BA=E5=AE=9D=E7=AE=B1?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E8=A7=84=E5=88=99=E4=BC=98=E5=8C=96=E3=80=81?= =?UTF-8?q?bugfix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/module/arena/arena_manager.lua | 11 ++++++++ lua/app/ui/main_city/component/main_comp.lua | 5 ++++ lua/app/userdata/activity/activity_data.lua | 28 ++++++++------------ 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/lua/app/module/arena/arena_manager.lua b/lua/app/module/arena/arena_manager.lua index be47c7c2..b0694ac7 100644 --- a/lua/app/module/arena/arena_manager.lua +++ b/lua/app/module/arena/arena_manager.lua @@ -34,6 +34,16 @@ function ArenaManager:onSeasonChanged() EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_SEASON_END) end +-- 标记ad宝箱 +function ArenaManager:markAdBox(isWin) + self.willShowAdBoxState = isWin +end + +-- 获取ad宝箱弹出状态 +function ArenaManager:getAdBoxState() + return self.willShowAdBoxState +end + -- 匹配 function ArenaManager:reqMatch() self:sendMessage(ProtoMsgType.FromMsgEnum.MatchReq, {}, {}, self.rspMatch, nil) @@ -220,6 +230,7 @@ end function ArenaManager:rspAdBoxReward(result) if result.err_code == GConst.ERROR_STR.SUCCESS then + self.willShowAdBoxState = nil local idx = result.reqData.win and 2 or 1 ModuleManager.ShopManager:showBoxOpenUI({type = GConst.ShopConst.BOX_REWARD_TYPE.ARENA_AD_BOX, params = idx, rewards = result.rewards}) EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.ARENA_AD_BOX_SUCCESS) diff --git a/lua/app/ui/main_city/component/main_comp.lua b/lua/app/ui/main_city/component/main_comp.lua index 6fc06ade..c5ab5961 100644 --- a/lua/app/ui/main_city/component/main_comp.lua +++ b/lua/app/ui/main_city/component/main_comp.lua @@ -92,6 +92,11 @@ function MainComp:refreshModule(selectModule) end ModuleManager.ArenaManager:showGiftPopUI(showType) end + local adBoxState = ModuleManager.ArenaManager:getAdBoxState() + if adBoxState ~= nil then + ModuleManager.ShopManager:showArenaAdBoxUI(adBoxState) + ModuleManager.ArenaManager:markAdBox(nil) + end -- 是否是否有英雄解锁弹窗 if DataManager.HeroData:getIfCanShowHeroUnlock() then local list = DataManager.HeroData:getHeroChapterUnlockList() diff --git a/lua/app/userdata/activity/activity_data.lua b/lua/app/userdata/activity/activity_data.lua index 667a4422..8053ec34 100644 --- a/lua/app/userdata/activity/activity_data.lua +++ b/lua/app/userdata/activity/activity_data.lua @@ -12,7 +12,6 @@ function ActivityData:init() self.actData = {} ModuleManager.ActivityManager:reqSummerData() - self:markGiftPop() end function ActivityData:setDirty() @@ -23,7 +22,7 @@ function ActivityData:isOpen() if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.ACTIVITY, true) then return false end - if #self:getActiveIdList() <= 0 then + if not self:isInActiveTime() then return false end return true @@ -52,20 +51,9 @@ function ActivityData:getBountyCfg() return self.bountyCfg end --- 获取当前开启的活动id列表 -function ActivityData:getActiveIdList() - local result = {} - for id, data in pairs(ConfigManager:getConfig("activity")) do - if self:isInActiveTime() then - table.insert(result, id) - end - end - return result -end - -- 是否在活动时间内 function ActivityData:isInActiveTime() - if self.actData.activated_at == nil or self.actData.activated_at <= 0 then + if self.actData == nil or self.actData.activated_at == nil or self.actData.activated_at <= 0 then return false end @@ -82,6 +70,10 @@ end -- 获取活动结束剩余时间(秒) function ActivityData:getEndRemainTime() + if self.actData == nil or self.actData.activated_at == nil or self.actData.activated_at <= 0 then + return 0 + end + local startTime = Time:getBeginningOfOneDay(self.actData.activated_at // 1000) local endTime = startTime + ACT_DAYS * 24 * 60 * 60 return math.floor(endTime) - Time:getServerTime() @@ -89,7 +81,7 @@ end -- 当前为活动第几天 function ActivityData:getActDay() - if self.actData == nil then + if self.actData == nil or self.actData.activated_at == nil or self.actData.activated_at <= 0 then return 0 end @@ -119,13 +111,15 @@ end function ActivityData:onGetActData(data) self.actData = data - -- 注册任务进度监听 - if self:isInActiveTime() then + + if self:isOpen() then + -- 注册任务进度监听 for id, data in ipairs(ConfigManager:getConfig("activity_bounty_task")) do ModuleManager.TaskManager:registerTask("ActivityData", data.type, function(count) self:addTaskProgress(data.type, count) end) end + self:markGiftPop() end if EDITOR_MODE then