Improving original monsters with DECORATE

From ZDoom Wiki

Jump to: navigation, search

Of course DECORATE isn't just useful about adding new stuff, you also can use it to improve the orginal monsters. Sometimes they act strangely, and DECORATE can help to remove these little quirks.


Improvement examples

Just take a look at the Cacodemon. When it dies, it collapses in the air or slowly collapses after hitting the floor, but we all would expect it to smash on the ground, splashing it's guts out instead. So let's fix this quirk.

actor Cacodemon2 : Cacodemon 3005 
{
bloodcolor "blue"
 states
 {
 Death:
   HEAD G 4 A_SetSolid
   HEAD G 4 A_SetShootable
   HEAD H 8 A_Scream
   HEAD H -1
   stop
 Crash:
   HEAD IJ 4 A_PlaySound ("*fist") //I had no better sound, so feel free to use another.
   HEAD K 2 A_NoBlocking
   HEAD K 1 A_UnsetSolid
   HEAD K 1 A_UnSetShootable
   HEAD L -1 A_SetFloorClip
   stop
 Raise:
   HEAD L 8 A_UnSetFloorClip
   HEAD KJIHG 8
   goto See
 }
}

This DECORATE Code, for example, improves the Cacodemon a little bit now. You can shoot it in the air, and it blocks any shots while falling. When it hits the ground, the state "Crash" is called (this state is called every time an actor is dead and hits the floor); it contains the code for collapsing and resetting the old corpse behavior (unshootable etc.) It's obviously not the best solution for it, but still a nice improvement when they drop after shooting them on maps with a high ceiling.

It also changes the Cacodemon's blood color to blue rather than the default red color, as the cacodemon's insides appear blue when he dies.

Personal tools