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