feat: support multiple target for skills
This commit is contained in:
parent
91dda9fa87
commit
8b785eb0a3
2 changed files with 24 additions and 3 deletions
|
@ -76,6 +76,20 @@ function FighterParent:haveProtecType(type)
|
|||
return self.abstract:haveProtecType(type)
|
||||
end
|
||||
|
||||
function FighterParent:sendDamageToAll(listTarget, value, type, element, isSpecial)
|
||||
for _, target in ipairs(listTarget) do
|
||||
self:sendDamage(target, value, type, element, isSpecial)
|
||||
end
|
||||
end
|
||||
|
||||
function FighterParent:getTargets(ourSide)
|
||||
if (self.isHero == ourSide) then
|
||||
return self.turnSystem.player:getTargets(true)
|
||||
else
|
||||
return self.turnSystem.ennemies:getTargets(true)
|
||||
end
|
||||
end
|
||||
|
||||
function FighterParent:sendDamage(target, value, type, element, isSpecial)
|
||||
local damage = battleutils.computeLaunchingDamages(value, self, isSpecial)
|
||||
|
||||
|
|
|
@ -13,6 +13,11 @@ end
|
|||
function InfosMixin:initTargets(target)
|
||||
self.target = target
|
||||
self.haveSentDamage = false
|
||||
|
||||
if (self.target == nil) then
|
||||
local _, targetEnnemies = self.action:needTarget()
|
||||
self.targetList = self.fighter:getTargets(targetEnnemies == false)
|
||||
end
|
||||
end
|
||||
|
||||
function InfosMixin:getActor(name)
|
||||
|
@ -30,12 +35,14 @@ function InfosMixin:getTargetActor()
|
|||
end
|
||||
|
||||
function InfosMixin:sendDamage(power, type, element, isSpecial)
|
||||
if (self.target ~= nil) then
|
||||
if (self.fighter.isAlive) then
|
||||
if (self.target ~= nil) then
|
||||
self.haveSentDamage = self.fighter:sendDamage(self.target, power, type, element, isSpecial)
|
||||
else
|
||||
self.haveSentDamage = false
|
||||
self.haveSentDamage = self.fighter:sendDamageToAll(self.targetList, power, type, element, isSpecial)
|
||||
end
|
||||
else
|
||||
self.haveSentDamage = false
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue