41 lines
1.1 KiB
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
|