Classes:PoisonBolt

From ZDoom Wiki
Jump to navigation Jump to search
Note: Wait! Stop! You do not need to copy this actor's code into your project! Here's why:
  1. This actor is already defined in GZDoom, there's no reason to define it again.
  2. In fact, trying to define an actor with the same name will cause an error (because it already exists).
  3. If you want to make your own version of this actor, use inheritance.
  4. Definitions for existing actors are put on the wiki for reference purpose only.
Poison bolt
Actor type Explosive Game MiniStrifeLogoIcon.png (Strife)
DoomEd Number None Class Name PoisonBolt
Conversation ID 102 Puzzle Item ID N/A


Classes: PoisonBolt
A poison bolt instantly kills most monsters. It deals 50 damage on a monster with the BOSS flag, but has no effect at all on any actor with the NOBLOOD flag (boss or not).

The special damage handgling is done with DoSpecialDamage.

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 PoisonBolt : Actor
{
	Default
	{
		Speed 30;
		Radius 10;
		Height 10;
		Damage 500;
		Projectile;
		+STRIFEDAMAGE
		MaxStepHeight 4;
		SeeSound "misc/swish";
		ActiveSound "misc/swish";
		Obituary "$OB_MPPOISONBOLT";
	}
	States
	{
	Spawn:
		ARWP A 10 A_LoopActiveSound;
		Loop;
	Death:
		AROW A 1;
		Stop;
	}
	
	override int DoSpecialDamage (Actor target, int damage, Name damagetype)
	{
		if (target.bNoBlood)
		{
			return -1;
		}
		if (target.health < 1000000)
		{
			if (!target.bBoss)			
				return target.health + 10;
			else
				return 50;
		}
		return 1;
	}
}

DECORATE definition

Nuvolabomb.png Warning: 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 PoisonBolt native
{
  Speed 30
  Radius 10
  Height 10
  Damage 500
  Projectile
  +STRIFEDAMAGE
  MaxStepHeight 4
  SeeSound "misc/swish"
  ActiveSound "misc/swish"
  Obituary "$OB_MPPOISONBOLT" // "%o recieved a lethal dose of %k's wrath."
  States
  {
  Spawn:
    ARWP A 10 A_LoopActiveSound
    Loop
  Death:
    AROW A 1
    Stop
  }
}