c1_lua/lua/app/module/maincity/maincity_manager.lua
2025-11-07 12:09:56 +08:00

108 lines
3.5 KiB
Lua

local MaincityManager = class("MaincityManager", BaseModule)
function MaincityManager:showMainCityUI(isFirstEnter, targetIndex)
UIManager:showUI(UIManager.UI_PATH.MAINCITY_UI, {isFirstEnter = isFirstEnter, targetIndex = targetIndex})
end
function MaincityManager:showModuleUnlockUI(params)
UIManager:showUI("app/ui/main_city/module_unlock_ui", params)
end
function MaincityManager:showChapterBoxUI(chapterId)
UIManager:showUI("app/ui/main_city/chapter_box_ui", {chapterId = chapterId})
end
-- 从登录界面第一次进入主城
function MaincityManager:firstEnterMainCity()
ModuleManager.ActivityPopManager:setFirstLogin(true)
if (EDITOR_MODE or not Platform:getIsPublishChannel()) and LocalData:getTutorialSkip() > 0 then
-- 如果是新号就直接进入战斗
self:showMainCityUI(true)
return
end
if ModuleManager.TutorialManager:checkFuncTutorial(GConst.TutorialConst.START_TUTORIAL, true) then
DataManager.ChapterData:setChapterId(DataManager.ChapterData.MIN_CHAPTER_ID)
ModuleManager.BattleManager:playBattle(GConst.BattleConst.BATTLE_TYPE.STAGE)
else
self:showMainCityUI(true)
end
SDKManager:doUncompletePay()
end
--@region 功能开启
function MaincityManager:getFuncOpenShowList()
if EDITOR_MODE then
if LocalData:getFuncOpenPopSkip() > 0 then
return nil
end
end
local showList = {}
for moduleKey, info in pairs(ConfigManager:getConfig("func_open")) do
if ModuleManager:showPop(moduleKey) and not LocalData:getFuncOpenShowList()[moduleKey] then
if ModuleManager:getIsOpen(moduleKey, true) then
table.insert(showList, moduleKey)
-- elseif moduleKey == ModuleManager.MODULE_KEY.EQUIP_SKIN and DataManager.WeaponData:isOpen() then
-- table.insert(showList, moduleKey)
-- elseif moduleKey == ModuleManager.MODULE_KEY.SKIN and DataManager.SkinData:isOpen() then
-- table.insert(showList, moduleKey)
end
end
end
return showList
end
function MaincityManager:markFuncOpen(key)
local list = LocalData:getFuncOpenShowList()
list[key] = true
LocalData:setFuncOpenShowList(list)
end
-- 获取主界面各个模块的入口坐标
function MaincityManager:getModuleEntrancePos(moduleKey)
local mainUI = UIManager:getUIByIndex(UIManager.UI_PATH.MAINCITY_UI)
if not mainUI then
return nil
end
if moduleKey == ModuleManager.MODULE_KEY.TASK then
return mainUI:getTaskIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.MALL_DAILY then
return mainUI:getMallIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.DAILY_CHALLENGE then
return mainUI:getDailyChallengeIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.ARENA then
return mainUI:getArenaIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.IDLE_DROP then
return mainUI:getIdleIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.SUMMON_OPEN then
return mainUI:getSummonIconPos()
elseif moduleKey == ModuleManager.MODULE_KEY.FUND or
moduleKey == ModuleManager.MODULE_KEY.ACT_SEVENDAY then
return mainUI:getSideBarActIconPos(moduleKey)
end
end
--@endregion
--@region 战斗力
function MaincityManager:checkShowPowerUI()
local curPower = DataManager.HeroData:getShowPower()
local lastPower = DataManager.HeroData:getLastPower()
if curPower ~= lastPower then
GFunc.hidePowerToast()
GFunc.showPowerToast(lastPower, curPower)
end
end
--@endregion
--@region 跨天数据
function MaincityManager:reqPassDay()
self:sendMessage(ProtoMsgType.FromMsgEnum.PassDayReq, {}, self.rspPassDay)
end
function MaincityManager:rspPassDay(result)
DataManager:onCrossDay(result)
end
--@endregion
return MaincityManager