197 lines
5.9 KiB
Lua
197 lines
5.9 KiB
Lua
local ModuleManager = {}
|
|
|
|
local MODULE_PATHS = {
|
|
-- 登录
|
|
LoginManager = "app/module/login/login_manager",
|
|
TipsManager = "app/module/tips/tips_manager",
|
|
LoadingManager = "app/module/loading/loading_manager",
|
|
-- GM
|
|
DevToolManager = "app/module/gm/dev_tool_manager",
|
|
-- 主城
|
|
MaincityManager = "app/module/maincity/maincity_manager",
|
|
-- 引导
|
|
TutorialManager = "app/module/tutorial/tutorial_manager",
|
|
ToastManager = "app/ui/common/toast",
|
|
TaskToastManager = "app/ui/common/task_toast",
|
|
-- 任务
|
|
TaskManager = "app/module/task/task_manager",
|
|
-- 战斗
|
|
BattleManager = "app/module/battle/battle_manager",
|
|
-- 战斗阵容
|
|
FormationManager = "app/module/formation/formation_manager",
|
|
-- 英雄
|
|
HeroManager = "app/module/hero/hero_manager",
|
|
-- 主线关卡
|
|
ChapterManager = "app/module/chapter/chapter_manager",
|
|
-- 每日挑战
|
|
DailyChallengeManager = "app/module/daily_challenge/daily_challenge_manager",
|
|
-- 挂机
|
|
IdleManager = "app/module/idle/idle_manager",
|
|
-- 七天乐
|
|
SevenDayManager = "app/module/activity/seven_day/seven_day_manager",
|
|
-- 基金
|
|
FundManager = "app/module/fund/fund_manager",
|
|
-- 设置
|
|
GameSettingManager = "app/module/game_setting/game_setting_manager",
|
|
-- 活动
|
|
ActivityManager = "app/module/activity/activity_manager",
|
|
-- 礼包
|
|
CommerceManager = "app/module/commerce/commerce_manager",
|
|
-- 战令
|
|
BountyManager = "app/module/bounty/bounty_manager",
|
|
-- 竞技场战令
|
|
ArenaBountyManager = "app/module/arena/arena_bounty_manager",
|
|
-- 道具
|
|
ItemManager = "app/module/item/item_manager",
|
|
-- 商店
|
|
ShopManager = "app/module/shop/shop_manager",
|
|
-- 召唤
|
|
SummonManager = "app/module/summon/summon_manager",
|
|
-- 邮件
|
|
MailManager = "app/module/mail/mail_manager",
|
|
-- 玩家
|
|
PlayerManager = "app/module/player/player_manager",
|
|
-- 账号
|
|
AccountManager= "app/module/account/account_manager",
|
|
-- 活动副本
|
|
DungeonManager = "app/module/dungeon/dungeon_manager",
|
|
-- 竞技场
|
|
ArenaManager = "app/module/arena/arena_manager",
|
|
-- 图鉴
|
|
CollectionManager = "app/module/collection/collection_manager",
|
|
-- 通用
|
|
CommonManager = "app/module/common/common_manager",
|
|
-- 武器副本
|
|
DungeonWeaponManager = "app/module/dungeon_weapon/dungeon_weapon_manager",
|
|
-- 防具副本
|
|
DungeonArmorManager = "app/module/dungeon_armor/dungeon_armor_manager",
|
|
-- 装备
|
|
EquipManager = "app/module/equip/equip_manager",
|
|
-- 皮肤
|
|
SkinManager = "app/module/skin/skin_manager",
|
|
-- 英雄基金
|
|
HeroFundManager = "app/module/activity/hero_fund/hero_fund_manager",
|
|
-- 世界首领活动
|
|
ActBossRushManager = "app/module/activity/act_boss_rush/act_boss_rush_manager",
|
|
}
|
|
|
|
-- 这里的key对应func_open里的id
|
|
ModuleManager.MODULE_KEY = {
|
|
GOLD_PIG = "act_gold_pig",
|
|
SEVEN_DAY = "act_sevenday",
|
|
TASK = "task",
|
|
STORE_BOX_OPEN = "store_box_open",
|
|
STORE_BOX_3_OPEN = "store_box_3_open",
|
|
BOUNTY_OPEN = "bounty_open",
|
|
IDLE_DROP = "idle_drop",
|
|
ACTIVITY = "activity_open",
|
|
MALL = "mall", -- 商城
|
|
MALL_DAILY = "mall_daily", -- 每日商城
|
|
DAILY_CHALLENGE = "daily_challenge", -- 每日挑战
|
|
FUND = "act_level_gift", -- 成长基金
|
|
ACT_GIFT_SHOW_OPEN = "act_gift_show_open", -- 弹窗礼包通用开启条件
|
|
FIRST_RECHARGE = "first_charge", -- 首充礼包
|
|
BEGINNER_GIFT = "new_player_gift", -- 新手礼包
|
|
MAIL = "mail_open", -- 邮件
|
|
DUNGEON_SHARDS = "dungeon_shards_open", -- 碎片副本
|
|
DUNGEON_GOLD = "dungeon_gold_open", -- 金币副本
|
|
INTRODUCT_GIFT = "introduct_gift", -- 入门礼包
|
|
ARENA = "arena_open", -- 竞技场
|
|
ARENA_GIFT = "act_arena_gift", -- 竞技场礼包
|
|
COLLECT = "collection_open", -- 收集
|
|
DUNGEON_ARMOR = "dungeon_armor_open", -- 支线副本
|
|
DUNGEON_WEAPON = "dungeon_weapon_open", -- 装备副本
|
|
EQUIP_WEAPON = "equip_weapon_open", -- 武器
|
|
EQUIP_ARMOR = "equip_armor_open", -- 防具
|
|
SKIN = "skin_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()
|
|
ModuleManager.TaskManager:init()
|
|
ModuleManager.DailyChallengeManager:init()
|
|
ModuleManager.PlayerManager:init()
|
|
ModuleManager.SkinManager:init()
|
|
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:getMaxChapterId() >= cfg.stage
|
|
if not hideToast and not isOpen then
|
|
GFunc.showToast(I18N:getGlobalText(I18N.GlobalConst.FUNC_OPEN_STAGE, cfg.stage))
|
|
end
|
|
return isOpen
|
|
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)
|
|
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
|