Module:DropRateCalc: Difference between revisions
Jump to navigation
Jump to search
ThroatPDiddy (talk | contribs) (change colours) |
ThroatPDiddy (talk | contribs) (colours) |
||
| Line 13: | Line 13: | ||
local function getColor(rate) | local function getColor(rate) | ||
if rate == 1 then | if rate == 1 then | ||
return "# | return "#0b5884" -- always | ||
elseif rate <= 16 then | elseif rate <= 16 then | ||
return "# | return "#3c780a" -- common | ||
elseif rate <= 64 then | elseif rate <= 64 then | ||
return "# | return "#a48900" -- uncommon | ||
elseif rate <= | elseif rate <= 256 then | ||
return "# | return "#b55e0c" -- rare | ||
elseif rate <= 999 then | |||
return "#9f261e" -- very rare | |||
else | else | ||
return "# | return "#5c1a1a" -- extremely rare | ||
end | end | ||
end | end | ||
function p.calc(frame) | function p.calc(frame) | ||
Revision as of 20:08, 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 "#0b5884" -- always
elseif rate <= 16 then
return "#3c780a" -- common
elseif rate <= 64 then
return "#a48900" -- uncommon
elseif rate <= 256 then
return "#b55e0c" -- rare
elseif rate <= 999 then
return "#9f261e" -- very rare
else
return "#5c1a1a" -- extremely 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