Files
Main/Assets/GameAssets/Resources/Lua/Logic/DevilSoul/DevilCampData.lua
2025-01-25 04:38:09 +08:00

139 lines
3.5 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.

------------------------------------------------
--作者: dhq
--日期: 2021-05-6
--文件: DevilCampData.lua
--模块: DevilCampData
--描述: 魔魂系统阵营的数据
------------------------------------------------
local FightUtils = require "Logic.Base.FightUtils.FightUtils"
local DevilCampData =
{
Parent = nil,
CampId = nil,
Active = nil,
CardList = List:New(),
}
--装备的具体数据
local L_ItemInfo = {
--装备的配置表Id
CfgId = 0,
--装备配置
EquipCfg = nil,
--装备的唯一Id
DBID = 0,
}
--装备信息
local L_EquipInfo = {
--部位ID
Part = 0,
--装备信息
ItemInfo = nil,
}
--卡片的数据
local L_CardData = {
--魔魂卡idCardMain配置表
Id = 0,
--装备信息
EquipPartDict = Dictionary:New(),
Level = 0,
--强化等阶
Rank = 0,
--是否激活
Active = false,
--突破等级
BreakLv = 0,
--战力
Power = 0,
--突破消耗装备列表
BreakCostIds = nil,
--激活或者强化消耗的物品列表
CostItems = nil,
}
function L_CardData:New()
local _m = Utils.DeepCopy(self)
return _m
end
function L_CardData:Parse(msg)
self.Id = msg.id
self.EquipPartDict:Clear()
local _equipList = msg.part
for j = 1, #_equipList do
local _equ = Utils.DeepCopy(L_EquipInfo)
--部位ID
_equ.Part = _equipList[j].id
if _equipList[j].equip ~= nil then
--装备的物品
_equ.ItemInfo = Utils.DeepCopy(L_ItemInfo)
_equ.ItemInfo.CfgId = _equipList[j].equip.itemModelId
_equ.ItemInfo.DBID = _equipList[j].equip.itemId
_equ.ItemInfo.EquipCfg = DataConfig.DataEquip[_equ.ItemInfo.CfgId]
else
_equ.ItemInfo = Utils.DeepCopy(L_ItemInfo)
end
self.EquipPartDict:Add(_equ.Part, _equ)
end
self.Level = msg.level
self.Active = msg.active
self.Rank = msg.rank
self.BreakLv = msg.breakLv
self.FightPower = msg.fightPoint
end
function L_CardData:RefreshData()
--强化消耗道具
self.CostItems = nil
local _dicKey = self.Id * 10000 + self.Rank * 100 + self.Level
local _tranCfg = GameCenter.DevilSoulSystem.TrainDict[_dicKey]
if _tranCfg ~= nil and string.len(_tranCfg.Condition) > 0 then
self.CostItems = Utils.SplitNumber(_tranCfg.Condition, '_')
end
--图片消耗装备
self.BreakCostIds = nil
local _breCfg = DataConfig.DataCrossDevilCardBreak[self.Id * 1000 + self.BreakLv + 1]
if _breCfg ~= nil then
self.BreakCostIds = Utils.SplitStrByTableS(_breCfg.Condition, {';', '_'})
end
end
function L_CardData:EquipWear(msg)
local _equip = self.EquipPartDict[msg.cellId]
--已穿戴装备id
_equip.ItemInfo.CfgId = msg.equipModelId
--已穿戴装备模板id
_equip.ItemInfo.DBID = msg.equipId
_equip.ItemInfo.EquipCfg = DataConfig.DataEquip[msg.equipModelId]
end
function DevilCampData:New(cardCamp, parent)
local _m = Utils.DeepCopy(self)
_m.Parent = parent
_m.CardList:Clear()
_m:RefeshData(cardCamp)
return _m
end
function DevilCampData:RefeshData(cardCamp)
--魔魂阵营id
self.CampId = cardCamp.campId
--是否激活
self.Active = cardCamp.active
--魔魂列表
local _cardList = cardCamp.card
if _cardList ~= nil then
for i = 1, #_cardList do
local _t = L_CardData:New()
_t:Parse(_cardList[i])
_t:RefreshData()
self.CardList:Add(_t)
end
end
end
return DevilCampData