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

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m (bannerzin)
 
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
-- Módulo:Baby 5
local p = {}
local M = {
    name = "Baby 5",
    tier = "Ouro",
    tags = {
        "DPS",
        "Atirador",
        "Cortante",
        "Fruta do Diabo",
    },
    avatar = "Baby 5 Avatar.png",
    background = "Baby 5 Background.png",


    order = {
-- Parseia bau no formato "2 comum, 8 ouro" ou "8 ouro, 2 comum". Retorna comum, ouro (números) ou nil,nil se for só tipo (comum/ouro).
        "Kamaitachi Cut",
local function parseBau(s)
        "Cross Kamaitachi Cut",
    if not s or s == '' then return nil, nil end
        "Dash",
    s          = mw.text.trim(s)
        "Bukimorphose: Hammer Arms",
    local comum = tonumber(s:match('(%d+)%s*[Cc]omum')) or 0
        "Bukimorphose: Espada Girl",
    local ouro  = tonumber(s:match('(%d+)%s*[Oo]uro')) or 0
         "Bukimorphose: Gun Girl",
    if comum > 0 or ouro > 0 then
     },
         return comum, ouro
     end
    return nil, nil
end


    forms = {
function p.main(frame)
        ["Gun Girl"] = {
    local args = frame:getParent().args
            order = { "Cannon Arm Shot", "Bukimorphose: Shotgun Arm", "Bukimorphose: Flamethrower Arm", "Bukimorphose: Missile Girl", "Gatling Girl", "Bukimorphose: Kamaitachi Arms" },
    local cards = {}
            skills = {
                ["Cannon Arm Shot"] = {
                    icon = "Cannon Arm Shot-Icon.png",
                    energy = -15,
                    powerpve = 22.5,
                    powerpvp = 8,
                    cooldown = 3,
                    video = "Cannon Arm Shot-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 transforma seu braço em um canhão e atira uma bola de canhão que explode no impacto com o alvo, causando dano em uma área pequena.",
                    },
                },
                ["Bukimorphose: Shotgun Arm"] = {
                    icon = "Bukimorphose - Shotgun Arm-Icon.png",
                    energy = -20,
                    powerpve = 32,
                    powerpvp = 26,
                    cooldown = 15,
                    video = "Bukimorphose - Shotgun Arm-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 transforma seu braço em uma espingarda e dispara à frente, causando dano, aplicando lentidão de [debuff:80] por [sec:3 segundos] e empurrando os inimigos enquanto se puxa para trás.",
                    },
                },
                ["Bukimorphose: Flamethrower Arm"] = {
                    icon = "Bukimorphose - Flamethrower Arm-Icon.png",
                    energy = -25,
                    powerpve = 8,
                    powerpvp = 10,
                    cooldown = 25,
                    video = "Bukimorphose - Flamethrower Arm-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 transforma seu braço em um lança-chamas e dispara fogo à sua frente, deixando o chão queimando por [sec:5 segundos] e causando dano a qualquer um que esteja nas chamas a cada segundo.",
                    },
                },
                ["Bukimorphose: Missile Girl"] = {
                    icon = "Bukimorphose - Missile Girl-Icon.png",
                    powerpve = 60,
                    powerpvp = 30,
                    cooldown = 45,
                    video = "Bukimorphose - Missile Girl-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 se transforma em um enorme míssil militar que explode em pedaços após [sec:2,2 segundos] ou pressionando o botão da habilidade novamente. Enquanto estiver na forma de míssil, ela se torna imparável, recebe [def:50% menos dano] e tem sua velocidade de movimento aumentada em [ms:400]. Após a explosão, Baby 5 se reconstrói a partir dos restos do míssil. Em instâncias não PvP, a explosão atordoa qualquer inimigo atingido por [sec:3 segundos].",
                    },
                },
                ["Gatling Girl"] = {
                    icon = "Gatling Girl-Icon.png",
                    energy = -40,
                    powerpve = 9,
                    powerpvp = 7,
                    cooldown = 100,
                    video = "Gatling Girl-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 pega uma enorme metralhadora e dispara em uma área selecionada, infligindo danos massivos até 14 vezes e reduzindo a velocidade de movimento de qualquer inimigo pego em seu caminho em [debuff:100] por [sec:1 segundo]. Se usado com a \"Conjuração Rápida\" ativada, Baby 5 pode mirar a arma livremente e controlar a área de disparo.",
                    },
                },
                ["Bukimorphose: Kamaitachi Arms"] = {
                    icon = "Bukimorphose - Kamaitachi Arms-Icon.png",
                    cooldown = 1,
                    video = "Bukimorphose - Kamaitachi Arms-Video.mp4",
                    desc = {
                        pt =
                        "Baby 5 muda sua postura de combate e retorna à sua forma original, revertendo todas as alterações de status.",
                    },
                }
            }
        }
    },


     skills = {
     local i = 1
         ["Kamaitachi Cut"] = {
    while true do
            icon = "Kamaitachi Cut-Icon.png",
         local nome = args['nome' .. i]
            energy = 10,
        if not nome or mw.text.trim(nome) == '' then break end
            powerpve = 15,
 
            powerpvp = 10,
        local link        = mw.text.trim(args['link' .. i] or '')
            cooldown = 2,
        local img        = mw.text.trim(args['img' .. i] or '')
            video = "Kamaitachi Cut-Video.mp4",
        local qtd        = mw.text.trim(args['qtd' .. i] or '0')
            desc = {
        local bauParam    = mw.text.trim(args['bau' .. i] or 'comum')
                pt =
 
                "Baby 5 usa seus braços transformados em Kamaitachis para cortar seu alvo.",
         local comum, ouro = parseBau(bauParam)
            },
         if comum == nil and ouro == nil then
         },
             -- Modo antigo: bau = comum ou ouro, qtd = quantidade
         ["Cross Kamaitachi Cut"] = {
             local n = tonumber(qtd) or 0
             icon = "Cross Kamaitachi Cut-Icon.png",
             if bauParam:lower() == 'ouro' then
             energy = 20,
                comum, ouro = 0, n
             powerpve = 28,
             else
            powerpvp = 22,
                 comum, ouro = n, 0
            cooldown = 10,
             end
            video = "Cross Kamaitachi Cut-Video.mp4",
         end
             desc = {
 
                 pt =
         local href      = tostring(mw.uri.localUrl(link))
                "Baby 5 corre em direção ao seu oponente em alta velocidade e desfere um corte cruzado incrivelmente rápido, causando dano.",
        local comumHtml = frame:preprocess('[[File:Chest_normal.png|link=]]')
             },
        local ouroHtml  = frame:preprocess('[[File:Chest_gold.png|link=]]')
         },
 
         ["Dash"] = {
        -- Banner 380x80: fundo = img da ilha, baus canto superior esquerdo, título canto inferior esquerdo
            icon = "Dash-Icon.png",
         local banner    = mw.html.create('span')
            cooldown = 12,
         banner:attr('class', 'island-banner')
            video = "Dash-Video.mp4",
             :attr('data-href', href)
            desc = {
             :attr('data-bgimg', img)
                pt =
             :attr('role', 'link')
                "Graças à sua incrível agilidade, Baby 5 é capaz de correr rapidamente para frente, desaparecendo da vista em um piscar de olhos e reaparecendo do outro lado logo em seguida.",
             :attr('tabindex', '0')
            },
 
         },
        local chests = banner:tag('span'):attr('class', 'island-chests')
         ["Bukimorphose: Hammer Arms"] = {
        if comum > 0 then
             icon = "Bukimorphose - Hammer Arms-Icon.png",
             chests:tag('span'):attr('class', 'island-chest-group')
             energy = 25,
                 :node(mw.html.create(''):wikitext(comumHtml))
             powerpve = 40,
                 :tag('span'):attr('class', 'island-chest-count'):wikitext(tostring(comum))
             powerpvp = 30,
         end
            cooldown = 25,
         if ouro > 0 then
             video = "Bukimorphose - Hammer Arms-Video.mp4",
             chests:tag('span'):attr('class', 'island-chest-group')
            desc = {
                :node(mw.html.create(''):wikitext(ouroHtml))
                 pt =
                :tag('span'):attr('class', 'island-chest-count'):wikitext(tostring(ouro))
                 "Baby 5 golpeia o chão à sua frente com seus braços transformados em um grande martelo, causando dano e reduzindo a velocidade de movimento dos inimigos atingidos em [debuff:80] por [sec:4 segundos].",
        end
            },
 
         },
        banner:tag('span'):attr('class', 'island-title'):wikitext(nome)
         ["Bukimorphose: Espada Girl"] = {
 
             icon = "Bukimorphose - Espada Girl-Icon.png",
         cards[#cards + 1] = banner
            energy = 30,
        i = i + 1
            powerpve = 30,
    end
            powerpvp = 25,
 
            cooldown = 40,
    local grid = mw.html.create('div')
            video = "Bukimorphose - Espada Girl-Video.mp4",
    grid:attr('class', 'island-grid')
            desc = {
    for _, card in ipairs(cards) do
                pt =
         grid:node(card)
                "Baby 5 se transforma em uma espada gigante e gira rapidamente, parecendo uma gigantesca serra circular, puxando e causando dano duas vezes em todos os inimigos próximos. Inimigos fora do alcance da lâmina também serão puxados para dentro, mas receberão apenas [atk:50%] do dano.",
     end
            },
 
        },
    return tostring(grid)
         ["Bukimorphose: Gun Girl"] = {
end
            icon = "Bukimorphose - Gun Girl-Icon.png",
 
            energy = null,
return p
            powerpve = null,
            powerpvp = null,
            cooldown = 1,
            video = "Bukimorphose - Gun Girl-Video.mp4",
            desc = {
                pt =
                "Baby 5 assume uma postura de combate com armas de fogo, alterando todas as suas habilidades para o uso de armas à distância. Enquanto estiver nessa postura, sua velocidade de movimento é reduzida em [debuff:40] e sua defesa é diminuída em [def:20%].",
            },
            form_switch = true,
         }
     }
}
return M

Edição atual tal como às 23h47min de 12 de março de 2026

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

local p = {}

-- Parseia bau no formato "2 comum, 8 ouro" ou "8 ouro, 2 comum". Retorna comum, ouro (números) ou nil,nil se for só tipo (comum/ouro).
local function parseBau(s)
    if not s or s == '' then return nil, nil end
    s           = mw.text.trim(s)
    local comum = tonumber(s:match('(%d+)%s*[Cc]omum')) or 0
    local ouro  = tonumber(s:match('(%d+)%s*[Oo]uro')) or 0
    if comum > 0 or ouro > 0 then
        return comum, ouro
    end
    return nil, nil
end

function p.main(frame)
    local args = frame:getParent().args
    local cards = {}

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

        local link        = mw.text.trim(args['link' .. i] or '')
        local img         = mw.text.trim(args['img' .. i] or '')
        local qtd         = mw.text.trim(args['qtd' .. i] or '0')
        local bauParam    = mw.text.trim(args['bau' .. i] or 'comum')

        local comum, ouro = parseBau(bauParam)
        if comum == nil and ouro == nil then
            -- Modo antigo: bau = comum ou ouro, qtd = quantidade
            local n = tonumber(qtd) or 0
            if bauParam:lower() == 'ouro' then
                comum, ouro = 0, n
            else
                comum, ouro = n, 0
            end
        end

        local href      = tostring(mw.uri.localUrl(link))
        local comumHtml = frame:preprocess('[[File:Chest_normal.png|link=]]')
        local ouroHtml  = frame:preprocess('[[File:Chest_gold.png|link=]]')

        -- Banner 380x80: fundo = img da ilha, baus canto superior esquerdo, título canto inferior esquerdo
        local banner    = mw.html.create('span')
        banner:attr('class', 'island-banner')
            :attr('data-href', href)
            :attr('data-bgimg', img)
            :attr('role', 'link')
            :attr('tabindex', '0')

        local chests = banner:tag('span'):attr('class', 'island-chests')
        if comum > 0 then
            chests:tag('span'):attr('class', 'island-chest-group')
                :node(mw.html.create(''):wikitext(comumHtml))
                :tag('span'):attr('class', 'island-chest-count'):wikitext(tostring(comum))
        end
        if ouro > 0 then
            chests:tag('span'):attr('class', 'island-chest-group')
                :node(mw.html.create(''):wikitext(ouroHtml))
                :tag('span'):attr('class', 'island-chest-count'):wikitext(tostring(ouro))
        end

        banner:tag('span'):attr('class', 'island-title'):wikitext(nome)

        cards[#cards + 1] = banner
        i = i + 1
    end

    local grid = mw.html.create('div')
    grid:attr('class', 'island-grid')
    for _, card in ipairs(cards) do
        grid:node(card)
    end

    return tostring(grid)
end

return p