BasicWatcher is a simple actor you want to use when you need a parallel process done in DECORATE.

You can imagine this actor as an invisible helper actor that can manipulate the spawner’s inventory or wait for a specific case to happen before executing a task.

This actor has helped facilitate a lot of the more complicated weapons in MM8BDM by offloading certain behaviors from the weapons. Because of this, examples might be difficult to grasp at a glance.

DECORATE Definition

<aside> 🚨 Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:

actor BasicWatcher
{
    +MISSILE
    -SOLID
    +NOCLIP
    +NOINTERACTION
    +NOGRAVITY
    +DONTBLAST
    +DONTREFLECT
    +THRUACTORS
    +NOBLOCKMAP
    renderstyle none
    radius 2
    height 2
    States
    {
    Spawn:
        TNT1 A 1
        stop
    Death:
        TNT1 A 1
        stop
    }
}

Example


Here is a custom example watcher that borrows some base MM8BDM actors to give the spawner 1.45x speed for 45 seconds and a dusty trail effect while that speed is active.

actor DustySpeed : BasicWatcher
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_GiveToTarget("ScorchWheelPowerup", 1)
		SpawnLoop:
			TNT1 A 1 A_Warp(AAPTR_TARGET, 0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)
			TNT1 A 0 A_SpawnItemEx("MetDaddyJumpFog", 0, 0, 0, -10, 0, 0, 0)
			TNT1 A 0 A_JumpIfInTargetInventory("ScorchWheelPowerup", 1, "Spawn")
			TNT1 A 5
			stop
	}
}