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

De Wiki Gla
Ir para navegação Ir para pesquisar
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
local p = {}
local p = {}


function p.card(frame)
function p.main(frame)
     local args = frame:getParent().args
     local args = frame:getParent().args
     local id = args.id or 'b1'
     local titulo = mw.text.trim(args['titulo'] or '')
    local boss = args.boss or 'Boss'
    local ilha = args.ilha or ''
    local img = args.img or ''


    -- Coletar skills dos parâmetros
     local bosses = {}
     local skills = {}
     local i = 1
     for i = 1, 5 do
    while true do
         local nome = args['s' .. i]
         local nome = mw.text.trim(args['boss' .. i .. 'nome'] or '')
         if nome and nome ~= '' then
         if nome == '' then break end
             table.insert(skills, {
 
                tab  = args['s' .. i .. '_tab'] or nome,
        local boss = {
                 nome = nome,
            nome = nome,
                 video = args['s' .. i .. '_video'] or '',
             elite = {},
                 desc  = args['s' .. i .. '_desc'] or ''
            hard = {}
        }
 
        -- Skills Elite
        local j = 1
        while j <= 8 do
            local sNome = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'nome'] or '')
            if sNome == '' then break end
            table.insert(boss.elite, {
                 nome = sNome,
                 video = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'video'] or ''),
                 desc  = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'desc'] or '')
             })
             })
            j = j + 1
         end
         end
    end


    if #skills == 0 then return '' end
        -- Skills Hard
 
        j = 1
    local h = {}
        while j <= 8 do
 
            local sNome = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'nome'] or '')
    -- Card header
            if sNome == '' then break end
    table.insert(h, '<div class="lk-card">')
            table.insert(boss.hard, {
    table.insert(h, '<div class="lk-card-header">')
                nome  = sNome,
    if img ~= '' then
                video = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'video'] or ''),
        table.insert(h, '<img src="' .. img .. '" alt="' .. boss .. '">')
                desc  = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'desc'] or '')
    end
            })
    table.insert(h, '<div><div class="lk-boss-name">' .. boss .. '</div>')
            j = j + 1
    table.insert(h, '<div class="lk-boss-island">' .. ilha .. '</div></div></div>')
        end
 
    -- Tabs container
    table.insert(h, '<div class="lk-tabs">')


    -- Radio inputs
         table.insert(bosses, boss)
    for i, _ in ipairs(skills) do
        i = i + 1
        local chk = (i == 1) and ' checked' or ''
         table.insert(h, '<input type="radio" name="' .. id .. '" id="' .. id .. 's' .. i .. '" class="lk-radio"' .. chk .. '>')
     end
     end


     -- Nav labels
     local json = mw.text.jsonEncode(bosses)
    table.insert(h, '<div class="lk-nav">')
    for i, s in ipairs(skills) do
        table.insert(h, '<label for="' .. id .. 's' .. i .. '">' .. s.tab .. '</label>')
    end
    table.insert(h, '</div>')


     -- Panels
     local container = mw.html.create('div')
    for i, s in ipairs(skills) do
         :addClass('ba-wrap')
         table.insert(h, '<div class="lk-panel p-' .. id .. 's' .. i .. '">')
         :addClass('dark')
         if s.video ~= '' then
         :attr('id', 'ba-wrap')
            table.insert(h, '<div class="lk-video"><iframe src="' .. s.video .. '" allowfullscreen></iframe></div>')
         :attr('data-bosses', json)
         end
         :attr('data-titulo', titulo)
        table.insert(h, '<span class="lk-skill-name">' .. s.nome .. '</span>')
         table.insert(h, '<p class="lk-skill-desc">' .. s.desc .. '</p>')
         table.insert(h, '</div>')
    end


    table.insert(h, '</div></div>')
     return tostring(container)
     return table.concat(h, '\n')
end
end


return p
return p

Edição atual tal como às 13h22min de 17 de março de 2026

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

local p = {}

function p.main(frame)
    local args = frame:getParent().args
    local titulo = mw.text.trim(args['titulo'] or '')

    local bosses = {}
    local i = 1
    while true do
        local nome = mw.text.trim(args['boss' .. i .. 'nome'] or '')
        if nome == '' then break end

        local boss = {
            nome = nome,
            elite = {},
            hard = {}
        }

        -- Skills Elite
        local j = 1
        while j <= 8 do
            local sNome = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'nome'] or '')
            if sNome == '' then break end
            table.insert(boss.elite, {
                nome  = sNome,
                video = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'video'] or ''),
                desc  = mw.text.trim(args['boss' .. i .. 'skill' .. j .. 'desc'] or '')
            })
            j = j + 1
        end

        -- Skills Hard
        j = 1
        while j <= 8 do
            local sNome = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'nome'] or '')
            if sNome == '' then break end
            table.insert(boss.hard, {
                nome  = sNome,
                video = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'video'] or ''),
                desc  = mw.text.trim(args['boss' .. i .. 'hskill' .. j .. 'desc'] or '')
            })
            j = j + 1
        end

        table.insert(bosses, boss)
        i = i + 1
    end

    local json = mw.text.jsonEncode(bosses)

    local container = mw.html.create('div')
        :addClass('ba-wrap')
        :addClass('dark')
        :attr('id', 'ba-wrap')
        :attr('data-bosses', json)
        :attr('data-titulo', titulo)

    return tostring(container)
end

return p