Module:BTD6 hero xp: Difference between revisions

mNo edit summary
mNo edit summary
Line 10: Line 10:
local mFloor = math.floor
local mFloor = math.floor


local function RoundHalfToEven(num)
local function RoundHalfUp(num)
local floored = mFloor(num)
local floored = mFloor(num)
return (num - floored == 0.5) and floored + (floored % 2 == 0 and 0 or 1) or mFloor(num + 0.5)
return floored + ((num - floored == 0.5) and 1 or 0)
end
end


Line 28: Line 28:
local sformat = string.format
local sformat = string.format
local xp_lv3 = RoundHalfToEven(640 * curve)
local xp_lv3 = RoundHalfUp(640 * curve)
local total_required = 0
local total_required = 0
Line 49: Line 49:
    -- Check if it is a perfect half tie-breaker
    -- Check if it is a perfect half tie-breaker
    total_xp = total_xp + RoundHalfToEven(xp * mult)
    total_xp = total_xp + RoundHalfUp(xp * mult)
end
end
Line 61: Line 61:
for i, v in ipairs(level_reqs) do
for i, v in ipairs(level_reqs) do
local req = RoundHalfToEven(v * curve)
local req = RoundHalfUp(v * curve)
total_required = total_required + req
total_required = total_required + req
tinsert(wikitable, sformat('|-\n!%i\n|%s (%s)', i + 1, lang:formatNum(req), lang:formatNum(total_required)))
tinsert(wikitable, sformat('|-\n!%i\n|%s (%s)', i + 1, lang:formatNum(req), lang:formatNum(total_required)))