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.
<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
}
}
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
}
}