PGRData/Script/matrix/xconfig/XTheatreConfigs.lua

957 lines
No EOL
32 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.

XTheatreConfigs = XTheatreConfigs or {}
-- 配置表
local SHARE_TABLE_PATH = "Share/Theatre/"
local CLIENT_TABLE_PATH = "Client/Theatre/"
XTheatreConfigs.NodeType = {
None = 0,
Event = 1, -- 事件
Shop = 2, -- 商店
Battle = 3, -- 战斗
Random = 4, -- 随机
MovieBattle = 5, -- 剧情关
Movie = 6, -- 直接播放剧情
}
XTheatreConfigs.EventNodeType = {
Talk = 1, -- 对白
Selectable = 2, -- 选项
LocalReward = 3, -- 本局奖励
GlobalReward = 4, -- 全局(永久)奖励
Battle = 5, -- 战斗
Movie = 6, -- 剧情
}
XTheatreConfigs.AdventureRewardType = {
None = 0, -- 无
SelectSkill = 1, -- 选择技能
LevelUp = 2, -- 升级
Decoration = 3, -- 装修
PowerFavor = 4, -- 势力好感
RewardId = 99, -- 奖励id
}
XTheatreConfigs.SelectableEventItemType = {
ConsumeItem = 1, -- 消耗道具
CheckHasItem = 2, -- 检查拥有道具
IconTrigger = 3, -- 图标触发
IconSkip = 4, -- 图标跳过
}
XTheatreConfigs.SkillType = {
Core = 1, -- 核心技能
Additional = 2, -- 附属技能
}
XTheatreConfigs.SkillOperationType = {
AddBuff = 1, -- 增幅
LevelUp = 2, -- 升级
Replace = 3, -- 替换
}
XTheatreConfigs.OperationQueueType = {
NodeReward = 1, -- 奖励
ChapterSettle = 2, -- 章节结算
AdventureSettle = 3, -- 冒险结算
BattleSettle = 4, -- 战斗结算
}
--图鉴页签枚举
XTheatreConfigs.FieldGuideIds = {
CurSkill = 1, --当前增益
AllSkill = 2, --增益图鉴
Item = 3, --其他道具
}
--道具类型
XTheatreConfigs.ItemType = {
Token = 1, --信物
ThisGameItem = 2, --本局道具
LastItem = 3, --永久道具
}
--势力好感度奖励类型
XTheatreConfigs.PowerFavorRewardType = {
PowerFavorRewardType1 = 1, --获得道具
PowerFavorRewardType2 = 2, --解锁指定势力技能, 该类型可叠加
PowerFavorRewardType3 = 3, --局内出现该势力核心技能时,改变初始品质。该效果只取最高
PowerFavorRewardType4 = 4, --局内出现该势力核心技能升级时,改变每次增加的品质数。该效果只取最高
PowerFavorRewardType5 = 5, --解锁信物
}
--功能解锁弹窗显示的布局枚举
XTheatreConfigs.UplockTipsPanel = {
Prerogative = 1, --解锁功能
NewTalent = 2, --解锁新装修项
OwnRole = 3, --可使用自己角色
}
-- PS:因服务器是代码写死,客户端后期可以考虑配置在总表里
-- 局内商店货币
XTheatreConfigs.TheatreCoin = 96101
-- 装修点
XTheatreConfigs.TheatreDecorationCoin = 96102
-- 好感度道具
XTheatreConfigs.TheatreFavorCoin = 96103
-- 局外活动道具
XTheatreConfigs.TheatreOutsideCoin = 96104
-- 局内商店最大显示数量
XTheatreConfigs.ShopMaxItemCount = 4
-- 绑定事件选项装修点的装修类型
XTheatreConfigs.DecorationEventOptionType = 8
XTheatreConfigs.DecorationReopenOptionType = 9
XTheatreConfigs.DecorationRecruitOptionType = 10
XTheatreConfigs.DecorationRecruitRefreshOptionType = 11 --每幕招募时,刷新次数+NN=参数1
--"开始冒险"艺术字路径
XTheatreConfigs.TheatreTxtStartPath = CS.XGame.ClientConfig:GetString("TheatreTxtStartPath")
--"继续冒险"艺术字路径
XTheatreConfigs.TheatreTxtContinuePath = CS.XGame.ClientConfig:GetString("TheatreTxtContinuePath")
-- XTheatreConfigs.BattleType = {
-- Single = 1, -- 单队伍
-- Multiple = 2, -- 多队伍
-- }
function XTheatreConfigs.Init()
XConfigCenter.CreateGetProperties(XTheatreConfigs, {
"TheatreChapter",
"TheatreConfig",
"TheatreDecoration",
"TheatreDifficulty",
"TheatreFactor",
"TheatreItem",
"TheatreLv",
"TheatreNode",
"TheatrePowerCondition",
"TheatrePowerFavor",
"TheatreRole",
"TheatreRoleAttr",
"TheatreSkill",
"TheatreStage",
"TheatreEvent",
"TheatreClientConfig",
"TheatreEnding",
"TheatreNodeShop",
"TheatreAutoTeam",
"TheatreFieldGuide",
"TheatreKeepsake",
"TheatreTask",
"TheatreTaskGroup",
"TheatreSkillPosDefine",
"TheatreEventClientConfig",
}, {
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreChapter.tab", XTable.XTableTheatreChapter, "Id",
"ReadByStringKey", SHARE_TABLE_PATH .. "TheatreConfig.tab", XTable.XTableTheatreConfig, "Key",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreDecoration.tab", XTable.XTableTheatreDecoration, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreDifficulty.tab", XTable.XTableTheatreDifficulty, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreFactor.tab", XTable.XTableTheatreFactor, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreItem.tab", XTable.XTableTheatreItem, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreLv.tab", XTable.XTableTheatreLv, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreNode.tab", XTable.XTableTheatreNode, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatrePowerCondition.tab", XTable.XTableTheatrePowerCondition, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatrePowerFavor.tab", XTable.XTableTheatrePowerFavor, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreRole.tab", XTable.XTableTheatreRole, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreRoleAttr.tab", XTable.XTableTheatreRoleAttr, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreSkill.tab", XTable.XTableTheatreSkill, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreStage.tab", XTable.XTableTheatreStage, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreEvent.tab", XTable.XTableTheatreEvent, "Id",
"ReadByStringKey", CLIENT_TABLE_PATH .. "TheatreClientConfig.tab", XTable.XTableTheatreClientConfig, "Key",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreEnding.tab", XTable.XTableTheatreEnding, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreNodeShop.tab", XTable.XTableTheatreNodeShop, "Id",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreAutoTeam.tab", XTable.XTableTheatreAutoTeam, "StageId",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreFieldGuide.tab", XTable.XTableTheatreFieldGuide, "Id",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreKeepsake.tab", XTable.XTableTheatreKeepsake, "Id",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreTask.tab", XTable.XTableTheatreTask, "Id",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreTaskGroup.tab", XTable.XTableTheatreTaskGroup, "Id",
"ReadByIntKey", SHARE_TABLE_PATH .. "TheatreSkillPosDefine.tab", XTable.XTableTheatreSkillPosDefine, "Id",
"ReadByIntKey", CLIENT_TABLE_PATH .. "TheatreEventClientConfig.tab", XTable.XTableTheatreEventClientConfig, "Id",
})
end
function XTheatreConfigs.GetRoleRobotConfig(roleId, level)
local roleLevel2RobotDic = XTheatreConfigs.__RoleLevel2RobotDic
if roleLevel2RobotDic == nil then
roleLevel2RobotDic = {}
local configs = XTheatreConfigs.GetTheatreRoleAttr()
for _, config in ipairs(configs) do
roleLevel2RobotDic[config.RoleId] = roleLevel2RobotDic[config.RoleId] or {}
table.insert(roleLevel2RobotDic[config.RoleId], config)
end
XTheatreConfigs.__RoleLevel2RobotDic = roleLevel2RobotDic
end
local resultConfigs = roleLevel2RobotDic[roleId]
if resultConfigs == nil then
XLog.Error(string.format( "TheatreRoleAttr找不到id%s的配置", roleId), level)
return
end
if level == nil then
return resultConfigs
end
for i = #resultConfigs, 1, -1 do
if level >= resultConfigs[i].Lv then
return resultConfigs[i]
end
end
return resultConfigs[1]
end
function XTheatreConfigs.GetEventNodeConfig(eventId, stepId)
for id, config in pairs(XTheatreConfigs.GetTheatreEvent()) do
if config.EventId == eventId and config.StepId == stepId then
return config
end
end
end
function XTheatreConfigs.GetInitLevel()
return XTheatreConfigs.GetTheatreLv()[1].Lv
end
function XTheatreConfigs.GetLevel2Data(level)
local configs = XTheatreConfigs.GetTheatreLv()
local config
for i = #configs, 1, -1 do
config = configs[i]
if level >= config.Lv then
return config
end
end
return configs[1]
end
function XTheatreConfigs.GetMaxLevel()
local configs = XTheatreConfigs.GetTheatreLv()
return configs[#configs].Lv
end
function XTheatreConfigs.GetNodeTypeName(nodeType)
return XTheatreConfigs.GetTheatreClientConfig("NodeTypeName").Values[nodeType]
end
function XTheatreConfigs.GetNodeTypeIcon(nodeType)
return XTheatreConfigs.GetTheatreClientConfig("NodeTypeIcon").Values[nodeType]
end
function XTheatreConfigs.GetNodeTypeDesc(nodeType)
return XTheatreConfigs.GetTheatreClientConfig("NodeTypeDesc").Values[nodeType]
end
function XTheatreConfigs.GetClientConfig(key, valueIndex)
if valueIndex == nil then valueIndex = 1 end
return XTheatreConfigs.GetTheatreClientConfig(key).Values[valueIndex]
end
function XTheatreConfigs.GetRewardTypeIcon(rewardType, powerId)
local result = XTheatreConfigs.GetTheatreClientConfig("SpecialRewardIcon").Values[rewardType]
if rewardType == XTheatreConfigs.AdventureRewardType.SelectSkill then
if powerId <= 0 then
XLog.Error("XTheatreConfigs.GetRewardTypeIcon(rewardType, powerId) 错误PowerId", powerId)
end
result = string.format(result, XTheatreConfigs.GetClientConfig("SpecialRewardSkillIcon", powerId))
end
return result
end
function XTheatreConfigs.GetRewardTypeName(rewardType, powerId)
local result = XTheatreConfigs.GetTheatreClientConfig("SpecialRewardName").Values[rewardType]
if rewardType == XTheatreConfigs.AdventureRewardType.SelectSkill then
result = string.format(result, XTheatreConfigs.GetClientConfig("SpecialRewardSkillName", powerId))
end
return result
end
function XTheatreConfigs.GetShopIds()
local shopIds = {}
local shopIdByNormal = XTheatreConfigs.GetTheatreConfig("ShopIdByNormal").Value
local shopIdBySpeical = XTheatreConfigs.GetTheatreConfig("ShopIdBySpecial").Value
table.insert(shopIds, shopIdByNormal)
table.insert(shopIds, shopIdBySpeical)
return shopIds
end
function XTheatreConfigs.GetRoleDetailLevelIcon()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailLevelIcon").Values[1]
end
function XTheatreConfigs.GetRoleDetailLevelDesc()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailLevelDesc").Values
end
function XTheatreConfigs.GetRoleDetailEquipIcon()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailEquipIcon").Values[1]
end
function XTheatreConfigs.GetRoleDetailEquiupDesc()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailEquiupDesc").Values
end
function XTheatreConfigs.GetRoleDetailSkillIcon()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailSkillIcon").Values[1]
end
function XTheatreConfigs.GetRoleDetailSkillDesc()
return XTheatreConfigs.GetTheatreClientConfig("RoleDetailSkillDesc").Values
end
function XTheatreConfigs.GetUnlockOwnRole()
return XTheatreConfigs.GetTheatreClientConfig("UnlockOwnRole").Values
end
function XTheatreConfigs.GetUnlockFavor()
return XTheatreConfigs.GetTheatreClientConfig("UnlockFavor").Values
end
function XTheatreConfigs.GetUnlockDecoration()
return XTheatreConfigs.GetTheatreClientConfig("UnlockDecoration").Values
end
function XTheatreConfigs.GetUnlockNewDecoration()
return XTheatreConfigs.GetTheatreClientConfig("UnlockNewDecoration").Values
end
function XTheatreConfigs.GetSkillPosIcon(index)
return XTheatreConfigs.GetTheatreClientConfig("SkillPosIcon").Values[index]
end
function XTheatreConfigs.GetFirstStoryId()
return XTheatreConfigs.GetTheatreClientConfig("FirstStoryId").Values[1]
end
function XTheatreConfigs.GetCheckDecorationGroupIndex()
local groupIndex = XTheatreConfigs.GetTheatreClientConfig("CheckDecorationGroupIndex").Values[1]
return groupIndex and tonumber(groupIndex)
end
------------------TheatreAutoTeam 自动编队 begin----------------------
local _AutoTeamDefaultStageId = 0
local GetTheatreAutoTeamConfig = function(stageId)
stageId = stageId or _AutoTeamDefaultStageId
local config = XTheatreConfigs.GetTheatreAutoTeam(stageId)
if not config then
config = XTheatreConfigs.GetTheatreAutoTeam(_AutoTeamDefaultStageId)
end
return config
end
--获得自动编队的队伍属性优先级
function XTheatreConfigs.GetTheatreAutoTeamElementSortOrder(stageId, elementId, isomer)
local config = GetTheatreAutoTeamConfig(stageId)
if isomer then
return config.IsomerSortOrder
end
return config.ElementSortOrder[elementId] or 0
end
--获得自动编队的职业优先级
function XTheatreConfigs.GetTheatreAutoTeamCareerSortOrder(stageId, careerType)
local config = GetTheatreAutoTeamConfig(stageId)
return config.CareerSortOrder[careerType] or 0
end
function XTheatreConfigs.GetTheatreAutoTeamIsOnlyOneElement(stageId, elementId)
local config = GetTheatreAutoTeamConfig(stageId)
return config.IsOnlyOneElement[elementId]
end
------------------TheatreAutoTeam 自动编队 end------------------------
------------------TheatreStage 关卡 begin----------------------
function XTheatreConfigs.GetTheatreStageCount(id)
local config = XTheatreConfigs.GetTheatreStage(id)
return config and config.StageCount or 0
end
function XTheatreConfigs.GetTheatreStageSuggestAbility(id)
local config = XTheatreConfigs.GetTheatreStage(id)
return config and config.SuggestAbility or 0
end
function XTheatreConfigs.GetTheatreStageIdList(id)
local config = XTheatreConfigs.GetTheatreStage(id)
return config.StageId
end
------------------TheatreStage 关卡 begin----------------------
------------------TheatreDecoration 装修改造 begin----------------------
local IsInitTheatreDecorationDic = false
local TheatreGroupIndexToDecorationIds = {} --组下标对应的装修项Id列表
local TheatreDecorationIdToGridIndex = {} --装修项Id对应的格子下标
local TheatreDecorationIdAndLvToId = {} --装修项Id和等级对应的Id
local TheatreDecorationMaxLv = {} --装修项最大等级
local TheatreCheckWindowsDecorationIdList = {} --需要检查装修项解锁弹窗的Id列表
local TheatreDecorationIdToIds = {} --装修项Id对应的TheatreDecoration表的Id
local InitTheatreDecorationDic = function()
if IsInitTheatreDecorationDic then
return
end
local configs = XTheatreConfigs.GetTheatreDecoration()
for id, config in pairs(configs) do
if not TheatreGroupIndexToDecorationIds[config.GroupIndex] then
TheatreGroupIndexToDecorationIds[config.GroupIndex] = {}
end
if not TheatreDecorationIdToGridIndex[config.DecorationId] then
table.insert(TheatreGroupIndexToDecorationIds[config.GroupIndex], config.DecorationId)
TheatreDecorationIdToGridIndex[config.DecorationId] = config.GridIndex
end
if not TheatreDecorationIdAndLvToId[config.DecorationId] then
TheatreDecorationIdAndLvToId[config.DecorationId] = {}
end
TheatreDecorationIdAndLvToId[config.DecorationId][config.Lv] = id
if not TheatreDecorationMaxLv[config.DecorationId] or TheatreDecorationMaxLv[config.DecorationId] < config.Lv then
TheatreDecorationMaxLv[config.DecorationId] = config.Lv
end
if config.Lv == 0 and config.IsWindow then
table.insert(TheatreCheckWindowsDecorationIdList, id)
end
if not TheatreDecorationIdToIds[config.DecorationId] then
TheatreDecorationIdToIds[config.DecorationId] = {}
end
table.insert(TheatreDecorationIdToIds[config.DecorationId], id)
end
IsInitTheatreDecorationDic = true
end
function XTheatreConfigs.GetTheatreDecorationIdToIds(decorationId)
InitTheatreDecorationDic()
return TheatreDecorationIdToIds[decorationId] or {}
end
function XTheatreConfigs.GetTheatreGroupIndexToDecorationIds()
InitTheatreDecorationDic()
return TheatreGroupIndexToDecorationIds
end
function XTheatreConfigs.GetDecorationIdsByGroupIndex(groupIndex)
InitTheatreDecorationDic()
return TheatreGroupIndexToDecorationIds[groupIndex]
end
function XTheatreConfigs.GetTheatreDecorationIds()
InitTheatreDecorationDic()
return TheatreDecorationIdToGridIndex
end
function XTheatreConfigs.GetTheatreDecorationIdToGridIndex(decorationId)
InitTheatreDecorationDic()
return TheatreDecorationIdToGridIndex[decorationId] or {}
end
function XTheatreConfigs.GetTheatreDecorationIdAndLvToId(decorationId, lv)
InitTheatreDecorationDic()
return TheatreDecorationIdAndLvToId[decorationId] and TheatreDecorationIdAndLvToId[decorationId][lv]
end
function XTheatreConfigs.GetTheatreDecorationMaxLv(decorationId)
InitTheatreDecorationDic()
return TheatreDecorationMaxLv[decorationId] or 0
end
function XTheatreConfigs.GetDecorationId(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.DecorationId
end
function XTheatreConfigs.GetDecorationLv(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.Lv
end
function XTheatreConfigs.GetDecorationConditionId(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.ConditionId
end
function XTheatreConfigs.GetDecorationUpgradeCost(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.UpgradeCostCount
end
function XTheatreConfigs.GetDecorationGroupIndex(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.GroupIndex
end
function XTheatreConfigs.GetDecorationGridIndex(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.GridIndex
end
function XTheatreConfigs.GetDecorationIcon(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.Icon
end
function XTheatreConfigs.GetDecorationName(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.Name
end
function XTheatreConfigs.GetDecorationDesc(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.Desc
end
function XTheatreConfigs.GetDecorationConditionDesc(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.ConditionDesc
end
function XTheatreConfigs.GetDecorationIsWindow(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.IsWindow
end
function XTheatreConfigs.GetDecorationUpgradeCostItemId(id)
local config = XTheatreConfigs.GetTheatreDecoration(id)
return config.UpgradeCostItemId
end
-- 获得需要检查装修项解锁弹窗的Id列表
function XTheatreConfigs.GetCheckWindowDecorationIdList()
InitTheatreDecorationDic()
return TheatreCheckWindowsDecorationIdList
end
------------------TheatreDecoration 装修改造 end------------------------
------------------TheatrePowerCondition 势力 begin--------------------
function XTheatreConfigs.GetPowerConditionIdList()
local powerConditionIdList = {}
local configs = XTheatreConfigs.GetTheatrePowerCondition()
for id in pairs(configs) do
table.insert(powerConditionIdList, id)
end
table.sort(powerConditionIdList, function(a, b)
return a < b
end)
return powerConditionIdList
end
function XTheatreConfigs.GetPowerConditionId(id)
local config = XTheatreConfigs.GetTheatrePowerCondition(id)
return config.ConditionId
end
function XTheatreConfigs.GetPowerConditionName(id)
local config = XTheatreConfigs.GetTheatrePowerCondition(id)
return config.Name
end
function XTheatreConfigs.GetPowerConditionIcon(id)
local config = XTheatreConfigs.GetTheatrePowerCondition(id)
return config.Icon
end
function XTheatreConfigs.GetPowerConditionSmallIcon(id)
local config = XTheatreConfigs.GetTheatrePowerCondition(id)
return config.SmallIcon
end
------------------TheatrePowerCondition 势力 end----------------------
------------------TheatrePowerFavor 势力好感度 begin--------------------
local TheatrePowerIdAndLvToId = {} --装修项Id和等级对应的Id
local TheatrePowerMaxLv = {} --装修项最大等级
local TheatrePowerIdToPowerFavorIdList = {} --装修项Id对应的所有好感度Id列表
local InitTheatrePowerDic = function()
local configs = XTheatreConfigs.GetTheatrePowerFavor()
for id, config in pairs(configs) do
if not TheatrePowerIdToPowerFavorIdList[config.PowerId] then
TheatrePowerIdToPowerFavorIdList[config.PowerId] = {}
end
table.insert(TheatrePowerIdToPowerFavorIdList[config.PowerId], id)
if not TheatrePowerIdAndLvToId[config.PowerId] then
TheatrePowerIdAndLvToId[config.PowerId] = {}
end
TheatrePowerIdAndLvToId[config.PowerId][config.Lv] = id
if not TheatrePowerMaxLv[config.PowerId] or TheatrePowerMaxLv[config.PowerId] < config.Lv then
TheatrePowerMaxLv[config.PowerId] = config.Lv
end
end
for _, idList in pairs(TheatrePowerIdToPowerFavorIdList) do
table.sort(idList, function(a, b)
local lvA = XTheatreConfigs.GetPowerFavorLv(a)
local lvB = XTheatreConfigs.GetPowerFavorLv(b)
if lvA ~= lvB then
return lvA < lvB
end
return a < b
end)
end
end
function XTheatreConfigs.GetPowerFavorIdListByPowerId(powerId, isRemoveLvZero)
if XTool.IsTableEmpty(TheatrePowerIdToPowerFavorIdList) then
InitTheatrePowerDic()
end
local powerFavorIdList = XTool.Clone(TheatrePowerIdToPowerFavorIdList[powerId] or {})
--移除等级0的装修Id
if isRemoveLvZero then
local powerFavorId = powerFavorIdList[1]
local lv = XTheatreConfigs.GetPowerFavorLv(powerFavorId)
if not XTool.IsNumberValid(lv) then
table.remove(powerFavorIdList, 1)
end
end
return powerFavorIdList
end
function XTheatreConfigs.GetTheatrePowerIdAndLvToId(powerId, lv)
if XTool.IsTableEmpty(TheatrePowerIdAndLvToId) then
InitTheatrePowerDic()
end
return TheatrePowerIdAndLvToId[powerId] and TheatrePowerIdAndLvToId[powerId][lv]
end
function XTheatreConfigs.GetTheatrePowerMaxLv(powerId)
if XTool.IsTableEmpty(TheatrePowerMaxLv) then
InitTheatrePowerDic()
end
return TheatrePowerMaxLv[powerId] or 0
end
function XTheatreConfigs.GetPowerFavorPowerId(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.PowerId
end
function XTheatreConfigs.GetPowerFavorLv(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.Lv
end
function XTheatreConfigs.GetPowerFavorUpgradeCost(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.UpgradeCost
end
function XTheatreConfigs.GetPowerFavorRewardDesc(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.RewardDesc
end
function XTheatreConfigs.GetPowerFavorRewardTypes(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.RewardType
end
function XTheatreConfigs.GetPowerFavorRewardParams(id)
local config = XTheatreConfigs.GetTheatrePowerFavor(id)
return config.RewardParam
end
------------------TheatrePowerFavor 势力好感度 end----------------------
------------------TheatreTask 任务 begin--------------------
local IsInitTheatreTaskDic = false
local TheatreTaskGroupToIdList = {} --任务组下的Id列表
local TheatreTaskMainShowIdList = {} --参与主界面任务显示逻辑的Id列表
local TheatreTaskHaveStartTimeIdList = {} --有开启时间的任务Id列表
local InitTheatreTask = function()
if IsInitTheatreTaskDic then
return
end
local configs = XTheatreConfigs.GetTheatreTask()
for id, config in pairs(configs) do
local groupId = config.GroupId
if not TheatreTaskGroupToIdList[groupId] then
TheatreTaskGroupToIdList[groupId] = {}
end
table.insert(TheatreTaskGroupToIdList[groupId], id)
local mainShowOrder = config.MainShowOrder
if XTool.IsNumberValid(mainShowOrder) then
table.insert(TheatreTaskMainShowIdList, id)
end
local taskIdList = config.TaskId
for _, taskId in ipairs(taskIdList) do
if XTaskConfig.GetTaskStartTime(taskId) then
table.insert(TheatreTaskHaveStartTimeIdList, taskId)
end
end
end
for _, idList in pairs(TheatreTaskGroupToIdList) do
table.sort(idList, function(a, b)
return a < b
end)
end
table.sort(TheatreTaskMainShowIdList, function(a, b)
local orderA = XTheatreConfigs.GetTaskMainShowOrder(a)
local orderB = XTheatreConfigs.GetTaskMainShowOrder(b)
if orderA ~= orderB then
return orderA < orderB
end
return a < b
end)
IsInitTheatreTaskDic = true
end
function XTheatreConfigs.GetTheatreTaskIdList(groupId)
InitTheatreTask()
return TheatreTaskGroupToIdList[groupId] or {}
end
function XTheatreConfigs.GetTheatreTaskMainShowIdList()
InitTheatreTask()
return TheatreTaskMainShowIdList
end
function XTheatreConfigs.GetTheatreTaskHaveStartTimeIdList()
InitTheatreTask()
return TheatreTaskMainShowIdList
end
function XTheatreConfigs.GetTaskIdList(id)
local config = XTheatreConfigs.GetTheatreTask(id)
return config.TaskId
end
function XTheatreConfigs.GetTaskName(id)
local config = XTheatreConfigs.GetTheatreTask(id)
return config.Name
end
function XTheatreConfigs.GetTaskMainShowOrder(id)
local config = XTheatreConfigs.GetTheatreTask(id)
return config.MainShowOrder
end
function XTheatreConfigs.GetTaskGroupId(id)
local config = XTheatreConfigs.GetTheatreTask(id)
return config.GroupId
end
------------------TheatreTask 任务 end----------------------
------------------TheatreChapter 章节 begin--------------------
local GetDefaultChapterConfig = function()
local configs = XTheatreConfigs.GetTheatreChapter()
for _, config in pairs(configs) do
return config
end
end
function XTheatreConfigs.GetDefaultChapterId()
return GetDefaultChapterConfig().Id
end
function XTheatreConfigs.GetChapterIsRecruit(id)
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.IsRecruit
end
function XTheatreConfigs.GetCurChapterRecruitMaxCount(id)
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.RecruitRefreshCount
end
function XTheatreConfigs.GetChapterSceneUrl(id)
if not id then
return GetDefaultChapterConfig().SceneUrl
end
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.SceneUrl
end
function XTheatreConfigs.GetChapterBgA(id)
if not id then
return GetDefaultChapterConfig().BgA
end
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.BgA
end
function XTheatreConfigs.GetChapterBgB(id)
if not id then
return GetDefaultChapterConfig().BgB
end
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.BgB
end
function XTheatreConfigs.GetChapterModelUrl(id)
if not id then
return GetDefaultChapterConfig().ModelUrl
end
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.ModelUrl
end
function XTheatreConfigs.GetChapterRecruitGrid(id)
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.RecruitGrid
end
function XTheatreConfigs.GetChapterMultiFightLoadingBg(id)
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.MultiFightLoadingBg
end
function XTheatreConfigs.GetChapterTitle(id)
local config = XTheatreConfigs.GetTheatreChapter(id)
return config.Title
end
------------------TheatreChapter 章节 end----------------------
------------------TheatreRole 角色总表 begin--------------------
function XTheatreConfigs.GetRolePoolId(id)
local config = XTheatreConfigs.GetTheatreRole(id)
return config.PoolId
end
------------------TheatreRole 角色总表 end----------------------
------------------TheatreFieldGuide 图鉴表 begin---------------------
function XTheatreConfigs.GetTheatreFieldGuideIdList(showFieldGuideIds)
local config = XTheatreConfigs.GetTheatreFieldGuide()
local idList = {}
if showFieldGuideIds then
idList = XTool.Clone(showFieldGuideIds)
else
for id in ipairs(config) do
table.insert(idList, id)
end
end
table.sort(idList, function(a, b)
local orderA = XTheatreConfigs.GetTheatreFieldGuide(a).Order
local orderB = XTheatreConfigs.GetTheatreFieldGuide(b).Order
if orderA ~= orderB then
return orderA < orderB
end
return a < b
end)
return idList
end
function XTheatreConfigs.GetTheatreFieldGuideName(id)
local config = XTheatreConfigs.GetTheatreFieldGuide(id)
return config.Name
end
------------------TheatreFieldGuide 图鉴表 end-----------------------
------------------TheatreItem 道具表 begin---------------------------
local IsInitTheatreItemDic = false
local TheatreMinLvKeepsakeDic = {} --等级最低的信物对应的TheatreItem表的Id
local InitTheatreTask = function()
if IsInitTheatreItemDic then
return
end
local configs = XTheatreConfigs.GetTheatreItem()
for id, config in pairs(configs) do
if XTool.IsNumberValid(config.KeepsakeId) then
local minLvId = TheatreMinLvKeepsakeDic[config.KeepsakeId]
local lv = minLvId and XTheatreConfigs.GetTheatreItemLv(minLvId)
if not lv or config.Lv < lv then
TheatreMinLvKeepsakeDic[config.KeepsakeId] = id
end
end
end
IsInitTheatreItemDic = true
end
function XTheatreConfigs.GetTheatreMinLvTheatreItemId(keepsakeId)
InitTheatreTask()
return TheatreMinLvKeepsakeDic[keepsakeId] or 0
end
function XTheatreConfigs.GetTheatreItemKeepsakeId(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.KeepsakeId
end
function XTheatreConfigs.GetTheatreItemType(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.Type
end
function XTheatreConfigs.GetTheatreItemId(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.ItemId
end
function XTheatreConfigs.GetTheatreItemLv(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.Lv
end
function XTheatreConfigs.GetTheatreItemExplain(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.Explain
end
function XTheatreConfigs.GetTheatreItemFightCount(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.FightCount
end
function XTheatreConfigs.GetTheatreItemQuality(id)
local config = XTheatreConfigs.GetTheatreItem(id)
return config.Quality
end
------------------TheatreItem 道具表 end-----------------------------
------------------TheatreKeepsake 信物表 begin-----------------------
function XTheatreConfigs.GetTheatreKeepsakeName(id)
local config = XTheatreConfigs.GetTheatreKeepsake(id)
return config.Name
end
function XTheatreConfigs.GetTheatreKeepsakeIcon(id)
local config = XTheatreConfigs.GetTheatreKeepsake(id)
return config.Icon
end
function XTheatreConfigs.GetTheatreKeepsakeDescription(id)
local config = XTheatreConfigs.GetTheatreKeepsake(id)
return config.Description
end
------------------TheatreKeepsake 信物表 end-------------------------
------------------TheatreLv 等级表 begin-----------------------------
function XTheatreConfigs.GetTheatreLvEquipmentShowLevel(id)
local config = XTheatreConfigs.GetTheatreLv(id)
return config.EquipmentShowLevel
end
------------------TheatreLv 等级表 end-------------------------------
------------------TheatreSkillPosDefine 技能位置表 begin-------------
function XTheatreConfigs.GetTheatreSkillPosDefineSkillType(id)
local config = XTheatreConfigs.GetTheatreSkillPosDefine(id)
return config and config.SkillType or {}
end
------------------TheatreSkillPosDefine 技能位置表 end---------------
------------------TheatreSkill 技能表 begin--------------------------
function XTheatreConfigs.GetTheatreSkillPowerId(id)
local config = XTheatreConfigs.GetTheatreSkill(id)
return config.PowerId
end
function XTheatreConfigs.GetTheatreSkillPos(id)
local config = XTheatreConfigs.GetTheatreSkill(id)
return config.Pos
end
function XTheatreConfigs.GetTheatreSkillLv(id)
local config = XTheatreConfigs.GetTheatreSkill(id)
return config.Lv
end
------------------TheatreSkill 技能表 end----------------------------