Editing Module:AbilitiesGive feedback
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 24: | Line 24: | ||
end | end | ||
-- If not found by key, search | -- If not found by key, loop through and search by the "Name" property as a fallback | ||
for _, v in pairs(raw_ability_data) do | |||
if (v["Name"] == identifier) then | |||
return v | |||
end | |||
end | |||
-- If not found by either method, return nil | -- If not found by either method, return nil | ||
return nil | return nil | ||
end | end | ||
--{{#invoke: | --{{#invoke:AbilityData|get_ability_name|HERO_NAME|ABILITY_NUM|lang=LANG_CODE}}-- | ||
p.get_ability_name = function(frame) | p.get_ability_name = function(frame) | ||
local hero_name = frame.args[1] | local hero_name = frame.args[1] | ||
| Line 49: | Line 48: | ||
end | end | ||
return | return ability.Name | ||
end | end | ||
--{{#invoke: | --{{#invoke:AbilityData|get_ability_prop|ability_key_or_name|prop}}-- | ||
p.get_ability_prop = function(frame) | p.get_ability_prop = function(frame) | ||
local ability_identifier = frame.args[1] | local ability_identifier = frame.args[1] | ||
| Line 84: | Line 60: | ||
if(ability == nil) then return "Ability Not Found" end | if(ability == nil) then return "Ability Not Found" end | ||
local element = ability[prop] | |||
local element = ability | |||
if element == nil then return "" end | if element == nil then return "" end | ||
| Line 107: | Line 72: | ||
end | end | ||
--{{#invoke: | --{{#invoke:AbilityData|get_ability_upgrade_prop|ability_key_or_name|upgrade_num|prop}}-- | ||
-- Gets a specific property from a specific upgrade of an ability. | -- Gets a specific property from a specific upgrade of an ability. | ||
-- @param {string} frame.args[1] - The ability's key (e.g., "ability_afterburn") or name (e.g., "Afterburn"). | -- @param {string} frame.args[1] - The ability's key (e.g., "ability_afterburn") or name (e.g., "Afterburn"). | ||
| Line 127: | Line 92: | ||
return "Ability Not Found" | return "Ability Not Found" | ||
end | end | ||
-- Get the list of upgrades for this ability | -- Get the list of upgrades for this ability | ||
local upgrades = ability.Upgrades | local upgrades = ability.Upgrades | ||
| Line 148: | Line 113: | ||
-- Get the desired property from the specific upgrade | -- Get the desired property from the specific upgrade | ||
local element = upgrade[prop] | local element = upgrade[prop] | ||
if | if element == nil then | ||
return "" -- The property doesn't exist in this specific upgrade, which is a valid case. Return empty. | |||
end | |||
-- If the property is a table (like a Damage object), return its Value field | |||
if type(element) == "table" then | |||
return element.Value or "" | |||
end | end | ||
| Line 162: | Line 125: | ||
return element | return element | ||
end | end | ||
return p | return p | ||