Módulo:Ability
▶️
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 .. ' [[Habilidades#Sem alvo|<span style="color:#538028;">Sem alvo</span>]])',
["No Target tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Sem alvo|Sem alvo]])',
["Target Unit"] = ' / [[Habilidades#Unidade-alvo|Unidade-alvo]]',
["Target Unit aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Unidade-alvo|<span style="color:#538028;">Unidade-alvo</span>]])',
["Target Unit tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Unidade-alvo|Unidade-alvo]])',
["Target Point"] = ' / [[Habilidades#Ponto-alvo|Ponto-alvo]]',
["Target Point aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Ponto-alvo|<span style="color:#538028;">Ponto-alvo</span>]])',
["Target Point tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Ponto-alvo|Ponto-alvo]])',
["Target Area"] = ' / [[Habilidades#Área-alvo|Área-alvo]]',
["Target Area aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Área-alvo|<span style="color:#538028;">Área-alvo</span>]])',
["Target Area tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Área-alvo|Área-alvo]])',
["Passive"] = ' / [[Habilidades#Passiva|Passiva]]',
["Passive aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Passiva|<span style="color:#538028;">Passiva</span>]])',
["Passive tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Passiva|Passiva]])',
["Aura"] = ' / [[Aura]]',
["Aura aghs"] = '<br>(' .. symbol_aghs .. ' [[Aura|<span style="color:#538028;">Aura</span>]])',
["Aura tal"] = '<br>(' .. symbol_tal .. ' [[Aura]])',
["Channeled"] = ' / [[Canalização|Canalizada]]', -- Should always be 2nd.
["Channeled aghs"] = '<br>(' .. symbol_aghs .. ' [[Canalização|<span style="color:#538028;">Canalizada</span>]])',
["Channeled tal"] = '<br>(' .. symbol_tal .. ' [[Canalização|Canalizada]])',
["Autocast"] = ' / [[Habilidades#Uso automático|Uso automático]]', --Should always be 2nd.
["Autocast aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Uso automático|<span style="color:#538028;">Uso automático</span>]])',
["Autocast tal"] = '<br>(' .. symbol_tal .. ' [[Habilidades#Uso automático|Uso automático]])',
["Toggle"] = ' / [[Habilidades#Alternada|Alternada]]',
["Toggle aghs"] = '<br>(' .. symbol_aghs .. ' [[Habilidades#Alternada|<span style="color:#538028;">Alternada</span>]])',
["Toggle tal"] = '<br>(' .. symbol_tal .. ' [[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 .. ' [[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 .. ' [[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 .. ' [[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 .. ' [[Heróis|<span style="color:#538028;">Heróis</span>]])',
["Heroes tal"] = '<br>(' .. symbol_tal .. ' [[Heróis]])',
["Enemy Heroes"] = ' / [[Heróis|Heróis inimigos]]',
["Enemy Heroes aghs"] = '<br>(' .. symbol_aghs .. ' [[Heróis|<span style="color:#538028;">Heróis inimigos</span>]])',
["Enemy Heroes tal"] = '<br>(' .. symbol_tal .. ' [[Heróis|Heróis inimigos]])',
["Allied Heroes"] = ' / [[Heróis|Heróis aliados]]',
["Allied Heroes aghs"] = '<br>(' .. symbol_aghs .. ' [[Heróis|<span style="color:#538028;">Heróis aliados</span>]])',
["Allied Heroes tal"] = '<br>(' .. symbol_tal .. ' [[Heróis|Heróis aliados]])',
["Units"] = ' / Unidades',
["Units aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Unidades</span>)',
["Units tal"] = '<br>(' .. symbol_tal .. ' Unidades)',
["Enemy Units"] = ' / Unidades inimigas',
["Enemy Units aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Unidades inimigas</span>)',
["Enemy Units tal"] = '<br>(' .. symbol_tal .. ' Unidades inimigas)',
["Allied Units"] = ' / Unidades aliadas',
["Allied Units aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Unidades aliadas</span>)',
["Allied Units tal"] = '<br>(' .. symbol_tal .. ' Unidades aliadas)',
["Self"] = ' / Em si mesmo',
["Self aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Em si mesmo</span>)',
["Self tal"] = '<br>(' .. symbol_tal .. ' Em si mesmo)',
["Enemies"] = ' / Inimigos',
["Enemies aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Inimigos</span>)',
["Enemies tal"] = '<br>(' .. symbol_tal .. ' Inimigos)',
["Allies"] = ' / Aliados',
["Allies aghs"] = '<br>(' .. symbol_aghs .. ' <span style="color:#538028;">Aliados</span>)',
["Allies tal"] = '<br>(' .. symbol_tal .. ' Aliados)',
["Trees"] = ' / [[Árvores]]',
["Trees aghs"] = '<br>(' .. symbol_aghs .. ' [[Árvores|<span style="color:#538028;">Árvores]]</span>)',
["Trees tal"] = '<br>(' .. symbol_tal .. ' [[Á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 .. ' [[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 .. ' [[Tipos de dano#Físico|<span style="color:#AE2F28; font-weight:bold">Físico</span>]])',
["Physical tal"] = '<br>(' .. symbol_tal .. ' [[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 .. ' [[Tipos de dano#Mágico|<span style="color:#5B93D1; font-weight:bold">Mágico</span>]])',
["Magical tal"] = '<br>(' .. symbol_tal .. ' [[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 .. ' [[Tipos de dano#Puro|<span style="color:#D8AE53; font-weight:bold">Puro</span>]])',
["Pure tal"] = '<br>(' .. symbol_tal .. ' [[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 .. ' [[Dano de ataque#Ataques instantâneos|<span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]])',
["Instant Kill aghs"] = '<br>(' .. symbol_aghs .. ' [[Tipos de dano#Morte instantânea|<span style="color:#5B388F; font-weight:bold">Morte instantânea</span>]])',
["Instant Attack tal"] = '<br>(' .. symbol_tal .. ' [[Dano de ataque#Ataques instantâneos|<span style="color:#598307; font-weight:bold">Ataque instantâneo</span>]])',
["Instant Kill tal"] = '<br>(' .. symbol_tal .. ' [[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