local ChoregraphySystem = Object:extend() local QteMixin = require "scenes.battlesystem.controllers.fighters.systems.choregraphy.mixins.qtes" local StepsMixin = require "scenes.battlesystem.controllers.fighters.systems.choregraphy.mixins.steps" local TagsMixin = require "scenes.battlesystem.controllers.fighters.systems.choregraphy.mixins.tags" local CountersMixin = require "scenes.battlesystem.controllers.fighters.systems.choregraphy.mixins.counters" local WrappersMixin = require "scenes.battlesystem.controllers.fighters.systems.choregraphy.mixins.wrappers" ChoregraphySystem:implement(QteMixin) ChoregraphySystem:implement(StepsMixin) ChoregraphySystem:implement(TagsMixin) ChoregraphySystem:implement(CountersMixin) ChoregraphySystem:implement(WrappersMixin) function ChoregraphySystem:new(action, choregraphy) self:initWrappers(action) self:initSteps(choregraphy) self:initQte() self:initTagActions() self:initCounters() self.actor:resetFrameSignal() end function ChoregraphySystem:update(dt) self:updateQte(dt) self:updateSteps(dt) end function ChoregraphySystem:endChoregraphy() self.actor:choregraphyEnded() self.action:choregraphyEnded() self.fighter.turnSystem:applyDeath() end function ChoregraphySystem:draw() self:drawQte() end return ChoregraphySystem