How Collision Damage Is Calculated
By AdmiralNelson
Collision Damage
Collision damage is applied when 2 vehicles impact each other.
Ramming Damage Calculation
Relative velocity is projected onto the impact normal and converted to m/s
RelativeVelocity = dot(VelA − VelB, ImpactNormal) / 100
Before anything else, the input velocity gets a soft cap applied. This result is stored as ModifiedVelocity.
if |velocity| ≤ RamAbilityDiminishingVelocity:
ModifiedVelocity = Velocity
else:
ModifiedVelocity = RamAbilityDiminishingVelocity
+ (|velocity| − RamAbilityDiminishingVelocity) × DiminishingVelocityProportion
If VehicleA or VehicleB is Maul
AND using ability
AND this is the first collision during ability:
ModifiedVelocity = max(ModifiedVelocity, MinRamAbilityVelocity)
As of writing this article: RamAbilityDiminishingVelocity is 22.5 m/s (81 km/h)
MinRamAbilityVelocity is 11.5 m/s (41.4 km/h)
DiminishingVelocityProportion is .1
Kinetic energy is computed from combined mass, then scaled to a damage pool
KineticEnergy = 0.5 × (MassA + MassB) × ModifiedVelocity²
DamagePool = KineticEnergy × DamageMultiplier
Once damage pool is calculated, it is only applied if it would deal a minimum amount of damage. If the minimum damage is not satisfied, this collision instance is ignored and no damage is done to either vehicle.
As of writing this article: DamagePool must be greater than 50
Damage is split by opposite mass ratio — heavier attackers deal more, take less
DamageToA = DamagePool × (MassB / CombinedMass)
DamageToB = DamagePool × (MassA / CombinedMass)
Maul Tank Modifiers
Damage is than modified by gameplay code for special cases if players are in the Maul tank.
If both players are Maul AND are using their ability, damage is cut in half.
If only 1 player is using their ability, they take no damage. The other player still takes damage.
If a player has the Ram bonus multiplier from the tech tree, that is applied. It does not matter if the vehicle ability is active.
Talent / Component Reduction Modifiers
Once we determine damage that should be applied a player, we calculate final damage using a players' stat modifiers.
FinalDamage = BaseDamage * (1 -DamageReductionPercent) * (1 + BonusDamagePercent) - FlatDamageReduction
DamageReductionPercent can be applied from talents/components such as AdaptiveHardening.
BonusDamagePercent is a debuff. An example is the Drone damage amp keystone.
FlatDamageReduction can be applied from talents/components such as MicroPlating.
Crushing Damage
Crushing damage happens when 1 vehicle is on top of another vehicle. Crushing damage is only applied to the bottom vehicle. Crushing damage fires every .6 seconds (as of this article).
Crushing Damage Calculation
Crushing damage is flat mass-based:
CrushingDamage = CrusherMass × CrushingDamagePerKg
As of writing this article: CrushingDamagePerKg is 0.002.
So for example, a Sonar crushing any other vehicle would deal
(100000.0 * .002) = 200 crushing damage per tick
Talent / Component Reduction Modifiers
Crushing damage applies the same talent / component modifiers as ramming damage. See above section.
