Módulo:Price
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Price/doc
local p = {}
local itemData = require("Módulo:ItemData")
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 return tostring(num):reverse():gsub("(%d%d%d)", "%1,"):reverse():gsub("^,", "") end
end
local function buscarChaveCorreta(nome)
local base = mw.text.trim(nome):lower():gsub("_", " "):gsub("%.png$", "")
for chave, dados in pairs(itemData) do
local kbase = chave:lower():gsub("_", " "):gsub("%.png$", "")
local nomeTraduzido = (dados.nome or ""):lower()
if kbase == base or nomeTraduzido == base then
return chave, dados
end
end
return nome .. ".png", { nome = nome }
end
function p.render(frame)
local args = frame.args
local nome = args[1] or ""
local qtd = tonumber(args.qtd or 1)
local chave, dados = buscarChaveCorreta(nome)
local tooltip = dados.nome or nome
if dados.desc and dados.desc ~= "" then
tooltip = tooltip .. "\n—\n" .. dados.desc
end
local span = mw.html.create("span")
span:addClass("item-price-inline")
span:attr("data-sort-value", qtd)
span:attr("data-tooltip", tooltip)
span:tag("span")
:wikitext(string.format("[[Arquivo:%s|20px|link=]]", chave))
span:tag("span")
:addClass("item-count-inline")
:wikitext("x" .. formatNumber(qtd))
return tostring(span)
end
return p