Classes:BossEye

From ZDoom Wiki
Jump to navigation Jump to search
Note: Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:
  1. You do NOT need to copy that actor, since it is already defined.
  2. In fact, it's not just useless, it will cause problems.
  3. If you want to modify it, or use a modified version, using inheritance is the way to go.
  4. The actor definitions here are put on the wiki for reference purpose only. Learn from them, don't copy them.
Boss cube shooter
Actor type Monster Game MiniDoom2LogoIcon.png (Doom2)
DoomEd Number 89 Class Name BossEye


Classes: BossEye


This is an invisible actor that periodically fires the SpawnShot actor, more commonly known as the "Boss Cube," as part of the boss on Doom 2's MAP30. Each cube will fly to a random location on the map (determined by a series of BossTarget actors placed in the map) and spawn an enemy at random.

ZScript definition

Note: The ZScript definition below is for reference and may be different in the current version of GZDoom.The most up-to-date version of this code can be found on GZDoom GitHub.
class BossEye : Actor
{
	Default
	{
		Height 32;
		+NOBLOCKMAP
		+NOSECTOR
	}
	States
	{
	Spawn:
		SSWV A 10 A_Look;
		Loop;
	See:
		SSWV A 181 A_BrainAwake;
		SSWV A 150 A_BrainSpit;
		Wait;
	}
}

DECORATE definition

Note: This is legacy code, kept for archival purposes only. DECORATE is deprecated in GZDoom and is completely superseded by ZScript. GZDoom internally uses the ZScript definition above.
ACTOR BossEye
{
  Height 32
  +NOBLOCKMAP
  +NOSECTOR
  States
  {
  Spawn:
    SSWV A 10 A_Look
    Loop
  See:
    SSWV A 181 A_BrainAwake
    SSWV A 150 A_BrainSpit  // See SpawnShot
    Wait
  }
}

Customization

You can customize which actors are spawned by inheriting from the BossEye actor and providing a list of actors using the DropItem property. For example, this code will create a new shooter that will spawn one of five custom monsters:

class CustomEye : BossEye
{
  Default
  {
    DropItem "UberZombie";
    DropItem "NaziCommando";
    DropItem "Trite";
    DropItem "D3Imp";
    DropItem "Chicken";
  }
}

Like for RandomSpawner, the second optional parameter of DropItem can be used to weigh the list, however the first optional parameter has no effect. The following example accurately replicates the odds of the normal BossEye:

class ICantBelieveItsNotBossEye : BossEye
{
  Default
  {
    DropItem "DoomImp",         255, 50;
    DropItem "Demon",	        255, 40;
    DropItem "Spectre",	        255, 30;
    DropItem "PainElemental",   255, 10;
    DropItem "Cacodemon",       255, 30;
    DropItem "Archvile",        255,  2;
    DropItem "Revenant",        255, 10;
    DropItem "Arachnotron",     255, 20;
    DropItem "Fatso",           255, 30;
    DropItem "HellKnight",      255, 24;
    DropItem "BaronOfHell",     255, 10;
  }
}

See also