Module:Damage: Difference between revisions

no edit summary
No edit summary
No edit summary
Tag: Reverted
Line 271: Line 271:


     -- Function to apply inheritance for a specific damage type and argument
     -- Function to apply inheritance for a specific damage type and argument
     local function applyInheritance(mainArgValues, inheritArg, mainArgValue, inheritValue)
     local function applyInheritance(mainArgValues, inheritArg, mainArgValue, inheritValue, mainKeyPrefixed, inheritKeyPrefixed)
         if mainArgValue == '' then
         if mainArgValue == '' then
             return inheritValue
             return inheritValue
Line 281: Line 281:


     -- Function to apply inheritance for a specific argument key
     -- Function to apply inheritance for a specific argument key
     local function applyInheritanceForKey(args, prefix, mainKey, argTable, damageTypeIndex)
     local function applyInheritanceForKey(args, prefix, damageType, damageTypeIndex, argTable)
        local mainKey = argTable[1] .. damageType
         local mainKeyPrefixed = prefix .. mainKey
         local mainKeyPrefixed = prefix .. mainKey
         local mainArgValues = args[mainKeyPrefixed]
         local mainArgValues = args[mainKeyPrefixed]
Line 293: Line 294:


                 for ix, inheritKey in ipairs(argTable) do
                 for ix, inheritKey in ipairs(argTable) do
                     local inheritArg = args[prefix .. inheritKey] or args[inheritKey]
                     local inheritArg = args[prefix .. inheritKey .. damageType] or args[inheritKey .. damageType]


                     if inheritArg and inheritArg[i] and inheritArg[i] ~= '' and
                     if inheritArg and inheritArg[i] and inheritArg[i] ~= '' and ix ~= 1 then
                        (damageTypeIndex == 1 and ix ~= 1 or damageTypeIndex ~= 1)
                    then
                         mainArgValues[i] = applyInheritance(mainArgValues, inheritArg, mainArgValue, inheritArg[i])
                         mainArgValues[i] = applyInheritance(mainArgValues, inheritArg, mainArgValue, inheritArg[i])
                         break
                         break
Line 316: Line 315:
                 if argTableKey ~= 'provided' and isTableNotEmpty(argTable) then
                 if argTableKey ~= 'provided' and isTableNotEmpty(argTable) then
                     for damageTypeIndex, damageType in ipairs({ '', '_min', '_max' }) do
                     for damageTypeIndex, damageType in ipairs({ '', '_min', '_max' }) do
                         applyInheritanceForKey(args, prefix, argTable[1] .. damageType, argTable, damageTypeIndex)
                         applyInheritanceForKey(args, prefix, damageType, damageTypeIndex, argTable)
                     end
                     end
                 end
                 end