使用技能

This commit is contained in:
chenxi 2023-04-16 23:06:15 +08:00
parent b311395f10
commit 210be03aa4
2 changed files with 33 additions and 6 deletions

View File

@ -44,7 +44,7 @@ function BattleUnitComp:_initBase()
self.buffList = {} self.buffList = {}
self.sameBuffCount = {} self.sameBuffCount = {}
self.shieldBuffList = {} self.shieldBuffList = {}
self.activeSkillIndex = 1 self.activeSkillIndex = nil
self.currActiveSkill = nil self.currActiveSkill = nil
self.targetX = nil self.targetX = nil
self.currState = UNIT_STATE.INIT self.currState = UNIT_STATE.INIT
@ -89,6 +89,21 @@ function BattleUnitComp:getAnimationDuration(aniName)
return duration or 0 return duration or 0
end end
function BattleUnitComp:useSkill(index, callback)
self.actionOverCallback = callback
self.activeSkillIndex = nil
self.currActiveSkill = self.unitEntity:getActiveSkill(index)
if self.currActiveSkill == nil then
self.actionOverCallback = nil
callback()
return
end
if not self:changeState(UNIT_STATE.SKILL_ATTACK) then
self.actionOverCallback = nil
callback()
end
end
function BattleUnitComp:useAllSkills(callback) function BattleUnitComp:useAllSkills(callback)
self.actionOverCallback = callback self.actionOverCallback = callback
self.activeSkillIndex = 1 self.activeSkillIndex = 1
@ -294,8 +309,12 @@ function BattleUnitComp:updateSkillAttack(dt)
self.isMove = false self.isMove = false
self.positionX = self.targetX self.positionX = self.targetX
if self.attackOver then -- 归位后该进行下一次攻击了 if self.attackOver then -- 归位后该进行下一次攻击了
self.activeSkillIndex = self.activeSkillIndex + 1 if self.activeSkillIndex then
self.currActiveSkill = self.unitEntity:getActiveSkill(self.activeSkillIndex) self.activeSkillIndex = self.activeSkillIndex + 1
self.currActiveSkill = self.unitEntity:getActiveSkill(self.activeSkillIndex)
else
self.currActiveSkill = nil
end
if self.currActiveSkill == nil then if self.currActiveSkill == nil then
self:changeState(UNIT_STATE.IDLE) self:changeState(UNIT_STATE.IDLE)
local callback = self.actionOverCallback local callback = self.actionOverCallback
@ -325,8 +344,11 @@ function BattleUnitComp:updateSkillAttack(dt)
self.attackTime = self.attackTime + dt self.attackTime = self.attackTime + dt
if self.attackTime >= self.currAttackDuration then if self.attackTime >= self.currAttackDuration then
self.attackOver = true self.attackOver = true
self.activeSkillIndex = self.activeSkillIndex + 1 local currActiveSkill = nil
local currActiveSkill = self.unitEntity:getActiveSkill(self.activeSkillIndex) if self.activeSkillIndex then
self.activeSkillIndex = self.activeSkillIndex + 1
currActiveSkill = self.unitEntity:getActiveSkill(self.activeSkillIndex)
end
if currActiveSkill == nil then if currActiveSkill == nil then
if self.targetX then -- 移动过,准备归位 if self.targetX then -- 移动过,准备归位
self.isMove = true self.isMove = true

View File

@ -1227,7 +1227,12 @@ local function _generalAttack(self, instruction, callback)
end end
local function _playSkill(self, instruction, callback) local function _playSkill(self, instruction, callback)
callback() local hero = self.atkUnits[instruction.skillMatch]
if hero == nil then
return callback()
end
self.atkMainUnit = hero
hero:useSkill(1, callback)
end end