local ItemUtils = {} -- VALIDATION FUNCTIONS function ItemUtils.getItemEffectStructure(type) local typeList = require "game.utils.items.arguments" 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