198 lines
6.5 KiB
Lua
198 lines
6.5 KiB
Lua
local ModuleManager = {}
|
|
|
|
local MODULE_PATHS = {
|
|
LoginManager = "app/module/login/login_manager",
|
|
BattleManager = "app/module/battle/battle_manager",
|
|
TipsManager = "app/module/tips/tips_manager",
|
|
LoadingManager = "app/module/loading/loading_manager",
|
|
DevToolManager = "app/module/gm/dev_tool_manager",
|
|
MaincityManager = "app/module/maincity/maincity_manager",
|
|
SettingManager = "app/module/setting/setting_manager",
|
|
-- 引导
|
|
TutorialManager = "app/module/tutorial/tutorial_manager",
|
|
ToastManager = "app/ui/common/toast",
|
|
PlayerManager = "app/module/player/player_manager",
|
|
SummonManager = "app/module/summon/summon_manager",
|
|
-- 英雄
|
|
HeroManager = "app/module/hero/hero_manager",
|
|
-- 修炼
|
|
TrainManager = "app/module/train/train_manager",
|
|
-- 商城Manager
|
|
MallManager = "app/module/mall/mall_manager",
|
|
ItemManager = "app/module/item/item_manager",
|
|
MasteryManager = "app/module/mastery/mastery_manager",
|
|
MiningManager = "app/module/mining/mining_manager",
|
|
-- 章节关卡
|
|
ChapterManager = "app/module/chapter/chapter_manager",
|
|
-- 挂机
|
|
IdleManager = "app/module/idle/idle_manager",
|
|
-- 设置
|
|
GameSettingManager = "app/module/game_setting/game_setting_manager",
|
|
AudioManager = "app/module/game_setting/game_setting_manager",
|
|
DungeonManager = "app/module/dungeon/dungeon_manager",
|
|
ArenaManager = "app/module/arena_manager/arena_manager",
|
|
SignInManager = "app/module/signin/signin_manager",
|
|
DailyTaskManager = "app/module/activity/daily_task/daily_task_manager",
|
|
SevenDayManager = "app/module/activity/seven_day/seven_day_manager",
|
|
TaskManager = "app/module/task/task_manager",
|
|
ActivityManager = "app/module/activity/activity_manager",
|
|
BlessingManager = "app/module/blessing/blessing_manager",
|
|
TutorialTaskManager = "app/module/tutorial/tutorial_task_manager",
|
|
BountyManager = "app/module/bounty/bounty_manager",
|
|
CollectionManager = "app/module/collection/collection_manager",
|
|
MailManager = "app/module/mail/mail_manager",
|
|
}
|
|
|
|
-- 这里的key对应func_open里的id
|
|
ModuleManager.MODULE_KEY = {
|
|
DUNGEON_GOLD = "dungeon_gold",
|
|
DUNGEON_DIAMOND = "dungeon_diamond",
|
|
DUNGEON_RUNE = "dungeon_rune",
|
|
DUNGEON_CHARACTERISTIC = "dungeon_characteristic",
|
|
ARENA = "arena",
|
|
SUMMON_WEAPON = "summon_weapon",
|
|
SUMMON_ARMOR = "summon_armor",
|
|
SUMMON_LEGACY = "summon_legacy",
|
|
MINE = "mine",
|
|
MINE_RESEARCH = "mine_research",
|
|
IDLE = "idle",
|
|
COMPREHEND = "comprehend",
|
|
QUICK_PASS = "quick_pass",
|
|
TRAIN = "train",
|
|
MASTERY = "mastery",
|
|
RUNES = "runes",
|
|
SHOP = "shop",
|
|
SEVENDAY = "sevenday",
|
|
SIGNIN = "signin",
|
|
TUTORIALTASK = "tutorialtask",
|
|
DAILYTASK = "dailytask",
|
|
BLESSING = "blessing",
|
|
EQUIP = "equip",
|
|
COLLECTION = "collection",
|
|
AUTO_FIGHT = "auto_fight",
|
|
HERO_OPEN = "hero_open",
|
|
WEAPON_OPEN = "weapon_open",
|
|
ARMOR_OPEN = "armor_open",
|
|
LEGACY_OPEN = "legacy_open",
|
|
BATTLE_PASS = "battle_pass",
|
|
BATTLE_SPEED_UP = "battle_speed_up",
|
|
POWER_SAVE_MODE = "save_power_open",
|
|
FUND_OPEN = "fund_open",
|
|
MAIL_OPEN = "mail_open",
|
|
}
|
|
|
|
local _moduleMgrs = {}
|
|
|
|
local MODULE_METATABLE = {
|
|
__index = function(t, k)
|
|
local path = MODULE_PATHS[k]
|
|
if path == nil then
|
|
Logger.logError("%s path is not configure in ModuleManager.lua", k)
|
|
return
|
|
end
|
|
local v = require(path):create()
|
|
table.insert(_moduleMgrs, v)
|
|
rawset(t, k, v)
|
|
return v
|
|
end
|
|
}
|
|
setmetatable(ModuleManager, MODULE_METATABLE)
|
|
|
|
function ModuleManager:init()
|
|
if EDITOR_MODE then
|
|
---@type LoginManager
|
|
self.LoginManager = self.LoginManager or require("app/module/login/login_manager"):create()
|
|
---@type BattleManager
|
|
self.BattleManager = self.BattleManager or require("app/module/battle/battle_manager"):create()
|
|
---@type TipsManager
|
|
self.TipsManager = self.TipsManager or require("app/module/tips/tips_manager"):create()
|
|
---@type MaincityManager
|
|
self.MaincityManager = self.MaincityManager or require("app/module/maincity/maincity_manager"):create()
|
|
---@type SummonManager
|
|
self.SummonManager = self.SummonManager or require("app/module/summon/summon_manager"):create()
|
|
---@type MallManager
|
|
self.MallManager = self.MallManager or require("app/module/mall/mall_manager"):create()
|
|
---@type MiningManager
|
|
self.MiningManager = self.MiningManager or require("app/module/mining/mining_manager"):create()
|
|
---@type DungeonManager
|
|
self.DungeonManager = self.DungeonManager or require("app/module/dungeon/dungeon_manager"):create()
|
|
---@type ArenaManager
|
|
self.ArenaManager = self.ArenaManager or require("app/module/arena_manager/arena_manager"):create()
|
|
---@type SignInManager
|
|
self.SignInManager = self.SignInManager or require("app/module/signin/signin_manager"):create()
|
|
end
|
|
end
|
|
|
|
-- 功能是否开启
|
|
function ModuleManager:getIsOpen(key, hideToast)
|
|
local cfg = ConfigManager:getConfig("func_open")[key]
|
|
if cfg == nil then
|
|
return true
|
|
end
|
|
-- 优先判断等级
|
|
if cfg.level then
|
|
local isOpen = DataManager.PlayerData:getLv() >= cfg.level
|
|
if not hideToast and not isOpen then
|
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_LEVEL, cfg.level))
|
|
end
|
|
return isOpen
|
|
elseif cfg.stage then -- 没有填等级字段就判断关卡
|
|
local isOpen = DataManager.ChapterData:getHistoryChapterId() >= cfg.stage
|
|
if not hideToast and not isOpen then
|
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_STAGE, cfg.stage))
|
|
end
|
|
return isOpen
|
|
elseif cfg.task then -- 判断任务
|
|
local isOver = DataManager.TutorialTaskData:getTaskCollect(cfg.task)
|
|
if not hideToast and not isOver then
|
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_TASK, cfg.task))
|
|
end
|
|
return isOver
|
|
end
|
|
return true
|
|
end
|
|
|
|
function ModuleManager:showPop(key)
|
|
local cfg = ConfigManager:getConfig("func_open")[key]
|
|
if not cfg then
|
|
return false
|
|
end
|
|
if cfg and cfg.pop_ups and cfg.pop_ups == 1 then
|
|
return false
|
|
end
|
|
return true
|
|
end
|
|
|
|
function ModuleManager:getNotOpenStr(key)
|
|
local cfg = ConfigManager:getConfig("func_open")[key]
|
|
if cfg == nil then
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
-- 优先判断等级
|
|
if cfg.level then
|
|
return I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_LEVEL, cfg.level)
|
|
elseif cfg.stage then -- 没有填等级字段就判断关卡
|
|
return I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_STAGE, cfg.stage)
|
|
elseif cfg.task then
|
|
return I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_TASK, cfg.task)
|
|
end
|
|
return GConst.EMPTY_STRING
|
|
end
|
|
|
|
function ModuleManager:getOpenStageId(key)
|
|
local cfg = ConfigManager:getConfig("func_open")[key]
|
|
if not cfg or cfg.level then
|
|
return
|
|
end
|
|
|
|
return cfg.stage
|
|
end
|
|
|
|
function ModuleManager:clear()
|
|
for k, v in ipairs(_moduleMgrs) do
|
|
v:_clear()
|
|
end
|
|
end
|
|
|
|
return ModuleManager
|