Module:HeroDataArrays: Difference between revisionsGive feedback
Jump to navigation
Jump to search
Gammaton32 (talk | contribs) No edit summary |
Gammaton32 (talk | contribs) separated reload delay table |
||
| Line 408: | Line 408: | ||
p.heroReloadTable = function(frame) | p.heroReloadTable = function(frame) | ||
local heroReloadData = heroDataArray({"Name", "Weapon>ReloadTime | local heroReloadData = heroDataArray({"Name", "Weapon>ReloadTime"}) | ||
-- 1. collect rows | -- 1. collect rows | ||
| Line 415: | Line 415: | ||
table.insert(rows, { | table.insert(rows, { | ||
name = name, | name = name, | ||
reloadTime = tonumber(data["Weapon>ReloadTime | reloadTime = tonumber(data["Weapon>ReloadTime"]) or 0 | ||
}) | }) | ||
end | end | ||
| Line 426: | Line 425: | ||
local z = '{| class="wikitable sortable mw-collapsible" style="text-align:center"\n' .. | local z = '{| class="wikitable sortable mw-collapsible" style="text-align:center"\n' .. | ||
'|+ Hero Base Reload Time Stats\n' .. | '|+ Hero Base Reload Time Stats\n' .. | ||
'! Hero !! Reload Time (s) | '! Hero !! Reload Time (s) \n' | ||
for _, r in ipairs(rows) do | for _, r in ipairs(rows) do | ||
| Line 433: | Line 432: | ||
'| style="text-align:left;" | ' .. | '| style="text-align:left;" | ' .. | ||
frame:expandTemplate{title = 'PageRef', args = {r.name}} .. | frame:expandTemplate{title = 'PageRef', args = {r.name}} .. | ||
' || '.. r.reloadTime | ' || '.. r.reloadTime ..' \n' | ||
end | end | ||
return z .. '|}' | return z .. '|}' | ||
end | |||
p.heroReloadDelayTable = function(frame) | |||
local heroReloadDelayData = heroDataArray({"Name", "Weapon>ReloadDelay"}) | |||
local rows = {} | |||
for name, data in pairs(heroReloadDelayData) do | |||
table.insert(rows, { | |||
name = name, | |||
reloadDelay = data["Weapon>ReloadDelay"] or 0 | |||
}) | |||
end | |||
table.sort(rows, function(a, b) return a.name:lower() < b.name:lower() end) | |||
local tableDefs = { | |||
{ | |||
title = "Hero Base Reload Delay Stats", | |||
columns = { | |||
{ label = "Reload Delay (s)", field = "reloadDelay" } | |||
} | |||
} | |||
} | |||
local output = "" | |||
for _, tableDef in ipairs(tableDefs) do | |||
local filteredRows = {} | |||
for _, r in ipairs(rows) do | |||
local hasValue = false | |||
for _, col in ipairs(tableDef.columns) do | |||
if r[col.field] ~= 0 then | |||
hasValue = true | |||
break | |||
end | |||
end | |||
if hasValue then | |||
table.insert(filteredRows, r) | |||
end | |||
end | |||
if #filteredRows > 0 then | |||
local header = "" | |||
for _, col in ipairs(tableDef.columns) do | |||
header = header.." !! "..col.label | |||
end | |||
local t = "{| class=\"wikitable sortable mw-collapsible\" style=\"text-align:center\" \n".. | |||
"|+ "..tableDef.title.." \n".. | |||
"! Hero"..header.." \n" | |||
for _, r in ipairs(filteredRows) do | |||
local cells = "" | |||
for _, col in ipairs(tableDef.columns) do | |||
cells = cells.." || "..r[col.field] | |||
end | |||
t = t.. | |||
"|- \n".. | |||
"| style=\"text-align:left;\" | ".. | |||
frame:expandTemplate{title="PageRef", args={r.name}}.. | |||
cells.." \n" | |||
end | |||
t = t.."|}" | |||
if output ~= "" then | |||
output = output.."\n\n" | |||
end | |||
output = output..t | |||
end | |||
end | |||
return output | |||
end | end | ||