feat: initial version of the new choregraphy system

This commit is contained in:
Kazhnuz 2020-07-24 19:16:33 +02:00
parent 2085b9df2c
commit a5ec563480
2 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,46 @@
local ChoregraphySystem = Object:extend()
local choregraphyUtils = require "game.utils.choregraphy"
function ChoregraphySystem:new(action, choregraphy)
self.action = action
self.fighter = action.fighter
self.actor = self.fighter.actor
self.currentStepId = 0
self.currentStep = nil
self.stepList = choregraphy
end
function ChoregraphySystem:update(dt)
if (self.currentStep ~= nil) then
self.currentStep:update(dt)
else
self:switchStep()
end
end
function ChoregraphySystem:switchStep()
if self:haveNextStep() then
self.currentStepId = self.currentStepId + 1
local stepData = choregraphyUtils.getStepDatas(self.stepList[self.currentStepId])
core.debug:print("cbs/choregraphy", "Starting step " .. stepData.name)
--self.currentStep = self.stepList[self.currentStepId]
else
self:endChoregraphy()
end
end
function ChoregraphySystem:endStep()
self.currentStep = nil
end
function ChoregraphySystem:endChoregraphy()
self.action:choregraphyEnded()
end
function ChoregraphySystem:haveNextStep()
return ((self.currentStepId + 1) <= #self.stepList)
end
return ChoregraphySystem

View file

@ -0,0 +1,16 @@
local StepParent = Object:extend()
function StepParent:new(choregraphySystem, name, arguments)
self.name = name
self.choregraphy = choregraphySystem
self.arguments = arguments
self.isStarted = false
end
function StepParent:update(dt)
if (not self.isStarted) then
self:startStep()
end
end
return StepParent