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

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
 
Linha 1: Linha 1:
-- Módulo:Baby 5
--[[
local M = {
Module:Guild – Dados dos componentes da base de guild.
     name = "Baby 5",
Uso: {{#invoke:Guild|main|n=Ferreiro}}
     tier = "Ouro",
Predefinição: {{Guild|n=Ferreiro}}
     tags = {
]]
         "DPS",
 
         "Atirador",
local p = {}
        "Cortante",
 
        "Fruta do Diabo",
local function normalize(name)
     if not name or name == "" then return nil end
    local s = mw.text.trim(name):lower()
    s = mw.ustring.gsub(s, "ó", "o")
    s = mw.ustring.gsub(s, "ã", "a")
    s = mw.ustring.gsub(s, "á", "a")
    s = mw.ustring.gsub(s, " ", "")
    return s
end
 
local map = {
    designer = "Designer",
    cofre = "Cofre",
    salaoprincipal = "Salão Principal",
    salao = "Salão Principal",
    quartos = "Quartos",
    saladeguerra = "Sala de Guerra",
    salaguerra = "Sala de Guerra",
    treinamento = "Treinamento",
    ferreiro = "Ferreiro",
     cozinha = "Cozinha",
}
 
local data = {
     Designer = {
         label = "Designer",
         levels = {
            { image = "Designer_lvl1.png", stats = { "1 pilar de artefato disponível", "27 símbolos disponíveis", "1 plano de fundo disponível", "6 cores disponíveis", "2% de EXP", "4% de sorte", "5% de pontos de aliança" } },
            { image = "Designer_lvl2.png", stats = { "2 pilares de artefato disponíveis", "9 planos de fundo disponíveis", "47 símbolos disponíveis", "12 cores disponíveis", "4% de EXP", "9% de sorte", "12% de pontos de aliança" } },
            { image = "Designer_lvl3.png", stats = { "2 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "72 símbolos disponíveis", "30 cores disponíveis", "6% de EXP", "15% de sorte", "22% de pontos de aliança" } },
            { image = "Designer_lvl4.png", stats = { "3 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "92 símbolos disponíveis", "30 cores disponíveis", "8% de EXP", "22% de sorte", "35% de pontos de aliança" } },
            { image = "Designer_lvl5.png", stats = { "4 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "112 símbolos disponíveis", "30 cores disponíveis", "10% de EXP", "30% de sorte", "50% de pontos de aliança" } },
        },
     },
     },
     avatar = "Baby 5 Avatar.png",
     Cofre = {
    background = "Baby 5 Background.png",
        label = "Cofre",
 
        levels = {
    order = {
            { image = "Cofre_lvl1.png", stats = { "10% de bônus pra aliança" } },
        "Kamaitachi Cut",
            { image = "Cofre_lvl2.png", stats = { "+ 100 espaços extra no cofre", "25% de bônus pra aliança" } },
        "Cross Kamaitachi Cut",
            { image = "Cofre_lvl3.png", stats = { "+ 200 espaços extra no cofre", "45% de bônus pra aliança" } },
        "Dash",
            { image = "Cofre_lvl4.png", stats = { "+ 300 espaços extra no cofre", "75% de bônus pra aliança" } },
        "Bukimorphose: Hammer Arms",
            { image = "Cofre_lvl5.png", stats = { "+ 400 espaços extra no cofre", "100% de bônus pra aliança" } },
        "Bukimorphose: Espada Girl",
         },
         "Bukimorphose: Gun Girl",
     },
     },
 
     ["Salão Principal"] = {
     forms = {
        label = "Salão Principal",
        ["Gun Girl"] = {
        levels = {
            order = { "Cannon Arm Shot", "Bukimorphose: Shotgun Arm", "Bukimorphose: Flamethrower Arm", "Bukimorphose: Missile Girl", "Gatling Girl", "Bukimorphose: Kamaitachi Arms" },
            { image = "SalaoPrincipal_lvl1.png", stats = { "Descrição do nível 1" } },
            skills = {
            { image = "SalaoPrincipal_lvl2.png", stats = { "Descrição do nível 2" } },
                ["Cannon Arm Shot"] = {
            { image = "SalaoPrincipal_lvl3.png", stats = { "Descrição do nível 3" } },
                    icon = "Cannon Arm Shot-Icon.png",
            { image = "SalaoPrincipal_lvl4.png", stats = { "Descrição do nível 4" } },
                    energy = -15,
            { image = "SalaoPrincipal_lvl5.png", stats = { "Descrição do nível 5" } },
                    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.",
                    },
                }
            }
        }
     },
     },
 
     Quartos = {
     skills = {
         label = "Quartos",
         ["Kamaitachi Cut"] = {
        levels = {
             icon = "Kamaitachi Cut-Icon.png",
             { image = "Quartos_lvl1.png", stats = { "Descrição do nível 1" } },
             energy = 10,
             { image = "Quartos_lvl2.png", stats = { "Descrição do nível 2" } },
            powerpve = 15,
             { image = "Quartos_lvl3.png", stats = { "Descrição do nível 3" } },
             powerpvp = 10,
             { image = "Quartos_lvl4.png", stats = { "Descrição do nível 4" } },
            cooldown = 2,
             { image = "Quartos_lvl5.png", stats = { "Descrição do nível 5" } },
             video = "Kamaitachi Cut-Video.mp4",
             desc = {
                pt =
                "Baby 5 usa seus braços transformados em Kamaitachis para cortar seu alvo.",
            },
         },
         },
        ["Cross Kamaitachi Cut"] = {
    },
             icon = "Cross Kamaitachi Cut-Icon.png",
    ["Sala de Guerra"] = {
             energy = 20,
        label = "Sala de Guerra",
            powerpve = 28,
        levels = {
             powerpvp = 22,
             { image = "SalaDeGuerra_lvl1.png", stats = { "Descrição do nível 1" } },
            cooldown = 10,
             { image = "SalaDeGuerra_lvl2.png", stats = { "Descrição do nível 2" } },
             video = "Cross Kamaitachi Cut-Video.mp4",
             { image = "SalaDeGuerra_lvl3.png", stats = { "Descrição do nível 3" } },
             desc = {
             { image = "SalaDeGuerra_lvl4.png", stats = { "Descrição do nível 4" } },
                pt =
             { image = "SalaDeGuerra_lvl5.png", stats = { "Descrição do nível 5" } },
                "Baby 5 corre em direção ao seu oponente em alta velocidade e desfere um corte cruzado incrivelmente rápido, causando dano.",
            },
         },
         },
         ["Dash"] = {
    },
             icon = "Dash-Icon.png",
    Treinamento = {
             cooldown = 12,
         label = "Treinamento",
             video = "Dash-Video.mp4",
        levels = {
             desc = {
             { image = "Treinamento_lvl1.png", stats = { "Descrição do nível 1" } },
                pt =
             { image = "Treinamento_lvl2.png", stats = { "Descrição do nível 2" } },
                "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.",
             { image = "Treinamento_lvl3.png", stats = { "Descrição do nível 3" } },
             },
             { image = "Treinamento_lvl4.png", stats = { "Descrição do nível 4" } },
             { image = "Treinamento_lvl5.png", stats = { "Descrição do nível 5" } },
         },
         },
         ["Bukimorphose: Hammer Arms"] = {
    },
             icon = "Bukimorphose - Hammer Arms-Icon.png",
    Ferreiro = {
             energy = 25,
         label = "Ferreiro",
            powerpve = 40,
        levels = {
             powerpvp = 30,
             { image = "Ferreiro_lvl1.png", stats = { "Descrição do nível 1" } },
            cooldown = 25,
             { image = "Ferreiro_lvl2.png", stats = { "Descrição do nível 2" } },
             video = "Bukimorphose - Hammer Arms-Video.mp4",
             { image = "Ferreiro_lvl3.png", stats = { "Descrição do nível 3" } },
             desc = {
             { image = "Ferreiro_lvl4.png", stats = { "Descrição do nível 4" } },
                pt =
             { image = "Ferreiro_lvl5.png", stats = { "Descrição do nível 5" } },
                "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].",
            },
         },
         },
         ["Bukimorphose: Espada Girl"] = {
    },
             icon = "Bukimorphose - Espada Girl-Icon.png",
    Cozinha = {
             energy = 30,
         label = "Cozinha",
            powerpve = 30,
        levels = {
             powerpvp = 25,
             { image = "Cozinha_lvl1.png", stats = { "Descrição do nível 1" } },
            cooldown = 40,
             { image = "Cozinha_lvl2.png", stats = { "Descrição do nível 2" } },
             video = "Bukimorphose - Espada Girl-Video.mp4",
             { image = "Cozinha_lvl3.png", stats = { "Descrição do nível 3" } },
             desc = {
             { image = "Cozinha_lvl4.png", stats = { "Descrição do nível 4" } },
                pt =
             { image = "Cozinhalvl5.gif", stats = { "Descrição do nível 5" } },
                "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.",
            },
         },
         },
        ["Bukimorphose: Gun Girl"] = {
    },
            icon = "Bukimorphose - Gun Girl-Icon.png",
            energy = null,
            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
 
function p.getComponent(name)
    local key = map[normalize(name)]
    if not key then return nil end
    return data[key]
end
 
function p.main(frame)
    local args = frame:getParent().args or {}
    local n = args.n or args[1] or ""
    local comp = p.getComponent(n)
    if not comp then
        return ""
    end
    local html = {}
    html[#html + 1] = '<div class="utab">'
    html[#html + 1] = '<section class="utab__section" data-tab="' .. mw.text.nowiki(comp.label) .. '">'
    for i, lvl in ipairs(comp.levels) do
        html[#html + 1] = '<div class="utab__level" data-level="' .. i .. '">'
        html[#html + 1] = '<div class="utab__content">'
        html[#html + 1] = '<div class="utab__mediaImage">[[File:' .. lvl.image .. ']]</div>'
        html[#html + 1] = '<ul class="utab__statList">'
        for _, stat in ipairs(lvl.stats) do
            html[#html + 1] = '<li>' .. stat .. '</li>'
        end
        html[#html + 1] = '</ul>'
        html[#html + 1] = '</div>'
        html[#html + 1] = '</div>'
    end
    html[#html + 1] = '</section>'
    html[#html + 1] = '</div>'
    return table.concat(html)
end
 
return p

Edição atual tal como às 17h59min de 7 de fevereiro de 2026

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

--[[
Module:Guild – Dados dos componentes da base de guild.
Uso: {{#invoke:Guild|main|n=Ferreiro}}
Predefinição: {{Guild|n=Ferreiro}}
]]

local p = {}

local function normalize(name)
    if not name or name == "" then return nil end
    local s = mw.text.trim(name):lower()
    s = mw.ustring.gsub(s, "ó", "o")
    s = mw.ustring.gsub(s, "ã", "a")
    s = mw.ustring.gsub(s, "á", "a")
    s = mw.ustring.gsub(s, " ", "")
    return s
end

local map = {
    designer = "Designer",
    cofre = "Cofre",
    salaoprincipal = "Salão Principal",
    salao = "Salão Principal",
    quartos = "Quartos",
    saladeguerra = "Sala de Guerra",
    salaguerra = "Sala de Guerra",
    treinamento = "Treinamento",
    ferreiro = "Ferreiro",
    cozinha = "Cozinha",
}

local data = {
    Designer = {
        label = "Designer",
        levels = {
            { image = "Designer_lvl1.png", stats = { "1 pilar de artefato disponível", "27 símbolos disponíveis", "1 plano de fundo disponível", "6 cores disponíveis", "2% de EXP", "4% de sorte", "5% de pontos de aliança" } },
            { image = "Designer_lvl2.png", stats = { "2 pilares de artefato disponíveis", "9 planos de fundo disponíveis", "47 símbolos disponíveis", "12 cores disponíveis", "4% de EXP", "9% de sorte", "12% de pontos de aliança" } },
            { image = "Designer_lvl3.png", stats = { "2 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "72 símbolos disponíveis", "30 cores disponíveis", "6% de EXP", "15% de sorte", "22% de pontos de aliança" } },
            { image = "Designer_lvl4.png", stats = { "3 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "92 símbolos disponíveis", "30 cores disponíveis", "8% de EXP", "22% de sorte", "35% de pontos de aliança" } },
            { image = "Designer_lvl5.png", stats = { "4 pilares de artefato disponíveis", "34 planos de fundo disponíveis", "112 símbolos disponíveis", "30 cores disponíveis", "10% de EXP", "30% de sorte", "50% de pontos de aliança" } },
        },
    },
    Cofre = {
        label = "Cofre",
        levels = {
            { image = "Cofre_lvl1.png", stats = { "10% de bônus pra aliança" } },
            { image = "Cofre_lvl2.png", stats = { "+ 100 espaços extra no cofre", "25% de bônus pra aliança" } },
            { image = "Cofre_lvl3.png", stats = { "+ 200 espaços extra no cofre", "45% de bônus pra aliança" } },
            { image = "Cofre_lvl4.png", stats = { "+ 300 espaços extra no cofre", "75% de bônus pra aliança" } },
            { image = "Cofre_lvl5.png", stats = { "+ 400 espaços extra no cofre", "100% de bônus pra aliança" } },
        },
    },
    ["Salão Principal"] = {
        label = "Salão Principal",
        levels = {
            { image = "SalaoPrincipal_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "SalaoPrincipal_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "SalaoPrincipal_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "SalaoPrincipal_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "SalaoPrincipal_lvl5.png", stats = { "Descrição do nível 5" } },
        },
    },
    Quartos = {
        label = "Quartos",
        levels = {
            { image = "Quartos_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "Quartos_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "Quartos_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "Quartos_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "Quartos_lvl5.png", stats = { "Descrição do nível 5" } },
        },
    },
    ["Sala de Guerra"] = {
        label = "Sala de Guerra",
        levels = {
            { image = "SalaDeGuerra_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "SalaDeGuerra_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "SalaDeGuerra_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "SalaDeGuerra_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "SalaDeGuerra_lvl5.png", stats = { "Descrição do nível 5" } },
        },
    },
    Treinamento = {
        label = "Treinamento",
        levels = {
            { image = "Treinamento_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "Treinamento_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "Treinamento_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "Treinamento_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "Treinamento_lvl5.png", stats = { "Descrição do nível 5" } },
        },
    },
    Ferreiro = {
        label = "Ferreiro",
        levels = {
            { image = "Ferreiro_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "Ferreiro_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "Ferreiro_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "Ferreiro_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "Ferreiro_lvl5.png", stats = { "Descrição do nível 5" } },
        },
    },
    Cozinha = {
        label = "Cozinha",
        levels = {
            { image = "Cozinha_lvl1.png", stats = { "Descrição do nível 1" } },
            { image = "Cozinha_lvl2.png", stats = { "Descrição do nível 2" } },
            { image = "Cozinha_lvl3.png", stats = { "Descrição do nível 3" } },
            { image = "Cozinha_lvl4.png", stats = { "Descrição do nível 4" } },
            { image = "Cozinhalvl5.gif",  stats = { "Descrição do nível 5" } },
        },
    },
}

function p.getComponent(name)
    local key = map[normalize(name)]
    if not key then return nil end
    return data[key]
end

function p.main(frame)
    local args = frame:getParent().args or {}
    local n = args.n or args[1] or ""
    local comp = p.getComponent(n)
    if not comp then
        return ""
    end
    local html = {}
    html[#html + 1] = '<div class="utab">'
    html[#html + 1] = '<section class="utab__section" data-tab="' .. mw.text.nowiki(comp.label) .. '">'
    for i, lvl in ipairs(comp.levels) do
        html[#html + 1] = '<div class="utab__level" data-level="' .. i .. '">'
        html[#html + 1] = '<div class="utab__content">'
        html[#html + 1] = '<div class="utab__mediaImage">[[File:' .. lvl.image .. ']]</div>'
        html[#html + 1] = '<ul class="utab__statList">'
        for _, stat in ipairs(lvl.stats) do
            html[#html + 1] = '<li>' .. stat .. '</li>'
        end
        html[#html + 1] = '</ul>'
        html[#html + 1] = '</div>'
        html[#html + 1] = '</div>'
    end
    html[#html + 1] = '</section>'
    html[#html + 1] = '</div>'
    return table.concat(html)
end

return p