Módulo:Teste
Ir para navegação
Ir para pesquisar
A documentação para este módulo pode ser criada em Módulo:Teste/doc
local p = {}
function p.ficha(frame)
local args = frame:getParent().args
local html = mw.html.create('div')
local function getVideoURL(filename)
if filename and filename ~= "" then
return tostring(mw.uri.fullUrl('Special:FilePath/' .. filename))
end
return ""
end
-- Header básico
local box = html:tag('div'):addClass('character-box')
box:tag('h2'):wikitext(args.nome or 'Personagem')
box:tag('div'):addClass('character-tier'):wikitext(args.tier or '')
box:tag('div'):addClass('character-class'):wikitext(args.classe or '')
box:tag('div'):addClass('character-desc'):wikitext(args.desc or '')
box:tag('div'):wikitext(string.format('[[Arquivo:%s|200px]]', args.image or ''))
-- Barra de habilidades
local skills = {}
for i = 1, 20 do
local nome = args['hab'..i..'-nome']
if not nome or nome == '' then break end
table.insert(skills, {
nome = nome,
desc = args['hab'..i..'-desc'] or '',
icon = args['hab'..i..'-icon'] or '',
video = getVideoURL(args['hab'..i..'-video'] or ''),
atr = args['hab'..i..'-atr'] or ''
})
end
-- Exibe barra de skills
local skillBar = box:tag('div'):addClass('skills-bar')
for idx, s in ipairs(skills) do
skillBar:tag('div')
:addClass('skill-icon')
:attr('data-index', idx)
:attr('data-nome', s.nome)
:attr('data-desc', s.desc)
:attr('data-video', s.video)
:attr('data-atr', s.atr)
:wikitext(string.format('[[Arquivo:%s|50px|link=]]', s.icon))
end
-- Área da descrição dinâmica (preenchida pelo JS)
box:tag('div'):addClass('skill-detail'):wikitext('Selecione uma habilidade acima')
-- Skins (carousel ou lista simples)
local skins = {}
for j = 1, 10 do
local img = args['skin'..j..'-image']
if not img or img == '' then break end
table.insert(skins, {
image = img,
banner = args['skin'..j..'-banner'] or '',
tooltip = args['skin'..j..'-tooltip'] or ''
})
end
if #skins > 0 then
local skinBar = box:tag('div'):addClass('skin-bar')
for _, s in ipairs(skins) do
local card = skinBar:tag('div'):addClass('skin-card')
card:wikitext(string.format('[[Arquivo:%s|60px|link=]]', s.image))
if s.tooltip and s.tooltip ~= "" then
card:attr('title', s.tooltip)
end
end
end
return tostring(html)
end
return p