75 lines
2.1 KiB
Lua
75 lines
2.1 KiB
Lua
|
------------------------------------------------
|
||
|
--作者: 杨全福
|
||
|
--日期: 2019-06-18
|
||
|
--文件: PetInfo.lua
|
||
|
--模块: PetInfo
|
||
|
--描述: 宠物数据
|
||
|
------------------------------------------------
|
||
|
|
||
|
local PetInfo = {
|
||
|
--id
|
||
|
ID = 0,
|
||
|
--配置数据
|
||
|
Cfg = nil,
|
||
|
--当前等级,出生为1阶
|
||
|
CurLevel = 1,
|
||
|
--当前等级配置数据
|
||
|
CurLevelCfg = nil,
|
||
|
--当前等级的属性
|
||
|
CurLevelPros = nil,
|
||
|
--下一级等级配置数据
|
||
|
NextLevelCfg = nil,
|
||
|
--激活属性
|
||
|
ActivePros = nil,
|
||
|
--当前总属性
|
||
|
CurAllPros = nil,
|
||
|
--下级增加的属性
|
||
|
NextAddPros = nil,
|
||
|
--是否满阶
|
||
|
IsFullDegree = false,
|
||
|
--技能激活数据
|
||
|
SkillActiveLevels = nil,
|
||
|
}
|
||
|
|
||
|
|
||
|
function PetInfo:New(cfg, level)
|
||
|
local _m = Utils.DeepCopy(self)
|
||
|
_m.ID = cfg.Id
|
||
|
_m.Cfg = cfg
|
||
|
_m.CurLevel = level
|
||
|
_m.CurLevelCfg = DataConfig.DataPetRank[_m.Cfg.Id * 1000 + _m.CurLevel]
|
||
|
_m.NextLevelCfg = DataConfig.DataPetRank[_m.Cfg.Id * 1000 + _m.CurLevel + 1]
|
||
|
_m.ActivePros = Utils.SplitStrByTableS(cfg.Attribute)
|
||
|
_m:CalculatePros()
|
||
|
|
||
|
_m.IsFullDegree = level >= cfg.FullDegress
|
||
|
_m.SkillActiveLevels = {}
|
||
|
--计算技能的激活等级
|
||
|
for i = 1, cfg.MaxDegree do
|
||
|
local _levelCfg = DataConfig.DataPetRank[cfg.Id * 1000 + i]
|
||
|
if _levelCfg ~= nil then
|
||
|
local _skillParam = Utils.SplitStrByTableS(_levelCfg.PetSkill, {';', '_'})
|
||
|
for j = 1, #_skillParam do
|
||
|
if _m.SkillActiveLevels[_skillParam[j][1]] == nil then
|
||
|
_m.SkillActiveLevels[_skillParam[j][1]] = {_skillParam[j][2], _levelCfg, i}
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
return _m
|
||
|
end
|
||
|
|
||
|
--计算当前属性
|
||
|
function PetInfo:CalculatePros()
|
||
|
self.CurLevelPros = Utils.SplitStrByTableS(self.CurLevelCfg.Attribute)
|
||
|
self.CurAllPros = Utils.MergePropTable(self.CurLevelPros, self.ActivePros)
|
||
|
if self.NextLevelCfg ~= nil then
|
||
|
local _nextPros = Utils.SplitStrByTableS(self.NextLevelCfg.Attribute)
|
||
|
self.NextAddPros = Utils.DecPropTable(_nextPros, self.CurLevelPros)
|
||
|
else
|
||
|
self.NextAddPros = nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
return PetInfo
|