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

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
 
(3 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
-- Módulo:Monkey D. Garp
--[[
local M = {
Module:Guild – Dados dos componentes da base de guild.
     name = "Monkey D. Garp",
Uso: {{#invoke:Guild|main|n=Ferreiro}}
     tier = "Diamante",
Predefinição: {{Guild|n=Ferreiro}}
     tags = {
]]
        "DPS",
 
        "Lutador",
local p = {}
        "Marinheiro",
 
     },
local function normalize(name)
    avatar = "Garp avatar.png",
     if not name or name == "" then return nil end
     background = "GarpBackground.png",
    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


    order = {
local map = {
        "Punch",
    designer = "Designer",
        "Justice Fist",
    cofre = "Cofre",
        "Meteor Rush",
    salaoprincipal = "Salão Principal",
        "Iron Justice",
    salao = "Salão Principal",
        "Meteor Fist",
    quartos = "Quartos",
        "Blue Hole",
    saladeguerra = "Sala de Guerra",
        "Haoshoku Haki",
    salaguerra = "Sala de Guerra",
        "Fist of Love (Passive)",
    treinamento = "Treinamento",
     },
    ferreiro = "Ferreiro",
     cozinha = "Cozinha",
}


     skills = {
local data = {
         ["Punch"] = {
     Designer = {
             icon = "Punch-Icon.png",
         label = "Designer",
            level = 1,
        levels = {
             energy = -5,
             { 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" } },
            powerpve = 15,
             { 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" } },
             powerpvp = 10,
             { 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" } },
            cooldown = 2,
             { 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" } },
             video = "Punch-Video.mp4",
             { 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" } },
             desc = {
                pt =
                "Garp desfere um golpe direto que causa dano imediato ao inimigo.",
                en =
                "Garp delivers a direct strike that deals immediate damage to the enemy.",
                es =
                "Garp asesta un golpe directo que inflige daño inmediato al enemigo.",
                pl =
                "Garp wyprowadza bezpośredni cios w przeciwnika.",
            },
         },
         },
         ["Justice Fist"] = {
    },
             icon = "Justice Fist-Icon.png",
    Cofre = {
            level = 5,
         label = "Cofre",
            energy = -10,
        levels = {
             powerpve = 32,
             { image = "Cofre_lvl1.png", stats = { "10% de bônus pra aliança" } },
            powerpvp = 24,
             { image = "Cofre_lvl2.png", stats = { "+ 100 espaços extra no cofre", "25% de bônus pra aliança" } },
            cooldown = 10,
             { image = "Cofre_lvl3.png", stats = { "+ 200 espaços extra no cofre", "45% de bônus pra aliança" } },
             video = "Justice Fist-Video.mp4",
            { image = "Cofre_lvl4.png", stats = { "+ 300 espaços extra no cofre", "75% de bônus pra aliança" } },
            desc = {
            { image = "Cofre_lvl5.png", stats = { "+ 400 espaços extra no cofre", "100% de bônus pra aliança" } },
                pt =
                "Com a força adquirida ao longo de décadas de batalhas, Garp desfere um soco poderoso que atinge todos os inimigos à sua frente antes que possam reagir.",
                en =
                "With the strength earned over decades of battles, Garp unleashes a powerful punch that hits all enemies in front of him before they can react.",
                es =
                "Con la fuerza ganada tras décadas de batallas, Garp desata un poderoso puñetazo que golpea a todos los enemigos que tiene delante antes de que puedan reaccionar.",
                pl =
                "Dzięki sile wyrobionej przez dekady wojen, Garp potrafi uwolnić potężny cios swoją pięścią, która rani wszystkich przeciwników przed nim, nie dając im czasu na reakcję.",
            },
         },
         },
        ["Meteor Rush"] = {
    },
            icon = "Meteor Rush-Icon.png",
    ["Salão Principal"] = {
            level = 12,
        label = "Salão Principal",
             energy = -20,
        levels = {
            powerpve = 38,
             { image = "SalaoPrincipal_lvl1.png", stats = { "Descrição do nível 1" } },
             powerpvp = 28,
             { image = "SalaoPrincipal_lvl2.png", stats = { "Descrição do nível 2" } },
            cooldown = 15,
             { image = "SalaoPrincipal_lvl3.png", stats = { "Descrição do nível 3" } },
             video = "Meteor Rush-Video.mp4",
            { image = "SalaoPrincipal_lvl4.png", stats = { "Descrição do nível 4" } },
            desc = {
            { image = "SalaoPrincipal_lvl5.png", stats = { "Descrição do nível 5" } },
                pt =
                "Garp avança como um meteoro em direção ao inimigo e descarrega um poderoso soco usando toda a força de seu \"Punho do Amor\", causando dano a todos inimigos a sua frente e reduzindo a velocidade de movimento dos inimigos em [debuff:80] por [sec:4 segundos].",
                en =
                "Garp rapidly advances toward the enemy and unleashes a powerful punch using the full might of his \"Fist of Love\", dealing damage to all enemies in front of him and reducing enemies' movement speed by [debuff:80] for [sec:4 seconds].",
                es =
                "Garp avanza rápidamente hacia el enemigo y descarga un poderoso puñetazo con toda la fuerza de su «Puño del Amor», infligiendo daño a todos los enemigos que tiene delante y reduciendo su velocidad de movimiento en [debuff:80] durante [sec:4 segundos].",
                pl =
                "Garp szybko przemieszcza się do swojego przeciwnika by uwolnić w pięści całą potęgę jego \"Fist of Love\", zadając obrażenia wszystkim przeciwnikom przed nim oraz redukując ich prędkość ruchu o [debuff:80] na [sec:4 sekundy].",
            },
         },
         },
         ["Iron Justice"] = {
    },
             icon = "Iron Justice-Icon.png",
    Quartos = {
            level = 20,
         label = "Quartos",
             cooldown = 20,
        levels = {
            video = "Iron Justice-Video.mp4",
             { image = "Quartos_lvl1.png", stats = { "Descrição do nível 1" } },
             desc = {
             { image = "Quartos_lvl2.png", stats = { "Descrição do nível 2" } },
                pt =
             { image = "Quartos_lvl3.png", stats = { "Descrição do nível 3" } },
                "Garp entra em posição de contra-ataque por até [sec:2 segundos], reduzindo o dano sofrido em [def:95%]. Quando ativado, Garp recebe [ms:600] de velocidade de movimento e desaparece da visão de todos por [sec:1,2 segundos]. Garp também pode ativar seu contra-ataque utilizando suas habilidades e, quando reaparecer, ele ataca virando automaticamente para o alvo.",
            { image = "Quartos_lvl4.png", stats = { "Descrição do nível 4" } },
                en =
            { image = "Quartos_lvl5.png", stats = { "Descrição do nível 5" } },
                "Garp enters a counter-attack stance for up to [sec:2 seconds], reducing damage taken by [def:95%]. When activated, Garp gains [ms:600] movement speed and disappears from everyone's view for [sec:1,2 seconds]. Garp can also activate his counter-attack by using his abilities, and when he reappears, he attacks automatically facing the target.",
                es =
                "Garp adopta una postura de contraataque durante un máximo de [sec:2 segundos], lo que reduce el daño recibido en un [def:95%]. Cuando se activa, Garp gana [ms:600] de velocidad de movimiento y desaparece de la vista de todos durante [sec:1,2 segundos]. Garp también puede activar su contraataque usando sus habilidades, y cuando reaparece, ataca automáticamente mirando al objetivo.",
                pl =
                "Garp przyjmuje postawę do kontry na [sec:2 sekundy], redukując otrzymane obrażenia o [def:95%]. Po aktywacji, Garp zyskuje [ms:600] dodatkowej prędkości ruchu oraz znika z pola widzenia na [sec:1,2 sekundy]. Garp może także aktywować swoją kontrę poprzez użycie swoich umiejętności, po ponownym pojawieniu się, zaatakuje on automatycznie swój cel, pojawiając się przed nim.",
            },
         },
         },
        ["Meteor Fist"] = {
    },
            icon = "Meteor Fist-Icon.png",
    ["Sala de Guerra"] = {
            level = 30,
        label = "Sala de Guerra",
             energy = -20,
        levels = {
            powerpve = 50,
             { image = "SalaDeGuerra_lvl1.png", stats = { "Descrição do nível 1" } },
             powerpvp = 38,
             { image = "SalaDeGuerra_lvl2.png", stats = { "Descrição do nível 2" } },
            cooldown = 25,
             { image = "SalaDeGuerra_lvl3.png", stats = { "Descrição do nível 3" } },
             video = "Meteor Fist-Video.mp4",
            { image = "SalaDeGuerra_lvl4.png", stats = { "Descrição do nível 4" } },
            desc = {
            { image = "SalaDeGuerra_lvl5.png", stats = { "Descrição do nível 5" } },
                pt =
                "Garp concentra sua força em um único soco, liberando uma poderosa rajada de vento. O impacto do ar comprimido atinge todos os inimigos ao seu redor, arremessando-os para frente. Em instâncias PvE, os inimigos ficam imobilizados por [sec:1,5 segundos], enquanto em instâncias PvP a imobilização dura [sec:0,5 segundos].",
                en =
                "Garp focuses his strength into a single punch, releasing a powerful blast of wind. The impact of the compressed air strikes all enemies around him, hurling them forward. In PvE instances, enemies are immobilized for [sec:1,5 seconds], while in PvP instances the immobilization lasts [sec:0,5 seconds].",
                es =
                "Garp concentra su fuerza en un solo puñetazo, liberando una poderosa ráfaga de viento. El impacto del aire comprimido golpea a todos los enemigos a su alrededor, lanzándolos hacia adelante. En las instancias PvE, los enemigos quedan inmovilizados durante [sec:1,5 segundos], mientras que en las instancias PvP la inmovilización dura [sec:0,5 segundos].",
                pl =
                "Garp skupia siłę w jeden cios, uwalniając potężną falę uderzeniową. Impakt skompresowanego powietrza uderza we wszystkich przeciwnikow dookoła niego, przyciągając ich. W instancjach PvE, przeciwnicy zostaną uziemieni na [sec:1,5 sekundy], podczas gdy w instancjach PvP, uziemienie trwa [sec:0,5 sekundy].",
            },
         },
         },
         ["Blue Hole"] = {
    },
             icon = "Blue Hole-Icon.png",
    Treinamento = {
            level = 50,
         label = "Treinamento",
             energy = -30,
        levels = {
            powerpve = 70,
             { image = "Treinamento_lvl1.png", stats = { "Descrição do nível 1" } },
             powerpvp = 45,
             { image = "Treinamento_lvl2.png", stats = { "Descrição do nível 2" } },
            cooldown = 40,
             { image = "Treinamento_lvl3.png", stats = { "Descrição do nível 3" } },
             video = "Blue Hole-Video.mp4",
             { image = "Treinamento_lvl4.png", stats = { "Descrição do nível 4" } },
             desc = {
             { image = "Treinamento_lvl5.png", stats = { "Descrição do nível 5" } },
                pt =
        },
                "Ao canalizar seu Busoshoku Haki, Garp concentra uma força esmagadora capaz de romper até as defesas mais resistentes. Com um movimento brutal, ele gera um impacto tão poderoso que atinge todos os inimigos na área ao redor. Isso também reduz a velocidade de movimento dos inimigos afetados em [debuff:140] por [sec:2 segundos]. Em instâncias PvP, Garp avança para a frente em alta velocidade, evitando obstáculos antes de executar seu ataque.",
    },
                en =
    Ferreiro = {
                "By channeling his 'Busoshoku Haki', Garp focuses a crushing force capable of breaking through even the toughest defenses. With a brutal motion, he generates an impact so powerful that it strikes all enemies within the surrounding area. This also reduces the movement speed of affected enemies by [debuff:140] for [sec:2 seconds]. In PvP instances, Garp dashes forward at high speed, avoiding obstacles before executing his attack.",
        label = "Ferreiro",
                es =
        levels = {
                "Al canalizar su Haki de Armamento, Garp concentra una fuerza aplastante capaz de romper incluso las defensas más resistentes. Con un movimiento brutal, genera un impacto tan poderoso que golpea a todos los enemigos que se encuentran en los alrededores. Esto también reduce la velocidad de movimiento de los enemigos afectados en [debuff:140] durante [sec:2 segundos]. En las instancias PvP, Garp se lanza hacia adelante a gran velocidad, esquivando obstáculos antes de ejecutar su ataque.",
            { image = "Ferreiro_lvl1.png", stats = { "Descrição do nível 1" } },
                pl =
            { image = "Ferreiro_lvl2.png", stats = { "Descrição do nível 2" } },
                "Używając swojego \"Busoshoku Haki\", Garp skupia niszczącą moc, która jest w stanie złamać nawet największą obronę. Brutalnym ruchem generuje uderzenie tak potężne, że uderza wszystkich wrogów w okolicy. Umiejętność redukuje prędkość ruchu trafionych przeciwników o [debuff:140] na [sec:2 sekundy]. W instancjach PvP, Garp szarżuje do przodu z zawrotną prędkością, unikając przeszkód by wykonać swój atak.",
            { 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" } },
         },
         },
        ["Haoshoku Haki"] = {
    },
            icon = "Haoshoku Haki-Icon.png",
    Cozinha = {
            level = 70,
        label = "Cozinha",
             energy = -100,
        levels = {
            cooldown = 40,
             { image = "Cozinha_lvl1.png", stats = { "Descrição do nível 1" } },
            video = "Haoshoku Haki-Video.mp4",
             { image = "Cozinha_lvl2.png", stats = { "Descrição do nível 2" } },
            desc = {
            { image = "Cozinha_lvl3.png", stats = { "Descrição do nível 3" } },
                pt =
            { image = "Cozinha_lvl4.png", stats = { "Descrição do nível 4" } },
                "Garp desperta seu Haoshoku Haki e canaliza sua energia avassaladora em seu punho. Uma aura negra e radiante envolve sua mão, fazendo o ar ao seu redor tremer sob a pressão esmagadora. Quando essa habilidade é ativada, após [sec:1,8 segundos], Garp pode usar as habilidades Galaxy Impact ou Galaxy Divide.",
            { image = "Cozinhalvl5.gif", stats = { "Descrição do nível 5" } },
                en =
                "Garp awakens his Haoshoku Haki and channels its overwhelming energy into his fist. A dark, radiant aura envelops his hand, making the air around him tremble under the crushing pressure. When this ability is activated, after [sec:1,8 seconds], Garp can use the skills Galaxy Impact or Galaxy Divide.",
                es =
                "Garp despierta su Haki del Conquistador y canaliza su abrumadora energía en su puño. Un aura oscura y radiante envuelve su mano, haciendo que el aire a su alrededor tiemble bajo la presión aplastante. Cuando se activa esta habilidad, tras [sec:1,8 segundos], Garp puede usar las habilidades «Galaxy Impact» o «Galaxy Divide».",
                pl =
                "Garp budzi swoje Haoshoku Haki i koncentruje swoją potężną energię w pięści. Ciemna, promienna aura otacza jego dłoń, sprawiając, że powietrze wokół niego drży pod miażdżącym ciśnieniem. Po aktywacji tej umiejętności, [sec:1,8 sekundy] później, Garp może użyć umiejętności Galaxy Impact albo Galaxy Divide.",
            },
            suborder = { "Galaxy Divide", "Galaxy Impact", "Fist of Love (Passive)" },
             subskills = {
                ["Galaxy Divide"] = {
                    icon = "Haoshoku Haki-Galaxy Divide-Icon.png",
                    level = "70",
                    powerpve = 100,
                    powerpvp = 80,
                    cooldown = 20,
                    video = "Haoshoku Haki-Galaxy Divide-Video.mp4",
                    desc = {
                        pt =
                        "Com os punhos completamente revestidos em Haki, Garp concentra força pura em seus braços e desfere um poderoso soco. O impacto destroi tudo em seu caminho e causando uma enorme quantidade de dano em área. Inimigos atingidos ficam com a velocidade de movimento reduzida em [debuff:100] por [sec:4 segundos].",
                        en =
                        "With his fists fully coated in Haki, Garp channels raw power into his arms and unleashes a mighty punch. The impact generates a shockwave that travels in a straight line, tearing through everything in its path and dealing massive area damage. Enemies hit have their movement speed reduced by [debuff:100] for [sec:4 seconds].",
                        es =
                        "Con los puños completamente recubiertos de Haki, Garp canaliza su poder bruto en los brazos y desata un poderoso puñetazo. El impacto genera una onda expansiva que viaja en línea recta, arrasando con todo a su paso e infligiendo un daño masivo en el área. Los enemigos golpeados ven reducida su velocidad de movimiento en [debuff:100] durante [sec:4 segundos].",
                        pl =
                        "Z pięściami pokrytymi Haki, Garp koncentruje dziką moc w swoich rękach, by wyprowadzić potężne uderzenie pięścią. Impakt generuje falę uderzeniową która przemieszcza się w linii prostej, niszcząc wszystko na swojej drodze, oraz zadając ogromne obrażenia przeciwnikom. Trafieni przeciwnicy mają obniżoną prędkość ruchu o [debuff:100] na [sec:4 sekundy].",
                    },
                },
                ["Galaxy Impact"] = {
                    icon = "Haoshoku Haki-Galaxy Impact-Icon.png",
                    level = "90",
                    powerpve = 150,
                    powerpvp = 100,
                    cooldown = 100,
                    video = "Haoshoku Haki-Galaxy Impact-Video.mp4",
                    desc = {
                        pt =
                        "Com seus punhos transbordando Haki e energia, Garp ergue o braço antes de esmagá-lo contra o chão com força titânica. O impacto desencadeia uma explosão colossal que se espalha a partir do ponto de colisão, destruindo tudo ao redor e causando uma quantidade massiva de dano em área, reduzindo a velocidade de movimento dos inimigos em [debuff:100] por [sec:4 segundos]. Em instâncias PvE, os inimigos são atordoados por [sec:3 segundos].",
                        en =
                        "With his fists overflowing with Haki and raw power, Garp raises his arm and slams it into the ground with titanic force. The impact unleashes a colossal explosion that spreads outward from the point of collision, destroying everything around and dealing massive area damage, reducing enemy movement speed by [debuff:100] for [sec:4 seconds]. In PvE instances, enemies are stunned for [sec:3 seconds].",
                        es =
                        "Con los puños rebosantes de Haki y fuerza bruta, Garp levanta el brazo y lo golpea contra el suelo con una fuerza titánica. El impacto desata una explosión colosal que se propaga desde el punto de colisión, destruyendo todo a su alrededor e infligiendo un daño de área masivo, lo que reduce la velocidad de movimiento del enemigo en [debuff:100] durante [sec:4 segundos]. En las instancias PvE, los enemigos quedan aturdidos durante [sec:3 segundos].",
                        pl =
                        "Z pięściami pełnymi Haki i surowej mocy, Garp wznosi rękę, by następnie uderzyć nią w ziemię z tytaniczą mocą. Impakt uwalnia kolosalną eksplozję która rozprzestrzenia się od punktu kolizji, niszcząc wszystko wokół, oraz zadając ogromne obrażenia obszarowe, redukując prędkość ruchu o [debuff:100] na [sec:4 sekundy]. W instancjach PvE, przeciwnicy zostaną ogłuszeni na [sec:3 sekundy].",
                    },
                },
                ["Fist of Love (Passive)"] = {
                    inherit_from = "Fist of Love (Passive)",
                    icon = "Fist of Love (Passive)-Icon.png",
                    level = "50",
                    cooldown = 5,
                    video = "Fist of Love (Passive).mp4",
                    desc = {
                        pt =
                        "Enquanto os punhos de Garp estiverem revestidos por Haki, 30% do poder de todas as suas habilidades é convertido em dano verdadeiro, ignorando completamente a defesa dos inimigos.",
                        en =
                        "While Garp's fists are coated in Haki, 30% of the power of all his abilities is converted into true damage, completely ignoring enemy defenses.",
                        es =
                        "Mientras los puños de Garp están recubiertos de Haki, el 30% del poder de todas sus habilidades se convierte en daño verdadero, ignorando por completo las defensas del enemigo.",
                        pl =
                        "Podczas gdy pięści Garpa są pokryte Haki, 30% mocy jego wszystkich umiejętności jest zamieniony w true damage, kompletnie ignorując obronę przeciwnika.",
                    },
                }
            },
         },
         },
        ["Fist of Love (Passive)"] = {
            icon = "Fist of Love (Passive)-Icon.png",
            level = 50,
            cooldown = 5,
            video = "Fist of Love (Passive).mp4",
            desc = {
                pt =
                "Enquanto os punhos de Garp estiverem revestidos por Haki, 30% do poder de todas as suas habilidades é convertido em dano verdadeiro, ignorando completamente a defesa dos inimigos.",
                en =
                "While Garp's fists are coated in Haki, 30% of the power of all his abilities is converted into true damage, completely ignoring enemy defenses.",
                es =
                "Mientras los puños de Garp están recubiertos de Haki, el 30% del poder de todas sus habilidades se convierte en daño verdadero, ignorando por completo las defensas del enemigo.",
                pl =
                "Podczas gdy pięści Garpa są pokryte Haki, 30% mocy jego wszystkich umiejętności jest zamieniony w true damage, kompletnie ignorując obronę przeciwnika.",
            },
        }
     },
     },
}
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


    skins = {
return p
        {
            name = "Monkey D. Garp",
            sprite = "Garp-sprite.png",
            tooltip = {
                pt = "Garp - Padrão",
                en = "Standard Garp",
                es = "Garp Estándar",
                pl = "Standardowy Garp",
            },
            tile = "normal",
            tile_x = 67,
            tile_y = 43,
        }
    }
}
return M

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