feat: add bases for the new choregraphy system

This commit is contained in:
Kazhnuz 2020-07-24 19:12:37 +02:00
parent fcdd10484f
commit 55d66eef85
2 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,12 @@
return {
["wait"] = {"duration"},
["addGFX"] = {'sprite', "origin", "x", "y", "affectedByDirection", 'blockProcess'},
["playSFX"] = {"sfx"},
["sendDamage"] = {"power", "accuracy", "isSpecial", "isAerial"},
["goTo"] = {"origin", "x", "y", "duration", "blockProcess"},
["setAnimation"] = {"animation", "blockProcess"},
["jump"] = {"power", "blockProcess"},
["jumpTo"] = {"origin", "x", "y", "duration", "blockProcess"},
["jumpBack"] = {"duration", "blockProcess"},
--[name] = {args},
}

View file

@ -0,0 +1,45 @@
ChoregraphyUtils = {}
function ChoregraphyUtils.getStepStructure(stepName)
local stepTypeList = require "game.utils.choregraphy.arguments"
return stepTypeList[stepName]
end
function ChoregraphyUtils.stepExists(stepName)
return (ChoregraphyUtils.getStepStructure(stepName) ~= nil)
end
function ChoregraphyUtils.validate(stepBaseDatas)
local structure = ChoregraphyUtils.getStepStructure(stepBaseDatas[1])
if (structure == nil) then
return false
else
return ((#structure + 2) == #stepBaseDatas)
end
end
function ChoregraphyUtils.getStepDatas(stepBaseDatas)
local stepData = {}
stepData.name = stepBaseDatas[1]
if (ChoregraphyUtils.validate(stepBaseDatas)) then
stepData.condition = stepBaseDatas[2]
local structure = ChoregraphyUtils.getStepStructure(stepData.name)
stepData.arguments = {}
for i, argumentName in ipairs(structure) do
local argumentContent = stepBaseDatas[i + 2]
stepData.arguments[argumentName] = argumentContent
end
return stepData
else
error("L'étape " .. stepData.name .. " à un nbr d'argument incorrect")
end
end
return ChoregraphyUtils