diff --git a/sonic-radiance.love/scenes/battlesystem/controllers/init.lua b/sonic-radiance.love/scenes/battlesystem/controllers/init.lua index 1f5b376..26b3826 100644 --- a/sonic-radiance.love/scenes/battlesystem/controllers/init.lua +++ b/sonic-radiance.love/scenes/battlesystem/controllers/init.lua @@ -36,7 +36,7 @@ function TurnController:startBattle() end function TurnController:finishBattle() - self.isBattleActive = false + self.isActive = false self.actionlist = {} self.hud:movePlayerHUD(false) self.scene:finishBattle() @@ -90,7 +90,10 @@ function TurnController:removeAllActionsFromFighter(fighterToRemove) end function TurnController:applyDeath() - self.ennemies:applyDeath() + local ennemiesAlive = self.ennemies:applyDeath() + if (ennemiesAlive == 0) then + self:finishBattle() + end self.player:applyDeath() end diff --git a/sonic-radiance.love/scenes/battlesystem/controllers/parent.lua b/sonic-radiance.love/scenes/battlesystem/controllers/parent.lua index 15342a5..7ac8d5f 100644 --- a/sonic-radiance.love/scenes/battlesystem/controllers/parent.lua +++ b/sonic-radiance.love/scenes/battlesystem/controllers/parent.lua @@ -18,6 +18,16 @@ function FighterControllerParent:count() return #self.list end +function FighterControllerParent:countAlive() + local aliveCount = 0 + for i, fighter in ipairs(self.list) do + if (fighter:canFight()) then + aliveCount = aliveCount + 1 + end + end + return aliveCount +end + function FighterControllerParent:getTargets(onlyAlive) local targetList = {} for i, fighter in ipairs(self.list) do @@ -32,6 +42,7 @@ function FighterControllerParent:applyDeath() for i, fighter in ipairs(self.list) do fighter:applyDeath() end + return self:countAlive() end function FighterControllerParent:setActive(activeActor)