Editing
Module
:
Abilities/details table
Give feedback
Jump to navigation
Jump to search
Warning:
You are not logged in. Once you make an edit, a temporary account will be created for you.
Learn more
.
Log in
or
create an account
to continue receiving notifications after this account expires, and to access other features.
Anti-spam check. Do
not
fill this in!
p = {} local utils = require "Module:Abilities/utils" local lang = require"Module:Lang" local commonutils = require"Module:Utilities" local header_attrs = {'Radius', 'AbilityCastRange', 'AbilityDuration', 'AbilityCooldown', 'AbilityCooldownBetweenCharge', 'AbilityCharges'} p.get_details_table = function(frame) local hero_name = frame.args[1] local ability_num = frame.args[2] local hero_key = utils.get_hero_key(hero_name) local ability = utils.get_ability_card_data(hero_key, ability_num) if(ability == nil) then error(string.format('Ability %s#%s not found', hero_name, ability_num)) end local rows = '' for info_section_num=1, 10 do local info_section = ability['Info'..info_section_num] if info_section == nil then break end local main = info_section.Main if main ~= nil then -- display props from info sections first for i, prop in pairs(main.Props) do local scale_value = prop.Scale and prop.Scale.Value or nil local scale_type = prop.Scale and prop.Scale.Type or nil rows = rows .. create_row(prop.Key, prop.Value, scale_type, scale_value, frame) end end local alt = info_section.Alt if alt ~= nil then for i, prop in pairs(alt) do local scale_type = prop.Scale and prop.Scale.Type or nil local scale_value = prop.Scale and prop.Scale.Value or nil rows = rows .. create_row(prop.Key, prop.Value, scale_type, scale_value, frame) end end end -- then any header data, cooldowns, charges, range etc. for i, attr in pairs(header_attrs) do local prop = ability[attr] if prop then local scale_type = prop.Scale and prop.Scale.Type or nil local scale_value = prop.Scale and prop.Scale.Value or nil rows = rows .. create_row(attr, prop.Value, scale_type, scale_value, frame) end end -- then other data that is hidden on the ability card if ability.Other then for attr, prop in pairs(ability.Other) do local scale_type = prop.Scale and prop.Scale.Type or nil local scale_value = prop.Scale and prop.Scale.Value or nil rows = rows .. create_row(attr, prop.Value, scale_type, scale_value, frame) end end return rows end local UPGRADE_COST_MAP = {1, 2, 5} p.get_upgrade_table = function(frame) local hero_name = frame.args[1] local ability_num = frame.args[2] local upgrade_num = frame.args[3] local hero_key = utils.get_hero_key(hero_name) local ability = utils.get_ability_card_data(hero_key, ability_num) if(ability == nil) then error(string.format('Ability %s#%s not found', hero_name, ability_num)) end local rows = '\n|-\n' for i, upgrade in pairs(ability.Upgrades) do local data_rows = '' -- track number of attributes so we can assign the correct rowspan for the upgrade cost column local num_of_attrs = 0 for key, value in pairs(upgrade) do if key ~= 'DescKey' then local scale_type = upgrade.Scale and upgrade.Scale.Type or nil local scale_value = upgrade.Scale and upgrade.Scale.Value or nil data_rows = data_rows .. create_row(key, value, scale_type, scale_value, frame, true) num_of_attrs = num_of_attrs + 1 end end rows = rows .. string.format("\n!rowspan=%s style=\"background-color: #121212; color: #FFEFD7; text-align: center; text-wrap: nowrap;\" | [[File:Ability_point_unlock_icon.png|20px|link=Ability_Point]] '''%s'''\n", num_of_attrs, UPGRADE_COST_MAP[i]) rows = rows .. data_rows end return rows end -- with_plus=true will include the "+" symbol before the number, as by default it will be omiitted function create_row(key, value, scale_type, scale_value, frame, with_plus) if key == nil or value == nil then return '' end -- get localized label, if none exists, fallback to one that is based on the key local label = lang.get_string(key..'_label') if label == '' then label = commonutils.add_space_before_cap(key) end local formatted_value = utils.format_value_with_prepost(key, value, frame, with_plus~=true) local row = '|' .. label .. '||' .. formatted_value if scale_type and scale_value then row = row .. '||' .. scale_type .. '||' .. scale_value .. '%' end return row .. '\n|-\n' end function create_upgrade_row(key, upgrades) local row = '' for i, upgrade in paris(upgrades) do local scale_type = prop.Scale and prop.Scale.Type or nil local scale_value = prop.Scale and prop.Scale.Value or nil row = row .. upgrade[key] end return row end return p
Summary:
Please note that all contributions to The Deadlock Wiki are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
Deadlock:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Pages included on this page:
Module:Abilities/details table/doc
(
edit
)
Module:Abilities/doc/submodules
(
edit
)
Navigation menu
Personal tools
Create account
Log in
associated-pages
Module
Discussion
English
Views
Read
Edit source
History
Tools
Search
Discord
Discord
Navigation
Main page
About us
Random page
Special pages
Recent changes
Unstable Rift
2h ago
路
~2026-IvyGankStone1157
Haze/Sounds
3h ago
路
Gammaton32
Haze/Voice lines
3h ago
路
Gammaton32
Grey Talon/Voice lines
3h ago
路
Gammaton32
Show more...
Interface Admin
Common CSS
Vector CSS
Minerva CSS
Citizen CSS
Brown theme CSS
Gadgets
Gadgets definition
Editing
How to edit
Style guide
All guides
New files
Unresolved feedback
Tools
What links here
Related changes
Page information