Module:HeroDataArrays: Difference between revisionsGive feedback
Gammaton32 (talk | contribs) separated reload delay table |
Gammaton32 (talk | contribs) added alt fire DPS (testing) |
||
| Line 149: | Line 149: | ||
z = z.."|}" | z = z.."|}" | ||
return z | return z | ||
end | |||
p.heroAltDpsTable = function(frame) | |||
local heroAltDpsData = heroDataArray({"Name","Weapon>AltFire>DPS","Weapon>AltFire>ReloadTime", | |||
"Weapon>AltFire>ClipSize","Weapon>AltFire>RoundsPerSecond","Weapon>AltFire>BulletDamage","Weapon>AltFire>BulletsPerShot"}) | |||
local rows = {} | |||
for name, data in pairs(heroAltDpsData) do | |||
table.insert(rows, { | |||
name = name, | |||
DPS = data["Weapon>AltFire>DPS"] or 0, | |||
reloadTime = data["Weapon>AltFire>ReloadTime"] or 0, | |||
clipSize = data["Weapon>AltFire>ClipSize"] or 0, | |||
roundsPerSecond = data["Weapon>AltFire>RoundsPerSecond"] or 0, | |||
bulletDamage = data["Weapon>AltFire>BulletDamage"] or 0, | |||
bulletsPerShot = data["Weapon>AltFire>BulletsPerShot"] or 0 | |||
}) | |||
end | |||
table.sort(rows, function(a, b) return a.name:lower() < b.name:lower() end) | |||
local tableDefs = { | |||
{ | |||
title = "Hero Base Alt Fire Stats", | |||
columns = { | |||
{ label = "Damage per sec", field = "DPS" }, | |||
{ label = "Reload Time (s)", field = "reloadTime" }, | |||
{ label = "Ammo", field = "clipSize" }, | |||
{ label = "Ammo", field = "roundsPerSecond" }, | |||
{ label = "Bullet Damage", field = "bulletDamage" }, | |||
{ label = "Bullets Per Shot", field = "bulletsPerShot" }, | |||
} | |||
} | |||
} | |||
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 | ||