Module:Calculator/ItemEconomy: Difference between revisions

m
Chance extra item amounts to 1 by default instead of 0
No edit summary
m (Chance extra item amounts to 1 by default instead of 0)
 
(5 intermediate revisions by the same user not shown)
Line 49: Line 49:
end
end


local function calculateFactor(a, b)
local function createTable(target, calcAmount, useRoW, ecoType, multiplier)
    local highest = math.max(a, b)
    local lowest = math.min(a, b)
 
    if lowest == 0 then
    lowest = 1
    end
 
    local factor = highest / lowest
    return string.format("x%.2f", factor)
end
 
local function createTable(userAmount, calcAmount, useRoW, ecoType, multiplier)
local RoWYN = useRoW and "Yes" or "No"
local RoWYN = useRoW and "Yes" or "No"
Line 68: Line 56:
if ecoType == ECOIN then
if ecoType == ECOIN then
addTableRow(tbl, "Desired Output", number.formatnum(userAmount))
addTableRow(tbl, "Desired Output", number.formatnum(target))
addTableRow(tbl, "Estimated Input", number.formatnum(calcAmount))
addTableRow(tbl, "Estimated Input", number.formatnum(calcAmount))
else
else
addTableRow(tbl, "Starting Items", number.formatnum(userAmount))
addTableRow(tbl, "Starting Items", number.formatnum(target))
addTableRow(tbl, "Estimated Output", number.formatnum(calcAmount))
addTableRow(tbl, "Estimated Output", number.formatnum(calcAmount))
end
end
addTableRow(tbl, "Economy Factor", calculateFactor(userAmount, calcAmount))
addTableRow(tbl, "Economy Factor", string.format("x%.2f", multiplier))
addTableRow(tbl, "[[Ring of Wealth]] benefits", RoWYN)
addTableRow(tbl, "[[Ring of Wealth]] benefits", RoWYN)
Line 87: Line 75:


function p._main(args)
function p._main(args)
local target = args.targetAmount or 0
local target = number.toNumberOrDefault(args.targetAmount, 0)
local economyType = parseEconomy(args.economyType)
local economyType = parseEconomy(args.economyType)


Line 97: Line 85:
itemEconomy.duplicationChance = number.toNumberOrDefault(args.duplicationChance, 0)
itemEconomy.duplicationChance = number.toNumberOrDefault(args.duplicationChance, 0)
itemEconomy.extraItemChance = number.toNumberOrDefault(args.extraItemChance, 0)
itemEconomy.extraItemChance = number.toNumberOrDefault(args.extraItemChance, 0)
itemEconomy.extraItemAmount = number.toNumberOrDefault(args.extraItemAmount, 0)
itemEconomy.extraItemAmount = number.toNumberOrDefault(args.extraItemAmount, 1)
itemEconomy.flatExtraItems = number.toNumberOrDefault(args.flatExtraItems, 0)
itemEconomy.flatExtraItems = number.toNumberOrDefault(args.flatExtraItems, 0)
itemEconomy.extraBaseItemChance = number.toNumberOrDefault(args.extraBaseItemChance, 0)
itemEconomy.extraBaseItemChance = number.toNumberOrDefault(args.extraBaseItemChance, 0)
itemEconomy.extraBaseItems = number.toNumberOrDefault(args.extraBaseItems, 0)
itemEconomy.extraBaseItems = number.toNumberOrDefault(args.extraBaseItems, 1)


local result = 0
local result = 0
Line 111: Line 99:
end
end


local tbl = createTable(target, result, row, economyType)
local multiplier = eco.estimatedOutputMultiplier(itemEconomy)
local tbl = createTable(target, result, row, economyType, multiplier)
          
          
     return tostring(tbl)
     return tostring(tbl)
1,005

edits