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

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
 
(12 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
-- Módulo:Bartholomew Kuma
--[[
Module:Guild – Dados dos componentes da base de guild.
Uso: {{#invoke:Guild|main|n=Ferreiro}}
Predefinição: {{Guild|n=Ferreiro}}
]]
 
local p = {}
local p = {}


p.name = "Bartholomew Kuma"
local function normalize(name)
p.tier = "Diamante"
    if not name or name == "" then return nil end
p.tags = {
    local s = mw.text.trim(name):lower()
    "Tanque",
    s = mw.ustring.gsub(s, "ó", "o")
     "Especialista",
    s = mw.ustring.gsub(s, "ã", "a")
     "Shichibukai",
     s = mw.ustring.gsub(s, "á", "a")
     "Realeza"
     s = mw.ustring.gsub(s, " ", "")
}
     return s
end


p.order = {
local map = {
     "Heavy Paw",
     designer = "Designer",
     "Pad Hou",
    cofre = "Cofre",
     "Tsuppari Pad Hou",
     salaoprincipal = "Salão Principal",
     "Reflective Translocation",
     salao = "Salão Principal",
     "Vanish",
     quartos = "Quartos",
     "Curative Paw",
     saladeguerra = "Sala de Guerra",
     "Reflective Paw",
     salaguerra = "Sala de Guerra",
     "Vegapunk Laser",
     treinamento = "Treinamento",
     "Ursus Shock"
     ferreiro = "Ferreiro",
     cozinha = "Cozinha",
}
}


p.skills = {
local data = {
     ["Heavy Paw"] = {
     Designer = {
         icon = "Heavy Paw-Icon.png",
         label = "Designer",
         powerpve = 15,
         levels = {
        powerpvp = 9,
            { 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" } },
        cooldown = 2,
            { 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" } },
        video = "Heavy Paw-Video.mp4",
             { 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" } },
        desc = {
             { 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" } },
             pt =
             { 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" } },
            "Kuma acerta o alvo com a pata da sua mão, causando dano.",
             en =
            "Kuma strikes his target with the paw of his hand, dealing damage.",
            es =
            "Kuma golpea a su objetivo con la pata de su mano, infligiendo daño.",
             pl =
            "Kuma uderza swój cel łapą zadając obrażenia.",
        },
        weapon = {
         },
         },
     },
     },
     ["Pad Hou"] = {
     Cofre = {
         icon = "Pad Hou-Icon.png",
         label = "Cofre",
         powerpve = 26,
         levels = {
        powerpvp = 14,
            { image = "Cofre_lvl1.png", stats = { "10% de bônus pra aliança" } },
        cooldown = 10,
            { image = "Cofre_lvl2.png", stats = { "+ 100 espaços extra no cofre", "25% de bônus pra aliança" } },
        video = "Pad Hou-Video.mp4",
             { image = "Cofre_lvl3.png", stats = { "+ 200 espaços extra no cofre", "45% de bônus pra aliança" } },
        desc = {
             { image = "Cofre_lvl4.png", stats = { "+ 300 espaços extra no cofre", "75% de bônus pra aliança" } },
             pt =
             { image = "Cofre_lvl5.png", stats = { "+ 400 espaços extra no cofre", "100% de bônus pra aliança" } },
            "Fazendo uso da habilidade da Nikyu Nikyu, Kuma foca o ar em suas patas e o lança rapidamente explodindo e machucando seu alvo e todos em volta dele.",
             en =
            "Making use of the Nikyu Nikyu ability, Kuma focuses air into his paws and launches it fast enough that explode and hurt his target and enemies around it.",
            es =
            "Haciendo uso de la habilidad Nikyu Nikyu, Kuma concentra el aire en sus patas y lo lanza lo suficientemente rápido como para explotar y herir a su objetivo y a los enemigos que lo rodean.",
             pl =
            "Kuma używa swoich umiejętności Nikyu Nikyu, aby zebrać powietrze w łapach i następnie wypuścić je tak szybko, że wybucha zadając obrażenia przeciwnikom.",
        },
        weapon = {
         },
         },
     },
     },
     ["Tsuppari Pad Hou"] = {
     ["Salão Principal"] = {
         icon = "Tsuppari Pad Hou-Icon.png",
         label = "Salão Principal",
         powerpve = 8.5,
         levels = {
        powerpvp = 6,
            { image = "SalaoPrincipal_lvl1.png", stats = { "Descrição do nível 1" } },
        cooldown = 18,
            { image = "SalaoPrincipal_lvl2.png", stats = { "Descrição do nível 2" } },
        video = "Tsuppari Pad Hou-Video.mp4",
             { image = "SalaoPrincipal_lvl3.png", stats = { "Descrição do nível 3" } },
        desc = {
             { image = "SalaoPrincipal_lvl4.png", stats = { "Descrição do nível 4" } },
             pt =
             { image = "SalaoPrincipal_lvl5.png", stats = { "Descrição do nível 5" } },
            "Em uma posição de Sumo, Kuma concentra grandes quantidades de ar em suas patas, para então lançar vários Pad Hou repetidamente, acertando os inimigos até 5 vezes e reduzindo em [debuff:150] a velocidade de movimento por [sec:1.5 segundos].",
             en =
            "In a Sumo stance, Kuma focuses amounts of air into his paws, then he launch several Pad Hou repeatedly. Hits 5 times and reduces enemy's movement speed by [debuff:150] for [sec:1.5 seconds].",
             es =
            "En una postura de Sumo, Kuma enfoca cantidades de aire en sus patas, luego lanza varios Pad Hou repetidamente. Golpea 5 veces y reduce la velocidad de movimiento del enemigo en [debuff:150] durante [sec:1.5 segundos].",
            pl =
            "Po przybraniu postawy Sumo, Kuma skupia większą ilość powietrza w swoich łapach, następnie wysyła on przed siebie kilka Pad Hou. Uderza 5 razy i redukuje prędkość ruchu przeciwnika o [debuff:150] na [sec:1.5 sekundy].",
        },
        weapon = {
         },
         },
     },
     },
     ["Reflective Translocation"] = {
     Quartos = {
        icon = "Reflective Translocation-Icon.png",
        label = "Quartos",
        cooldown = 1,
        levels = {
        video = "Reflective Translocation-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" } },
            "Kuma repele-se para teletransportar-se para frente.",
             { image = "Quartos_lvl4.png", stats = { "Descrição do nível 4" } },
             en =
             { image = "Quartos_lvl5.png", stats = { "Descrição do nível 5" } },
            "Kuma repels himself to teleport further ahead.",
             es =
            "Kuma se repele a sí mismo para teletransportarse más adelante.",
            pl =
            "Kuma wystrzeliwuje się, aby się przenieść do przodu.",
        },
        weapon = {
         },
         },
     },
     },
     ["Vanish"] = {
     ["Sala de Guerra"] = {
         icon = "Vanish-Icon.png",
         label = "Sala de Guerra",
         powerpve = 60,
         levels = {
        powerpvp = 10,
            { image = "SalaDeGuerra_lvl1.png", stats = { "Descrição do nível 1" } },
        cooldown = 1,
            { image = "SalaDeGuerra_lvl2.png", stats = { "Descrição do nível 2" } },
        video = "Vanish-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" } },
            "Kuma usa sua pata para refletir o seu alvo para o céu, que parece desaparecer. A vítima desta técnica recebe uma redução de ataque de [atk:400%] por [sec:4 segundos] e então cai em uma posição aleatória ou, se não for um jogador, na nova posição alvo de Kuma. Se a vítima for Boss, ele terá seu ataque reduzido em [atk:60%] por [sec:4 segundos], enquanto o Kuma receberá [def:30%] de redução de dano por [sec:1 segundo]. Finalmente, os inimigos fracos serão derrotados ao aterrissar, enquanto os subchefes sofrerão [hp:25%] de dano com base em sua saúde máxima. Essa técnica também causará dano a inimigos próximos ao destino da vítima.",
             en =
            "Kuma uses his paw to send the target flying into the sky, which appears to vanish. The victim of this technique receives a [atk:400%] attack reduction for [sec:4 seconds] and then lands in a random position or, if it's not a player, in Kuma's new target position. If the victim is a Boss, it will have its attack reduced by [atk:60%] by [sec:4 seconds] instead and Kuma receive [def:30%] damage reduction for [sec:1 second]. Finally, weak enemies will be defeated upon landing, while sub-bosses will take [hp:25%] damage based on their maximum health. This technique will also deal damage to enemies that are nearby the victim's destination.",
             es =
            "Kuma usa su pata para enviar al objetivo volando hacia el cielo, que parece desaparecer. La víctima de esta técnica recibe un [atk:400%] de reducción de ataque durante [sec:4 segundos] y luego aterriza en una posición aleatoria o, si el oponente no es un jugador, en la nueva posición objetivo de Kuma. Si la víctima es un jefe, verá reducido su ataque en un [atk:60%] durante [sec:4 segundos] en su lugar, y Kuma reciben [def:30%] de reducción de daño durante [sec:1 segundo]. Finalmente, los enemigos débiles serán derrotados al aterrizar, mientras que los subjefes recibirán [hp:25%] de daño según su salud máxima. Esta técnica también infligirá daño a los enemigos que estén cerca del destino de la víctima.",
            pl =
            "Kuma używa swoje łapy, by wysłać przeciwnika w powietrze, co z początku wygląda jak zniknięcie. Przeciwnik tej techniki otrzyma [atk:400%] redukcji obrażeń na [sec:4 sekundy], następnie ląduje na losowym obszarze, lub jeżeli nie jest to gracz, na następnym celu Kumy. Jeżeli przeciwnik jest Bossem, obrażenia zredukowane będą jedynie o [atk:60%] na [sec:4 sekundy], przy czym Kuma otrzymuje [def:30%] mniej obrażeń na [sec:1 sekundę]. Dodatkowo, słabi przeciwnicy zostaną pokonani po spadnięciu, podczas gdy sub-bossy otrzymają [hp:25%] obrażeń bazujących na ich maksymalnym zdrowiu. Ta technika zada również obrażenia przeciwnikom w pobliżu miejsca lądowania.",
        },
        weapon = {
         },
         },
     },
     },
     ["Curative Paw"] = {
     Treinamento = {
         icon = "Curative Paw-Icon.png",
         label = "Treinamento",
         powerpve = 35,
         levels = {
        cooldown = 50,
            { image = "Treinamento_lvl1.png", stats = { "Descrição do nível 1" } },
        video = "Curative Paw-Video.mp4",
             { image = "Treinamento_lvl2.png", stats = { "Descrição do nível 2" } },
        desc = {
             { image = "Treinamento_lvl3.png", stats = { "Descrição do nível 3" } },
             pt =
             { image = "Treinamento_lvl4.png", stats = { "Descrição do nível 4" } },
            "Kuma pode usar os poderes da sua Fruta do Diabo para repelir a dor e a fadiga do corpo do aliado com a vida mais baixa, curando-o. Essas sensações são então manifestadas em formato de uma bolha vermelha, que se assemelha a uma pata, e ficará no local durante [sec:8 segundos]. Inimigos que entrarem em contato com a bolha receberão dano e terão a velocidade de movimento reduzida em [debuff:100] por [sec:1 segundo].",
             { image = "Treinamento_lvl5.png", stats = { "Descrição do nível 5" } },
             en =
            "Kuma is able to use his powers to push out the pain and fatigue from the body of his lowest health ally, healing him. These sensations are then manifested into a red bubble resembling a paw, which will stay in the field for [sec:8 seconds]. Any enemy that touches it will receive damage and has the movement speed reduced by [debuff:100] for [sec:1 second].",
             es =
            "Kuma puede usar sus poderes para expulsar el dolor y la fatiga del cuerpo de su aliado con menos salud, curándolo. Estas sensaciones se manifiestan en forma de una burbuja roja con forma de zarpa, que permanecerá en el campo durante [sec:8 segundos]. Cualquier enemigo que la toque recibirá daño y verá reducida su velocidad de movimiento en [debuff:100] durante [sec:1 segundo].",
             pl =
            "Kuma jest w stanie użyć swoich mocy, by wypchnąć ból i zmęczenie z ciała sojusznika o najniższym poziomie zdrowia, lecząc go. Te odczucia zostaną zamienione w czerwoną bańkę, która wygląda jak łapa, będzie się ona utrzymywała przez [sec:8 sekund]. Każdy przeciwnik który dotknie tę bańkę otrzyma obrażenia, wraz ze spowolnieniem o mocy [debuff:100] na [sec:1 sekundę].",
        },
        weapon = {
         },
         },
     },
     },
     ["Reflective Paw"] = {
     Ferreiro = {
         icon = "Reflective Paw-Icon.png",
         label = "Ferreiro",
         cooldown = 30,
         levels = {
        video = "Reflective Paw-Video.mp4",
            { image = "Ferreiro_lvl1.png", stats = { "Descrição do nível 1" } },
        desc = {
             { image = "Ferreiro_lvl2.png", stats = { "Descrição do nível 2" } },
             pt =
             { image = "Ferreiro_lvl3.png", stats = { "Descrição do nível 3" } },
            "Kuma usa a habilidade da Nikyu Nikyu para negar todo dano recebido e refleti-lo de volta ao atacante por [sec:3.5 segundos]. O dano refletido por esta técnica é limitado a até [hp:15%] da vida máxima do Kuma em cada inimigo.",
             { image = "Ferreiro_lvl4.png", stats = { "Descrição do nível 4" } },
             en =
            { image = "Ferreiro_lvl5.png", stats = { "Descrição do nível 5" } },
            "Kuma uses his Nikyu Nikyu ability to negate any damage taken and reflect it back at the attackers for [sec:3.5 seconds]. The damage reflected by this ability is limited to [hp:15%] of Kuma's max health on each enemy.",
            es =
            "Kuma utiliza su habilidad Nikyu Nikyu para anular cualquier daño recibido y reflejarlo hacia los atacantes durante [sec:3.5 segundos]. El daño reflejado por esta habilidad se limita al [hp:15%] de la vida máxima de Kuma en cada enemigo.",
             pl =
            "Kuma używa swojej mocy Nikyu Nikyu by zniwelować nadchodzące obrażenia, następnie odbija je w przeciwników przez [sec:3.5 sekundy]. Odbite obrażenia tej umiejętności są ograniczone do [hp:15%] maksymalnego zdrowia Kumy na każdego przeciwnika.",
        },
        weapon = {
         },
         },
     },
     },
     ["Vegapunk Laser"] = {
     Cozinha = {
         icon = "Vegapunk Laser-Icon.png",
         label = "Cozinha",
         powerpve = 70,
         levels = {
        powerpvp = 30,
            { image = "Cozinha_lvl1.png", stats = { "Descrição do nível 1" } },
        cooldown = 50,
            { image = "Cozinha_lvl2.png", stats = { "Descrição do nível 2" } },
        video = "Vegapunk Laser-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" } },
            "Usando uma arma criada pelo Dr. Vegapunk, Kuma lança um poderoso raio a partir de sua boca, capaz de derreter até aço. Esta técnica também imobiliza todos inimigos atingidos durante [sec:1.5 segundos].",
             en =
            "A weapon designed by Dr. Vegapunk, Kuma is able to launch powerful beam through his mouth that are even able to melt steel. Damages and stuns all enemies in front of him for [sec:1.5 seconds].",
             es =
            "Un arma diseñada por el Dr. Vegapunk, Kuma puede lanzar un poderoso rayo a través de su boca que incluso puede derretir acero. Daña y aturde a todos los enemigos frente a él durante [sec:1.5 segundos].",
            pl =
            "Broń stworzona przez Dr. Vegapunka, Kuma jest w stanie wystrzelić potężny laser ze swojej buzi, który jest w stanie stopić stal. Umiejętność rani i ogłusza wszystkich przeciwników przed nim na [sec:1.5 sekundy].",
        },
        weapon = {
         },
         },
     },
     },
    ["Ursus Shock"] = {
        icon = "Ursus Shock-Icon.png",
        powerpve = 100,
        powerpvp = 75,
        cooldown = 10,
        video = "Ursus Shock-Video.mp4",
        desc = {
            pt =
            "Essa é a habilidade mais mortal de Kuma. Com as duas mãos, Kuma foca a atmosfera mais próxima e a concentra. Quando termina, ele a segura em suas mãos e pode arremessá-la para explodir. A explosão gerada por esse ataque pode destruir uma ilha inteira. Reduz a velocidade de movimento do inimigo em [debuff:140] por [sec:2.9 segundos]. Kuma agora reduz o dano recebido em [def:15%] por [sec:3 segundos] ao usar essa técnica.",
            en =
            "This is Kuma's deadliest attack. With two hands, Kuma focuses the nearest atmosphere, and concentrates it. When he has finished, he holds it in his hands and can throw it to explode. The explosion generated by this attack can destroy a whole island. Reduces enemy's movement speed by [debuff:140] for [sec:2.9 seconds]. Kuma now reduces damage taken by [def:15%] for [sec:3 seconds] when using this technique.",
            es =
            "Este es el ataque más letal de Kuma. Con ambas manos, Kuma concentra la atmósfera más cercana y la comprime. Cuando termina, la sostiene en sus manos y puede lanzarla para que explote. La explosión generada por este ataque puede destruir una isla entera. Reduce la velocidad de movimiento del enemigo en [debuff:140] durante [sec:2.9 segundos]. Además, Kuma reduce el daño recibido en un [def:15%] durante [sec:3 segundos] al usar esta habilidad.",
            pl =
            "Najsilniejszy atak Kumy. Za pomocą obu rąk, skupia on pobliską atmosferę. Gdy skończy, będzie mógł ją trzymać w dłoniach, oraz rzucić nią, by eksplodowała. Eksplozja stworzona przez ten atak jest na tyle silne, że może zniszczyć całą wyspę. Umiejętność redukuje prędkość ruchu przeciwnika o [debuff:140] na [sec:2.9 sekundy]. Kuma redukuje otrzymane obrażenia o [def:15%] przez [sec:3 sekundy] podczas używania tej techniki.",
        },
        weapon = {
        },
    }
}
}
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
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