Mudanças entre as edições de "Módulo:Droflax"
Ir para navegação
Ir para pesquisar
Etiqueta: Reversão manual |
|||
| Linha 138: | Linha 138: | ||
end | end | ||
end | end | ||
return tostring(html) | return tostring(html) | ||
Edição das 15h56min de 20 de julho de 2025
A documentação para este módulo pode ser criada em Módulo:Droflax/doc
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