Module:StoreLine: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 22: | Line 22: | ||
table.insert(percentages, donator) | table.insert(percentages, donator) | ||
-- Super donator (75% of original drop rate) | -- Super donator (75% of original drop rate) | ||
local superDonatorDenominator = math.floor( | local superDonatorDenominator = math.floor(donatorDenominator * 0.75) | ||
local superDonator = string.format("%d/%d", numerator, superDonatorDenominator) | local superDonator = string.format("%d/%d", numerator, superDonatorDenominator) | ||
table.insert(percentages, superDonator) | table.insert(percentages, superDonator) | ||
Line 46: | Line 46: | ||
resultTable = resultTable .. '! ' .. table.concat(labels, ' !! ') .. '\n|-\n' | resultTable = resultTable .. '! ' .. table.concat(labels, ' !! ') .. '\n|-\n' | ||
resultTable = resultTable .. '| ' .. table.concat(percentages, ' || ') .. '\n|-\n' | resultTable = resultTable .. '| ' .. table.concat(percentages, ' || ') .. '\n|-\n' | ||
resultTable = resultTable .. '| || style="background-color: #800000; color: white;" | ' .. table.concat(percentages, ' | | resultTable = resultTable .. '| || style="background-color: #800000; color: white;" | ' .. table.concat(percentages, ' || ') .. '\n|}' | ||
return resultTable | return resultTable |
Revision as of 23:11, 3 April 2024
Documentation for this module may be created at Module:StoreLine/doc
-- This is a Lua module for MediaWiki
-- It provides functionality to calculate percentages of a number
-- Create a table to hold the functions
local Test = {}
-- Function to calculate percentages
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(donatorDenominator * 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(superDonatorDenominator * 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(extremeDonatorDenominator * 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(legendaryDonatorDenominator * 0.60)
local royalDonator = string.format("%d/%d", numerator, royalDonatorDenominator)
table.insert(percentages, royalDonator)
-- Custom labels
local labels = {"Drop Rate", "Donator", "Super donator", "Extreme donator", "Legendary donator", "Royal donator"}
-- Format the result as a table with red background color for bottom cells
local resultTable = '{| class="wikitable"\n'
resultTable = resultTable .. '|-\n'
resultTable = resultTable .. '! ' .. table.concat(labels, ' !! ') .. '\n|-\n'
resultTable = resultTable .. '| ' .. table.concat(percentages, ' || ') .. '\n|-\n'
resultTable = resultTable .. '| || style="background-color: #800000; color: white;" | ' .. table.concat(percentages, ' || ') .. '\n|}'
return resultTable
end
-- Export the module
return Test