Module:Calculator/ItemEconomy: Difference between revisions

m
Chance extra item amounts to 1 by default instead of 0
(Implement Economy module changes)
m (Chance extra item amounts to 1 by default instead of 0)
 
(7 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
    -- This shouldn't ever be possible!
        error("Div by zero")
    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 69: 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 88: Line 75:


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


Line 98: 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 112: 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)
918

edits