Module:ItemTables: Difference between revisions

add vampiric burst to ammo
apply filtered table, rearrange checks
Line 17: Line 17:


-- Returns an array of item tables that have the same properties
-- Returns an array of item tables that have the same properties
-- @function  get_similar_items
-- @function  get_similar_items_array
-- @param      {array}
-- @param      {array}
-- @return    {array of tables}
-- @return    {array of tables}
local function get_similar_items(property)
local function get_similar_items_array(property)
local similarItems = {}
local similarItems = {}
for _, v in pairs(data) do
for _, v in pairs(data) do
for _, value in ipairs(property) do
for _, value in ipairs(property) do
if (v[value] ~= nil) then
if (v[value] ~= nil and v["Disabled"] == false and v["Name"] ~= nil and v[value] ~= "0" ) then
table.insert(similarItems, v)
table.insert(similarItems, v)
end
end
Line 105: Line 105:
local unitName = ""
local unitName = ""
for key, s in pairs(unitSuffix) do
for key, s in pairs(unitSuffix) do
for link, pattern in pairs(s) do
for _, pattern in pairs(s) do
if (internal == pattern) then return key end
if (internal == pattern) then return key end
end
end
Line 124: Line 124:
local copyVar = property
local copyVar = property
listofKeysTable = friendlyNames(property)  
listofKeysTable = friendlyNames(property)  
local filteredTable = {}
local filteredData = {}
filteredTable = get_similar_items(listofKeysTable)
filteredData = get_similar_items_array(listofKeysTable)
local createTable = mw.html.create('table')
local createTable = mw.html.create('table')
Line 140: Line 140:
createTable:node(createTableHeader)
createTable:node(createTableHeader)
-- query all items
-- query the filtered items
for internalName, itemName in pairs(data) do --itemName is the key. go through whole table. in this case itemName is the item table
for internalName, itemName in ipairs(filteredData) do --itemName is the item table. go through whole table.


local display = frame:expandTemplate{
local display = frame:expandTemplate{
Line 150: Line 150:
}
}
for _, t in pairs(listofKeysTable) do
for k, t in pairs(listofKeysTable) do
-- filter out items that: don't have the property, don't have names (have 'null' names), and aren't disabled
-- filter out items that: don't have the property and the value isn't zero
if(itemName[t] ~= nil and itemName["Name"] ~= nil and itemName["Disabled"] == false) then
if(itemName[t] ~= nil and itemName[t] ~= "0" ) then
listofItems = listofItems .. itemName["Name"] .. "<br/>"
listofItems = listofItems .. itemName["Name"] .. "<br/>"
copyVar = copyVar:gsub("^%l", string.upper)
copyVar = copyVar:gsub("^%l", string.upper)
local tableData = mw.html.create('tr')
local tableData = mw.html.create('tr')
tableData
tableData
Line 172: Line 172:
createTableHeader:node(row)
createTableHeader:node(row)
end
end
--createTable:node(createTableHeader)
return tostring(createTable)
return tostring(createTable)
--return listofItems -- this is just a string list, same thing as createTable. delete this when line when finished
--return listofItems -- this is just a string list, same thing as createTable. delete this when line when finished