sonic-radiance/sonic-radiance.love/scenes/battlesystem/controllers/parent.lua

75 lines
1.6 KiB
Lua

local FighterControllerParent = Object:extend()
function FighterControllerParent:new(turnSystem)
self.turnSystem = turnSystem
self.world = turnSystem.world
self.list = {}
end
function FighterControllerParent:get(id)
return self.list[id]
end
function FighterControllerParent:add(fighter)
table.insert(self.list, fighter)
end
function FighterControllerParent:count()
return #self.list
end
function FighterControllerParent:applyDeath()
for i, fighter in ipairs(self.list) do
fighter:applyDeath()
end
end
function FighterControllerParent:setActive(activeActor)
self.activeActor = activeActor
activeActor:setActive()
end
function FighterControllerParent:update(dt)
for i, fighter in ipairs(self.list) do
fighter:updateAssets(dt)
end
end
function FighterControllerParent:endAction()
self.owner:nextAction()
end
function FighterControllerParent:putActions(actionList)
for i, fighter in ipairs(self.list) do
if fighter:canFight() then
for i=1, fighter:getNbrActionPerTurn() do
local action = {}
action.fighter = fighter
action.number = i
table.insert(actionList, action)
end
end
end
end
function FighterControllerParent:draw()
--Aucun dessin par defaut, ils sont géré différements
end
function FighterControllerParent:removeFighter(fighterToRemove)
-- remove the actor from the battler liste
for i, fighter in ipairs(self.list) do
if fighter == fighterToRemove then
table.remove(self.list, i)
end
end
-- Also remove all actions related to the actor
self.turnSystem:removeAllActionsFromFighter(fighterToRemove)
end
return FighterControllerParent