Flame zones

What it is

A flame zone is a persistent circular ground patch that ticks damage to every enemy inside its radius for a fixed lifetime. One shared runtime owns the active-zone list, damage ticking, expiry, and VFX, so every source that spawns a patch — the Fire Trail weapon, the Thermite Charge artifact, and the Carpet Bomber’s per-bomb echo — reads consistently and stacks predictably. The Plasma Mortar’s persistent plasma patch is mechanically similar but runs on its own bullet-behavior path, not the shared runtime.

Mechanics

Every shared-runtime zone is described by five numbers at spawn time: position (x, y), radius, dps, and duration. After that the runtime owns it.

ParameterValueNotes
Damage tick interval0.25 sFixed for all shared-runtime zones
Per-tick damagedps × 0.25Applied once per tick to every enemy in radius
Target filterAlive, non-dying enemiesSkips enemies flagged _dying or already dead
AoE shapeFilled circleInclusive of zone radius; ignores enemy hit radius
Spatial querySpatial grid bucketCandidates filtered by squared distance
Max simultaneous zones16Oldest zone evicted FIFO when a 17th spawns
Expiryduration timer reaches 0Final burst VFX plays, zone is removed
VFX emit interval0.06 sPer-zone ember and smoke spawning
Render orderBeneath particles and sprites, above terrainComposite mode “lighter” for additive bloom
Run resetCleared on new runNo carry-over between attempts

The runtime does not check line-of-sight, terrain, friendly fire, or shield phase. It does not stack distinct damage instances on the same enemy in the same tick — overlapping zones each apply their own tick independently, so an enemy standing in three patches takes three ticks per 0.25 s.

Damage math

Per-tick damage is the only quantity the runtime applies. DPS is the input contract and is interpreted directly:

FormulaMeaning
per_tick = dps × 0.25What the enemy actually takes each 0.25 s
ticks_per_zone = duration / 0.25How many ticks a zone delivers if a target stays the full lifetime
total_damage_if_stationary = dps × durationCap on damage a single zone deals to a single non-moving target

Two of the three sources convert between the dps contract and a designer-facing total in their own code:

SourceDesigner-facing inputConversion to dps
Fire Traildamage stat is total damage per patchdps = damage / lingerSec
Thermite Chargedps provided directlyNone
Carpet Bomber echoBomb damage scaled by 0.20dps = bomb_damage × 0.20 (passed as dps for an 0.8 s zone)

The Fire Trail conversion is why doubling its linger does not change total potential damage per patch — the engine just spreads the same total across more ticks.

Sources that spawn shared-runtime zones

SourceRadiusDPS at spawnDurationCadence
Fire Trail (L1)7517.5 (= 70 / 4)4.0 sOne patch per shot, fires every 1.0 s, always behind the ship
Fire Trail (L20)122.516.4 (= 1001.5 / 5.9)5.9 sOne patch per shot, fires every 1.95 s
Thermite Charge (artifact)2251209.0 sAuto-pulse every 2.5 s under the ship
Carpet Bomber per-bomb echo50bomb_damage × 0.200.8 sOne zone per bomb impact, on top of the Carpet Bomber’s own fire-patch bullet

The Plasma Mortar’s persistent zone is documented for completeness but runs on a separate code path (a long-lived zone bullet, not the shared runtime), so its tick rate, eviction policy, and stacking rules differ:

SourceRadiusPer-tick damageTick rateDurationNotes
Plasma Mortar landing zone80% of weapon blast radiusceil(impact_damage × 0.10)4 Hz3.0 sCarries energy tag, not part of the 16-zone cap

Interaction notes

  • Zones inherit the spawner’s damage tag through the damageEnemy call chain. Fire Trail, Thermite Charge, and Carpet Bomber echoes deal fire-tagged damage; the Plasma Mortar’s separate zone deals energy-tagged damage.
  • The 16-zone FIFO cap is global across all shared-runtime sources. A wave of Carpet Bomber echoes can evict older Fire Trail patches mid-trail.
  • Stacking the Thermite Charge artifact onto a Fire Trail build produces additive ticks, not multiplicative — each zone applies its own dps × 0.25 per tick to overlapping targets.

EXTRACT-CANDIDATE: The Plasma Mortar’s plasma_fire_zone bullet-behavior is a parallel persistent-damage-patch system. Its own page (or a unified “persistent damage zones” concept) could absorb it, with this page narrowing to “shared flame-zone runtime.”

EXTRACT-CANDIDATE: The Carpet Bomber landing also spawns a second fire_patch_zone bullet-behavior patch alongside the shared-runtime echo. That is a third persistent-zone code path and is not covered here.


Summary: Documented the shared flame-zone runtime that backs Fire Trail, Thermite Charge, and the Carpet Bomber’s Bomb Pyre echo. Specified the 0.25 s tick interval, 16-zone FIFO cap, dps contract, and per-source spawn parameters in tables. Flagged that Plasma Mortar and Carpet Bomber’s main fire-patch bullet are separate parallel systems (extract candidates).