Module:Abilities: Difference between revisions

added nesting function for ability upgrades
mNo edit summary
Tag: Undo
 
(5 intermediate revisions by 2 users not shown)
Line 126: Line 126:
if not ability then
if not ability then
return "Ability Not Found"
return "Ability Not Found"
end
-- Handle nested properties via dot notation (e.g., "MaxRage.Scale.Value")
local element = ability
if prop and prop ~= "" then
for segment in string.gmatch(prop, "[^%.]+") do
if type(element) ~= "table" then
return "" -- Can't traverse further
end
element = element[segment]
if element == nil then return "" end
end
end
end
Line 160: Line 148:
-- 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 element == nil then
if prop and prop ~= "" then
return "" -- The property doesn't exist in this specific upgrade, which is a valid case. Return empty.
for segment in string.gmatch(prop, "[^%.]+") do
end
-- If upgrade is not a table, return value. If it is, check for segments
 
if type(element) ~= "table" then
-- If the property is a table (like a Damage object), return its Value field
return element or ""
if type(element) == "table" then
end
    return element.Value or ""
element = element[segment]
if element == nil then return "" end
end
end
end