diff --git a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala index b31e95cb..a68fbcf6 100644 --- a/src/main/scala/net/psforever/objects/GlobalDefinitions.scala +++ b/src/main/scala/net/psforever/objects/GlobalDefinitions.scala @@ -2616,7 +2616,7 @@ object GlobalDefinitions { flamethrower_fireball.Aggravated = AggravatedDamage( List(AggravatedInfo(DamageType.Direct, 0.9f, 500), AggravatedInfo(DamageType.Splash, 0.9f, 500)), Aura.Fire, - AggravatedTiming(5000), + AggravatedTiming(5000, 10), 0.1f, false, false, @@ -2627,9 +2627,8 @@ object GlobalDefinitions { ProjectileDefinition.CalculateDerivedFields(flamethrower_fireball) flamethrower_fireball.Modifiers = List( DamageModifiers.InfantryAggravatedDirect, - DamageModifiers.InfantryAggravatedDirectBurn, DamageModifiers.InfantryAggravatedSplash, - DamageModifiers.InfantryAggravatedSplashBurn, + DamageModifiers.FireballAggravatedBurn, DamageModifiers.RadialDegrade ) @@ -2646,7 +2645,7 @@ object GlobalDefinitions { flamethrower_projectile.Aggravated = AggravatedDamage( List(AggravatedInfo(DamageType.Direct, 0.5f, 500)), Aura.Fire, - AggravatedTiming(5000), + AggravatedTiming(5000, 10), 0.5f, false, false, @@ -2659,7 +2658,7 @@ object GlobalDefinitions { ProjectileDefinition.CalculateDerivedFields(flamethrower_projectile) flamethrower_projectile.Modifiers = List( DamageModifiers.InfantryAggravatedDirect, - DamageModifiers.InfantryAggravatedDirectBurn, + DamageModifiers.FireballAggravatedBurn, DamageModifiers.MaxDistanceCutoff ) diff --git a/src/main/scala/net/psforever/objects/vital/damage/DamageModifiers.scala b/src/main/scala/net/psforever/objects/vital/damage/DamageModifiers.scala index 2b9739d5..24c7fdca 100644 --- a/src/main/scala/net/psforever/objects/vital/damage/DamageModifiers.scala +++ b/src/main/scala/net/psforever/objects/vital/damage/DamageModifiers.scala @@ -278,6 +278,25 @@ object DamageModifiers { } } + /** + * For damage application that involves aggravation of a fireball (Dragon secondary fire mode), + * perform 1 damage. + * @see `ResolvedProjectile` + */ + case object FireballAggravatedBurn extends Mod { + def Calculate: DamageModifiers.Format = formula + + private def formula(damage: Int, data: ResolvedProjectile): Int = { + if (data.resolution == ProjectileResolution.AggravatedDirectBurn || + data.resolution == ProjectileResolution.AggravatedSplashBurn) { + //add resist to offset resist subtraction later + 1 + data.damage_model.ResistUsing(data)(data) + } else { + damage + } + } + } + /** * The initial application of aggravated damage against an aircraft target. * Primarily for use in the starfire weapon system.