local FighterControllerParent = require "scenes.battlesystem.controllers.parent" local EnnemyController = FighterControllerParent:extend() local Villain = require "scenes.battlesystem.controllers.fighters.villain" local battleutils = require "game.utils.battle" function EnnemyController:new(owner, battleData) self.super.new(self, owner) self:initVillains(battleData) end function EnnemyController:initVillains(battleData) for i,ennemyBaseData in ipairs(battleData.ennemies) do local ennData = battleutils.getEnnemyData(ennemyBaseData) if (ennData.type == "normal") then self:addVillain(ennData) elseif (ennData.type == "boss") then self:addBoss(ennData) else print("unknown type " .. ennData.type) end end end function EnnemyController:addVillain(ennData) for i=1, ennData.number do self:add(Villain(self, ennData.category, ennData.name, self:count() + 1)) end end function EnnemyController:getHighestSpeed() local highestSpeed = 0 for i, villain in ipairs(self.list) do if (villain.abstract.stats.speed > highestSpeed) then highestSpeed = villain.abstract.stats.speed end end return highestSpeed end function EnnemyController:addBoss(ennData) local boss = Villain(self, ennData.category, ennData.name, self:count() + 1) boss:setBonus(ennData.pvFactor, ennData.statFactor) boss.isBoss = true boss:setCheapEffect(ennData.cheapEffect) self.owner.canFleeBattle = false self:add(boss) end function EnnemyController:draw() for i, villain in ipairs(self.list) do villain:drawHUD() end end return EnnemyController