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

145 lines
No EOL
4.1 KiB
Lua

XFubenNewCharConfig = XFubenNewCharConfig or {}
local SHARE_NEWCHAR_TEACH = "Share/Fuben/Teaching/TeachingActivity.tab"
local SHARE_NEWCHAR_TREASURE = "Share/Fuben/Teaching/TeachingTreasure.tab"
local CLIENT_CHARMSG = "Client/Fuben/Teaching/CharActiveMsg.tab"
local SHARE_STAGE_DETAIL = "Share/Fuben/Teaching/TeachingRobot.tab"
local NewCharTeachAct = {}
local NewCharTreasure = {}
local NewCharMsg = {}
local NewCharMsgGroup = {}
local NewCharStageDetail = {}
XFubenNewCharConfig.NewCharType =
{
YinMianZheGuang = 1,
KoroChar = 2,
WeiLa = 3,
LuoLan = 4,
Liv = 5,
Selena = 6,
Pulao = 7,
Qishi = 8,
Hakama = 9,
SuperKarenina = 10, -- v1.28
Noan = 11, -- v1.29
SuperBianca = 12, -- v1.30
Bombinata = 13, -- v1.31
Lee = 14, -- v1.32
Ayla = 15, -- v2.0
}
XFubenNewCharConfig.KoroPanelType =
{
Normal = 1,
Teaching = 2,
Challenge = 3,
Skin = 4,
}
function XFubenNewCharConfig.Init()
NewCharTeachAct = XTableManager.ReadByIntKey(SHARE_NEWCHAR_TEACH, XTable.XTableTeachingActivity, "Id")
NewCharTreasure = XTableManager.ReadByIntKey(SHARE_NEWCHAR_TREASURE, XTable.XTableTeachingTreasure, "TreasureId")
NewCharMsg = XTableManager.ReadByIntKey(CLIENT_CHARMSG, XTable.XTableCharActiveMsg, "Id")
NewCharStageDetail = XTableManager.ReadByIntKey(SHARE_STAGE_DETAIL, XTable.XTableTeachingRobot, "StageId")
for _, v in pairs(NewCharMsg) do
NewCharMsgGroup[v.ActId] = NewCharMsgGroup[v.ActId] or {}
local grp = NewCharMsgGroup[v.ActId]
table.insert(grp, v)
end
for _, v in pairs(NewCharMsgGroup) do
table.sort(v, function(a, b)
if a.Order ~= b.Order then
return a.Order < b.Order
end
return a.Id < b.Id
end)
end
end
function XFubenNewCharConfig.GetDataById(id)
local template = NewCharTeachAct[id]
if not template then
XLog.ErrorTableDataNotFound("XFubenNewCharConfig.GetDataById", "TeachingActivity", SHARE_NEWCHAR_TEACH, "Id", tostring(id))
return
end
return template
end
function XFubenNewCharConfig.GetActTemplates()
return NewCharTeachAct
end
function XFubenNewCharConfig.GetMsgGroupById(id)
local group = NewCharMsgGroup[id]
if not group then
XLog.ErrorTableDataNotFound("XFubenNewCharConfig.GetMsgGroupById", "CharActiveMsg", CLIENT_CHARMSG, "Id", tostring(id))
return
end
return group
end
function XFubenNewCharConfig.GetTreasureCfg(treasureId)
return NewCharTreasure[treasureId]
end
function XFubenNewCharConfig.GetActivityTime(id)
local config = XFubenNewCharConfig.GetDataById(id)
return XFunctionManager.GetTimeByTimeId(config.TimeId)
end
function XFubenNewCharConfig.GetNewCharType(id)
local config = NewCharTeachAct[id]
return config.NewCharType
end
--获取详情描述
function XFubenNewCharConfig.GetNewCharDescDetail(id)
local config = NewCharStageDetail[id]
return string.gsub(config.DescDetail, "\\n", "\n")
end
function XFubenNewCharConfig.GetNewCharShowFightEventIds(id)
local config = NewCharStageDetail[id]
return config.ShowFightEventIds
end
function XFubenNewCharConfig.GetNewCharKoroCfg()
local cfg = nil
if NewCharTeachAct then
for _, v in pairs(NewCharTeachAct) do
if v.TimeId and v.TimeId ~= 0 and XFunctionManager.CheckInTimeByTimeId(v.TimeId) then
cfg = v
break
end
end
end
return cfg
end
--获取试用角色
function XFubenNewCharConfig:GetTryCharacterIds(id)
local config = NewCharStageDetail[id]
return config.RobotId
end
--获取该关卡默认角色类型
function XFubenNewCharConfig:GetTryCharacterCharacterType(id)
local config = NewCharStageDetail[id]
return config.CharacterType
end
function XFubenNewCharConfig.GetStageByCharacterId(characterId)
local templates = XFubenNewCharConfig.GetActTemplates()
for _, config in pairs(templates) do
if config.CharacterId == characterId then
return config.StageId
end
end
return nil
end