#include "Common.txt"
#include "Lakshmi.txt"
#include "DragonPrince.txt"
#include "Eidolon.txt"

// DISCIPLES

ACTOR NewSOVDiscipleRed : SOVDiscipleRed replaces SOVDiscipleRed 10085
{
	Translation "231:239=164:185"  // Purple (Magic Glow) to Red

	Health 2500
	Speed 15
	PainChance 60
	Mass 200
	SeeSound "wizard/laugh"
	PainSound "wizard/pain"
	DeathSound "wizard/death"
	ActiveSound "wizard/active"
	Obituary "%o met his end at the Disciple of Fire."
	+NOBLOOD
	+DONTMORPH
	+NOTELEOTHER
	+BOSS
	Tag "Disciple of Fire"
	DropItem ArtiHealingRadius
	Species "Cyberdemon"
	DropItem "AccessoryRandomSpawner" 32
	States
	{
		Spawn:
			WZRD A 0
			WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 2500, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
		Idle:
			WZRD A 10 A_Look
			Goto Spawn2
		See:
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 0 A_Jump(60,"Dash")
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 0 A_Jump(60,"Dash")
			Loop
		Dash:
			WZRD A 0 A_Stop
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_PlaySound("BishopBlur")
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleRedBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD B 0 A_Stop
			WZRD B 8 A_Jump(64,"Dash")
			Goto Missile
		Missile:
			WZRD B 0 A_Stop
			WZRD C 0 Bright A_Jump(128,"Missile1")
			WZRD C 0 Bright A_Jump(128,"Missile2")
			Goto Missile3
		Missile1:
			WZRD B 0 A_Stop
			WZRD C 4 Bright A_FaceTarget
			WZRD C 4 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
			WZRD D 0 Bright A_CustomMissile("WraithFX1",32,0,0)
			WZRD D 0 Bright A_CustomMissile("WraithFX1",32,0,random(0,40)-20)
			WZRD D 12 Bright A_CustomMissile("WraithFX1",32,0,random(0,40)-20)
			WZRD D 0 Bright A_Jump(64,"Missile1")
			Goto See
		Missile2:
			WZRD C 7 Bright A_StartFire
			WZRD C 0 Bright A_FaceTarget
			WZRD C 7 Bright A_VileTarget("SOVDiscipleRedFire")
			WZRD CCCCCCCC 7 Bright A_FaceTarget
			WZRD D 12 Bright A_VileAttack
			Goto See
		Missile3:
			WZRD C 0 A_Stop
			WZRD C 0 A_PlaySound("wizard/laugh")
			WZRD C 0 Bright A_FaceTarget
			WZRD C 0 Bright A_SetReflectiveInvulnerable
			WZRD C 7 A_CustomMissile("SOVDiscipleRedCharge",0,0,0)
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 Bright A_UnSetReflectiveInvulnerable
			WZRD D 0 Bright A_PlaySound("MageStaffFire")
			WZRD D 0  Bright A_CustomMissile("DragonFireball",32,0,0,0)
			WZRD D 0  Bright A_CustomMissile("DragonFireball",32,0,random(0,20)-10,0,0)
			WZRD D 0  Bright A_CustomMissile("DragonFireball",32,0,random(0,20)-10,0,0)
			WZRD D 0  Bright A_CustomMissile("DragonFireball",32,0,random(0,20)-10,0,-30)
			WZRD D 0  Bright A_CustomMissile("DragonFireball",32,0,random(0,20)-10,0,-20)
			WZRD D 12 Bright A_CustomMissile("DragonFireball",32,0,random(0,20)-10,0,-10)
			Goto See
		Pain:
			WZRD E 3 A_UnSetReflectiveInvulnerable
			WZRD E 3 A_Pain
			Goto Dash
		Death:
			WZRD F 6 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 3000)
			WZRD G 6 Bright A_Scream
			WZRD HI 6 Bright
			WZRD J 6 A_NoBlocking
			WZRD KL 6
			WZRD M -1 A_SetFloorClip
			Stop
		}
	}
	
ACTOR SOVDiscipleRedBlur
{
	Translation "231:239=164:185"  // Purple (Magic Glow) to Red
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	+NOBLOCKMAP
	ALPHA 1
	Damage 0
	States
	{
		Spawn:
			WZRD N 12 
			Stop
		}
	}

ACTOR SOVDiscipleRedFire
{
	RenderStyle Add
	Alpha 1
	+NOBLOCKMAP
	+NOGRAVITY
	DropItem "AccessoryRandomSpawner" 32

	States
	{
		Spawn:
			FIRE A 2 Bright A_StartFire
			FIRE BAB 2 Bright A_Fire
			FIRE C 2 Bright A_FireCrackle
			FIRE BCBCDCDCDEDED 2 Bright A_Fire
			FIRE E 2 Bright A_FireCrackle
			FIRE FEFEFGHGHGH 2 Bright A_Fire
			Stop
		}
	}

ACTOR SOVDiscipleRedChargeGlitter : TeleGlitter1
{
	RenderStyle ADD
	Alpha 1
	Scale 4.0
	Translation "217:223=164:185"  // Blue to Red
	States
	{
		Spawn:
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			Loop
		}
}
	
ACTOR SOVDiscipleRedCharge : TeleGlitterGenerator1
{
	States
	{
		Spawn:
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleRedChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			Stop
		}
	}

ACTOR NewSOVDiscipleGreen : SOVDiscipleGreen replaces SOVDiscipleGreen 10086
{
	Translation "231:239=211:216", "164:185=192:202"  // Purple (Magic Glow) to Green, Red Trim to Green
	Tag "Disciple of Disease"
	Obituary "%o met his end at the Disciple of Disease."
	DropItem ArtiHealingRadius
	DropItem "AccessoryRandomSpawner" 32
	States
	{
		Spawn:
			WZRD A 0 
			WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 2500, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
		Spawn2:
			WZRD A 10 A_Look
			Goto Spawn2
		See:
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 0 A_Jump(60,"Dash")
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 0 A_Jump(60,"Dash")
			Loop
		Dash:
			WZRD A 0 A_Stop
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_PlaySound("BishopBlur")
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDiscipleGreenBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD B 0 A_Stop
			WZRD B 8 A_Jump(64,"Dash")
			Goto Missile
		Missile:
			WZRD B 0 A_Stop
			WZRD C 0 Bright A_Jump(128,"Missile1")
			WZRD C 0 Bright A_Jump(192,"Missile2")
			Goto Missile3
		Missile1:
			WZRD B 0 A_Stop
			WZRD C 4 Bright A_FaceTarget
			WZRD C 4 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
			WZRD D 0 Bright A_CustomMissile("Demon2FX1",32,0,0)
			WZRD D 0 Bright A_CustomMissile("Demon2FX1",32,0,random(0,40)-20)
			WZRD D 12 Bright A_CustomMissile("Demon2FX1",32,0,random(0,40)-20)
			WZRD D 0 Bright A_Jump(64,"Missile1")
			Goto See
		Missile2:
			WZRD C 7 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
		Missile2Repeat:
			WZRD D 0 Bright A_FaceTarget 
			WZRD D 0 Bright A_PlaySound("ClericCStaffFire")
			WZRD D 0 Bright A_CustomMissile("CStaffMissile",32,-20,0)
			WZRD D 7 Bright A_CustomMissile("CStaffMissile",32,20,0)
			WZRD D 7 A_MonsterRefire(128, "See")
			Goto Missile2Repeat
		Missile3:
			WZRD C 0 A_Stop
			WZRD C 0 A_PlaySound("wizard/laugh")
			WZRD C 0 Bright A_FaceTarget
			WZRD C 0 Bright A_SetReflectiveInvulnerable
			WZRD C 7 A_CustomMissile("SOVDiscipleGreenCharge",0,0,0)
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 Bright A_UnSetReflectiveInvulnerable
			WZRD D 0 Bright A_PlaySound("SorcererSpellCast")
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleGreenPod",32,0,random(0,60)-30,4,50)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleGreenPod",32,0,random(0,60)-30,4,30)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleGreenPod",32,0,random(0,60)-30,4,10)
			WZRD D 12 Bright A_CustomMissile("SOVDiscipleGreenPod",32,0,random(0,60)-30,4,20)
			Goto See
		Pain:
			WZRD E 3 A_UnSetReflectiveInvulnerable
			WZRD E 3 A_Pain
			Goto Dash
		Death:
			WZRD F 6 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT, 0, 3000)
			WZRD G 6 Bright A_Scream
			WZRD HI 6 Bright
			WZRD J 6 A_NoBlocking
			WZRD KL 6
			WZRD M -1 A_SetFloorClip
			Stop
		}
	}
	
ACTOR SOVDiscipleGreenBlur
{
	Translation "231:239=211:216","164:185=192:202"  // Purple (Magic Glow) to Green, Red Trim to Green
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	+NOBLOCKMAP
	ALPHA 1
	Damage 0
	States
	{
		Spawn:
			WZRD N 12
			Stop
		}
	}

ACTOR SOVDiscipleGreenChargeGlitter : TeleGlitter1
{
	RenderStyle ADD
	Alpha 1
	Scale 4.0
	Translation "217:223=211:216"  // Blue to Green
	States
	{
		Spawn:
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			Loop
		}
}
	
ACTOR SOVDiscipleGreenCharge : TeleGlitterGenerator1
{
	States
	{
		Spawn:
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleGreenChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			Stop
		}
	}

ACTOR SOVDiscipleGreenPod
{
	Speed 20
	Radius 8
	Height 16
	+NOBLOCKMAP
	+MISSILE
	+NOTELEPORT



	+EXPLODEONWATER
	States
	{
		Spawn:
			SBS3 ABC 2 Bright
			Loop
		Death:
			SBS3 A 4 Bright A_SpawnItemEx("SOVDiscipleGreenCloud", 0, 0, 28, 0, 0, 0, 0)
			Stop
		}
	}

ACTOR SOVDiscipleGreenCloud : PoisonCloud
{
	Obituary "%o choked on the Disciple of Disease's wrath."
	}

ACTOR NewSOVDiscipleBlue : SOVDiscipleBlue replaces SOVDiscipleBlue 10087
{
	Translation "231:239=217:223","164:185=146:163"  // Purple (Magic Glow) to Blue, Red Trim to Blue
	Speed 20
	PainChance 30
	Obituary "%o met his end at the Disciple of Physics."
	Tag "Disciple of Physics"
	DropItem ArtiHealingRadius
	DropItem "AccessoryRandomSpawner" 32
	States
	{
		Spawn:
			WZRD A 0
			WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 2500, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)

		Spawn2:
			WZRD A 10 A_Look
			Goto Spawn2
		See:
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 0 A_Jump(60,"Blink")
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 0 A_Jump(60,"Blink")
			Loop
		Blink:
			WZRD F 0 Bright A_Stop
			WZRD F 0 Bright A_UnSetSolid
			WZRD F 4 Bright A_PlaySound("UseArtifact")
			WZRD G 4 Bright
			WZRD H 4 Bright
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 0 A_Wander 
			TNT1 A 1 A_Wander 
			WZRD H 0 Bright A_Stop
			WZRD H 4 Bright A_PlaySound("UseArtifact")
			WZRD G 4 Bright
			WZRD F 4 Bright
			WZRD A 4 A_SetSolid
			Goto Missile
		Missile:
			WZRD B 0 A_Stop
			WZRD C 0 Bright A_Jump(128,"Missile1")
			WZRD C 0 Bright A_Jump(192,"Missile2")
			Goto Missile3
		Missile1:
			WZRD B 0 A_Stop
			WZRD C 4 Bright A_FaceTarget
			WZRD C 4 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
			WZRD D 0 Bright A_CustomMissile("CentaurFX",32,0,0)
			WZRD D 0 Bright A_CustomMissile("CentaurFX",32,0,random(0,40)-20)
			WZRD D 12 Bright A_CustomMissile("CentaurFX",32,0,random(0,40)-20)
			WZRD D 0 Bright A_Jump(64,"Missile1")
			Goto See
		Missile2:
			WZRD C 0 Bright A_PlaySound("wizard/sight")
			WZRD C 17 Bright A_FaceTarget
		Missile2Repeat:
			WZRD D 0 Bright A_FaceTarget
			WZRD D 3 Bright A_CustomMissile("SOVDiscipleBlueBall",32,0,random(0,40)-20)
			WZRD D 0 A_MonsterRefire(0, "See")
			WZRD D 3 A_Jump(16, "See")
			Goto Missile2Repeat
		Missile3:
			WZRD C 0 A_Stop
			WZRD C 0 A_PlaySound("wizard/laugh")
			WZRD C 0 Bright A_FaceTarget
			WZRD C 0 Bright A_SetReflectiveInvulnerable
			WZRD C 7 A_CustomMissile("SOVDiscipleBlueCharge",0,0,0)
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 Bright A_UnSetReflectiveInvulnerable
			WZRD D 0 Bright A_PlaySound("MageLightningFire")
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",128,135,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",128,135,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",-128,-135,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",-128,-135,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",64,90,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",64,90,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",-64,-90,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",-64,-90,0)
			WZRD D 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",0,0,0)
			WZRD D 12 Bright A_CustomMissile("SOVDiscipleBlueLFloor",0,0,0)
			Goto See
		Pain:
			WZRD E 3 A_UnSetReflectiveInvulnerable
			WZRD E 3 A_Pain
			WZRD E 0 A_Jump(64, "Blink")
			Goto See
		Death:
			WZRD F 6 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 3000)
			WZRD G 6 Bright A_Scream
			WZRD HI 6 Bright
			WZRD J 6 A_NoBlocking
			WZRD KL 6
			WZRD M -1 A_SetFloorClip
			Stop
		}
	}
	
ACTOR SOVDiscipleBlueChargeGlitter : TeleGlitter1
{
	RenderStyle ADD
	Alpha 1
	Scale 4.0
	States
	{
		Spawn:
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			Loop
		}
}
	
ACTOR SOVDiscipleBlueCharge : TeleGlitterGenerator1
{
	States
	{
		Spawn:
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDiscipleBlueChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			Stop
		}
	}

ACTOR SOVDiscipleBlueBall : SorcFX4
{
	Translation "231:239=217:223", "164:185=217:223"
	Speed 15
	+RANDOMIZE
	States
	{
		Spawn:
			SBS4 ABC 2 Bright
			Loop
		Death:
			BAL1 C 4 Bright
			BAL1 D 4 Bright A_Explode(20, 128, 0)
			BAL1 E 4 
			Stop
		}
	}

ACTOR SOVDiscipleBlueLCeil : LightningCeiling
{
	}

ACTOR SOVDiscipleBlueLFloor : LightningFloor
{
	}

ACTOR NewSOVDisciplePurple : SOVDisciplePurple replaces SOVDisciplePurple 10088
{
	Translation "164:185=231:239"  // Red Trim to Purple
	PainChance 45
	Obituary "%o met his end at the Disciple of Death"
	DropItem ArtiHealingRadius
	Tag "Disciple of Death"
	DropItem "AccessoryRandomSpawner" 32
	States
	{
		Spawn:
			WZRD A 0 
			TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 2500, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
		Spawn2:
			WZRD A 10 A_Look
			Goto Spawn2
		See:
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 3 A_Chase
			WZRD A 4 A_Chase
			WZRD A 0 A_Jump(60,"Dash")
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 3 A_Chase
			WZRD B 4 A_Chase
			WZRD B 0 A_Jump(60,"Dash")
			Loop
		Dash:
			WZRD A 0 A_Stop
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_PlaySound("BishopBlur")
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD A 0 A_CustomMissile("SOVDisciplePurpleBlur",0,0,0)
			WZRD A 4 A_FastChase
			WZRD A 0 A_FaceTarget
			WZRD B 0 A_Stop
			WZRD B 8 A_Jump(64,"Dash")
			Goto Missile
		Missile:
			WZRD B 0 A_Stop
			WZRD C 0 Bright A_Jump(128,"Missile1")
			WZRD C 0 Bright A_Jump(128,"Missile2")
			Goto Missile3
		Missile1:
			WZRD B 0 A_Stop
			WZRD C 4 Bright A_FaceTarget
			WZRD C 4 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
			WZRD D 0 Bright A_CustomMissile("SOVDisciplePurpleBall",32,0,0)
			WZRD D 0 Bright A_CustomMissile("SOVDisciplePurpleBall",32,0,random(0,40)-20)
			WZRD D 12 Bright A_CustomMissile("SOVDisciplePurpleBall",32,0,random(0,40)-20)
			WZRD D 0 Bright A_Jump(64,"Missile1")
			Goto See
		Missile2:
			WZRD C 0 Bright A_PlaySound("wizard/sight")
			WZRD C 7 Bright A_FaceTarget
			WZRD C 7 A_FaceTarget
			WZRD C 7 Bright A_FaceTarget
			WZRD C 7 A_FaceTarget
			WZRD C 7 Bright A_FaceTarget
			WZRD D 0 Bright A_PlaySound("wizard/attack")
			WZRD D 0 Bright ACS_Execute(300)  // Call spawning of dead guys
			WZRD D 12 Bright A_FaceTarget
			Goto See
		Missile3:
			WZRD C 0 A_Stop
			WZRD C 0 A_PlaySound("wizard/laugh")
			WZRD C 0 Bright A_FaceTarget
			WZRD C 0 Bright A_SetReflectiveInvulnerable
			WZRD C 7 A_CustomMissile("SOVDisciplePurpleCharge",0,0,0)
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 A_FaceTarget
			WZRD C 0 A_Stop
			WZRD C 7 Bright A_FaceTarget
			WZRD C 0 Bright A_UnSetReflectiveInvulnerable
		Missile3Repeat:
			WZRD D 0 Bright A_PlaySound("SpiritActive")
			WZRD D 8 Bright A_CustomMissile("SOVDisciplePurpleSpirit",0,0,random(0,90)-45)
			WZRD D 8 A_MonsterRefire(0, "See")
			Goto Missile3Repeat
		Pain:
			WZRD E 3 A_UnSetReflectiveInvulnerable
			WZRD E 3 A_Pain
			WZRD E 0 A_Jump(64, "Dash")
			Goto See
		Death:
			WZRD F 6 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 3000)
			WZRD F 6 Bright A_KillChildren
			WZRD G 6 Bright A_Scream
			WZRD HI 6 Bright
			WZRD J 6 A_NoBlocking
			WZRD KL 6
			WZRD M -1 A_SetFloorClip
			Stop
		}
	}

ACTOR SOVDisciplePurpleBlur
{
	Translation "164:185=231:239"  // Red Trim to Purple
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	+NOBLOCKMAP
	ALPHA 1
	Damage 0
	States
	{
		Spawn:
			WZRD N 12
			Stop
		}
	}

ACTOR SOVDisciplePurpleWraith : WraithBuried
{
	+FLOORHUGGER
	}
	
ACTOR SOVDisciplePurpleSpirit : HolySpirit
{
	Translation "1:32=235:239"
	}
	
ACTOR SOVDisciplePurpleChargeGlitter : TeleGlitter1
{
	RenderStyle ADD
	Alpha 1
	Scale 4.0
	Translation "217:223=231:239"  // Blue to Purple
	States
	{
		Spawn:
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			HWAT A 2 BRIGHT A_AccTeleGlitter
			HWAT A 2 BRIGHT
			Loop
		}
}
	
ACTOR SOVDisciplePurpleCharge : TeleGlitterGenerator1
{
	States
	{
		Spawn:
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			TNT1 A 8 A_SpawnItemEx("SOVDisciplePurpleChargeGlitter", random(0,31)-16, random(0,31)-16, 0, 0,0,0.25)
			Stop
		}
	}

ACTOR SOVDisciplePurpleBall : SorcFX4
{
	Translation "164:185=231:239"
	Speed 20
	+RANDOMIZE
	Obituary "%o was blasted by the Disciple of Death."
	Tag "Disciple of Death"
	States
	{
		Spawn:
			SBS4 ABC 2 Bright
			Loop
		Death:
			BAL1 C 4 Bright
			BAL1 D 4 Bright A_Explode(20, 128)
			BAL1 E 4 
			Stop
		}
	}

// VISCERUS

ACTOR NewViscerus : Viscerus replaces Viscerus 10082
{
	Health 4000
	Radius 35
	Height 80
	Speed 20
	PainChance 30
	Mass 400
	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NOTELEOTHER
	+BOSS
	+NOICEDEATH
	+NOTARGET
	RENDERSTYLE NORMAL
	ALPHA 1.0
	PainSound "SorcererPain"
	DeathSound "SorcererPain"
	ActiveSound "SorcererActive"
	AttackSound "SorcererSpellCast"
	Obituary "%o was laid to waste by Viscerus."
	DropItem "AccessoryRandomSpawner" 32
	Tag "Viscerus"

	States
	{
		Spawn:
			SORC A 10 A_Look
			SORC A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 4000, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
		See:
			SORC F 0 Bright A_SetReflectiveInvulnerable
			SORC F 175 Bright
			SORC F 0 Bright A_UnSetReflectiveInvulnerable
		RegularSee:
			SORC A 2 A_Chase
			SORC A 0 A_CustomMissile("VisShadow1",0,0,0)
			SORC A 2 A_Chase
			SORC A 0 A_CustomMissile("VisShadow1",0,0,0)
			SORC B 2 A_Chase
			SORC B 0 A_CustomMissile("VisShadow2",0,0,0)
			SORC B 2 A_Chase
			SORC B 0 A_CustomMissile("VisShadow2",0,0,0)
			SORC C 2 A_Chase
			SORC C 0 A_CustomMissile("VisShadow3",0,0,0)
			SORC C 2 A_Chase
			SORC C 0 A_CustomMissile("VisShadow3",0,0,0)
			SORC D 2 A_Chase
			SORC D 0 A_CustomMissile("VisShadow4",0,0,0)
			SORC D 2 A_Chase
			SORC D 0 A_CustomMissile("VisShadow4",0,0,0)
			Goto See+3
		Missile:
			SORC D 0 A_Jump(128,"Missile1")
			SORC D 0 A_Jump(128,"Missile2")
			Goto Missile3
		Missile1:
			SORC F 6 Bright A_FaceTarget
			SORC E 0 Bright A_PlaySound("SorcererSpellCast")
			SORC E 0 Bright A_CustomMissile("CentaurFX", 36, 0, -5)
			SORC E 4 Bright A_CustomMissile("CentaurFX", 36, 0, 5)
			Goto RegularSee
		Missile2:
			SORC F 18 Bright A_FaceTarget
			SORC E 0 Bright A_PlaySound("SorcererSpellCast")
		Missile2A:
			SORC E 5 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, 20)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, -20)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, 10)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, -10)
			SORC E 9 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, 0)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, 15)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, -15)
			SORC E 0 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, 5)
			SORC E 9 Bright A_CustomMissile("SOVDiscipleBlueBall", 36, 0, -5)
			SORC E 0 A_MonsterRefire(0, "RegularSee")
			Goto Missile2A
		Missile3:
			SORC F 0 Bright A_PlaySound("SorcererActive")
			SORC FFFFF 7 Bright A_FaceTarget
		Missile3A:
			SORC F 10 Bright A_FaceTarget
			SORC E 0 Bright A_PlaySound("MageLightningFire")
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",128,135,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",128,135,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",-128,-135,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",-128,-135,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",64,90,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",64,90,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",-64,-90,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLFloor",-64,-90,0)
			SORC E 0  Bright A_CustomMissile("SOVDiscipleBlueLCeil",0,0,0)
			SORC E 12 Bright A_CustomMissile("SOVDiscipleBlueLFloor",0,0,0)
			SORC E 0 A_MonsterRefire(0, "RegularSee")
			Goto Missile3A
		Pain:
			SORC G 3
			SORC G 4 A_Pain
			Goto RegularSee
		Death:
			SORC G 3 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT, 0, 4000)
			SORC G 4 A_Pain 
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 0)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 22)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 45)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 67)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 90)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 112)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 135)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 157)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, 180)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -22)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -45)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -67)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -90)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -112)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -135)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -157)
			SORC G 0 A_CustomMissile("CentaurFX", 36, 0, -180)
			Stop
		}

	}

// Second stage of Viscerus's fury!
ACTOR NewViscerus2 : Viscerus2 replaces Viscerus2
{
	Health 4000
	Radius 35
	Height 80
	Speed 12
	PainChance 30
	Mass 400

	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NOTELEOTHER
	+BOSS
	+NOICEDEATH
	+NOTARGET
	RENDERSTYLE NORMAL
	ALPHA 1.0
	PainSound "SorcererPain"
	DeathSound "SorcererPain"
	ActiveSound "SorcererActive"
	AttackSound "SorcererSpellCast"
	MissileHeight 36
	Obituary "%o was laid to waste by Viscerus."
	Tag "Viscerus"

	States
	{
		Spawn:
			SORC A 10 A_Look
			SORC A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 4000, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
			Loop
		See:
			SORC AABBCCDD 2 A_Chase
			Goto See
		Missile:
			SORC D 0 A_Jump(128,"Missile1")
			SORC D 0 A_Jump(128,"Missile2")
			SORC D 0 A_Jump(128,"Missile3")
			Goto Missile4
		Missile1:
			SORC F 0 A_FaceTarget
			SORC F 10 Bright
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("Demon2FX1", 36, 0, -12)
			SORC E 0 Bright A_CustomMissile("Demon2FX1", 36, 0, 12)
			SORC E 0 Bright A_CustomMissile("Demon2FX1", 36, 0, -24)
			SORC E 0 Bright A_CustomMissile("Demon2FX1", 36, 0, 24)
			SORC E 17 Bright A_CustomMissile("Demon2FX1", 36, 0, 0)
			Goto See
		Missile2:
			SORC F 0 A_FaceTarget
			SORC F 10 Bright
			SORC E 0 A_FaceTarget
			SORC E 4 Bright A_PlaySound("BishopAttack")
		Missile2A:
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("BishopFX", 36, 10, 0)
			SORC E 6 Bright A_CustomMissile("BishopFX", 36, -10, 0)
			SORC E 0 A_MonsterRefire(0, "See")
			Goto Missile2A
		Missile3:
			SORC F 0 A_FaceTarget
			SORC F 15 Bright A_PlaySound("SorcererActive")
			SORC E 0 Bright A_CustomMissile("SorcFX3", 36, 0, -135)
			SORC E 0 Bright A_CustomMissile("SorcFX3", 36, 0, 135)
			SORC E 0 Bright A_CustomMissile("SorcFX3", 36, 0, 45)
			SORC E 17 Bright A_CustomMissile("SorcFX3", 36, 0, -45)
			Goto See
		Missile4:
			SORC F 0 Bright A_FaceTarget
			SORC F 5 Bright A_PlaySound("SorcererPain")
			SORC F 5 Bright A_PlaySound("SorcererPain")
			SORC F 29 Bright A_PlaySound("SorcererPain")
			SORC F 0 Bright A_FaceTarget
			SORC F 0 Bright A_PlaySound("SorcererSpellCast")
			SORC E 0 Bright A_CustomMissile("PorkFX", 36, 0, -10)
			SORC E 0 Bright A_CustomMissile("PorkFX", 36, 0, 0)
			SORC E 17 Bright A_CustomMissile("PorkFX", 36, 0, 10)
			Goto See

		Pain:
			SORC G 3
			SORC G 4 A_Pain
			Goto See
		Death:
			SORC G 3 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT, 0, 3000)
			SORC G 4 A_Pain
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 0)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 22)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 45)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 67)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 90)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 112)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 135)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 157)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, 180)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -22)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -45)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -67)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -90)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -112)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -135)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -157)
			SORC G 0 A_CustomMissile("Demon2FX1", 36, 0, -180)
			Stop
		}

	}

// Third stage of Viscerus's fury!
ACTOR NewViscerus3 : Viscerus3 replaces Viscerus3
{
	Health 4000
	Radius 35
	Height 80
	Speed 12
	PainChance 30
	Mass 400

	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NOTELEOTHER
	+BOSS
	+NOICEDEATH
	+NOTARGET
	RENDERSTYLE NORMAL
	ALPHA 1.0
	PainSound "SorcererPain"
	DeathSound "SorcererPain"
	ActiveSound "SorcererActive"
	AttackSound "SorcererSpellCast"
	MissileHeight 36
	Obituary "%o was laid to waste by Viscerus."
	DropItem "AccessoryRandomSpawner" 32
	Tag "Viscerus"
	States
	{
		Spawn:
			SORC A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 4000, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
			SORC A 10 A_Look
			Loop
		See:
			SORC AABBCCDD 2 A_Chase
			Goto See
		Missile:
			SORC D 0 A_Jump(128,"Missile1")
			SORC D 0 A_Jump(128,"Missile2")
			Goto Missile3
		Missile1:
			SORC F 0 A_FaceTarget
			SORC F 10 Bright
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("WraithFX1", 36, 0, -12)
			SORC E 0 Bright A_CustomMissile("WraithFX1", 36, 0, 12)
			SORC E 0 Bright A_CustomMissile("WraithFX1", 36, 0, -24)
			SORC E 0 Bright A_CustomMissile("WraithFX1", 36, 0, 24)
			SORC E 17 Bright A_CustomMissile("WraithFX1", 36, 0, 0)
			Goto See
		Missile2:
			SORC F 0 A_FaceTarget
			SORC F 15 Bright A_PlaySound("SorcererActive")
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("VisBallFX", 36, 0, 64)
			SORC E 17 Bright A_CustomMissile("VisBallFX", 36, 0, -64)
			Goto See
		Missile3:
			SORC F 0 Bright A_FaceTarget
			SORC F 18 Bright A_PlaySound("SorcererActive")
		Missile3A:
			SORC F 0 A_FaceTarget
			SORC F 17 Bright 
			SORC F 0 Bright A_FaceTarget
			SORC E 0 Bright A_PlaySound("MageStaffFire")
			SORC E 0 Bright A_CustomMissile("DragonFireball",33,0,0)
			SORC E 0 Bright A_CustomMissile("DragonFireball",33,0,-12)
			SORC E 0 Bright A_CustomMissile("DragonFireball",33,0,12)
			SORC E 0 Bright A_CustomMissile("DragonFireball",33,0,-24)
			SORC E 17 Bright A_CustomMissile("DragonFireball",33,0,24)
			SORC E 0 A_MonsterRefire(0, "See")
			Goto Missile3A
		Pain:
			SORC G 3
			SORC G 4 A_Pain
			Goto See
		Death:
			SORC G 3 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT, 0, 4000)
			SORC G 4 A_Pain
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 0)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 22)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 45)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 67)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 90)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 112)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 135)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 157)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, 180)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -22)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -45)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -67)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -90)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -112)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -135)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -157)
			SORC G 0 A_CustomMissile("Demon1FX1", 36, 0, -180)
			Stop
		}

	}

// Fourth stage of Viscerus's fury!
ACTOR NewViscerus4 : Viscerus4 replaces Viscerus4
{
	Health 4000
	Radius 35
	Height 80
	Speed 12
	PainChance 30
	Mass 400

	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NOTELEOTHER
	+BOSS
	+NOICEDEATH
	+NOTARGET
	RENDERSTYLE NORMAL
	ALPHA 1.0
	PainSound "SorcererPain"
	DeathSound "SorcererDeathScream"
	ActiveSound "SorcererActive"
	AttackSound "SorcererSpellCast"
	MissileHeight 36
	Obituary "%o was laid to waste by Viscerus."
	Tag "Viscerus"
	DropItem "AccessoryRandomSpawner" 32
	States
	{
		Spawn:
			SORC A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT, 0, 4000, 110, WOC_STAT|WOC_BOSS|WOC_MAXLEVEL)
			SORC A 10 A_Look
			Loop
		See:
			SORC AABBCCDD 2 A_Chase
			Goto See
		Missile:
			SORC F 0 A_FaceTarget
			SORC D 0 A_Jump(128,"Missile1")
			SORC D 0 A_Jump(192,"Missile2")
			Goto Missile3
		Missile1:
			SORC F 0 A_FaceTarget
			SORC F 10 Bright
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("SOVDisciplePurpleBall", 36, 0, -24)
			SORC E 0 Bright A_CustomMissile("SOVDisciplePurpleBall", 36, 0, 24)
			SORC E 0 Bright A_CustomMissile("SOVDisciplePurpleBall", 36, 0, -12)
			SORC E 0 Bright A_CustomMissile("SOVDisciplePurpleBall", 36, 0, 12)
			SORC E 17 Bright A_CustomMissile("SOVDisciplePurpleBall", 36, 0, 0)
			Goto See
		Missile2:
			SORC F 15 Bright A_PlaySound("SorcererActive")
			SORC E 0 A_FaceTarget
			SORC E 0 Bright A_CustomMissile("VisDeathWave", 36, 0, -20)
			SORC E 0 Bright A_CustomMissile("VisDeathWave", 36, 0, 20)
			SORC E 17 Bright A_CustomMissile("VisDeathWave", 36, 0, 0)
			Goto See
		Missile3:
			SORC F 0 Bright A_FaceTarget
			SORC F 35 Bright A_PlaySound("SorcererActive")
		Missile3Repeat:
			SORC E 0 Bright A_PlaySound("SpiritActive")
			SORC E 0 Bright A_CustomMissile("SOVDisciplePurpleSpirit",0,0,20)
			SORC E 8 Bright A_CustomMissile("SOVDisciplePurpleSpirit",0,0,-20)
			SORC E 8 A_MonsterRefire(0, "See")
			Goto Missile3Repeat
		Pain:
			SORC G 3
			SORC G 4 A_Pain
			Goto See
		Death:
			SORC H 5 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT, 0, 4000)
			SORC I 5 Bright A_FaceTarget
			SORC J 5 Bright A_Scream
			SORC KLMNOPQRST 5 Bright
			SORC U 5 Bright A_NoBlocking
			SORC VWXY 5 Bright
			SORC Z -1 Bright
			Stop
		}
	}

ACTOR VisBallFX : SorcFX1
{
	Speed 7
	Radius 5
	Height 5
	Health 5
	Damage 5
	Projectile
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	-NOGRAVITY
	+CANBOUNCEWATER
	+NOWALLBOUNCESND
	BounceFactor 1.0
	+HEXENBOUNCE
	SeeSound "SorcererBallBounce"
	DeathSound "SorcererHeadScream"

	States
	{
		Spawn:
			SBS1 A 2 Bright A_GetHurt
			SBS1 BCD 3 Bright
			Loop
		Death:
			CFCF Q 1 Bright
			CFCF Q 4 Bright A_UnHideThing
			CFCF R 3 Bright A_Scream
			CFCF S 4 Bright
			CFCF T 3 Bright A_Explode(80, 128, 0)
			CFCF U 4 Bright
			CFCF V 3 Bright
			CFCF W 4 Bright
			CFCF X 3 Bright
			CFCF Y 4 Bright
			CFCF Z 3 Bright
			Stop
		}
	}
	
ACTOR VisDeathWave
{
	Speed 10
	Radius 5
	Height 5
	Health 5
	Damage 5
	Projectile
	+FLOORHUGGER
	States
	{
		Spawn:
			TNT1 A 15
		Spawn2:
			TNT1 A 0 A_CustomMissile("VisDeathBlast",0,random(-64,64))
			TNT1 A 2 
			TNT1 A 2 A_Jump(64,"Spawn2")
			TNT1 A 2 A_Jump(64,"Spawn2")
			TNT1 A 2 A_Jump(64,"Spawn2")
			Goto Spawn2
		Death:
			TNT1 A 1
			Stop
		}
	}

ACTOR VisDeathBlast
{
	Speed 0
	Radius 8
	Height 8
	Damage 0
	Projectile
	+FLOORHUGGER
	States
	{
		Spawn:
		Death:
			SBS4 D 0 A_Jump(128,1)
			SBS4 D 0 A_PlaySound("SorcererBallExplode")
			SBS4 D 5 
			SBS4 E 5 Bright A_Explode(80,128)
			SBS4 FGH 6
			Stop
		}
	}

ACTOR VisShadow1
{
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	ALPHA 0.4
	States
	{
		Spawn:
			SORC A 12
			Stop
		}
	}

ACTOR VisShadow2
{
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	ALPHA 0.4
	States
	{
		Spawn:
			SORC B 12
			Stop
		}
	}

ACTOR VisShadow3
{
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	ALPHA 0.4
	States
	{
		Spawn:
			SORC C 12
			Stop
		}
	}

ACTOR VisShadow4
{
	PROJECTILE
	RENDERSTYLE ADD
	+NOCLIP
	ALPHA 0.4
	States
	{
		Spawn:
			SORC D 12
			Stop
		}
	}
ACTOR NewClericBoss : ClericBoss Replaces ClericBoss
{
  Health 4000
  +NODAMAGETHRUST
  +BOSS
  +TELESTOMP
  +NEVERRESPAWN
  +NOTELEOTHER
	+NOTARGET
  +NOPAIN
  DropItem "Armour2"
  DropItem "NewArtiSuperHealth"
  DamageFactor "Deathblow", 0
  Damagefactor "PoisonCloud", 0.25
  DropItem "AccessoryRandomSpawner" 32
  Tag "Traductus"
  States
  {
	Spawn:
    CLER A 0
	CLER A 0 A_GiveInventory("PowerTraductusDamage")
    CLER A 3 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,4000,64,WOC_BOSS|WOC_STAT)
  Idle:
    CLER A 5 A_Look
    Loop
  Death:
    CLER I 6
    CLER K 6 A_Scream
    CLER LL 6
	CLER A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    CLER M 6 A_NoBlocking
    CLER NOP 6
    CLER Q -1
    Stop
  XDeath:
	CLER R 0 A_SpawnItemEx("GIBBER")
    CLER R 5 A_Scream
    CLER S 5
	CLER A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    CLER T 5 A_NoBlocking
    CLER UVWXYZ 5
    CLER "[" -1
    Stop
  Ice:
    "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
	"----" "\" 5 A_GenericFreezeDeath
    "----" "\" 1 A_FreezeDeathChunks
    Wait
  Burn:
	CLER C 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    CLER C 5 Bright A_PlaySound("PlayerClericBurnDeath")
    FDTH D 4 Bright
    FDTH G 5 Bright
    FDTH H 4 Bright A_Scream
    FDTH I 5 Bright
    FDTH J 4 Bright
    FDTH K 5 Bright
    FDTH L 4 Bright
    FDTH M 5 Bright
    FDTH N 4 Bright
    FDTH O 5 Bright
    FDTH P 4 Bright
    FDTH Q 5 Bright
    FDTH R 4 Bright
    FDTH S 5 Bright A_NoBlocking
    FDTH T 4 Bright
    FDTH U 5 Bright
    FDTH V 4 Bright
    Stop
  }
}

Actor PowerTraductusDamage : PowerDamage
{
	Damagefactor "Normal", 2
	Powerup.Duration -500000000
}

ACTOR NewFighterBoss : FighterBoss Replaces FighterBoss
{
  Health 4000
+TELESTOMP
+NOPAIN
DropItem "Armour1"
DropItem "Armour3"
DropItem "Armour5"
+NODAMAGETHRUST
+BOSS
+NEVERRESPAWN
+NOTELEOTHER
	+NOTARGET
DamageFactor "Deathblow", 0
Damagefactor "PoisonCloud", 0.25
DropItem "AccessoryRandomSpawner" 32
Tag "Zedek"
  States
  {
  Spawn:
    PLAY A 0
    PLAY A 3 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,4000,64,WOC_BOSS)
  Idle:
	PLAY A 5 A_Look
    Loop
  Melee:
  Missile:
    PLAY E 8 A_FaceTarget
	PLAY F 0 A_PlaySound("FighterSwordFire")
	PLAY F 0 A_CustomMissile("BossFSwordMissile", 32, 0, 11.25)
	PLAY F 0 A_CustomMissile("BossFSwordMissile", 32, 0, 5.625)
	PLAY F 0 A_CustomMissile("BossFSwordMissile", 32, 0, -11.25)
	PLAY F 0 A_CustomMissile("BossFSwordMissile", 32, 0, -5.625)
    PLAY F 8 A_CustomMissile("BossFSwordMissile", 32, 0)
    Goto See
  Death:
    PLAY H 6
	PLAY A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    PLAY I 6 A_Scream
    PLAY JK 6
    PLAY L 6 A_NoBlocking
    PLAY M 6
    PLAY N -1
    Stop
  XDeath:
	PLAY O 0 A_SpawnItemEx("GIBBER")
    PLAY A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    PLAY O 5 A_Scream
    PLAY P 5 A_SkullPop
    PLAY R 5 A_NoBlocking
    PLAY STUV 5
    PLAY W -1
    Stop
  Ice:
  "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    "----" X 5 A_GenericFreezeDeath
    "----" X 1 A_FreezeDeathChunks
    Wait
  Burn:
	PLAY A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    FDTH A 5 Bright A_PlaySound("PlayerFighterBurnDeath")
    FDTH B 4 Bright
    FDTH G 5 Bright
    FDTH H 4 Bright A_Scream
    FDTH I 5 Bright
    FDTH J 4 Bright
    FDTH K 5 Bright
    FDTH L 4 Bright
    FDTH M 5 Bright
    FDTH N 4 Bright
    FDTH O 5 Bright
    FDTH P 4 Bright
    FDTH Q 5 Bright
    FDTH R 4 Bright
    FDTH S 5 Bright A_NoBlocking
    FDTH T 4 Bright
    FDTH U 5 Bright
    FDTH V 4 Bright
    Stop
  }
}

Actor BossFSwordMissile : FSwordMissile
{
	Damage (random(26,46)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,TARGET,0)))
	Damagetype "Arcane"
	+NODAMAGETHRUST
	States
	{
	Spawn:
    FSFX ABC 3 Bright A_CustomMissile("FSwordFireTrail",0,0,0,6)
    Loop
	Death:
    FSFX D 3 Bright
    FSFX E 2 Bright A_FSwordFlames
    FSFX F 3 Bright A_Explode(64+ACS_ExecuteWithResult(WOC_MONSTERSCALE,14,TARGET,0), 128, 0)
    FSFX G 2 Bright
    FSFX H 3 Bright
    FSFX I 2 Bright
    FSFX J 3 Bright
    FSFX KLM 2 Bright
    Stop
	}
}

ACTOR NewMageBoss : MageBoss replaces MageBoss
{
  Health 4000
	+TELESTOMP
	+NODAMAGETHRUST
	+BOSS
	+NOPAIN
	DropItem "Armour4"
	DropItem "NewArtiBoostMana"
	DropItem "AccessoryRandomSpawner" 32
	+NEVERRESPAWN
	DamageFactor "Deathblow", 0
	+NOTELEOTHER
	+NOTARGET
	Damagefactor "PoisonCloud", 0.25
	Tag "Menelkir"
  States
  {
  Spawn:
    MAGE A 0
    MAGE A 3 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,4000,64,WOC_BOSS)
  Idle:
	MAGE A 5 A_Look
    Loop
  Melee:
  Missile:
    MAGE E 8 A_FaceTarget
	MAGE F 0 A_CustomMissile("BossMageStaffFX2", 40, 0, -5)
	MAGE F 0 A_CustomMissile("BossMageStaffFX2", 40, 0, 5)
    MAGE F 8 Bright A_CustomMissile("BossMageStaffFX2", 40, 0)
    Goto See
  Death:
    MAGE A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    MAGE H 6
    MAGE I 6 A_Scream
    MAGE JK 6
    MAGE L 6 A_NoBlocking
    MAGE M 6
    MAGE N -1
    Stop
  XDeath:
	MAGE O 0 A_SpawnItemEx("GIBBER")
    MAGE O 5 A_Scream
	MAGE A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    MAGE P 5
    MAGE R 5 A_NoBlocking
    MAGE S 5
    MAGE T 5
    MAGE U 5
    MAGE V 5
    MAGE W 5
    MAGE X -1
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    "----" Y 5 A_GenericFreezeDeath
    "----" Y 1 A_FreezeDeathChunks
    Wait
  Burn:
	MAGE A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,1000)
    FDTH E 5 Bright A_PlaySound("PlayerMageBurnDeath")
    FDTH F 4 Bright
    FDTH G 5 Bright
    FDTH H 4 Bright A_Scream
    FDTH I 5 Bright
    FDTH J 4 Bright
    FDTH K 5 Bright
    FDTH L 4 Bright
    FDTH M 5 Bright
    FDTH N 4 Bright
    FDTH O 5 Bright
    FDTH P 4 Bright
    FDTH Q 5 Bright
    FDTH R 4 Bright
    FDTH S 5 Bright A_NoBlocking
    FDTH T 4 Bright
    FDTH U 5 Bright
    FDTH V 4 Bright
    Stop
  }
}
