Módulo:Ability

Fonte: Dota 2 Wiki
Ir para: navegação, pesquisa

Documentação para Módulo:Ability Pular para o código ↴ [ editar | atualizar ]

Reality Rift icon.png
▶️ Planeshift.
A documentação deste módulo pode ser encontrada em Template:Ability.
Você pode ser redirecionado para uma wiki em outro idioma, se de não houver tradução disponível.


Dependencies

local symbol = require( 'Module:Symbol' )._main
local symbol_aghs = symbol({ 'Aghanim' })
local symbol_tal = symbol({ 'Talent' })
local getArgs = require( 'Module:Arguments' ).getArgs
local p = {}


-- Implements the mechanics symbols in the header.
function p.symbols(frame)
  local args = getArgs(frame, {
    wrappers = {
      'Template:Ability'
    }
  })
  local default_size = '20px'
  local symbols = {}
  if args['oncastproc'] then table.insert( symbols, symbol({ 'on cast proc', size=default_size }) ) end
  if args['rootdisables'] then table.insert( symbols, symbol({ 'root', args['rootdisables'], size=default_size }) ) end
  if args['illusionuse'] then table.insert( symbols, symbol({ 'illusion', args['illusionuse'], size=default_size }) ) end
  if args['disjointable'] then table.insert( symbols, symbol({ 'disjoint', args['disjointable'], size=default_size }) ) end
  if args['breakable'] then table.insert( symbols, symbol({ 'break', args['breakable'], size=default_size }) ) end
  if args['linkenblock'] then table.insert( symbols, symbol({ 'linken', args['linkenblock'], size=default_size }) ) end
  if args['bkbblock'] then table.insert( symbols, symbol({ 'bkb', args['bkbblock'], size=default_size }) ) end
  
  return table.concat( symbols, ' ' ) .. ' '
end

function p.target(frame)
  local args = getArgs(frame, {
    wrappers = {
      'Template:Ability'
    }
  })
  local target_dict = {
        ["No Target"] = '[[Habilidades#Sem alvo|Sem alvo]]',
        ["Target Unit"] = '[[Habilidades#Unidade-alvo|Unidade-alvo]]',
        ["Target Point"] = '[[Habilidades#Ponto-alvo|Ponto-alvo]]',
        ["Target Area"] = '[[Habilidades#Área-alvo|Área-alvo]]',
        ["Passive"] = '[[Habilidades#Passiva|Passiva]]',
        ["Aura"] = '[[Aura]]',                     
        ["Toggle"] = '[[Habilidades#Alternada|Alternada]]',
    }
    local target2_dict = {
        ["No Target"] = ' / [[Habilidades#Sem alvo|Sem alvo]]',
        ["No Target aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Sem alvo|<span style="color:#538028;">Sem alvo</span>]])',
        ["No Target tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Sem alvo|Sem alvo]])',
        ["Target Unit"] = ' / [[Habilidades#Unidade-alvo|Unidade-alvo]]',
        ["Target Unit aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Unidade-alvo|<span style="color:#538028;">Unidade-alvo</span>]])',
        ["Target Unit tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Unidade-alvo|Unidade-alvo]])',
        ["Target Point"] = ' / [[Habilidades#Ponto-alvo|Ponto-alvo]]',
        ["Target Point aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Ponto-alvo|<span style="color:#538028;">Ponto-alvo</span>]])',
        ["Target Point tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Ponto-alvo|Ponto-alvo]])',
        ["Target Area"] = ' / [[Habilidades#Área-alvo|Área-alvo]]',
        ["Target Area aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Área-alvo|<span style="color:#538028;">Área-alvo</span>]])',
        ["Target Area tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Área-alvo|Área-alvo]])',
        ["Passive"] = ' / [[Habilidades#Passiva|Passiva]]',
        ["Passive aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Passiva|<span style="color:#538028;">Passiva</span>]])',
        ["Passive tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Passiva|Passiva]])',
        ["Aura"] = ' / [[Aura]]',
        ["Aura aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Aura|<span style="color:#538028;">Aura</span>]])',
        ["Aura tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Aura]])',
        ["Channeled"] = ' / [[Canalização|Canalizada]]', -- Should always be 2nd.
        ["Channeled aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Canalização|<span style="color:#538028;">Canalizada</span>]])',
        ["Channeled tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Canalização|Canalizada]])',
        ["Autocast"] = ' / [[Habilidades#Uso automático|Uso automático]]', --Should always be 2nd.
        ["Autocast aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Uso automático|<span style="color:#538028;">Uso automático</span>]])',
        ["Autocast tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Uso automático|Uso automático]])',
        ["Toggle"] = ' / [[Habilidades#Alternada|Alternada]]',
        ["Toggle aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Alternada|<span style="color:#538028;">Alternada</span>]])',
        ["Toggle tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Alternada|Alternada]])',
        ["Target Unit / Channeled"] = ' / [[Habilidades#Unidade-alvo|Unidade-alvo]] / [[Canalização|Canalizada]]', --Specifically for travel boots/tp scrolls.
        ["Target Unit aghs / Channeled"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Unidade-alvo|<span style="color:#538028;">Unidade-alvo</span>]]) / [[Canalização|Canalizada]] ', --Specifically for Tricks of the Trade.
        ["Target Unit or Area aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Habilidades#Unidade-alvo|<span style="color:#538028;">Unidade-alvo</span>]] / [[Habilidades#Área-alvo|<span style="color:#538028;">Área-alvo</span>]]) ', --Specifically for Eclipse.
    ["Target Unit / Target Area tal"] = ' / [[Habilidades#Unidade-alvo|Unidade-alvo]]<br>(' .. symbol_tal .. '&nbsp;[[Habilidades#Área-alvo|Área-alvo]]) ', --Specifically for Living Armor.
        ["Vector"] = ' / [[Habilidades#Alvo Vetorial|Vetorial]]',
  }
  
  local target = target_dict[args['target']] or 'N/A'
  if args['target'] and args['target2'] then
    local target2 = target2_dict[args['target2']] or 'N/A'
    target = target .. ' ' .. target2
  end
  
  return target
end

function p.affects(frame)
  local args = getArgs(frame, {
    wrappers = {
      'Template:Ability'
    }
  })
  
  -- Implements the Arc Warden easteregg.
  zet_easteregg = function()
    if mw.title.getCurrentTitle().text == 'Arc Warden' then
      return 'The Self'
    else
      return 'A si'
    end
  end
  
  local affects_dict = {
        ["Heroes"] = '[[Heróis]]',
        ["Enemy Heroes"] = '[[Heróis|Heróis inimigos]]',
        ["Allied Heroes"] = '[[Heróis|Heróis aliados]]',
        ["Units"] = 'Units',
        ["Enemy Units"] = 'Unidades inimigas',
        ["Allied Units"] = 'Unidades aliadas',
        ["Self"] = zet_easteregg(),
        ["Enemies"] = 'Inimigos',
        ["Allies"] = 'Aliados',
        ["Trees"] = '[[Árvores]]',
        ["Pumpkin Basket"] = 'Cesta de Abóbora',
    }
    local affects2_dict = {
        ["Heroes"] = ' / [[Heróis]]',
        ["Heroes aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Heróis|<span style="color:#538028;">Heróis</span>]])',
        ["Heroes tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Heróis]])',
        ["Enemy Heroes"] = ' / [[Heróis|Heróis inimigos]]',
        ["Enemy Heroes aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Heróis|<span style="color:#538028;">Heróis inimigos</span>]])',
        ["Enemy Heroes tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Heróis|Heróis inimigos]])',
        ["Allied Heroes"] = ' / [[Heróis|Heróis aliados]]',
        ["Allied Heroes aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Heróis|<span style="color:#538028;">Heróis aliados</span>]])',
        ["Allied Heroes tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Heróis|Heróis aliados]])',
        ["Units"] = ' / Unidades',
        ["Units aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Unidades</span>)',
        ["Units tal"] = '<br>(' .. symbol_tal .. '&nbsp;Unidades)',
        ["Enemy Units"] = ' / Unidades inimigas',
        ["Enemy Units aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Unidades inimigas</span>)',
        ["Enemy Units tal"] = '<br>(' .. symbol_tal .. '&nbsp;Unidades inimigas)',
        ["Allied Units"] = ' / Unidades aliadas',
        ["Allied Units aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Unidades aliadas</span>)',
        ["Allied Units tal"] = '<br>(' .. symbol_tal .. '&nbsp;Unidades aliadas)',
        ["Self"] = ' / Em si mesmo',
        ["Self aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Em si mesmo</span>)',
        ["Self tal"] = '<br>(' .. symbol_tal .. '&nbsp;Em si mesmo)',
        ["Enemies"] = ' / Inimigos',
        ["Enemies aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Inimigos</span>)',
        ["Enemies tal"] = '<br>(' .. symbol_tal .. '&nbsp;Inimigos)',
        ["Allies"] = ' / Aliados',
        ["Allies aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;<span style="color:#538028;">Aliados</span>)',
        ["Allies tal"] = '<br>(' .. symbol_tal .. '&nbsp;Aliados)',
        ["Trees"] = ' / [[Árvores]]',
        ["Trees aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Árvores|<span style="color:#538028;">Árvores]]</span>)',
        ["Trees tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Árvores]])',
    }
  if args['affects'] then
    local affects = affects_dict[args['affects']]
    if args['affects2'] then
      affects = affects .. ' ' .. affects2_dict[args['affects2']]
    end
    return "'''Afeta'''<br>" .. affects
  end
end

-- Implements the damagetypes.
function p.damagetype(frame)
  local args = getArgs(frame, {
    wrappers = {
      'Template:Ability'
    }
  })
  local damagetype_dict = {
        ["Physical"] = '[[Tipos de dano#Físico|<span style="color:#AE2F28; font-weight:bold">Físico</span>]]',
        ["Magical"] = '[[Tipos de dano#Mágico|<span style="color:#5B93D1; font-weight:bold">Mágico</span>]]',
        ["Pure"] = '[[Tipos de dano#Puro|<span style="color:#D8AE53; font-weight:bold">Puro</span>]]',
        ["Instant Attack"] = '[[Dano de ataque#Ataques instantâneos| <span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]]',
        ["Instant Attack tal"] = '' .. symbol_tal .. '&nbsp;[[Dano de ataque#Ataques instantâneos| <span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]]',
        ["Instant Kill"] = '[[Tipos de dano#Morte instantânea| <span style="color:#5B388F; font-weight:bold">Morte instantânea</span>]]',
        ["Composite"] = '[[Tipos de dano#Composto|<span style="color:#5BD199; font-weight:bold">Composto</span>]]', -- Use only for old abilities.
        ["Universal"] = '[[Tipos de dano#Universal|<span style="color:#8650AC; font-weight:bold">Universal</span>]]', -- Use only for old abilities.
        ["HP Removal"] = '[[Tipos de dano#Remoção de vida|Remoção de vida]]', -- Use only for old abilities.
    }
    local damagetype2_dict = {
        ["Physical"] = ' / [[Tipos de dano#Físico|<span style="color:#AE2F28; font-weight:bold">Físico</span>]]',
        ["Physical aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Tipos de dano#Físico|<span style="color:#AE2F28; font-weight:bold">Físico</span>]])',
        ["Physical tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Tipos de dano#Físico|<span style="color:#AE2F28; font-weight:bold">Físico</span>]])',
        ["Magical"] = ' / [[Tipos de dano#Mágico|<span style="color:#5B93D1; font-weight:bold">Mágico</span>]]',
        ["Magical aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Tipos de dano#Mágico|<span style="color:#5B93D1; font-weight:bold">Mágico</span>]])',
        ["Magical tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Tipos de dano#Mágico|<span style="color:#5B93D1; font-weight:bold">Mágico</span>]])',
        ["Pure"] = ' / [[Tipos de dano#Puro|<span style="color:#D8AE53; font-weight:bold">Puro</span>]]',
        ["Pure aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Tipos de dano#Puro|<span style="color:#D8AE53; font-weight:bold">Puro</span>]])',
        ["Pure tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Tipos de dano#Puro|<span style="color:#D8AE53; font-weight:bold">Puro</span>]])',
        ["Instant Attack"] = ' / [[Dano de ataque#Ataques instantâneos| <span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]]',
        ["Instant Kill"] = ' / [[Tipos de dano#Morte instantânea| <span style="color:#5B388F; font-weight:bold">Morte instantânea</span>]]',
        ["Instant Attack aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Dano de ataque#Ataques instantâneos|<span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]])',
        ["Instant Kill aghs"] = '<br>(' .. symbol_aghs .. '&nbsp;[[Tipos de dano#Morte instantânea|<span style="color:#5B388F; font-weight:bold">Morte instantânea</span>]])',
        ["Instant Attack tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Dano de ataque#Ataques instantâneos|<span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]])',
        ["Instant Kill tal"] = '<br>(' .. symbol_tal .. '&nbsp;[[Tipos de dano#Morte instantânea|<span style="color:#5B388F; font-weight:bold">Morte instantânea</span>]])',
        ["HP Removal"] = '<br>([[Tipos de dano#Remoção de vida|Remoção de vida]])', -- Not an actual damage type, so should always be used as 2nd.
  }
  if args['damagetype'] then
    local damagetype = damagetype_dict[args['damagetype']]
    if args['damagetype2'] then
      damagetype = damagetype .. ' ' .. damagetype2_dict[args['damagetype2']]
    end
    
    return "'''Dano'''<br>" .. damagetype
  end
end


return p