任务跳转

This commit is contained in:
puxuan 2025-08-19 14:30:41 +08:00
parent 11bb4e4017
commit 302add82a3
5 changed files with 98 additions and 16 deletions

View File

@ -1,9 +1,6 @@
local DailyChallengeManager = class("DailyChallengeManager", BaseModule) local DailyChallengeManager = class("DailyChallengeManager", BaseModule)
function DailyChallengeManager:init() function DailyChallengeManager:init()
self:addEventListener(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, function(idx)
DataManager.DailyChallengeData:setShowingMainComp(idx == GConst.MainCityConst.BOTTOM_PAGE.MAIN)
end)
self:addEventListener(EventManager.CUSTOM_EVENT.UI_CLOSE, function(index) self:addEventListener(EventManager.CUSTOM_EVENT.UI_CLOSE, function(index)
if index == UIManager.UI_PATH.MAINCITY_UI then if index == UIManager.UI_PATH.MAINCITY_UI then
DataManager.DailyChallengeData:setShowingMainComp(false) DataManager.DailyChallengeData:setShowingMainComp(false)

View File

@ -49,6 +49,11 @@ TaskConst.TASK_TYPE = {
X_BUY_ANYONE = 40, -- 任意购买行为x次 X_BUY_ANYONE = 40, -- 任意购买行为x次
X_RUNES_GETED_MATERIALS = 41, -- 获得符文材料x个 X_RUNES_GETED_MATERIALS = 41, -- 获得符文材料x个
X_RUNES_QUENCHING = 42, -- 符文锻造x次 X_RUNES_QUENCHING = 42, -- 符文锻造x次
X_SUMMON_HERO_6 = 43, -- 获得X个神话英雄红色
X_SUMMON_HERO_5 = 44, -- 获得X个传说英雄橙色
X_SUMMON_HERO_4 = 45, -- 获得X个史诗英雄紫色
X_SUMMON_HERO_3 = 46, -- 获得X个稀有英雄蓝色
X_SUMMON_HERO = 47, -- 招聘X次
} }
return TaskConst return TaskConst

View File

@ -385,8 +385,13 @@ TaskManager.TYPE_DEAL_FUNC = {
} }
function TaskManager:taskGoto(taskType) function TaskManager:taskGoto(taskType)
if TaskManager.gotoFunc[taskType] then if EDITOR_MODE then
TaskManager.gotoFunc[taskType](self) Logger.logHighlight("任务跳转:"..tostring(taskType))
end
local func = TaskManager.gotoFunc[taskType]
if func then
ModuleManager.MaincityManager:showMainCityUI()
func(self)
end end
end end
@ -394,8 +399,57 @@ function TaskManager:gotoMainUI()
ModuleManager.MaincityManager:showMainCityUI() ModuleManager.MaincityManager:showMainCityUI()
end end
function TaskManager:gotoMainShopUI()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, {page = GConst.MainCityConst.BOTTOM_PAGE.SHOP})
end
function TaskManager:gotoMainShopGemUI()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, {page = GConst.MainCityConst.BOTTOM_PAGE.SHOP, storeIdx = GConst.ShopConst.MAIN_PAGE_TYPE.GEM})
end
function TaskManager:gotoMainShopGoldUI()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, {page = GConst.MainCityConst.BOTTOM_PAGE.SHOP, storeIdx = GConst.ShopConst.MAIN_PAGE_TYPE.GOLD})
end
function TaskManager:gotoMainHeroUI()
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, {page = GConst.MainCityConst.BOTTOM_PAGE.HERO})
end
function TaskManager:gotoSummonUI()
ModuleManager.SummonManager:showSummonMainUI()
end
function TaskManager:gotoArenaUI()
ModuleManager.ArenaManager:showArenaUI()
end
function TaskManager:gotoDailyChallengeUI()
ModuleManager.DailyChallengeManager:showDailyChallengeUI()
end
TaskManager.gotoFunc = { TaskManager.gotoFunc = {
[GConst.TaskConst.TASK_TYPE.X_WATCH_AD] = TaskManager.gotoMainShopUI,
[GConst.TaskConst.TASK_TYPE.X_GOLD_GOT] = TaskManager.gotoMainShopGoldUI,
[GConst.TaskConst.TASK_TYPE.X_GEM_GOT] = TaskManager.gotoMainShopGemUI,
[GConst.TaskConst.TASK_TYPE.X_BATTLE_VICTORY] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.X_KILL_BOSS] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.X_HERO_LV_UP] = TaskManager.gotoMainHeroUI,
[GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER] = TaskManager.gotoMainUI, [GConst.TaskConst.TASK_TYPE.X_KILL_MONSTER] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.X_ELIMINATE_SIX_ONCE] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.X_USE_SKILL] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.DAILY_TASK_WATCH_AD_SPECIAL] = TaskManager.gotoMainShopUI,
[GConst.TaskConst.TASK_TYPE.X_HERO_MAX_LV_REACH] = TaskManager.gotoMainHeroUI,
[GConst.TaskConst.TASK_TYPE.X_VIT_COST] = TaskManager.gotoMainUI,
[GConst.TaskConst.TASK_TYPE.X_NEW_HERO_GOT] = TaskManager.gotoSummonUI,
[GConst.TaskConst.TASK_TYPE.X_ARENA_CHALLENGE] = TaskManager.gotoArenaUI,
[GConst.TaskConst.TASK_TYPE.X_ARENA_GRADING] = TaskManager.gotoArenaUI,
[GConst.TaskConst.TASK_TYPE.X_DAILY_CHALLENGE_SUCCESS] = TaskManager.gotoDailyChallengeUI,
[GConst.TaskConst.TASK_TYPE.X_BUY_ANYONE] = TaskManager.gotoMainShopGemUI,
[GConst.TaskConst.TASK_TYPE.X_SUMMON_HERO_6] = TaskManager.gotoSummonUI,
[GConst.TaskConst.TASK_TYPE.X_SUMMON_HERO_5] = TaskManager.gotoSummonUI,
[GConst.TaskConst.TASK_TYPE.X_SUMMON_HERO_4] = TaskManager.gotoSummonUI,
[GConst.TaskConst.TASK_TYPE.X_SUMMON_HERO_3] = TaskManager.gotoSummonUI,
[GConst.TaskConst.TASK_TYPE.X_SUMMON_HERO] = TaskManager.gotoSummonUI,
} }
function TaskManager:dealTaskType(taskType, callback, onlyGet) function TaskManager:dealTaskType(taskType, callback, onlyGet)

View File

@ -190,6 +190,37 @@ function MainCityUI:_addListeners()
self:addEventListener(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_SIDE_BAR, function(module) self:addEventListener(EventManager.CUSTOM_EVENT.MAIN_UI_CHECK_SIDE_BAR, function(module)
self:checkSideBarOpenStatus() self:checkSideBarOpenStatus()
end) end)
self:addEventListener(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, function(params)
params = params or {}
local page = params.page or self.selectedInedx
if page == GConst.MainCityConst.BOTTOM_PAGE.SHOP then
if self.selectedInedx == page then -- 直接跳转
if self.subComps[GConst.MainCityConst.BOTTOM_PAGE.SHOP] then
self.subComps[GConst.MainCityConst.BOTTOM_PAGE.SHOP]:switchPage(params.storeIdx)
end
end
-- elseif page == GConst.MainCityConst.BOTTOM_PAGE.DUNGEON then
-- if self.selectedInedx == page then -- 直接跳转
-- if self.dungeonComp then
-- self.dungeonComp:refresh(params.dungeonModule)
-- end
-- end
-- elseif page == GConst.MainCityConst.BOTTOM_PAGE.MAIN then
-- if self.selectedInedx == page then -- 直接跳转
-- if self.mainComp then
-- -- 跳转到精英 需要改变下最大关卡
-- if self.showChapterModule and self.showChapterModule == GConst.MainCityConst.MAIN_CHAPTER_MODULE.TEAM then
-- local id = DataManager.ChapterTeamData:getLastChapterId(DataManager.ChapterData:getMaxPassId())
-- id = id or 1
-- DataManager.ChapterData:setChapterId(DataManager.ChapterTeamData:getChapterIdById(id))
-- end
-- self.mainComp:refresh(self.showChapterModule)
-- self.showChapterModule = nil
-- end
-- end
end
self:refreshBottom(page, true)
end)
DataManager.MailData:checkNewMail() DataManager.MailData:checkNewMail()
end end
@ -280,9 +311,9 @@ function MainCityUI:initBottomUI()
end end
self.bottomBtnSpines[i]:playAnimComplete("born1", false, false, function() self.bottomBtnSpines[i]:playAnimComplete("born1", false, false, function()
self.bottomBtnSpines[i]:playAnimComplete("born2", false, false, function() self.bottomBtnSpines[i]:playAnimComplete("born2", false, false, function()
self.bottomBtnSpines[i]:playAnim("idle", false, false) self.bottomBtnSpines[i]:playAnim("idle", false, false)
end) end)
end) end)
self:refreshBottom(i, true) self:refreshBottom(i, true)
end) end)
@ -343,10 +374,6 @@ function MainCityUI:refreshBottom(selectedIndex, playAnim)
self.selectedIndex = selectedIndex and selectedIndex or GConst.MainCityConst.BOTTOM_PAGE.MAIN self.selectedIndex = selectedIndex and selectedIndex or GConst.MainCityConst.BOTTOM_PAGE.MAIN
self:switchComp() self:switchComp()
if oldIndex ~= selectedIndex then
EventManager:dispatchEvent(EventManager.CUSTOM_EVENT.CHANGE_MAIN_CITY_PAGE, self.selectedIndex)
end
-- 动效 -- 动效
if playAnim and (oldIndex ~= selectedIndex) then if playAnim and (oldIndex ~= selectedIndex) then
local targetX = self.bottomBtnCells[self.selectedIndex]:getCurLocalPosX() local targetX = self.bottomBtnCells[self.selectedIndex]:getCurLocalPosX()
@ -1107,8 +1134,8 @@ end
-- 检查引导 -- 检查引导
function MainCityUI:checkTutorial(onlyCheck) function MainCityUI:checkTutorial(onlyCheck)
if (EDITOR_MODE or not Platform:getIsPublishChannel()) and LocalData:getTutorialSkip() > 0 then if (EDITOR_MODE or not Platform:getIsPublishChannel()) and LocalData:getTutorialSkip() > 0 then
return return
end end
if DataManager.ChapterData:getMaxChapterId() == 1 then if DataManager.ChapterData:getMaxChapterId() == 1 then
if ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.PASS_ONE_CHAPTER, onlyCheck) then if ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.PASS_ONE_CHAPTER, onlyCheck) then
return true return true

View File

@ -18,8 +18,7 @@ function AchievementTaskCell:init()
if DataManager.DailyTaskData:canClaimAchievement(self.taskId, self.taskStage) then if DataManager.DailyTaskData:canClaimAchievement(self.taskId, self.taskStage) then
ModuleManager.TaskManager:onTaskAchievementReq(self.taskId, self.taskStage) ModuleManager.TaskManager:onTaskAchievementReq(self.taskId, self.taskStage)
else else
-- ModuleManager.TaskManager:goToTask(self.taskType) ModuleManager.TaskManager:taskGoto(self.taskType)
ModuleManager.TaskManager:onTaskAchievementReq(self.taskId, self.taskStage)
end end
end) end)
end end