PGRData/Script/matrix/xconfig/XRiftConfig.lua
2024-09-01 22:49:41 +02:00

188 lines
6.7 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

XRiftConfig = XConfigCenter.CreateTableConfig(XRiftConfig, "XRiftConfig", "Fuben/Rift")
--=============
--配置表枚举
--TableName : 表名对应需要读取的表的文件名字不写即为枚举的Key字符串
--TableDefindName : 表定于名,默认同表名
--ReadFuncName : 读取表格的方法默认为ReadByIntKey
--ReadKeyName : 读取表格的主键名默认为Id
--DirType : 读取的文件夹类型XConfigCenter.DirectoryType默认是Share
--LogKey : GetCfgByIdKey方法idKey找不到时所输出的日志信息默认是唯一Id
--=============
XRiftConfig.TableKey = enum({
RiftActivity = {},
RiftChapter = {},
RiftLayer = {},
RiftNodeRandomItem = {}, -- 关卡库
RiftMonster = {},
RiftStage = {},
RiftMonsterWareRandomItem = {}, -- 怪物库
RiftMonsterBuffRandomItem = {}, -- 词缀库
RiftCharacterAndRobot = {ReadKeyName = "CharacterId"},
RiftTeamAttribute = {}, -- 队伍加点表
RiftTeamAttributeCost = {}, -- 队伍加点消耗表
RiftTeamAttributeEffect = {}, -- 队伍加点效果表
RiftTeamAttributeEffectType = { DirType = XConfigCenter.DirectoryType.Client }, -- 队伍加点效果类型表
RiftPlugin = {}, -- 插件表
RiftPluginAttrFix = {}, -- 插件补正表
RiftPluginQuality = { DirType = XConfigCenter.DirectoryType.Client }, -- 插件品质表
RiftPluginShopGoods = {}, -- 插件商店表
RiftTask = { DirType = XConfigCenter.DirectoryType.Client }, -- 任务表
RiftLayerDetail = { DirType = XConfigCenter.DirectoryType.Client },
RiftFuncUnlock = {}, -- 功能解锁表
RiftShop = { DirType = XConfigCenter.DirectoryType.Client }, -- 商店表
})
XRiftConfig.LayerType =
{
Normal = 1,
Zoom = 2, -- 跃升
Multi = 3,
}
XRiftConfig.AttributeType =
{
Strength = 1, -- 力量
Physical = 2, -- 体力
Energy = 3, -- 能量
Focus = 4, -- 专注
}
XRiftConfig.AttributeLevelStr =
{
[1] = "B",
[2] = "A",
[3] = "S",
}
-- 属性补正效果类型
XRiftConfig.AttributeFixEffectType =
{
Value = 1, -- 加成值
Percent = 2, -- 加成百分比
}
-- 功能解锁
XRiftConfig.FuncUnlockId =
{
Attribute = 1,
LuckyStage = 2,
PluginShop = 3,
}
-- 自定义字典
local AttrEffectDic = {}
local PluginAttrFixDic = {}
local PluginFixGroupIdToAttrIdDic = {}
local StageIdDic = {}
XRiftConfig.StageGroupType =
{
Normal = 1,
Zoom = 2, -- 跃升
Multi = 3,
Luck = 4,
}
-- 幸运节点的位置写死为4
XRiftConfig.StageGroupLuckyPos = 4
-- 属性加点模板数量
XRiftConfig.AttrTemplateCnt = 5
-- 默认属性加点模板id
XRiftConfig.DefaultAttrTemplateId = 1
-- 属性数量
XRiftConfig.AttrCnt = 4
-- 插件最多补正属性数量
XRiftConfig.PluginMaxFixCnt = 2
function XRiftConfig.Init()
XRiftConfig.CreateAttributeEffectDic()
XRiftConfig.CreatePluginAttrFixDic()
XRiftConfig.CreateStageIdDic()
end
-------------------------------------------------- RiftActivity.tab 活动表 begin --------------------------------------------------
function XRiftConfig.GetActivityShopIds(id)
local config = XRiftConfig.GetCfgByIdKey(XRiftConfig.TableKey.RiftActivity, id)
local shopIds = {}
for _, shopId in ipairs(config.ShopId) do
if XTool.IsNumberValid(shopId) then
table.insert(shopIds, shopId)
end
end
return shopIds
end
-------------------------------------------------- RiftActivity.tab 活动表 end --------------------------------------------------
-------------------------------------------------- RiftTeamAttribute.tab 队伍加点表 begin --------------------------------------------------
function XRiftConfig.GetAttrName(attrId)
local config = XRiftConfig.GetCfgByIdKey(XRiftConfig.TableKey.RiftTeamAttribute, attrId)
return config.Name
end
-------------------------------------------------- RiftTeamAttribute.tab 队伍加点表 end --------------------------------------------------
-------------------------------------------------- RiftTeamAttributeEffect.tab 队伍加点效果表 begin --------------------------------------------------
function XRiftConfig.CreateAttributeEffectDic()
AttrEffectDic = {}
local effectCfgs = XRiftConfig.GetAllConfigs(XRiftConfig.TableKey.RiftTeamAttributeEffect)
for _, config in ipairs(effectCfgs) do
local id = XRiftConfig.GetAttrEffectId(config.GroupId, config.Level)
AttrEffectDic[id] = config
end
end
-- 由groupId和level生成唯一id快速读取数据
function XRiftConfig.GetAttrEffectId(groupId, level)
return tostring(groupId) .. "_" .. tostring(level)
end
function XRiftConfig.GetAttributeEffectConfig(groupId, level)
local id = XRiftConfig.GetAttrEffectId(groupId, level)
return AttrEffectDic[id]
end
-------------------------------------------------- RiftTeamAttributeEffect.tab 队伍加点效果表 end --------------------------------------------------
-------------------------------------------------- RiftPluginAttrFix.tab 插件补正表 begin --------------------------------------------------
function XRiftConfig.CreatePluginAttrFixDic()
PluginAttrFixDic = {}
local attrFixCfgs = XRiftConfig.GetAllConfigs(XRiftConfig.TableKey.RiftPluginAttrFix)
for _, config in ipairs(attrFixCfgs) do
local id = XRiftConfig.GetPluginAttrFixId(config.GroupId, config.FixAttrId, config.FixAttrLevel)
PluginAttrFixDic[id] = config
PluginFixGroupIdToAttrIdDic[config.GroupId] = config.FixAttrId
end
end
function XRiftConfig.GetPluginAttrFixId(groupId, fixAttrId, fixAttrLevel)
return tostring(groupId) .. "_" .. tostring(fixAttrId) .. "_" .. tostring(fixAttrLevel)
end
function XRiftConfig.GetAttrIdByFixGroupId(groupId)
return PluginFixGroupIdToAttrIdDic[groupId]
end
-- 插件补正配置多个groupId每个groupId只受一种属性加成影响以当前加点方案该属性点值 组成唯一的key
function XRiftConfig.GetPluginAttrFixConfig(groupId, fixAttrId, fixAttrLevel)
local id = XRiftConfig.GetPluginAttrFixId(groupId, fixAttrId, fixAttrLevel)
return PluginAttrFixDic[id]
end
-------------------------------------------------- RiftPluginAttrFix.tab 插件补正表 end --------------------------------------------------
function XRiftConfig.GetTeamAttributeName(attrId)
local config = XRiftConfig.GetCfgByIdKey(XRiftConfig.TableKey.RiftTeamAttribute, attrId)
return config.Name
end
-------------------------------------------------- Stage --------------------------------------------------
function XRiftConfig.CreateStageIdDic()
for k, config in pairs(XRiftConfig.GetAllConfigs(XRiftConfig.TableKey.RiftStage)) do
StageIdDic[config.StageId] = config
end
end
function XRiftConfig.GetStageConfigById(stageId)
return StageIdDic[stageId]
end