Módulo:TesteBossYawnv2
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:TesteBossYawnv2/doc
local p = {}
function p.loadBossData(bossName)
local normalizedName = bossName:gsub("^%l", string.upper)
local success, bossData = pcall(function()
return require("Módulo:"..normalizedName.."/data")
end)
if not success then
return normalizedName .. " nao encontrado"
end
return bossData
end
function p.render(frame)
local bossName = frame.args.boss
if not bossName or bossName == "" then return "Erro: Boss não especificado." end
local bossData = p.loadBossData(bossName)
-- Lista das chaves de dificuldade para iterar
local diffs = {"normal", "elite", "hard"}
for _, diffKey in ipairs(diffs) do
local diffData = bossData[diffKey]
if diffData and diffData.recompensasPossiveis then
-- 1. Transforma {"Item A", "Item B"} em "Item A;Item B"
local itensStr = table.concat(diffData.recompensasPossiveis, ";")
-- 2. Monta o Wikitexto para esta dificuldade específica
local wikiText = "{{Reward|t|itens=" .. itensStr .. ";1}}"
-- 3. Processa e guarda o HTML final (com imagens e tooltips da Wiki)
-- Usamos frame:getParent() caso o preprocess precise do contexto da página
diffData.recompensasRenderizadas = frame:preprocess(wikiText)
end
end
-- Agora o bossData contém o HTML pronto em cada dificuldade
local jsonData = mw.text.jsonEncode(bossData)
local safeJson = mw.text.encode(jsonData)
-- Carrega o widget
local widget = frame:preprocess("{{#widget:TesteBossYawnv3}}")
return '<div class="boss-component" data-json="' .. safeJson .. '">' .. widget .. '</div>'
end
return p