Module:DropRateCalc: Difference between revisions
Jump to navigation
Jump to search
ThroatPDiddy (talk | contribs) No edit summary |
ThroatPDiddy (talk | contribs) (change colours) |
||
| Line 2: | Line 2: | ||
local buffs = { | local buffs = { | ||
{label = "Base", | {label = "Base", reduction = 0}, | ||
{label = "Donator", | {label = "Donator", reduction = 0.15}, | ||
{label = "Super donator", | {label = "Super donator", reduction = 0.25}, | ||
{label = "Extreme donator", | {label = "Extreme donator", reduction = 0.30}, | ||
{label = "Legendary donator", | {label = "Legendary donator", reduction = 0.35}, | ||
{label = "Royal donator", | {label = "Royal donator", reduction = 0.40}, | ||
{label = "Divine donator", | {label = "Divine donator", reduction = 0.45}, | ||
} | } | ||
-- somewhat matches osrs wiki | |||
local function getColor(rate) | local function getColor(rate) | ||
if rate == 1 then | if rate == 1 then | ||
return "# | return "#afeeee" -- always | ||
elseif rate <= | elseif rate <= 16 then | ||
return "# | return "#56e156" -- common | ||
elseif rate <= | elseif rate <= 64 then | ||
return "# | return "#ffed4c" -- uncommon | ||
elseif rate <= | elseif rate <= 128 then | ||
return "# | return "#ff863c" -- rare | ||
else | else | ||
return "# | return "#ff6262" -- very rare | ||
end | end | ||
end | end | ||
Revision as of 20:03, 18 July 2026
Need to test if Larran's keys are buffed, specifically for Template:CallistoDrops and the other bosses like that.
local p = {}
local buffs = {
{label = "Base", reduction = 0},
{label = "Donator", reduction = 0.15},
{label = "Super donator", reduction = 0.25},
{label = "Extreme donator", reduction = 0.30},
{label = "Legendary donator", reduction = 0.35},
{label = "Royal donator", reduction = 0.40},
{label = "Divine donator", reduction = 0.45},
}
-- somewhat matches osrs wiki
local function getColor(rate)
if rate == 1 then
return "#afeeee" -- always
elseif rate <= 16 then
return "#56e156" -- common
elseif rate <= 64 then
return "#ffed4c" -- uncommon
elseif rate <= 128 then
return "#ff863c" -- rare
else
return "#ff6262" -- very rare
end
end
function p.calc(frame)
local base = tonumber(frame.args[1])
if not base then return "Invalid base rate" end
local cells = {}
for _, tier in ipairs(buffs) do
local rate = math.floor(base * (1 - tier.reduction) + 0.5)
local color = getColor(rate)
table.insert(cells, '<td style="background-color:' .. color .. '; color:#ffffff; text-align:center;">1/' .. rate .. '</td>')
end
return table.concat(cells, "")
end
return p