c1_lua/lua/app/userdata/battle/team/battle_unit_entity.lua
2023-04-13 22:04:22 +08:00

75 lines
1.7 KiB
Lua

local BattleSkillEntity = require "app/userdata/battle/skill/battle_skill_entity"
local BattleUnitEntity = class("BattleUnitEntity", BaseData)
function BattleUnitEntity:ctor()
end
function BattleUnitEntity:init(unitData, side, team)
self.unitData = unitData
self.side = side
self.team = team
self:initAttr()
self:initSkill()
end
function BattleUnitEntity:initAttr()
local attr = self.attr or {}
if self.attr then -- 已经初始化过了
for k, v in pairs(attr) do
attr[k] = self.unitData.attr[k] or 0
end
else
for k, v in pairs(self.unitData.attr) do
attr[k] = v
end
end
self.attr = attr
end
function BattleUnitEntity:initSkill()
self.activeSkills = {}
if self.unitData.normalSkill then
self.normalSkill = BattleSkillEntity:create(self.unitData.normalSkill, GConst.BattleConst.SKILL_TYPE_ACTIVE, self)
end
if self.unitData.activeSkills then
for k, v in ipairs(self.unitData.activeSkills) do
local skill = BattleSkillEntity:create(v, GConst.BattleConst.SKILL_TYPE_ACTIVE, self)
table.insert(self.activeSkills, skill)
end
end
end
function BattleUnitEntity:getModelId()
return self.unitData.modelId
end
function BattleUnitEntity:getMatchType()
return self.unitData.matchType
end
function BattleUnitEntity:getSide()
return self.side
end
function BattleUnitEntity:setIsMainUnit(isMainUnit)
self.isMainUnit = isMainUnit
end
function BattleUnitEntity:getIsMainUnit()
return self.isMainUnit
end
function BattleUnitEntity:getNormalSkill()
return self.normalSkill
end
function BattleUnitEntity:takeDamageOrCure(num)
return self.team:takeDamageOrCure(num)
end
function BattleUnitEntity:getHpPercent()
return self.team:getHpPercent()
end
return BattleUnitEntity