Module:Cargo: Difference between revisions

From Phantasy Star Universe Clementine
(Created page with "--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(frame.args[elements[i] .. "_status_id"] and frame.args...")
 
(probably helps if i don't return a table)
Line 10: Line 10:
function p.status_effect(frame)
function p.status_effect(frame)
   unique_statuses = {}
   unique_statuses = {}
   result = {}
   result = ""
   elements = {'neutral', 'fire', 'ice', 'lightning', 'ground', 'light', 'dark'}
   elements = {'neutral', 'fire', 'ice', 'lightning', 'ground', 'light', 'dark'}


Line 37: Line 37:
         status = frame:expandTemplate{ title = 'Status Effect', args = { unique_statuses[i]["id"] } }
         status = frame:expandTemplate{ title = 'Status Effect', args = { unique_statuses[i]["id"] } }


         if (tonumber(unique_statuses[i]["id"]) > 0) then
         if(tonumber(unique_statuses[i]["id"]) > 0) then
             status = status  .. " LV " .. unique_statuses[i]["level"]
             status = status  .. " LV " .. unique_statuses[i]["level"]
         end
         end


         table.insert(result, status)
         if(result == "") then
            result = status
        else
            result = result .. "\n\n" .. status
        end
   end
   end
      
      

Revision as of 11:58, 30 March 2024

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(frame.args[elements[i] .. "_status_id"] and 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

   for i=1, table.getn(unique_statuses) do
        status = frame:expandTemplate{ title = 'Status Effect', args = { unique_statuses[i]["id"] } }

        if(tonumber(unique_statuses[i]["id"]) > 0) then
            status = status  .. " LV " .. unique_statuses[i]["level"]
        end

        if(result == "") then
            result = status
        else
            result = result .. "\n\n" .. status
        end
   end
    
   return result;
end

return p