Module:DropsLineTest: Difference between revisions
Jump to navigation
Jump to search
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
Line 1: | Line 1: | ||
local | local Test = {} | ||
function | function Test.calculatePercentages(frame) | ||
local args = frame.args | |||
local dropRate = args[1] or "0/1" -- Extract the drop rate from the args, default to "0/1" | |||
-- Parsing the drop rate | |||
local numerator, denominator = dropRate:match("(%d+)/(%d+)") | |||
denominator = tonumber(denominator) or 1 -- Convert denominator to a number or default to 1 | |||
local percentages = {} | |||
-- Original number | |||
table.insert(percentages, dropRate) | |||
-- Donator (85% of original drop rate) | |||
local donatorDenominator = math.floor(denominator * 0.85) | |||
local donator = string.format("%d/%d", numerator, donatorDenominator) | |||
table.insert(percentages, donator) | |||
-- Super donator (75% of original drop rate) | |||
local superDonatorDenominator = math.floor(denominator * 0.75) | |||
local superDonator = string.format("%d/%d", numerator, superDonatorDenominator) | |||
table.insert(percentages, superDonator) | |||
-- Extreme donator (70% of original drop rate) | |||
local extremeDonatorDenominator = math.floor(denominator * 0.70) | |||
local extremeDonator = string.format("%d/%d", numerator, extremeDonatorDenominator) | |||
table.insert(percentages, extremeDonator) | |||
-- Legendary donator (65% of original drop rate) | |||
local legendaryDonatorDenominator = math.floor(denominator * 0.65) | |||
local legendaryDonator = string.format("%d/%d", numerator, legendaryDonatorDenominator) | |||
table.insert(percentages, legendaryDonator) | |||
-- Royal donator (60% of original drop rate) | |||
local royalDonatorDenominator = math.floor(denominator * 0.60) | |||
local royalDonator = string.format("%d/%d", numerator, royalDonatorDenominator) | |||
table.insert(percentages, royalDonator) | |||
return percentages | |||
end | end | ||
return Test | |||
Revision as of 16:24, 5 May 2024
Documentation for this module may be created at Module:DropsLineTest/doc
local Test = {}
function Test.calculatePercentages(frame)
local args = frame.args
local dropRate = args[1] or "0/1" -- Extract the drop rate from the args, default to "0/1"
-- Parsing the drop rate
local numerator, denominator = dropRate:match("(%d+)/(%d+)")
denominator = tonumber(denominator) or 1 -- Convert denominator to a number or default to 1
local percentages = {}
-- Original number
table.insert(percentages, dropRate)
-- Donator (85% of original drop rate)
local donatorDenominator = math.floor(denominator * 0.85)
local donator = string.format("%d/%d", numerator, donatorDenominator)
table.insert(percentages, donator)
-- Super donator (75% of original drop rate)
local superDonatorDenominator = math.floor(denominator * 0.75)
local superDonator = string.format("%d/%d", numerator, superDonatorDenominator)
table.insert(percentages, superDonator)
-- Extreme donator (70% of original drop rate)
local extremeDonatorDenominator = math.floor(denominator * 0.70)
local extremeDonator = string.format("%d/%d", numerator, extremeDonatorDenominator)
table.insert(percentages, extremeDonator)
-- Legendary donator (65% of original drop rate)
local legendaryDonatorDenominator = math.floor(denominator * 0.65)
local legendaryDonator = string.format("%d/%d", numerator, legendaryDonatorDenominator)
table.insert(percentages, legendaryDonator)
-- Royal donator (60% of original drop rate)
local royalDonatorDenominator = math.floor(denominator * 0.60)
local royalDonator = string.format("%d/%d", numerator, royalDonatorDenominator)
table.insert(percentages, royalDonator)
return percentages
end
return Test