Module:DropRateCalc: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
(change colours)
Line 2: Line 2:


local buffs = {
local buffs = {
     {label = "Base",               reduction = 0},
     {label = "Base", reduction = 0},
     {label = "Donator",             reduction = 0.15},
     {label = "Donator", reduction = 0.15},
     {label = "Super donator",       reduction = 0.25},
     {label = "Super donator", reduction = 0.25},
     {label = "Extreme donator",     reduction = 0.30},
     {label = "Extreme donator", reduction = 0.30},
     {label = "Legendary donator",   reduction = 0.35},
     {label = "Legendary donator", reduction = 0.35},
     {label = "Royal donator",       reduction = 0.40},
     {label = "Royal donator", reduction = 0.40},
     {label = "Divine donator",     reduction = 0.45},
     {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 "#0b5884"
         return "#afeeee" -- always
     elseif rate <= 25 then
     elseif rate <= 16 then
         return "#3c780a"
         return "#56e156" -- common
     elseif rate <= 99 then
     elseif rate <= 64 then
         return "#a48900"
         return "#ffed4c" -- uncommon
     elseif rate <= 999 then
     elseif rate <= 128 then
         return "#b55e0c"
         return "#ff863c" -- rare
     else
     else
         return "#9f261e"
         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