Module:Cargo
Documentation for this module may be created at Module:Cargo/doc
--[[
Takes a series of ELEMENT_status_ids and corresponding ELEMENT_status_levels and returns unique strings, delineated by a line break.
Supports SEs that don't exist. Depends on Template:Status Effect.
]]
local p = {}
function p.status_effect(frame)
unique_statuses = {}
result = ""
elements = {'neutral', 'fire', 'ice', 'lightning', 'ground', 'light', 'dark'}
for i=1,table.getn(elements) do
if(tonumber(frame.args[elements[i] .. "_status_id"]) and tonumber(frame.args[elements[i] .. "_status_level"])) then
--check if in table
in_table = false
for j=1, table.getn(unique_statuses) do
if((frame.args[elements[i] .. "_status_id"] == unique_statuses[j]["id"]) and (frame.args[elements[i] .. "_status_level"] == unique_statuses[j]["level"])) then
in_table = true
break;
end
end
if(not in_table) then
se = {}
se['id'] = frame.args[elements[i] .. "_status_id"]
se['level'] = frame.args[elements[i] .. "_status_level"]
table.insert(unique_statuses, se)
end
end
end
local textonly = "";
if(frame.args["text_only"]) then
textonly = 1
end
for i=1, table.getn(unique_statuses) do
status = frame:expandTemplate{ title = 'Status Effect', args = { unique_statuses[i]["id"], ['text only'] = textonly } }
if(tonumber(unique_statuses[i]["id"]) > 0) then
status = status .. " LV" .. unique_statuses[i]["level"]
end
if(result == "") then
result = status
else
result = result .. "<br />" .. status
end
end
return result;
end
return p