// base for all spectral monsters which hurt when being touched--------------

ACTOR SpectralMonster native
{
	Monster
	+SPECIAL
	+SPECTRAL
	+NOICEDEATH
	
	action native A_SpectreChunkSmall ();
	action native A_SpectreChunkLarge ();
	action native A_Spectre3Attack ();
	action native A_SpotLightning ();
}


// Container for all spectral lightning deaths ------------------------------

ACTOR SpectralLightningBase
{
	+NOTELEPORT
	+ACTIVATEIMPACT
	+ACTIVATEPCROSS
	+STRIFEDAMAGE
	MaxStepHeight 4
	RenderStyle Add
	SeeSound "weapons/sigil"
	DeathSound "weapons/sigilhit"
	States
	{
	Death:
		ZAP1 B 3 A_Explode(32,32)
		ZAP1 A 3 A_AlertMonsters
		ZAP1 BCDEFE 3
		ZAP1 DCB 2
		ZAP1 A 1
		Stop
	}
}

// Spectral Lightning death that does not explode ---------------------------

ACTOR SpectralLightningDeath1 : SpectralLightningBase
{
	States
	{
	Death:
		Goto Super::Death+1
	}
}

// Spectral Lightning death that does not alert monsters --------------------

ACTOR SpectralLightningDeath2 : SpectralLightningBase
{
	States
	{
	Death:
		Goto Super::Death+2
	}
}

// Spectral Lightning death that is shorter than the rest -------------------

ACTOR SpectralLightningDeathShort : SpectralLightningBase
{
	States
	{
	Death:
		Goto Super::Death+6
	}
}

// Spectral Lightning (Ball Shaped #1) --------------------------------------

ACTOR SpectralLightningBall1 : SpectralLightningBase
{
	Speed 30
	Radius 8
	Height 16
	Damage 70
	Projectile
	+SPECTRAL
	States
	{
	Spawn:
		ZOT3 ABCDE 4 Bright
		Loop
	}
}

// Spectral Lightning (Ball Shaped #2) --------------------------------------

ACTOR SpectralLightningBall2 : SpectralLightningBall1
{
	Damage 20
}

// Spectral Lightning (Horizontal #1) ---------------------------------------

ACTOR SpectralLightningH1 : SpectralLightningBase
{
	Speed 30
	Radius 8
	Height 16
	Damage 70
	Projectile
	+SPECTRAL

	action native A_SpectralLightningTail ();

	States
	{
	Spawn:
		ZAP6 A 4 Bright
		ZAP6 BC 4 Bright A_SpectralLightningTail
		Loop
	}
}


// Spectral Lightning (Horizontal #2) -------------------------------------

ACTOR SpectralLightningH2 : SpectralLightningH1
{
	Damage 20
}

// Spectral Lightning (Horizontal #3) -------------------------------------

ACTOR SpectralLightningH3 : SpectralLightningH1
{
	Damage 10
}

// ASpectralLightningHTail --------------------------------------------------

ACTOR SpectralLightningHTail
{
	+NOBLOCKMAP
	+NOGRAVITY
	+DROPOFF
	RenderStyle Add
	States
	{
	Spawn:
		ZAP6 ABC 5 Bright
		Stop
	}
}	

// Spectral Lightning (Big Ball #1) -----------------------------------------

ACTOR SpectralLightningBigBall1 : SpectralLightningDeath2
{
	Speed 18
	Radius 20
	Height 40
	Damage 130
	Projectile
	+SPECTRAL

	action native A_SpectralBigBallLightning ();

	States
	{
	Spawn:
		ZAP7 AB 4 Bright A_SpectralBigBallLightning
		ZAP7 CDE 6 Bright A_SpectralBigBallLightning
		Loop
	}
}


// Spectral Lightning (Big Ball #2 - less damaging) -------------------------

ACTOR SpectralLightningBigBall2 : SpectralLightningBigBall1
{
	Damage 30
}

// Sigil Lightning (Vertical #1) --------------------------------------------

ACTOR SpectralLightningV1 : SpectralLightningDeathShort
{
	Speed 22
	Radius 8
	Height 24
	Damage 100
	Projectile
	DamageType "SpectralLow"
	+SPECTRAL
	States
	{
	Spawn:
		ZOT1 AB 4 Bright
		ZOT1 CDE 6 Bright
		Loop
	}
}

// Sigil Lightning (Vertical #2 - less damaging) ----------------------------

ACTOR SpectralLightningV2 : SpectralLightningV1
{
	Damage 50
}

// Sigil Lightning Spot (roams around dropping lightning from above) --------

ACTOR SpectralLightningSpot : SpectralLightningDeath1
{
	Speed 18
	ReactionTime 70
	+NOBLOCKMAP
	+NOBLOCKMONST
	+NODROPOFF
	RenderStyle Translucent
	Alpha 0.6

	action native A_SpectralLightning ();

	States
	{
	Spawn:
		ZAP5 A 4 Bright A_Countdown
		ZAP5 B 4 Bright A_SpectralLightning
		ZAP5 CD 4 Bright A_Countdown
		Loop
	}
}

// Sigil Lightning (Big Vertical #1) ----------------------------------------

ACTOR SpectralLightningBigV1 : SpectralLightningDeath1
{
	Speed 28
	Radius 8
	Height 16
	Damage 120
	Projectile
	+SPECTRAL
	States
	{
	Spawn:
		ZOT2 ABCDE 4 Bright A_Tracer2
		Loop
	}
}

// Actor 90 -----------------------------------------------------------------

ACTOR SpectralLightningBigV2 : SpectralLightningBigV1
{
	Damage 60
}