Módulo:TesteBossYawnv2

De Wiki Gla
Revisão de 23h27min de 9 de abril de 2026 por Yawn (discussão | contribs) (Criou página com 'local p = {} function p.loadBossData(bossName) local normalizedName = bossName:gsub("^%l", string.upper) local success, bossData = pcall(function() return requ...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
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