//Weredragon

Actor _Beast : NewBeast
{
	Scale 0.9
	Height 64
	Radius 24
	Damagetype "Physical"
	Health 600
	Species "BaronOfHell"
	States
	{
	Spawn:
		BEAS A 0
		BEAS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,72,0)
		Goto Idle
	Raise:
		BEAS Y 0 ACS_NamedExecuteAlways("WOC Monster Init",0,72,0)
		BEAS YXWVUTSR 6
		Goto See
	}
}

//Sabreclaw

Actor _ClinkHeretic : NewClinkHeretic
{
  Scale 0.875
  Height 56
  Species "Demon"
  States
  {
  Spawn:
	CLNK A 0
	CLNK A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Goto Idle
  Raise:
	CLNK A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	CLNK NMLKJI 6
	Goto See
  }
}

// Iron-Lich
Actor _IronLich : NewIronLich
{
	Health 700
	Scale 0.9
	Height 64
	Damagetype "Physical"
	+NOFEAR
	Species "Arachnotron"
	States
	{
	Spawn:
		LICH A 0
		LICH A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,78,WOC_STATUSIMMUNE)
		Goto Idle
	Raise:
		LICH A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,78,WOC_STATUSIMMUNE)
		LICH HGFEDC 6
		Goto See
	}
}

//Undead Knight

Actor _Knight : NewKnight
{
	Health 300
	/*+NODAMAGETHRUST*/
	Tag "Undead Knight"
	Damagetype "Physical"
	Height 56
	Radius 20
	States
	{
	Spawn:
		KNIG A 0
		KNIG A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,82,0)
		Goto Idle
	Raise:
		KNIG O 0 ACS_NamedExecuteAlways("WOC Monster Init",0,82,0)
		KNIG ONMLKJI 6
		Goto See
	}
}

ACTOR _KnightGhost : NewKnightGhost
{
	Translation "209:224=209:224"
	Species "Revenant"
	Height 56
	Radius 20
	Health 300
	States
	{
	Melee:
	Missile:
		KNIG E 6 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(15,30)), "hknight/melee", "Shadow")
		KNIG FE 3 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(15,30)), "hknight/melee", "Shadow")
		Goto See
	}
}

//Maulotaur
ACTOR _MinotaurHeretic : NewMinotaurHeretic
{
	Species "Cyberdemon"
	+DONTHARMSPECIES
}

//Golems

Actor _Mummy : NewMummy
{
	Health 160
	Scale 0.88
	Height 56
	States
	{
	Spawn:
		MUMM A 0
		MUMM A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		Goto Idle
	Raise:
		MUMM A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		MUMM ONMLKJI 6
		Goto See
	}
}

ACTOR _MummyGhost : _Mummy
{
  Game Heretic
  //SpawnID 8
  +SHADOW
  +GHOST
  RenderStyle Translucent
  Alpha 0.4
}

ACTOR _MummyLeader : NewMummyLeader
{
	Scale 0.88
	Height 56
	Radius 20
	Species "DoomImp"
	States
	{
	Spawn:
		MUMM A 0
		MUMM A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		Goto Idle
	Raise:
		MUMM A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		MUMM ONMLKJI 6
		Goto See
	}
}

ACTOR _MummyLeaderGhost : _MummyLeader
{
  Game Heretic
  //SpawnID 9
  +SHADOW
  +GHOST
  RenderStyle Translucent
  Alpha 0.4
}

//Ophidian

Actor _Snake : NewSnake
{
	Health 400
	Height 56
	Radius 20
	Scale 0.95
	Species "Revenant"
	States
	{
	Spawn:
		SNKE A 0
		SNKE A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,68,0)
		Goto Idle
	Raise:
		SNKE A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,68,0)
		SNKE ONMLKJIHG 5
		Goto See
	}
}

Actor _Sorcerer1
{
	Health 11000
	Radius 28
	Height 100
	Mass 800
	Speed 16
	+NOPAIN
	Monster
	+BOSS
	+DONTMORPH
	+NOTARGET
	+NOICEDEATH
	+FLOORCLIP
	+DONTGIB
	SeeSound "dsparilserpent/sight"
	AttackSound "dsparilserpent/attack"
	PainSound "dsparilserpent/pain"
	DeathSound "dsparilserpent/death"
	ActiveSound "dsparilserpent/active"
	Obituary "$OB_DSPARIL1"
	HitObituary "$OB_DSPARIL1HIT"
	-NORADIUSDMG
	Damagefactor "DeathBlow", 0
	Damagefactor "PoisonCloud", 0.25
	DamageFactor "Ice", 1.25
	DamageFactor "IcePlayer", 1.25
	DamageFactor "IceTime", 1.25
	DamageFactor "Fire", 0.75
	DamageFactor "FirePlayer", 0.75
	DamageFactor "FireTime", 0.75
	/*+NODAMAGETHRUST*/
	+DONTHARMSPECIES
	+BOSSDEATH
	+NOFEAR
	+LOOKALLAROUND
	+USEKILLSCRIPTS
	Species "Cyberdemon"
	Tag "D'Sparil's Serpent"
	States
	{
	Spawn:
		SRCR A 0
		SRCR A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,130,WOC_STATUSIMMUNE|WOC_MAXLEVEL)
	Idle:
		SRCR AB 10 A_Look
		Loop
	See:
		SRCR A 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*2/3, "Transform")
		SRCR A 4 A_Chase
		SRCR B 3 A_Chase
		SRCR C 4 A_Chase
		SRCR D 3 A_Chase
		Loop
	Missile:
		SRCR Q 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*7/8, "Missile2")
		SRCR Q 5 A_FaceTarget
		SRCR R 6 A_FaceTarget
		SRCR S 5 A_CustomMissile("SorcererFX1", 70)
		Goto See
	Missile2:
		SRCR S 5 A_FaceTarget
		SRCR Q 5 A_FaceTarget
		SRCR R 6 A_FaceTarget
		SRCR S 0 A_CustomMissile("SorcererFX1", 70, 0, 3)
		SRCR S 0 A_CustomMissile("SorcererFX1", 70, 0, -3)
		SRCR S 5 A_CustomMissile("SorcererFX1", 70, 0, 0)
		Goto See
	Transform:
		SRCR E 0 A_GiveInventory("DeadDsparilSerpent", 1)
		SRCR E 7 A_ChangeFlag("NOBLOCKMAP", 1)
		SRCR E 0 A_SpawnItem("GIBBER")
		SRCR F 7 A_Scream
		SRCR G 7
		SRCR HI 6
		SRCR J 6
		SRCR K 6
		SRCR L 25 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 20 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 12
		SRCR P 0 A_NoBlocking
		SRCR P -1 A_SpawnItemEx("_Sorcerer2",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	DeadDsparil:
		SRCR P 0 A_NoBlocking
		SRCR P -1 A_BossDeath
	Death:
		SRCR E 7 A_JumpIfInventory("DeadDsparilSerpent", 1, "DeadDsparil")
		SRCR E 0 A_SpawnItem("GIBBER")
		SRCR F 7 A_Scream
		SRCR G 7
		SRCR HI 6
		SRCR J 6
		SRCR K 6
		SRCR L 25 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 20 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 12
		SRCR P 0 A_ChangeFlag("SOLID", 0)
		SRCR P 0 A_ChangeFlag("NOBLOCKMAP", 0)
		SRCR P -1 A_BossDeath
	}
}

Actor DeadDsparilSerpent : Inventory
{
	Inventory.MaxAmount 1
}

Actor _Sorcerer2
{
	Health 7000
	Radius 16
	Height 70
	Mass 300
	Speed 14
	Monster
	+BOSS
	+DONTMORPH
	+NOTARGET
	+NOICEDEATH
	+FLOORCLIP
	+BOSSDEATH
	SeeSound "dsparil/sight"
	AttackSound "dsparil/attack"
	PainSound "dsparil/pain"
	ActiveSound "dsparil/active"
	Obituary "$OB_DSPARIL2"
	HitObituary "$OB_DSPARIL2HIT"
	-NORADIUSDMG
	+NOPAIN
	Damagefactor "DeathBlow", 0
	Damagefactor "PoisonCloud", 0.25
	DropItem "AccessoryRandomSpawner" 32
	Species "Cyberdemon"
	/*+NODAMAGETHRUST*/
	+DONTHARMSPECIES
	+NOFEAR
	+LOOKALLAROUND
	+USEKILLSCRIPTS
	+AVOIDMELEE
	Bloodtype "EtherealBloodBlue"
	Tag "D'Sparil"
	var int user_timer;
	DamageFactor "Arcane", 0.75
	DamageFactor "ArcanePlayer", 0.75
	DamageFactor "ArcaneTime", 0.75
	DamageFactor "Lightning", 0.75
	DamageFactor "LightningPlayer", 0.75
	DamageFactor "LightningTime", 0.75
	DamageFactor "Physical", 1.25
	DamageFactor "PhysicalPlayer", 1.25
	DamageFactor "Bleed", 1.25
	DamageFactor "Poison", 1.25
	DamageFactor "PoisonPlayer", 1.25
	DamageFactor "PoisonTime", 1.25
	States
	{
	Spawn:
		SOR2 A 0
		SOR2 A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,75,WOC_STATUSIMMUNE|WOC_MAXLEVEL)
		SOR2 AB 4
		SOR2 C 4 A_PlaySound("dsparil/rise", CHAN_BODY, 1, FALSE, ATTN_NONE)
		SOR2 DEF 4
		SOR2 G 12 A_PlaySound("dsparil/sight", CHAN_BODY, 1, FALSE, ATTN_NONE)
		Goto Idle
	Idle:
		SOR2 MN 10 A_Look
		Loop
	See:
		SOR2 M 4 A_Chase
		SOR2 N 3 A_Chase
		SOR2 O 4 A_Chase
		SOR2 P 3 A_Chase
		Loop
	Missile:
		SOR2 R 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*1/8, "Decide5")
		SOR2 R 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*4/8, "Decide4")
		SOR2 R 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*6/8, "Decide3")
		SOR2 R 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)*7/8, "Decide2")
		SOR2 R 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH), "Decide1")
	CastSpell:
		SOR2 T 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)/2,"SpellDecide")
		SOR2 R 0 A_Jump(48, "Summon")
	Lightning:
		TNT1 A 0 A_Jump(64, "LightningColumns")
		TNT1 A 0 A_Jump(96, "GroundSeekers")
		TNT1 A 0 A_Jump(64, "Filibuster")
		TNT1 A 0 A_Jump(128, "LightningStream")
		TNT1 A 0 A_Jump(128, "LightningBall")
		SOR2 R 6
		SOR2 S 6 A_FaceTarget
		SOR2 T 0 A_PlaySound("dsparil/attack")
		SOR2 T 15 A_CustomMissile("NewSorcerer2FX1",50)
		Goto See
	LightningBall:
		SOR2 R 5
		SOR2 S 5 A_FaceTarget
		SOR2 T 5 BRIGHT A_CustomMissile("LightningBallL",32,0,0,2,0)
		SOR2 T 5
		Goto See
	//attack 2; lightning streams
	LightningStream:
		SOR2 RS 5 A_FaceTarget
		SOR2 T 5 A_FaceTarget
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0)  
		TNT1 A 0 A_SetUserVar("user_timer", user_timer+1)
		TNT1 A 0 A_JumpIf(user_timer >= 9, "EndStream")
		Goto LightningStream+2
	EndStream:
		TNT1 A 0 A_SetUserVar("user_timer", 0)
		SOR2 T 5
		Goto See
	//attack 3, stationary/invulnerable mode
	Filibuster:
		SOR2 ZY 5 A_FaceTarget
		SOR2 Z 8 BRIGHT A_FaceTarget
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,45,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,135,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,225,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,315,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,0,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,90,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,160,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,270,0,0)
		Goto FilibusterLoop
	FilibusterLoop:    
		SOR2 Z 35 A_Stop
		SOR2 RS 3 A_FaceTarget
		SOR2 T 8 BRIGHT A_CustomMissile("LightningRod1",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningRod1",55,-45,0,0,0)
		SOR2 T 2 BRIGHT A_CustomMissile("LightningBallS",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningBallS",55,-45,0,0,0)
		SOR2 T 2 BRIGHT A_CustomMissile("LightningBallS",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningBallS",55,-45,0,0,0)
		TNT1 A 0 A_SetUserVar("user_timer", user_timer+1)
		TNT1 A 0 A_JumpIf(user_timer >= 3, "EndStream")
		SOR2 SR 3
		Goto FilibusterLoop
	FilibusterEnd:
		TNT1 A 0 A_SetUserVar("user_timer", 0)
		SOR2 SR 3
		SOR2 YZM 10
		Goto See
	//attack 4, floor-hugging seekers
	GroundSeekers:
		SOR2 ZY 5 A_FaceTarget
		SOR2 Z 8 BRIGHT A_FaceTarget
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 8 Bright A_FaceTarget
		Goto See
	//attack 5, lightning columns
	LightningColumns:
		SOR2 RS 5 A_FaceTarget
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, 0, 0, CMF_AIMOFFSET)
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, 45, random(-25, -15), CMF_AIMOFFSET)
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, -45, random(15, 25), CMF_AIMOFFSET)
		SOR2 T 5 Bright A_FaceTarget
		SOR2 T 5
		Goto See
	Decide1:
		SOR2 R 0 A_Jump(16, "Teleport")
		Goto CastSpell
	Decide2:
		SOR2 R 0 A_Jump(32, "Teleport")
		Goto CastSpell
	Decide3:
		SOR2 R 0 A_Jump(64, "Teleport")
		Goto CastSpell
	Decide4:
		SOR2 R 0 A_Jump(120, "Teleport")
		Goto CastSpell
	Decide5:
		SOR2 R 0 A_Jump(192, "Teleport")
		Goto CastSpell
	SpellDecide:
		SOR2 R 0 A_Jump(96, "Summon")
		Goto Lightning
	Summon:
		SOR2 R 6
		SOR2 S 6 A_FaceTarget
		SOR2 T 0 A_PlaySound("dsparil/attack")
		SOR2 T 0 A_CustomMissile("Sorcerer2FX2", 50, 0, -40, 2)
		SOR2 T 15 A_CustomMissile("Sorcerer2FX2", 50, 0, 40, 2)
		Goto See
	Teleport:
		SOR2 G 0 A_SpawnItemEx("_Sorcerer2Telefade")
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAA 0 A_Wander
		SOR2 L 0 A_PlaySound("Dsparil/teleport", CHAN_BODY)
		SOR2 LKJIHG 3
		Goto See
	Death:
		SDTH E 0 A_KillMaster
		SDTH A 8 Bright
		SDTH B 8 Bright
		SDTH C 8 Bright A_PlaySoundEx("dsparil/scream", "Body")
		SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SDTH G 6 A_PlaySoundEx("dsparil/explode", "Body")
		SDTH AAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KaZap", 0, 0, 48, (0.1)*Random(100, 400), 0, (0.1)*Random(-400, 400), Random(0, 720), 128)
		SDTH AAAAAAAAA 0 A_SpawnItemEx("KaZap", 0, 0, 48, (0.1)*Random(100, 400), 0, (0.1)*Random(-400, 400), Random(0, 720), 128)
		SDTH H 6
		SDTH I 18
		SDTH J 6 A_NoBlocking
		SDTH K 6 A_PlaySoundEx("dsparil/bones", "Body")
		SDTH LMN 6
		SDTH O -1 A_BossDeath
		Stop
	}
}

ACTOR _Sorcerer2Telefade
{
  +NOBLOCKMAP
  States
  {
  Spawn:
	SOR2 G 0 A_PlaySound("Dsparil/teleport", CHAN_BODY)
    SOR2 GHIJKL 3
    Stop
  }
}

//Disciple of D'Sparil

Actor _Wizard : NewWizard replaces Wizard
{
	Health 260
	Scale 0.85
	-SPAWNFLOAT
	Height 56
	Radius 16
	Species "Cacodemon"
	States
	{
	Spawn:
		WZRD A 0
		WZRD A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		Goto Idle
	Raise:
		WZRD A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		WZRD LKJIHG 6
		Goto See
	}
}

Actor _NewWizardDsparil : NewWizardDsparil replaces NewWizardDsparil
{
	Health 260
	Scale 0.85
	-SPAWNFLOAT
	Height 56
	Radius 16
	Species "Cacodemon"
	States
	{
	Spawn:
		WZRD A 0
		WZRD A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,WOC_MINIONSUMMON)
	Idle:
		WZRD AB 10 A_Look
		Loop
	Raise:
		WZRD A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,WOC_MINIONSUMMON)
		WZRD LKJIHG 6
		Goto See
	}
}