c1_lua/lua/app/userdata/battle/team/battle_unit_entity.lua
2023-04-18 10:36:00 +08:00

169 lines
4.0 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:initSkill()
end
function BattleUnitEntity:initSkill()
self.activeSkills = {}
if self.unitData.normalSkill then
self.normalSkill = BattleSkillEntity:create(self.unitData.normalSkill, GConst.BattleConst.SKILL_TYPE_NORMAL, self)
end
if self.unitData.assistingSkill then
self.assistingSkill = BattleSkillEntity:create(self.unitData.assistingSkill, GConst.BattleConst.SKILL_TYPE_ASSISTING, 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:addAttr(name, num, isPercent)
return self.team:addAttr(name, num, isPercent)
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:getAssistingSkill()
return self.assistingSkill
end
function BattleUnitEntity:getActiveSkill(index)
return self.activeSkills[index]
end
function BattleUnitEntity:getNormalSkillCount()
return self.unitData.normalSkillCount or 0
end
function BattleUnitEntity:getNormalSkillNameList()
local count = self.unitData.normalSkillCount or 0
if self.normalSkillNameList == nil then
self.normalSkillNameList = {}
for i = 1, count do
table.insert(self.normalSkillNameList, DataManager.BattleData:getNormalAttackName(i))
end
end
return self.normalSkillNameList, count
end
function BattleUnitEntity:changeActiveSkillId(originSkillId, tartgetSkillId)
for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillid() == originSkillId then
skillEntity:changeSkillId(tartgetSkillId)
break
end
end
end
function BattleUnitEntity:addActiveSkillParams(skillId, effect)
for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillid() == skillId then
skillEntity:addSkillEffectParams(effect)
break
end
end
end
function BattleUnitEntity:addActiveSkillRound(skillId, effect)
for _, skillEntity in ipairs(self.activeSkills) do
if skillEntity:getSkillid() == skillId then
skillEntity:addSkillEffectRound(effect)
break
end
end
end
function BattleUnitEntity:takeDamageOrCure(num)
return self.team:takeDamageOrCure(num)
end
function BattleUnitEntity:getHp()
return self.team:getHp()
end
function BattleUnitEntity:getHpPercent()
return self.team:getHpPercent()
end
function BattleUnitEntity:getAtk()
return self.team:getAtk(self.unitData.matchType)
end
function BattleUnitEntity:getDmgAddition()
return self.team:getDmgAddition(self.unitData.matchType)
end
function BattleUnitEntity:getDmgDec()
return self.team:getDmgDec(self.unitData.matchType)
end
function BattleUnitEntity:getWeakness()
return self.team:getWeakness(self.unitData.matchType)
end
function BattleUnitEntity:getCrit()
return self.team:getCrit()
end
function BattleUnitEntity:getCrittime()
return self.team:getCrittime()
end
function BattleUnitEntity:getCureAddition()
return self.team:getCureAddition()
end
function BattleUnitEntity:getNormalAttackAddCount()
return self.team:getNormalAttackAddCount()
end
function BattleUnitEntity:addLimit(name)
self.team:addLimit(name)
end
function BattleUnitEntity:removeLimit(name)
self.team:removeLimit(name)
end
function BattleUnitEntity:addShield(num)
self.team:addShield(num)
end
function BattleUnitEntity:addMaxHp(num)
self.team:addMaxHp(num)
end
return BattleUnitEntity