Módulo:Widget

De Wiki Gla
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:Widget/doc

-----------

-- Módulo:Widget
local p = {}

function p.render(frame)
    local args = frame:getParent().args

    local nome = args.nome or "Criatura"
    local imagem = args.imagem or "https://via.placeholder.com/60"
    local tipo = args.tipo or "Tipo desconhecido"
    local habitat = args.habitat or "Habitat desconhecido"
    local perigo = args.perigo or "?"
    local drops = args.drops or "Sem drops."

    -- Monta o HTML para a ficha da criatura, igual ao widget criado anteriormente
    local html = mw.html.create("div")
        :addClass("bestiario-widget") -- pode customizar com CSS depois
        :cssText("background:#21223a; border-radius:10px; padding:15px; width:350px; color:#f1e9d3; font-family:sans-serif;")
    
    local header = html:tag("div")
        :cssText("display:flex; align-items:center; margin-bottom:10px;")
    local imgDiv = header:tag("div")
        :cssText("width:60px; height:60px; border-radius:8px; overflow:hidden; background:#252736; margin-right:10px;")
    imgDiv:tag("img")
        :attr("src", imagem)
        :attr("alt", "Imagem da criatura")
        :cssText("width:60px; height:60px;")
    local infoDiv = header:tag("div")
    infoDiv:tag("div")
        :cssText("font-size:1.3em; font-weight:bold; color:#f7de72;")
        :wikitext(nome)
    infoDiv:tag("div")
        :cssText("font-size:1em; color:#b0b0b0;")
        :wikitext(tipo)
    infoDiv:tag("div")
        :cssText("font-size:0.94em; color:#67b06a; margin-top:2px;")
        :wikitext(habitat)
    infoDiv:tag("div")
        :cssText("font-size:0.97em; color:#e55a5a;")
        :wikitext("Perigo: " .. perigo)

    -- Corpo com drops
    local body = html:tag("div")
        :cssText("margin-top:10px;")
    local dropsDiv = body:tag("div")
        :cssText("background:#171821; border-radius:8px; padding:8px 10px; margin-bottom:6px;")
    dropsDiv:tag("span")
        :cssText("font-weight:bold; color:#f7de72;")
        :wikitext("Drops")
    dropsDiv:tag("br")
    dropsDiv:tag("span")
        :cssText("font-size:0.98em;")
        :wikitext(drops)

    return tostring(html)
end

return p
-----------