Module:HeroDataArrays: Difference between revisions

No edit summary
added bullet radius in inches, cleaned up code
Line 33: Line 33:
     if type(value) == "number" then
     if type(value) == "number" then
         return util_module.round_to_sig_fig(value, 3)
         return util_module.round_to_sig_fig(value, 3)
    end
    return value
end
-- Round to an integer (up to 2 digits)
local function roundValueInteger(value)
    if type(value) == "number" then
        return util_module.round_to_sig_fig(value, 2)
     end
     end
     return value
     return value
Line 140: Line 148:
             maxHealth = data["MaxHealth"] or 0,
             maxHealth = data["MaxHealth"] or 0,
             scalingHealth = "+" .. data["LevelScaling>MaxHealth"] or 0,
             scalingHealth = "+" .. data["LevelScaling>MaxHealth"] or 0,
             maxScalingHealth = tonumber(roundValue(data["MaxHealth"] + data["LevelScaling>MaxHealth"] * soul_unlock.get_max("PowerIncrease"))) or 0
             maxScalingHealth = roundValue(data["MaxHealth"] + data["LevelScaling>MaxHealth"] * soul_unlock.get_max("PowerIncrease")) or 0
         })
         })
     end
     end
Line 395: Line 403:
p.heroFalloffRangeTable = function(frame)
p.heroFalloffRangeTable = function(frame)
     local heroFalloffRangeData = heroDataArray({"Name", "Weapon>FalloffStartRange", "Weapon>FalloffEndRange",  "Weapon>AltFire>FalloffStartRange", "Weapon>AltFire>FalloffEndRange",
     local heroFalloffRangeData = heroDataArray({"Name", "Weapon>FalloffStartRange", "Weapon>FalloffEndRange",  "Weapon>AltFire>FalloffStartRange", "Weapon>AltFire>FalloffEndRange",
     "Weapon>AltFire>ExplosionRadius", "Weapon>FalloffEndScale"})
     "Weapon>AltFire>ExplosionRadius", "Weapon>FalloffEndScale", "Weapon>AltFire>ExplosionDamageScaleAtMaxRadius",})
      
      
     local rows = {}
     local rows = {}
Line 403: Line 411:
             falloffStartRange = data["Weapon>FalloffStartRange"] or 0,
             falloffStartRange = data["Weapon>FalloffStartRange"] or 0,
             falloffEndRange = data["Weapon>FalloffEndRange"] or 0,
             falloffEndRange = data["Weapon>FalloffEndRange"] or 0,
             falloffEndScale = -100 + (100 * tonumber(data["Weapon>FalloffEndScale"] or 0)),
             falloffEndScale = -100 + (100 * (data["Weapon>FalloffEndScale"] or 0)),
             altFalloffStartRange = data["Weapon>AltFire>FalloffStartRange"] or 0,
             altFalloffStartRange = data["Weapon>AltFire>FalloffStartRange"] or 0,
             altFalloffEndRange = data["Weapon>AltFire>FalloffEndRange"] or 0,
             altFalloffEndRange = data["Weapon>AltFire>FalloffEndRange"] or 0,
             altExplosionRadius = data["Weapon>AltFire>ExplosionRadius"] or 0
             altExplosionRadius = data["Weapon>AltFire>ExplosionRadius"] or 0,
            altExplosionEndScale = (100 * (data["Weapon>AltFire>ExplosionDamageScaleAtMaxRadius"] or 0))
         })
         })
     end
     end
Line 453: Line 462:
             bulletDamagePerShot = ((data["Weapon>BulletDamage"] or 0) * (data["Weapon>BulletsPerShot"] or 0) * (data["Weapon>BulletsPerBurst"] or 0)),
             bulletDamagePerShot = ((data["Weapon>BulletDamage"] or 0) * (data["Weapon>BulletsPerShot"] or 0) * (data["Weapon>BulletsPerBurst"] or 0)),
             scalingDamage = "+" .. data["LevelScaling>BulletDamage"] or 0,
             scalingDamage = "+" .. data["LevelScaling>BulletDamage"] or 0,
             maxScalingDamage =  tonumber(roundValue(data["Weapon>BulletDamage"] + data["LevelScaling>BulletDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             maxScalingDamage =  (roundValue(data["Weapon>BulletDamage"] + data["LevelScaling>BulletDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             altBulletDamage = data["Weapon>AltFire>BulletDamage"] or 0,
             altBulletDamage = data["Weapon>AltFire>BulletDamage"] or 0,
             spiritScalingDamage = "+" .. (data["SpiritScaling>BulletDamage"] or 0),
             spiritScalingDamage = "+" .. (data["SpiritScaling>BulletDamage"] or 0),
Line 493: Line 502:
             lightMeleeDamage = data["LightMeleeDamage"] or 0,
             lightMeleeDamage = data["LightMeleeDamage"] or 0,
             lightScalingDamage = "+" .. data["LevelScaling>LightMeleeDamage"] or 0,
             lightScalingDamage = "+" .. data["LevelScaling>LightMeleeDamage"] or 0,
             lightMaxScalingDamage = tonumber(roundValue(data["LightMeleeDamage"] + data["LevelScaling>LightMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             lightMaxScalingDamage = (roundValue(data["LightMeleeDamage"] + data["LevelScaling>LightMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             heavyMeleeDamage = data["HeavyMeleeDamage"] or 0,
             heavyMeleeDamage = data["HeavyMeleeDamage"] or 0,
             heavyScalingDamage = "+" .. data["LevelScaling>HeavyMeleeDamage"] or 0,
             heavyScalingDamage = "+" .. data["LevelScaling>HeavyMeleeDamage"] or 0,
             heavyMaxScalingDamage =  tonumber(roundValue(data["HeavyMeleeDamage"] + data["LevelScaling>HeavyMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             heavyMaxScalingDamage =  (roundValue(data["HeavyMeleeDamage"] + data["LevelScaling>HeavyMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             heavySpiritScalingDamage = "+" .. (data["SpiritScaling>HeavyMeleeDamage"] or 0),
             heavySpiritScalingDamage = "+" .. (data["SpiritScaling>HeavyMeleeDamage"] or 0),
         })
         })
Line 539: Line 548:
             lightMeleeDamage = data["LightMeleeDamage"] or 0,
             lightMeleeDamage = data["LightMeleeDamage"] or 0,
             scalingDamage = "+" .. data["LevelScaling>LightMeleeDamage"] or 0,
             scalingDamage = "+" .. data["LevelScaling>LightMeleeDamage"] or 0,
             maxScalingDamage =  tonumber(roundValue(data["LightMeleeDamage"] + data["LevelScaling>LightMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             maxScalingDamage =  (roundValue(data["LightMeleeDamage"] + data["LevelScaling>LightMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
         })
         })
     end
     end
Line 576: Line 585:
             heavyMeleeDamage = data["HeavyMeleeDamage"] or 0,
             heavyMeleeDamage = data["HeavyMeleeDamage"] or 0,
             scalingDamage = "+" .. data["LevelScaling>HeavyMeleeDamage"] or 0,
             scalingDamage = "+" .. data["LevelScaling>HeavyMeleeDamage"] or 0,
             maxScalingDamage = tonumber(roundValue(data["HeavyMeleeDamage"] + data["LevelScaling>HeavyMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             maxScalingDamage = (roundValue(data["HeavyMeleeDamage"] + data["LevelScaling>HeavyMeleeDamage"] * soul_unlock.get_max("PowerIncrease"))) or 0,
             spiritScalingDamage = "+" .. (data["SpiritScaling>HeavyMeleeDamage"] or 0),
             spiritScalingDamage = "+" .. (data["SpiritScaling>HeavyMeleeDamage"] or 0),
         })
         })
Line 793: Line 802:
             bulletResist  = data["BulletResist"] or 0,
             bulletResist  = data["BulletResist"] or 0,
             bulletResistScaling = "+".. (data["LevelScaling>BulletResist"] or 0),
             bulletResistScaling = "+".. (data["LevelScaling>BulletResist"] or 0),
             bulletResistScalingMax = (tonumber(roundValue((data["BulletResist"] or 0) + (data["LevelScaling>BulletResist"] or 0) * soul_unlock.get_max("PowerIncrease"))) or 0),
             bulletResistScalingMax = ((roundValue((data["BulletResist"] or 0) + (data["LevelScaling>BulletResist"] or 0) * soul_unlock.get_max("PowerIncrease"))) or 0),
             bulletResistSpiritScaling = "+".. (data["SpiritScaling>BulletResist"] or 0),
             bulletResistSpiritScaling = "+".. (data["SpiritScaling>BulletResist"] or 0),
             spiritResist  = data["TechResist"] or 0,
             spiritResist  = data["TechResist"] or 0,
             spiritResistScaling = "+".. (data["LevelScaling>TechResist"] or 0),
             spiritResistScaling = "+".. (data["LevelScaling>TechResist"] or 0),
             spiritResistScalingMax = (tonumber(roundValue((data["TechResist"] or 0) + (data["LevelScaling>TechResist"] or 0) * soul_unlock.get_max("PowerIncrease"))) or 0),
             spiritResistScalingMax = ((roundValue((data["TechResist"] or 0) + (data["LevelScaling>TechResist"] or 0) * soul_unlock.get_max("PowerIncrease"))) or 0),
             spiritResistSpiritScaling = "+".. (data["SpiritScaling>TechResist"] or 0),
             spiritResistSpiritScaling = "+".. (data["SpiritScaling>TechResist"] or 0),
             meleeResist  = data["MeleeResist"] or 0,
             meleeResist  = data["MeleeResist"] or 0,
Line 889: Line 898:
             name = name,
             name = name,
             spiritScaling  = "+".. data["LevelScaling>TechPower"] or 0,
             spiritScaling  = "+".. data["LevelScaling>TechPower"] or 0,
             maxSpiritScaling = tonumber(data["LevelScaling>TechPower"] * soul_unlock.get_max("PowerIncrease")) or 0,
             maxSpiritScaling = (data["LevelScaling>TechPower"] * soul_unlock.get_max("PowerIncrease")) or 0,
         })
         })
     end
     end
Line 993: Line 1,002:
         table.insert(rows, {
         table.insert(rows, {
             name = name,
             name = name,
             bulletRadius  = tonumber((data["Weapon>BulletRadius"] or 0) * 100),
             bulletRadius  = (data["Weapon>BulletRadius"] or 0) * 100,
             altBulletRadius  = tonumber((data["Weapon>AltFire>BulletRadius"] or 0) * 100),
            bulletRadiusInches  = roundValueInteger((data["Weapon>BulletRadius"] or 0) * 100 * 0.394),
             altBulletRadius  = (data["Weapon>AltFire>BulletRadius"] or 0) * 100,
            altBulletRadiusInches  = roundValueInteger((data["Weapon>AltFire>BulletRadius"] or 0) * 100 * 0.394),
         })
         })
     end
     end
Line 1,004: Line 1,015:
             columns = {
             columns = {
                 { label = "Bullet Radius (cm)", field = "bulletRadius"  },
                 { label = "Bullet Radius (cm)", field = "bulletRadius"  },
                { label = "Bullet Radius (in)", field = "bulletRadiusInches"  },
             }
             }
         },
         },
Line 1,010: Line 1,022:
             columns = {
             columns = {
                 { label = "Bullet Radius (cm)", field = "altBulletRadius"  },
                 { label = "Bullet Radius (cm)", field = "altBulletRadius"  },
                { label = "Bullet Radius (in)", field = "altBulletRadiusInches"  },
             }
             }
         }
         }