Mudanças entre as edições de "Módulo:Droflax"

De Wiki Gla
Ir para navegação Ir para pesquisar
Etiqueta: Reversão manual
(Limpou toda a página)
Etiquetas: Reversão manual anulando
Linha 1: Linha 1:
local p = {}


function p.render(frame)
    local args = frame:getParent().args
   
    -- Datos básicos con valores por defecto más robustos
    local nome = args.nome or 'Sem nome'
    local tier = args.tier or ''
    local classe = args.classe or ''
    local image = args.image or 'SemImagem.png'
   
    -- Procesar habilidades de forma más segura
    local habilidades = {}
    for i = 1, 21 do
        local prefix = 'hab' .. i .. '-'
        if args[prefix .. 'nome'] then
            table.insert(habilidades, {
                nome = args[prefix .. 'nome'] or '',
                icon = args[prefix .. 'icon'] or '',
                level = args[prefix .. 'level'] or '',
                desc = args[prefix .. 'desc'] or '',
                atr = args[prefix .. 'atr'] or '',
                video = args[prefix .. 'video'] or ''
            })
        end
    end
   
    -- Procesar skins similar al questlog
    local skins = {}
    for i = 1, 11 do
        local prefix = 'skin' .. i .. '-'
        if args[prefix .. 'image'] then
            table.insert(skins, {
                image = args[prefix .. 'image'],
                banner = args[prefix .. 'banner'] or '',
                tooltip = args[prefix .. 'tooltip'] or ''
            })
        end
    end
    -- Construcción HTML al estilo questlog
    local html = mw.html.create('div')
        :addClass('personaje-wrapper')
   
    -- Cabecera similar al questlog
    html:tag('div')
        :addClass('personaje-header')
        :wikitext('[[Arquivo:' .. image .. '|200px|link=]]')
   
    -- Información básica
    local infoBox = html:tag('div')
        :addClass('personaje-info')
   
    infoBox:tag('div')
        :addClass('personaje-title')
        :wikitext('' .. nome .. '')
   
    infoBox:tag('div')
        :addClass('personaje-subtitle')
        :wikitext(classe .. ' (' .. tier .. ')')
   
    -- Habilidades (adaptado al formato de items del questlog)
    if #habilidades > 0 then
        local habSection = html:tag('div')
            :addClass('personaje-section')
       
        habSection:tag('div')
            :addClass('section-title')
            :wikitext('Habilidades')
       
        local habList = habSection:tag('div')
            :addClass('personaje-habilidades')
       
        for i, hab in ipairs(habilidades) do
            local habItem = habList:tag('div')
                :addClass('habilidad-item')
           
            -- Icono de habilidad
            habItem:tag('div')
                :addClass('habilidad-icon')
                :wikitext('[[Arquivo:' .. hab.icon .. '|32px|link=]]')
           
            -- Detalles de habilidad
            local habDetails = habItem:tag('div')
                :addClass('habilidad-details')
           
            habDetails:tag('div')
                :addClass('habilidad-nome')
                :wikitext(hab.nome .. ' (Nv. ' .. hab.level .. ')')
           
            -- Atributos al estilo questlog
            if hab.atr and hab.atr ~= '' then
                local atrDiv = habDetails:tag('div')
                    :addClass('habilidad-atr')
               
                local atrLabels = {'PVE', 'PVP', 'Energia', 'Recarga'}
                local atrValues = mw.text.split(hab.atr, ',')
               
                for j, val in ipairs(atrValues) do
                    if atrLabels[j] then
                        atrDiv:tag('span')
                            :wikitext(atrLabels[j] .. ': ' .. val .. '  ')
                    end
                end
            end
           
            -- Descripción
            habDetails:tag('div')
                :addClass('habilidad-desc')
                :wikitext(hab.desc)
        end
    end
   
    -- Skins (adaptado al formato de items del questlog)
    if #skins > 0 then
        local skinSection = html:tag('div')
            :addClass('personaje-section')
       
        skinSection:tag('div')
            :addClass('section-title')
            :wikitext('Skins')
       
        local skinList = skinSection:tag('div')
            :addClass('personaje-skins')
       
        for i, skin in ipairs(skins) do
            local skinItem = skinList:tag('div')
                :addClass('skin-item')
           
            skinItem:tag('div')
                :wikitext('[[Arquivo:' .. skin.image .. '|100px|link=]]')
           
            if skin.tooltip and skin.tooltip ~= '' then
                skinItem:tag('div')
                    :addClass('skin-tooltip')
                    :wikitext(skin.tooltip)
            end
        end
    end
    return tostring(html)
end
return p

Edição das 16h12min de 20 de julho de 2025

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