367 lines
6.3 KiB
Lua
367 lines
6.3 KiB
Lua
local ConfigManager = {
|
|
configs = {}
|
|
}
|
|
|
|
local CONFIG_PATH = "app/config/"
|
|
|
|
function ConfigManager:_getConfig(configName)
|
|
local config = require(CONFIG_PATH .. configName)
|
|
self.configs[configName] = config
|
|
return config
|
|
end
|
|
|
|
function ConfigManager:getConfig(configName)
|
|
if CS.BF.BFMain.IsShenhe and configName == "mall_treasure" then
|
|
return self:getMallTreasureConfig().data
|
|
end
|
|
local config = self.configs[configName]
|
|
if config == nil then
|
|
config = self:_getConfig(configName)
|
|
end
|
|
return config.data
|
|
end
|
|
|
|
function ConfigManager:getItemConfig()
|
|
if self.itemCfg == nil then
|
|
self.itemCfg = self:getConfig("item")
|
|
end
|
|
return self.itemCfg
|
|
end
|
|
|
|
if NOT_PUBLISH then
|
|
ConfigManager.__getConfig = ConfigManager.getConfig
|
|
function ConfigManager:getConfig(configName)
|
|
if string.lower(configName) ~= configName then
|
|
Logger.logFatal("ConfigManager:getConfig 传入的表名不能有大写 " .. configName)
|
|
end
|
|
return self:__getConfig(configName)
|
|
end
|
|
end
|
|
|
|
function ConfigManager:reloadConfig(configName)
|
|
self:clearConfigCache(configName)
|
|
self.configs[configName] = nil
|
|
self:getConfig(configName)
|
|
end
|
|
|
|
function ConfigManager:getConfigNum(configName)
|
|
local config = self.configs[configName]
|
|
if config == nil then
|
|
config = self:_getConfig(configName)
|
|
end
|
|
return config.count
|
|
end
|
|
|
|
function ConfigManager:getConfigWithOtherKey(configName, keyName)
|
|
local config = self.configs[configName]
|
|
if config == nil then
|
|
config = self:_getConfig(configName)
|
|
end
|
|
if config.keys == nil then
|
|
return nil
|
|
end
|
|
return config.keys[keyName]
|
|
end
|
|
|
|
function ConfigManager:getMainKeyWithOtherKey(configName, keyName, keyValue)
|
|
local config = self.configs[configName]
|
|
if config == nil then
|
|
config = self:_getConfig(configName)
|
|
end
|
|
if config.keys == nil then
|
|
return nil
|
|
end
|
|
local kv = config.keys[keyName]
|
|
if kv[keyValue] then
|
|
return kv[keyValue].id
|
|
end
|
|
return nil
|
|
end
|
|
|
|
function ConfigManager:reloadAllConfig()
|
|
for configName, v in pairs(self.configs) do
|
|
self:reloadConfig(configName)
|
|
end
|
|
self:preLoadConfig()
|
|
end
|
|
|
|
function ConfigManager:preLoadConfig()
|
|
local monsterBase = self:_getConfig("monster_base")
|
|
self:clearConfigCache("monster_base")
|
|
local baseData = monsterBase.data
|
|
local monsterFullData = {}
|
|
local count = 0
|
|
local function handleMonsterGrow(name)
|
|
local monsterGrowConfig = self:_getConfig(name)
|
|
local growData = monsterGrowConfig.data
|
|
for k, v in pairs(growData) do
|
|
monsterFullData[k] = v
|
|
local data = baseData[v.monster_base]
|
|
if data then
|
|
monsterFullData[k].model_id = data.model_id
|
|
monsterFullData[k].hurt_num = data.hurt_num
|
|
monsterFullData[k].body = data.body
|
|
monsterFullData[k].model_ui = data.model_ui
|
|
-- else
|
|
-- Logger.logHighlight("not data monster_baseid = " .. v.monster_baseid)
|
|
end
|
|
count = count + 1
|
|
end
|
|
self:clearConfigCache(name)
|
|
end
|
|
handleMonsterGrow("monster_chapter")
|
|
handleMonsterGrow("monster_daily_challenge")
|
|
handleMonsterGrow("monster_dungeon_gold")
|
|
handleMonsterGrow("monster_dungeon_shards")
|
|
handleMonsterGrow("monster_dungeon_equip")
|
|
handleMonsterGrow("monster_dungeon_armor")
|
|
handleMonsterGrow("monster_activity")
|
|
|
|
self.configs["monster"] = {
|
|
data = monsterFullData,
|
|
count = count
|
|
}
|
|
|
|
if EDITOR_MODE then
|
|
local realCount = 0
|
|
for k, v in pairs(monsterFullData) do
|
|
realCount = realCount + 1
|
|
end
|
|
if count ~= realCount then
|
|
Logger.logFatal("same id in monster config")
|
|
end
|
|
end
|
|
end
|
|
|
|
function ConfigManager:getChapterConfig(id)
|
|
if not id then
|
|
return
|
|
end
|
|
local idx = math.ceil(id/5000)
|
|
local cfg = ConfigManager:getConfig("chapter" .. idx)
|
|
return cfg[id], cfg
|
|
end
|
|
|
|
function ConfigManager:clearConfigCache(configName)
|
|
package.loaded[CONFIG_PATH .. configName] = nil
|
|
end
|
|
|
|
function ConfigManager:getMallTreasureConfig()
|
|
local mallTreasure = {
|
|
[2]={
|
|
["recharge_id"]=1,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=30
|
|
}
|
|
},
|
|
["limit"]=1
|
|
},
|
|
[3]={
|
|
["recharge_id"]=2,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=60
|
|
}
|
|
},
|
|
["limit"]=1
|
|
},
|
|
[4]={
|
|
["recharge_id"]=3,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=90
|
|
}
|
|
},
|
|
["limit"]=2
|
|
},
|
|
[5]={
|
|
["recharge_id"]=4,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=120
|
|
}
|
|
},
|
|
["limit"]=2
|
|
},
|
|
[6]={
|
|
["recharge_id"]=5,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=150
|
|
}
|
|
},
|
|
["limit"]=2
|
|
},
|
|
[7]={
|
|
["recharge_id"]=6,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=180
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[8]={
|
|
["recharge_id"]=7,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=210
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[9]={
|
|
["recharge_id"]=8,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=240
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[10]={
|
|
["recharge_id"]=9,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=270
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[11]={
|
|
["recharge_id"]=10,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=300
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[12]={
|
|
["recharge_id"]=11,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=360
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[13]={
|
|
["recharge_id"]=12,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=450
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[14]={
|
|
["recharge_id"]=13,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=600
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[15]={
|
|
["recharge_id"]=14,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=750
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[16]={
|
|
["recharge_id"]=15,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=900
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[17]={
|
|
["recharge_id"]=16,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=1500
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[18]={
|
|
["recharge_id"]=17,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=2100
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[19]={
|
|
["recharge_id"]=18,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=3000
|
|
}
|
|
},
|
|
["limit"]=3
|
|
},
|
|
[20]={
|
|
["recharge_id"]=19,
|
|
["reward"]={
|
|
{
|
|
["type"]=1,
|
|
["id"]=2,
|
|
["num"]=6000
|
|
}
|
|
},
|
|
["limit"]=3
|
|
}
|
|
}
|
|
local config = {
|
|
data=mallTreasure,count=12
|
|
}
|
|
return config
|
|
end
|
|
|
|
return ConfigManager |