sonic-radiance/sonic-radiance.love/game/utils/items/init.lua

41 lines
1.1 KiB
Lua

local ItemUtils = {}
-- VALIDATION FUNCTIONS
function ItemUtils.getItemEffectStructure(type)
local typeList = require "datas.parsers.itemeffects"
return typeList[type]
end
function ItemUtils.itemEffectExists(type)
return (ItemUtils.getItemEffectStructure(type) ~= nil)
end
function ItemUtils.validateItemEffect(effectBaseData)
local structure = ItemUtils.getItemEffectStructure(effectBaseData[1])
if (structure == nil) then
return false
else
return ((#structure + 1) == #effectBaseData)
end
end
function ItemUtils.getItemEffectData(effectBaseData)
local effectData = {}
effectData.type = effectBaseData[1]
if (ItemUtils.validateItemEffect(effectBaseData)) then
local structure = ItemUtils.getItemEffectStructure(effectData.type)
for i, argumentName in ipairs(structure) do
local argumentContent = effectBaseData[i + 1]
effectData[argumentName] = argumentContent
end
return effectData
else
error("Le type d'effet d'objet " .. effectData.type .. " à un nbr d'argument incorrect")
end
end
return ItemUtils