Module:Sandbox/LVL: Difference between revisionsGive feedback
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 73: | Line 73: | ||
p.get_ability_upgrade_prop = function(frame) | p.get_ability_upgrade_prop = function(frame) | ||
local ability_identifier = frame.args[1] | local ability_identifier = frame.args[1] | ||
local upgrade_num_str = frame.args[2] | local upgrade_num_str = frame.args[2] | ||
local prop = frame.args[3] | local prop = frame.args[3] | ||
local debug = frame.args.debug -- ← NEW | |||
if not (ability_identifier and upgrade_num_str and prop) then | if not (ability_identifier and upgrade_num_str and prop) then | ||
return "Missing | return debug and "Missing args" or "" | ||
end | end | ||
local ability = find_json_ability(ability_identifier) | local ability = find_json_ability(ability_identifier) | ||
if not ability then | if not ability then | ||
return "Ability | return debug and "Ability not found" or "" | ||
end | end | ||
local upgrades = ability.Upgrades | local upgrades = ability.Upgrades | ||
if | if type(upgrades) ~= "table" then | ||
return "No | return debug and "No upgrades" or "" | ||
end | end | ||
local upgrade_num = tonumber(upgrade_num_str) | local upgrade_num = tonumber(upgrade_num_str) | ||
if not upgrade_num then | if not upgrade_num or not upgrades[upgrade_num] then | ||
return " | return debug and "Upgrade not found" or "" | ||
end | end | ||
local element = upgrades[upgrade_num][prop] | |||
local | |||
if element == nil then | if element == nil then | ||
return "" | return debug and "Prop missing" or "" | ||
end | end | ||
-- | -- return the value (number or string) directly | ||
return | local out = type(element) == "table" and (element.Value or "") or tostring(element) | ||
return debug and ("→"..out.."←") or out | |||
end | end | ||
return p | return p | ||