-- Base behavior class BaseBehavior = {} BaseBehavior.__index = BaseBehavior function BaseBehavior:new(combatant) self = setmetatable({}, BaseBehavior) self.combatant = combatant self.context = combatant.context self.disableTimer = 1.75 return self end function BaseBehavior:update(dt) if self.disableTimer > 0 then self.disableTimer = self.disableTimer - dt end end function BaseBehavior:draw(dt) end function BaseBehavior:getOpponents() return Utils.filterCombatantsByOpposingTeams(self.context.combatants, self.combatant.team) end function BaseBehavior:getAllies() return Utils.filterCombatantsByTeam(self.context.combatants, self.combatant.team) end function BaseBehavior:getNearestCombatant(combatants) return Utils.findNearestCombatant(combatants, (self.combatant.x + self.combatant.width / 2), (self.combatant.y + self.combatant.height / 2)) end function BaseBehavior:isDisabled() return self.disableTimer > 0 end function BaseBehavior:isAlive() return self.combatant.state == CombatantState.ALIVE end return BaseBehavior