Módulo:Lari1
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Lari1/doc
local p = {}
local Item = require("Módulo:Item")
local function formatNumber(num)
num = tonumber(num) or 0
if num >= 1e9 then return string.format("%.0f", num / 1e6) .. "KKK"
elseif num >= 1e6 then return string.format("%.0f", num / 1e6) .. "KK"
elseif num >= 1e4 then return string.format("%.0f", num / 1e3) .. "K"
else
local s = tostring(num)
return s:reverse():gsub("(%d%d%d)", "%1."):reverse():gsub("^%.", "")
end
end
local function parseEntry(entry)
entry = mw.text.trim(entry)
if entry == "" then return nil, nil end
local ident, qtd
if entry:find(";") then
ident, qtd = entry:match("^(.-)%s*;%s*(%d+)$")
else
ident, qtd = entry:match("^(.-)%s*:%s*(%d+)$")
end
if not ident or not qtd then return nil, nil end
return mw.text.trim(ident), tonumber(qtd)
end
function p.reward(frame)
local args = frame:getParent().args
local raw = mw.text.trim(args["itens"] or "")
local lang = mw.text.trim(args["lang"] or "pt")
if raw == "" then return "" end
local wrap = mw.html.create("div"):addClass("lk-reward-wrap")
wrap:tag("div"):addClass("lk-reward-lbl"):wikitext("Recompensa Final")
local line = wrap:tag("div"):addClass("reward-items")
for entry in mw.text.gsplit(raw, ",", true) do
local ident, qty = parseEntry(entry)
if ident and qty then
local item = Item.resolve(ident)
if not item then
item = {
id = 0,
image = ident:match("%.%w+$") and ident or (ident .. ".png"),
names = { pt = ident, en = ident },
category = "misc"
}
end
line:wikitext(Item.renderOne(item, formatNumber(qty), lang, {
showTooltip = true,
showCount = true
}))
end
end
return tostring(wrap)
end
return p