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

De Wiki Gla
Ir para navegação Ir para pesquisar
m
m
 
(10 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
-- Módulo:Tony_Tony_Chopper_ts — dados do personagem
--[[
local M = {
Module:Guild – Dados dos componentes da base de guild.
    tier = "Diamante",
Uso: {{#invoke:Guild|main|n=Ferreiro}}
    tags = { "Suporte", "Lutador", "Chapeu de Palha", "Fruta do Diabo" },
Predefinição: {{Guild|n=Ferreiro}}
]]


    -- Skills fixas (sempre aparecem, independente da forma)
local p = {}
    order = { "Change Form", "Guard Point", "Kaku Hou Elf", "Monster Point", "Walk Point" },


     -- Skills específicas de cada forma (serão inseridas dinamicamente no order baseado na forma atual)
local function normalize(name)
     forms = {
    if not name or name == "" then return nil end
         ["Brain Point"] = {
     local s = mw.text.trim(name):lower()
             order = { "Torino Flask", "Hiluluk Sakura Medicine", "Doctorine Medicine" },
    s = mw.ustring.gsub(s, "ó", "o")
             skills = {
    s = mw.ustring.gsub(s, "ã", "a")
                -- Serão preenchidas com as informações das prints
    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" } },
         },
         },
        ["Kung Fu Point"] = {
    },
            order = { "Kung Fu Crane Kick", "Kung Fu Spin Kick", "Kung Fu Acrobacy" },
    ["Salão Principal"] = {
            skills = {
        label = "Salão Principal",
                ["Kung Fu Crane Kick"] = {
        levels = {
                    icon = "",
            { image = "SalaoPrincipal_lvl1.png", stats = { "Descrição do nível 1" } },
                    level = "",
            { image = "SalaoPrincipal_lvl2.png", stats = { "Descrição do nível 2" } },
                    cooldown = 2,
            { image = "SalaoPrincipal_lvl3.png", stats = { "Descrição do nível 3" } },
                    powerpve = 15,
            { image = "SalaoPrincipal_lvl4.png", stats = { "Descrição do nível 4" } },
                    powerpvp = 10,
            { image = "SalaoPrincipal_lvl5.png", stats = { "Descrição do nível 5" } },
                    video = "",
                    desc = {
                        pt = "Chopper dá um chute poderoso no oponente.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Kung Fu Spin Kick"] = {
                    icon = "",
                    level = "",
                    cooldown = 12,
                    powerpve = 32,
                    powerpvp = 20,
                    video = "",
                    desc = {
                        pt =
                        "Chopper dá um pequeno salto para frente e, enquanto está no ar, gira as pernas, chutando o oponente e empurrando inimigos jogadores.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Kung Fu Acrobacy"] = {
                    icon = "",
                    level = "",
                    cooldown = 20,
                    video = "",
                    desc = {
                        pt =
                        "Com um movimento versátil, Chopper pula para frente para evitar ataques ou perseguir seu oponente.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                }
            }
         },
         },
        ["Heavy Point"] = {
            order = { "Heavy Punch", "Heavy Gong", "Mega Gong" },
            skills = {
                ["Heavy Punch"] = {
                    icon = "",
                    level = "",
                    cooldown = 3,
                    powerpve = 22.5,
                    powerpvp = 12.5,
                    video = "",
                    desc = {
                        pt = "Chopper dá um soco básico no rosto do oponente.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Heavy Gong"] = {
                    icon = "",
                    level = "",
                    cooldown = 12,
                    powerpve = 35,
                    powerpvp = 24,
                    video = "",
                    desc = {
                        pt = "Chopper dá um poderoso soco em área frontal.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Mega Gong"] = {
                    icon = "",
                    level = "",
                    cooldown = 25,
                    powerpve = 50,
                    powerpvp = 26,
                    video = "",
                    desc = {
                        pt =
                        "Chopper junta as mãos e esmaga o chão, causando dano em uma área frontal e reduzindo a velocidade dos inimigos em {{ms:100}} por {{sec:4 segundos}}.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                }
            }
        }
     },
     },
 
     Quartos = {
     skills = {
         label = "Quartos",
         ["Change Form"] = {
        levels = {
             icon = "Changeform-icon.png",
             { image = "Quartos_lvl1.png", stats = { "Descrição do nível 1" } },
             level = "",
             { image = "Quartos_lvl2.png", stats = { "Descrição do nível 2" } },
             cooldown = 1,
             { image = "Quartos_lvl3.png", stats = { "Descrição do nível 3" } },
             form_switch = true, -- Indica que esta skill alterna entre formas (não usa back)
             { image = "Quartos_lvl4.png", stats = { "Descrição do nível 4" } },
             desc = {
             { image = "Quartos_lvl5.png", stats = { "Descrição do nível 5" } },
                pt =
        },
                "Chopper aprimorou completamente todas as suas transformações, tornando-se capaz de se transformar livremente nas formas Kung Fu Point, Heavy Point e Brain Point. Ao utilizar o Kung Fu Point, Chopper torna-se proficiente em Kung Fu, sendo capaz de realizar movimentos versáteis e utilizar novas habilidades, além de ganhar 40 de velocidade de movimento bônus. Ao utilizar o Heavy Point, Chopper perde praticamente todas as características de uma rena. Essa forma também lhe confere 20 de velocidade de movimento bônus e 84% de defesa bônus, atributos muito úteis em uma batalha.",
    },
                en = "",
    ["Sala de Guerra"] = {
                es = "",
        label = "Sala de Guerra",
                pl = ""
        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" } },
         },
         },
 
    },
         ["Guard Point"] = {
    Treinamento = {
             icon = "Guardpoint-icon.png",
         label = "Treinamento",
             level = "",
        levels = {
            cooldown = 30,
             { image = "Treinamento_lvl1.png", stats = { "Descrição do nível 1" } },
             desc = {
             { image = "Treinamento_lvl2.png", stats = { "Descrição do nível 2" } },
                pt =
             { image = "Treinamento_lvl3.png", stats = { "Descrição do nível 3" } },
                "Os pelos do Chopper crescem e cobrem seu corpo inteiro, deixando apenas a cabeça e as pernas visíveis. Com isso, Chopper é capaz de resistir a ataques externos como se possuísse um escudo impenetrável e ainda protege os aliados, deixando-os invulneráveis por {{sec:3 segundos}}.",
            { image = "Treinamento_lvl4.png", stats = { "Descrição do nível 4" } },
                en = "",
            { image = "Treinamento_lvl5.png", stats = { "Descrição do nível 5" } },
                es = "",
                pl = ""
            }
         },
         },
 
    },
         ["Kaku Hou Elf"] = {
    Ferreiro = {
             icon = "Kakuhouelf-icon.png",
         label = "Ferreiro",
            level = "",
        levels = {
             cooldown = 40,
             { image = "Ferreiro_lvl1.png", stats = { "Descrição do nível 1" } },
            powerpve = 70,
             { image = "Ferreiro_lvl2.png", stats = { "Descrição do nível 2" } },
             powerpvp = 20,
             { 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" } },
                "Chopper se lança para fora do chão (após cavar abaixo da superfície) e voa com os chifres em direção à área selecionada, causando dano, reduzindo a velocidade dos inimigos em {{ms:80}} por {{sec:4 segundos}} e também reduzindo seu ataque em {{debuff:15%}} por {{sec:8 segundos}}. Essa técnica deixa túneis no chão por {{sec:12 segundos}}, que podem ser usados por Chopper e seus aliados. Os túneis podem ser desativados ao pressionar a habilidade novamente.",
                en = "",
                es = "",
                pl = ""
            }
         },
         },
 
    },
        ["Monster Point"] = {
    Cozinha = {
            icon = "Monsterpoint-icon.png",
        label = "Cozinha",
            level = "",
        levels = {
            cooldown = 200,
             { image = "Cozinha_lvl1.png", stats = { "Descrição do nível 1" } },
             desc = {
             { image = "Cozinha_lvl2.png", stats = { "Descrição do nível 2" } },
                pt =
            { image = "Cozinha_lvl3.png", stats = { "Descrição do nível 3" } },
                "Monster Point agora é a única forma que Chopper precisa de uma Rumble Ball para ativar e, ao consumir uma, ele pode permanecer transformado por {{sec:25 segundos}}. Essa transformação concede a Chopper um grande aumento em seus atributos físicos. Seu corpo se torna incrivelmente denso e resistente, recebendo {{def:40%}} de redução de dano e também um bônus de {{ms:40}} de velocidade. Após voltar ao normal, Chopper fica exausto e incapaz de se mover, e quando está próximo de um boss, recebe {{def:95%}} de redução de dano. A duração da exaustão é de {{sec:4 segundos}} em instâncias PvE e {{sec:10 segundos}} em instâncias PvP.",
            { image = "Cozinha_lvl4.png", stats = { "Descrição do nível 4" } },
                en = "",
            { image = "Cozinhalvl5.gif", stats = { "Descrição do nível 5" } },
                es = "",
                pl = ""
            },
            -- Monster Point tem subskills normais (com back no final)
            suborder = { "Koku tei Palm", "Koku tei Stomp", "Koku tei Rampage", "Monster Point" },
             subskills = {
                ["Koku tei Palm"] = {
                    icon = "Kokuteipalm-icon.png",
                    level = "",
                    cooldown = 5,
                    powerpve = 32,
                    video = "",
                    desc = {
                        pt = "Monster Chopper bate com força em seus adversários com a mão estendida.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Koku tei Stomp"] = {
                    icon = "Kokuteistomp-icon.png",
                    level = "",
                    cooldown = 12,
                    powerpve = 40,
                    video = "",
                    desc = {
                        pt =
                        "Monster Chopper pisa com força no chão, causando dano e reduzindo a velocidade dos inimigos ao seu redor em {{ms:60}} por {{sec:8 segundos}}. Em instâncias PvE, inimigos atingidos pelo impacto também têm sua defesa reduzida em {{debuff:40%}} por {{sec:8 segundos}}.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Koku tei Rampage"] = {
                    icon = "Kokuteirampage-icon.png",
                    level = "",
                    cooldown = 35,
                    powerpve = 15,
                    powerpvp = 9,
                    video = "",
                    desc = {
                        pt =
                        "Monster Chopper bate no chão com muita força por 7 vezes, causando dano em uma grande área ao redor dele. Inimigos atingidos ficam com a velocidade de movimento reduzida em {{ms:90}} e sofrem redução de ataque de {{debuff:20%}} por {{sec:8 segundos}}.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                },
                ["Monster Point"] = {
                    icon = "Monsterpoint-back-icon.png",
                    level = "",
                    cooldown = 1,
                    back = true, -- Volta à forma anterior
                    desc = {
                        pt = "Chopper volta à forma anterior.",
                        en = "",
                        es = "",
                        pl = ""
                    }
                }
            }
         },
         },
    },
}


        ["Walk Point"] = {
function p.getComponent(name)
            icon = "Walkpoint-icon.png",
    local key = map[normalize(name)]
            level = "",
    if not key then return nil end
            cooldown = 5,
    return data[key]
            desc = {
end
                pt =
                "Esta é uma forma em que o Chopper se transforma em uma rena comum, útil para fazer viagens a pé. Nesta forma, ele ganha 140 de velocidade de movimento bônus. Esta forma não pode ser utilizada em batalha.",
                en = "",
                es = "",
                pl = ""
            }
        }
    },


     -- Skills específicas de Brain Point (serão movidas para forms["Brain Point"].skills)
function p.main(frame)
     -- Estas serão adicionadas quando você enviar as informações completas
    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 M
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