Skip to content

AOE Update

BDCarrillo edited this page Dec 19, 2021 · 27 revisions

Background

The legacy system of radiant, explosive, and detonation having some overlapping data and confusing options has led to a rewrite of AOE damage. Keen explosions are no longer called, drastically increasing performance.

AOE & Detonation: Concepts

Definitions:

AOE/Area of Effect- damage that is applied until the primary damage pool depletes (in other words, until the main projectile dies)

Detonation- an AOE effect that only occurs once at end of projectile life

Radiant- a dirty, messy old word, but can be approximated using either Pooled falloff or MaxAbsorb (more info below)

Explosive - another holdover from earlier iterations, but is roughly equivalent to the new Linear falloff

Comparisons to Previous System

Some legacy area damage types or detonation events called a Keen missile explosion method. This Keen method generated 10 shrapnel, at a random vector, that flew at 100 m/s for up 1km and did 10 damage. Each shrapnel hit of 10 damage then called a special deform method with did additional damage.

AOE Settings

Damage: (damage)

Baseline damage. This will be multiplied by various scales such as global damage, area damage modifiers, block integrity modifiers, etc.

Radius: (meters)

Maximum distance from impact point, in meters, that damage can be applied.

Falloff:

Options to control how damage is applied based upon distance from impact point.

NoFallOff - applies the same damage to all blocks in radius

Linear - drops evenly by distance from center out to max radius

Curve - drops off damage sharply as it approaches the max radius

InvCurve - drops off sharply from the middle and tapers to max radius

Squeeze - does little damage to the impact point, but rapidly increases damage toward max radius. IE, outer edge takes the most damage

Pooled - each hit decreases the pool by the damage done, enforcing an upper limit (similar to legacy radiant or explosive effects)

Max Absorb: optional (damage)

A soft cutoff that interrupts damage done beyond the current distance group, somewhat similar to pool, that can be applied to any falloff selection.

For example, an AOE impact has blocks in range at distance 1, 2, and 3. While applying damage from lowest to highest distance, Max Absorb was reached/exceeded at some point in the distance 2 group. In this case, the rest of the blocks at distance 2 would take damage, but further processing would stop and distance 3 would not take damage.

Max Depth: optional (meters)

Maximum depth to apply damage into the grid that was hit, along direction of hit. Defaults to radius. Setting a high radius with a low depth would generate a "pancake" shaped hit on the surface of the target.

AOE Shield Interactions

Damage calculation:

AOE damage versus shields is calculated by multiplying the damage by the falloff averages listed below.

NoFalloff: 1 * radius

Linear: 0.55 * radius

Curve: 0.81 * radius

InvCurve: 0.39 * radius

Squeeze: 0.22 * radius

Pooled: 1 (no radius multiplier to respect damage as the total pool)

Clone this wiki locally