DeathBallImpact

From Eternity Wiki
Jump to navigationJump to search

Description

Used by the Heretic super firemace sphere impact sequence.

Usage

DeathBallImpact

Parameters

No parameters.

Examples

From base/heretic/things.edf:

Death:
   FX02 C 4 Bright A_DeathBallImpact
   FX02 GHIJ 4 Bright
   stop

Notes

This codepointer handles the complex behaviour of the Heretic super mace spheres on impact.

  • If it has landed on any liquid, remove it (only the terrain splash will remain, which is separate from the actor).
  • If it has landed on the floor, and still has vertical velocity:
  • If current target is still alive, change movement direction towards it. It will go towards it even if out of sight.
  • If no target, look all around in 16 directions, at a range of 640 map units, for a shootable target, and if found, change direction towards it.
It will set the state to spawnstate and play the sound with dehackednum 354 (which in Heretic is ht_pstop). Note that the bouncing effect is actually controlled with the HERETICBOUNCES thing type flag.
  • If it hits a wall or is out of vertical velocity, destroy it: set the NOGRAVITY flag, remove the LOGRAV flag and play sound with dehackednum 367 (ht_phohit). It will continue going through the current state sequence (instead of being restored to the spawn state).

This codepointer is meant to be called from a death frame, as it will restore the projectile to its spawn state if it can still move to a target.

The homing destination will be marked as "tracer" with respect to any other codepointers which allow referencing "target" vs "tracer".

See also