PGRData/Script/matrix/xconfig/XFubenCoupleCombatConfig.lua

420 lines
14 KiB
Lua
Raw Normal View History

XFubenCoupleCombatConfig = XFubenCoupleCombatConfig or {}
local TABLE_COUPLE_ACTIVITY = "Share/Fuben/CoupleCombat/CoupleCombatActivity.tab"
local TABLE_COUPLE_BUFF = "Share/Fuben/CoupleCombat/CoupleCombatFeature.tab"
local TABLE_COUPLE_CHAPTER = "Share/Fuben/CoupleCombat/CoupleCombatChapter.tab"
local TABLE_COUPLE_STAGE = "Share/Fuben/CoupleCombat/CoupleCombatStage.tab"
local TABLE_COUPLE_CHARACTER_CAREER_SKILL = "Share/Fuben/CoupleCombat/CoupleCombatCharacterCareerSkill.tab"
local TABLE_COUPLE_CHARACTER = "Share/Fuben/CoupleCombat/CoupleCombatCharacter.tab"
local TABLE_COUPLE_CHARACTER_CAREER_SKILL_GROUP = "Client/Fuben/CoupleCombat/CoupleCombatCharacterCareerSkillGroup.tab"
local CoupleCombatActivity = {}
local CoupleCombatFeature = {}
local CoupleCombatChapter = {}
local CoupleCombatStage = {}
local CoupleCombatCharacterCareerSkill = {}
local CoupleCombatCharacter = {}
local CoupleCombatCharacterCareerSkillGroup = {}
local ChapterIdList = {}
local StageIdList = {}
local StageIdToChapterIdMap = {}
local SkillGroupTypeToSkillIdsMap = {}
XFubenCoupleCombatConfig.ChapterType = {
Normal = 1, --普通难度
Hard = 2, --困难难度
}
local InitChapterIdList = function()
for id in pairs(CoupleCombatChapter) do
table.insert(ChapterIdList, id)
end
table.sort(ChapterIdList, function(a, b)
return a < b
end)
end
local InitStageIdList = function()
for id in pairs(CoupleCombatStage) do
table.insert(StageIdList, id)
end
table.sort(StageIdList, function(a, b)
return a < b
end)
end
local InitStageIdToChapterIdMap = function()
for chapterId, v in pairs(CoupleCombatChapter) do
for _, stageId in ipairs(v.StageIds) do
StageIdToChapterIdMap[stageId] = chapterId
end
end
end
local InitSkillGroupTypeToSkillIdsMap = function()
for k, v in pairs(CoupleCombatCharacterCareerSkill) do
2024-09-01 20:49:41 +00:00
for _, type in ipairs(v.Type) do
if not SkillGroupTypeToSkillIdsMap[type] then
SkillGroupTypeToSkillIdsMap[type] = {}
end
table.insert(SkillGroupTypeToSkillIdsMap[type], v.Id)
end
end
end
function XFubenCoupleCombatConfig.Init()
CoupleCombatActivity = XTableManager.ReadByIntKey(TABLE_COUPLE_ACTIVITY, XTable.XTableCoupleCombatActivity, "Id")
CoupleCombatFeature = XTableManager.ReadByIntKey(TABLE_COUPLE_BUFF, XTable.XTableCoupleCombatFeature, "Id")
CoupleCombatChapter = XTableManager.ReadAllByIntKey(TABLE_COUPLE_CHAPTER, XTable.XTableCoupleCombatChapter, "Id")
CoupleCombatStage = XTableManager.ReadAllByIntKey(TABLE_COUPLE_STAGE, XTable.XTableCoupleCombatStage, "Id")
CoupleCombatCharacterCareerSkill = XTableManager.ReadByIntKey(TABLE_COUPLE_CHARACTER_CAREER_SKILL, XTable.XTableCoupleCombatCharacterCareerSkill, "Id")
CoupleCombatCharacter = XTableManager.ReadByIntKey(TABLE_COUPLE_CHARACTER, XTable.XTableCoupleCombatCharacter, "CharacterId")
CoupleCombatCharacterCareerSkillGroup = XTableManager.ReadByIntKey(TABLE_COUPLE_CHARACTER_CAREER_SKILL_GROUP, XTable.XTableCoupleCombatCharacterCareerSkillGroup, "Type")
InitChapterIdList()
InitStageIdList()
InitStageIdToChapterIdMap()
InitSkillGroupTypeToSkillIdsMap()
end
-----------------CoupleCombatStage begin-----------------------
function XFubenCoupleCombatConfig.GetStageInfo(id)
local template = CoupleCombatStage[id]
if not template then
XLog.ErrorTableDataNotFound("XFubenCoupleCombatConfig.GetStageInfo", "CoupleCombatStage", TABLE_COUPLE_STAGE, "id", tostring(id))
return
end
return template
end
function XFubenCoupleCombatConfig.GetStageIdList()
return StageIdList
end
function XFubenCoupleCombatConfig.GetStages()
return CoupleCombatStage
end
function XFubenCoupleCombatConfig.GetStageFeatureList(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.Feature
end
function XFubenCoupleCombatConfig.GetStageShowFightEventIds(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.ShowFightEventIds
end
function XFubenCoupleCombatConfig.GetStageOpenDay(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.OpenDay
end
function XFubenCoupleCombatConfig.GetStageGridBg(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.GridBg
end
function XFubenCoupleCombatConfig.GetStageIndexText(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.IndexText
end
function XFubenCoupleCombatConfig.GetStageIsLastOne(id)
local config = XFubenCoupleCombatConfig.GetStageInfo(id)
return config.IsLastOne
end
-----------------CoupleCombatStage end------------------------
-----------------CoupleCombatChapter begin-----------------------
local GetCoupleCombatChapterConfig = function(id)
local config = CoupleCombatChapter[id]
if not config then
XLog.ErrorTableDataNotFound("XPassportConfigs.GetCoupleCombatChapterConfig", "CoupleCombatChapterConfigs", TABLE_COUPLE_CHAPTER, "Id", id)
return
end
return config
end
function XFubenCoupleCombatConfig.GetChapterName(id)
local config = GetCoupleCombatChapterConfig(id)
return config.Name
end
2024-09-01 20:49:41 +00:00
function XFubenCoupleCombatConfig.GetChapterNameIcon(id)
local config = GetCoupleCombatChapterConfig(id)
return config.NameIcon
end
function XFubenCoupleCombatConfig.GetChapterIcon(id)
local config = GetCoupleCombatChapterConfig(id)
return config.Icon
end
function XFubenCoupleCombatConfig.GetChapterTimeId(id)
local config = GetCoupleCombatChapterConfig(id)
return config.TimeId
end
function XFubenCoupleCombatConfig.GetChapterStageIds(id)
local config = GetCoupleCombatChapterConfig(id)
return config.StageIds
end
function XFubenCoupleCombatConfig.GetChapterRobotIds(id)
local config = GetCoupleCombatChapterConfig(id)
return config.RobotIds
end
function XFubenCoupleCombatConfig.GetChapterShowFightEventIds(id)
local config = GetCoupleCombatChapterConfig(id)
return config.ShowFightEventIds
end
function XFubenCoupleCombatConfig.GetChapterPrefabName(id)
local config = GetCoupleCombatChapterConfig(id)
return config.PrefabName
end
function XFubenCoupleCombatConfig.GetChapterUnlockChapterId(id)
local config = GetCoupleCombatChapterConfig(id)
return config.UnlockChapterId
end
function XFubenCoupleCombatConfig.GetChapterUnlockOccupyStageCount(id)
local config = GetCoupleCombatChapterConfig(id)
return config.UnlockOccupyStageCount
end
function XFubenCoupleCombatConfig.GetChapterLockDesc(id)
local unlockChapterId = XFubenCoupleCombatConfig.GetChapterUnlockChapterId(id)
local unlockOccupyStageCount = XFubenCoupleCombatConfig.GetChapterUnlockOccupyStageCount(id)
local chapterName = XTool.IsNumberValid(unlockChapterId) and XFubenCoupleCombatConfig.GetChapterName(unlockChapterId) or ""
return XUiHelper.ReadTextWithNewLine("CoupleCombatChapterLockDesc", chapterName, unlockOccupyStageCount)
end
-- 获取章节难度1、普通 2、困难
function XFubenCoupleCombatConfig.GetChapterType(id)
local config = GetCoupleCombatChapterConfig(id)
return XTool.IsNumberValid(config.ChapterType) and config.ChapterType or XFubenCoupleCombatConfig.ChapterType.Normal
end
--检查试玩角色是否可用
function XFubenCoupleCombatConfig.CheckRobotIsUse(stageId, charId)
if not XRobotManager.CheckIsRobotId(charId) then
return true
end
local chapterId = XFubenCoupleCombatConfig.GetChapterIdByStageId(stageId)
local robotIds = XFubenCoupleCombatConfig.GetChapterRobotIds(chapterId)
for _, robotId in ipairs(robotIds) do
if robotId == charId then
return true
end
end
return false
end
function XFubenCoupleCombatConfig.GetChapterIdByStageId(stageId)
return StageIdToChapterIdMap[stageId]
end
function XFubenCoupleCombatConfig.GetChapterIdList()
return ChapterIdList
end
function XFubenCoupleCombatConfig.GetChapterTemplates()
return CoupleCombatChapter
end
function XFubenCoupleCombatConfig.GetChapterTemplate(id)
return CoupleCombatChapter[id]
end
-----------------CoupleCombatChapter end-----------------------
-----------------CoupleCombatCharacterCareerSkill begin-----------------
local GetCoupleCombatCharacterCareerSkillConfig = function(id)
local config = CoupleCombatCharacterCareerSkill[id]
if not config then
XLog.ErrorTableDataNotFound("XPassportConfigs.GetCoupleCombatCharacterCareerSkillConfig", "CoupleCombatCharacterCareerSkill", TABLE_COUPLE_CHARACTER_CAREER_SKILL, "Id", id)
return
end
return config
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillType(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.Type
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillName(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.Name
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillEnName(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.EnName
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillIcon(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.Icon
end
--主动技能描述
function XFubenCoupleCombatConfig.GetCharacterCareerSkillDescription(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
local desc = config.Description or ""
return string.gsub(desc, "\\n", "\n")
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillFightEventId(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.FightEventId
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillCondition(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.Condition
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillIconLv(id)
local config = GetCoupleCombatCharacterCareerSkillConfig(id)
return config.IconLv
end
-----------------CoupleCombatCharacterCareerSkill end-------------------
-----------------CoupleCombatCharacterCareerSkillGroup begin----------------
local GetCoupleCombatCharacterCareerSkillGroupConfig = function(type)
local config = CoupleCombatCharacterCareerSkillGroup[type]
if not config then
XLog.ErrorTableDataNotFound("XPassportConfigs.GetCoupleCombatCharacterCareerSkillGroupConfig", "CoupleCombatCharacterCareerSkillGroup", TABLE_COUPLE_CHARACTER_CAREER_SKILL_GROUP, "Type", type)
return
end
return config
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupName(type)
local config = GetCoupleCombatCharacterCareerSkillGroupConfig(type)
return config.Name
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupEnName(type)
local config = GetCoupleCombatCharacterCareerSkillGroupConfig(type)
return config.EnName
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupIcon(type)
local config = GetCoupleCombatCharacterCareerSkillGroupConfig(type)
return config.Icon
end
--被动技能描述
function XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupDescription(type)
local config = GetCoupleCombatCharacterCareerSkillGroupConfig(type)
local desc = config.Description or ""
return string.gsub(desc, "\\n", "\n")
end
2024-09-01 20:49:41 +00:00
--能适用该技能的职业
function XFubenCoupleCombatConfig.GetCharacterCareerSkillGroupBelongCareers(type)
local config = GetCoupleCombatCharacterCareerSkillGroupConfig(type)
return config.BelongCareers
end
function XFubenCoupleCombatConfig.GetCharacterCareerSkillIds(type)
return SkillGroupTypeToSkillIdsMap[type] or {}
end
function XFubenCoupleCombatConfig.GetSkillGroupTypeToSkillIdsMap()
return SkillGroupTypeToSkillIdsMap
end
-----------------CoupleCombatCharacterCareerSkillGroup end------------------
-----------------CoupleCombatCharacter begin-----------------
local GetCoupleCombatCharacterConfig = function(id)
local config = CoupleCombatCharacter[id]
if not config then
XLog.ErrorTableDataNotFound("XPassportConfigs.GetCoupleCombatCharacterConfig", "CoupleCombatCharacter", TABLE_COUPLE_CHARACTER, "Id", id)
return
end
return config
end
function XFubenCoupleCombatConfig.GetCharacterFeature(id)
local characterId = XRobotManager.GetCharacterId(id)
local config = XTool.IsNumberValid(characterId) and GetCoupleCombatCharacterConfig(characterId)
return config and config.Feature or {}
end
function XFubenCoupleCombatConfig.GetCharacterName(id, index)
local config = GetCoupleCombatCharacterConfig(id)
return config.Name[index] or ""
end
function XFubenCoupleCombatConfig.GetCharacterIcon(id, index)
local config = GetCoupleCombatCharacterConfig(id)
return config.Icon[index]
end
function XFubenCoupleCombatConfig.GetCharacterDescription(id, index)
local config = GetCoupleCombatCharacterConfig(id)
return config.Description[index] or ""
end
-----------------CoupleCombatCharacter end-------------------
function XFubenCoupleCombatConfig.GetActTemplates()
return CoupleCombatActivity
end
function XFubenCoupleCombatConfig.GetActivityTemplateById(id)
return CoupleCombatActivity[id]
end
--返回角色特效与环境特效重合数量
function XFubenCoupleCombatConfig.GetFeatureMatchCount(stageId, robotId)
local characterId = XRobotManager.GetCharacterId(robotId)
local characterFeatureList = XFubenCoupleCombatConfig.GetCharacterFeature(characterId)
local stageFeatureList = XFubenCoupleCombatConfig.GetStageFeatureList(stageId)
local stageFeatureDic = {}
for _, featureId in ipairs(stageFeatureList) do
stageFeatureDic[featureId] = true
end
local matchCount = 0
for _, featureId in ipairs(characterFeatureList) do
if stageFeatureDic[featureId] then
matchCount = matchCount + 1
end
end
return matchCount
end
-----------------CoupleCombatFeature begin-----------------
local GetCoupleCombatFeatureConfig = function(id)
local config = CoupleCombatFeature[id]
if not config then
XLog.ErrorTableDataNotFound("XPassportConfigs.GetCoupleCombatFeatureConfig", "CoupleCombatFeature", TABLE_COUPLE_BUFF, "Id", id)
return
end
return config
end
function XFubenCoupleCombatConfig.GetFeatureName(id)
local config = GetCoupleCombatFeatureConfig(id)
return config.Name or ""
end
function XFubenCoupleCombatConfig.GetFeatureIcon(id)
local config = GetCoupleCombatFeatureConfig(id)
return config.Icon
end
function XFubenCoupleCombatConfig.GetFeatureDescription(id)
local config = GetCoupleCombatFeatureConfig(id)
return config.Description or ""
end
-----------------CoupleCombatFeature end-------------------