DeathBallImpact

From Eternity Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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