2,875
edits
m (Fix nil handling of input parameter) |
m (Return table to represent data) |
||
Line 41: | Line 41: | ||
return estimatedOutput, rowModifier > baseModifier | return estimatedOutput, rowModifier > baseModifier | ||
end | |||
local function addTableRow(tbl, c1, c2) | |||
tbl:tag("tr") | |||
:tag("th"):wikitext(c1) | |||
:tag("td"):wikitext(c2) | |||
return tbl | |||
end | |||
local function calculateFactor(a, b) | |||
local highest = math.max(a, b) | |||
local lowest = math.min(a, b) | |||
if lowest == 0 then | |||
-- This shouldn't ever be possible! | |||
error("Div by zero") | |||
end | |||
local factor = highest / lowest | |||
return string.format("%.2f", factor) | |||
end | |||
local function createTable(userAmount, calcAmount, useRoW, ecoType) | |||
local tbl = mw.html.create("table") | |||
:addClass("wikitable sticky-header text-align-right align-left-1") | |||
if ecoType == ECOIN then | |||
addTableRow(tbl, "Desired Output", userAmount) | |||
addTableRow(tbl, "Estimated Input", calcAmount) | |||
else | |||
addTableRow(tbl, "Starting Items", userAmount) | |||
addTableRow(tbl, "Estimated Output", calcAmount) | |||
end | |||
addTableRow(tbl, "Economy Factor", calculateFactor(userAmount, calcAmount)) | |||
addTableRow(tbl, "[[Ring of Wealth]] benefits", useRoW) | |||
end | end | ||
Line 49: | Line 86: | ||
function p._main(args) | function p._main(args) | ||
local itemAmount = targetAmount | local itemAmount = args.targetAmount | ||
local economyType = parseEconomy(args.economyType) | local economyType = parseEconomy(args.economyType) | ||
Line 64: | Line 101: | ||
result, row = calculateInput(itemAmount, pChance, dChance, eChance) | result, row = calculateInput(itemAmount, pChance, dChance, eChance) | ||
end | end | ||
local tbl = createTable(itemAmount, result, row, economyType) | |||
return tostring(tbl) | |||
end | end | ||
return p | return p |
edits