Actor GunPriest
{
	Radius 20
	Height 56
	Speed 10
	Scale 0.875
	PainChance 200
	Monster
	+FLOORCLIP
	+USEKILLSCRIPTS
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	SeeSound "monster/culsit" 
	AttackSound "monster/culatk" 
	PainSound "monster/culpai" 
	DeathSound "monster/culdth" 
	ActiveSound "monster/culact"
	Obituary "%o was shot down by a cult priest."
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	Health 50
	/*+NODAMAGETHRUST*/
	Species "Zombieman"
	Tag "Cult Priest"
	States
	{
	Spawn:
		GPST A 0
		GPST A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		GPST AB 10 A_Look
		Loop
	See:
		GPST A 2 A_Chase
		GPST A 3 A_Chase
		GPST B 2 A_Chase
		GPST B 3 A_Chase
		GPST C 2 A_Chase
		GPST C 3 A_Chase
		GPST D 2 A_Chase
		GPST D 3 A_Chase
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		GPST E 10 A_FaceTarget
		GPST E 0 A_PlaySound ("cult/pistol")
		GPST F 4 Bright A_CustomMissile("CultBulletTracer", 40, -8, random(-800,800)/100.0)
		GPST E 4 A_FaceTarget
		GPST E 0 A_PlaySound ("cult/pistol")
		GPST Y 4 Bright A_CustomMissile("CultBulletTracer", 40, 8, random(-800,800)/100.0)
		GPST E 4
		Goto See
	Pain:
		GPST G 3
		GPST G 3 A_Pain
		Goto See	   
	Death:
		GPST H 6
		GPST I 6 A_PlayerScream
		GPST JK 6
		GPST L 6 A_NoBlocking
		GPST M 6
		GPST N -1
		Stop 
	XDeath:
		GPST O 0 A_SpawnItem("GIBBER")
		GPST O 5 A_XScream
		GPST P 5
		GPST R 5 A_NoBlocking
		GPST STUVW 5
		GPST X -1
		Stop
	Raise:
		GPST M 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		GPST LKJIH 5
		Goto See
	Burn:
		FDTH G 5 Bright A_PlaySound("*burndeath")
		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 GunTemplar
{
	Radius 20
	Height 56
	Scale 0.875
	Speed 10
	PainChance 200
	Monster
	+FLOORCLIP
	+USEKILLSCRIPTS
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	SeeSound "monster/culsit" 
	AttackSound "monster/culatk" 
	PainSound "monster/culpai" 
	DeathSound "monster/culdth" 
	ActiveSound "monster/culact"
	Obituary "%o was shot down by a cult templar."
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	Health 70
	/*+NODAMAGETHRUST*/
	Species "ShotgunGuy"
	Tag "Cult Templar"
	States
	{
	Spawn:
		GTMP A 0
		GTMP A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		GTMP AB 10 A_Look
		Loop
	See:
		GTMP A 2 A_Chase
		GTMP A 3 A_Chase
		GTMP B 2 A_Chase
		GTMP B 3 A_Chase
		GTMP C 2 A_Chase
		GTMP C 3 A_Chase
		GTMP D 2 A_Chase
		GTMP D 3 A_Chase
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,4),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		GTMP E 10 A_FaceTarget
		GTMP E 0 A_PlaySound ("cult/shotgun")
		GTMP FF 0 Bright A_CustomMissile("CultBulletTracer", 40, -8, random(-1200,1200)/100.0)
		GTMP F 0 Bright A_CustomMissile("CultBulletTracer", 40, 8, random(-1200,1200)/100.0)
		GTMP F 10 Bright A_CustomMissile("CultBulletTracer", 40, 8, random(-1200,1200)/100.0)
		GTMP E 10
		Goto See
	Pain:
		GTMP G 3
		GTMP G 3 A_Pain
		Goto See	   
	Death:
		GTMP H 6
		GTMP I 6 A_PlayerScream
		GTMP JK 6
		GTMP L 6 A_NoBlocking
		GTMP M 6
		GTMP N -1
		Stop 
	XDeath:
		GTMP O 0 A_SpawnItem("GIBBER")
		GTMP O 5 A_XScream
		GTMP P 5
		GTMP R 5 A_NoBlocking
		GTMP STUVW 5
		GTMP X -1
		Stop
	Raise:
		GTMP M 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		GTMP LKJIH 5
		Goto See
	Burn:
		FDTH G 5 Bright A_PlaySound("*burndeath")
		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 GunCrusader
{
	Radius 20
	Height 56
	Scale 0.875
	Speed 10
	PainChance 200
	Monster
	+FLOORCLIP
	+USEKILLSCRIPTS
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	SeeSound "monster/culsit" 
	AttackSound "monster/culatk" 
	PainSound "monster/culpai" 
	DeathSound "monster/culdth" 
	ActiveSound "monster/culact"
	Obituary "%o was shot down by a cult crusader."
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	Health 100
	/*+NODAMAGETHRUST*/
	Species "ChaingunGuy"
	Tag "Cult Crusader"
	States
	{
	Spawn:
		GCRU A 0
		GCRU A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)//increase health on higher difficulties
	Idle:
		GCRU AB 10 A_Look
		Loop
	See:
		GCRU A 2 A_Chase
		GCRU A 3 A_Chase
		GCRU B 2 A_Chase
		GCRU B 3 A_Chase
		GCRU C 2 A_Chase
		GCRU C 3 A_Chase
		GCRU D 2 A_Chase
		GCRU D 3 A_Chase
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,4),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		GCRU E 10 A_FaceTarget
		GCRU EE 0 A_PlaySound ("cult/shotgun")
		GCRU FFF 0 Bright A_CustomMissile("CultBulletTracer", 40, -8, random(-1400,1400)/100.0)
		GCRU FF 0 Bright A_CustomMissile("CultBulletTracer", 40, 8, random(-1400,1400)/100.0)
		GCRU F 10 Bright A_CustomMissile("CultBulletTracer", 40, 8, random(-1400,1400)/100.0)
		GCRU E 10
		Goto See
	Pain:
		GCRU G 3
		GCRU G 3 A_Pain
		Goto See	   
	Death:
		GCRU H 6
		GCRU I 6 A_PlayerScream
		GCRU JK 6
		GCRU L 6 A_NoBlocking
		GCRU M 6
		GCRU N -1
		Stop 
	XDeath:
		GCRU O 0 A_SpawnItem("GIBBER")
		GCRU O 5 A_XScream
		GCRU P 5
		GCRU R 5 A_NoBlocking
		GCRU STUVW 5
		GCRU X -1
		Stop
	Raise:
		GCRU M 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		GCRU LKJIH 5
		Goto See
	Burn:
		FDTH G 5 Bright A_PlaySound("*burndeath")
		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 CultBulletTracer : FastProjectile
{
   Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,8)))
   Damagetype "Physical"
   Radius 1
   Height 1
   Mass 5
   Speed 80
   PROJECTILE
   +BLOODSPLATTER
   /*+NODAMAGETHRUST*/
   +THRUGHOST
   +WINDTHRUST
   Renderstyle Add
   Alpha 1.0
   Scale 0.5
   decal BulletChip
   States
   {
   Spawn:
      TNT1 A 0 bright
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-15.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-12.5,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-10.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-7.5,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-5.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("CultBulletTracerTrail",-2.5,0,0,0,0,0,0,128,0)
	  TNT1 A 1 bright A_SpawnItemEx("CultBulletTracerTrail",0.0,0,0,0,0,0,0,128,0)
      loop
   XDeath:
      TNT1 A 1 //A_SpawnItem("bulletpuff")
      stop
   Death:
   Crash:
      TNT1 A 1 A_SpawnItem("bulletpuff")
      stop
   }
}

actor CultBulletTracerTrail
{
  Radius 1
  Height 1
  Speed 0
  Damage 0
  Projectile
  +CLIENTSIDEONLY
  +NOINTERACTION
  +NOCLIP
  +DONTSPLASH
  +DONTBLAST
  Scale 0.5
  Renderstyle Add
  States
  {
  Spawn:
    CTAC A 2 bright
    stop
  }
}

Actor CultMystic
{
	Radius 20
	Height 56
	Speed 10
	Scale 0.875
	PainChance 200
	Monster
	+FLOORCLIP
	+USEKILLSCRIPTS
	+AVOIDMELEE
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	SeeSound "monster/culsit" 
	AttackSound "monster/culatk" 
	PainSound "monster/culpai" 
	DeathSound "monster/culdth" 
	ActiveSound "monster/culact"
	Obituary "%o succumbed to a cult mystic's magic."
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	Health 50
	/*+NODAMAGETHRUST*/
	Species "DoomImp"
	Tag "Cult Mystic"
	States
	{
	Spawn:
		CMYS A 0
		CMYS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)//increase health on higher difficulties
	Idle:
		CMYS AB 10 A_Look
		Loop
	See:
		CMYS A 2 A_Chase
		CMYS A 3 A_Chase
		CMYS B 2 A_Chase
		CMYS B 3 A_Chase
		CMYS C 2 A_Chase
		CMYS C 3 A_Chase
		CMYS D 2 A_Chase
		CMYS D 3 A_VileChase
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,5),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		CMYS E 8 A_FaceTarget
		CMYS F 0 Bright A_CustomMissile ("CultMysticShot",40,-5,0,1,0)
		CMYS F 0 Bright A_CustomMissile ("CultMysticShot",40,5,0,1,0)
		CMYS F 8 Bright A_PlaySound("monster/culatk")
		Goto See
	Pain:
		CMYS G 3
		CMYS G 3 A_Pain
		Goto See
	Heal:
	    CMYS E 0 A_PlaySound("monster/cultre")
		CMYS E 0 A_ChangeFlag("NoPain",1)
		CMYS E 0 DamageThing(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH,0)/2)
		CMYS E 35 A_ChangeFlag("NoPain",0)
		Goto See
	Death:
		CMYS H 6
		CMYS I 6 A_PlayerScream
		CMYS JK 6
		CMYS L 6 A_NoBlocking
		CMYS M 6
		CMYS N -1
		Stop 
	XDeath:
		CMYS O 0 A_SpawnItem("GIBBER")
		CMYS O 5 A_XScream
		CMYS P 5
		CMYS R 5 A_NoBlocking
		CMYS STUVW 5
		CMYS X -1
		Stop
	Raise:
		CMYS M 0 A_ChangeFlag("NoPain",0)
		CMYS M 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		CMYS LKJIH 5
		Goto See
	Burn:
		FDTH G 5 Bright A_PlaySound("*burndeath")
		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 CultMysticShot
{
  Speed 18
  FastSpeed 25
  Radius 4
  Height 4
  Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,8)))
  Damagetype "Shadow"
  PROJECTILE
  /*+NODAMAGETHRUST*/
  Renderstyle Add
  States
  {
  Spawn:
      CMYP A 2 Bright
      CMYP B 2 Bright
      loop
   Death:
      CMYP CDEF 3 Bright
      stop
  }
}

Actor _ImpWarlord : ImpWarlord
{
    Health 150
    Radius 20
    Height 56
	Scale 1.0
	Species "ChaingunGuy"
	-TELESTOMP
    States
    {
    Spawn:
		WARI A 0
		WARI A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		WARI A 0 A_UnSetInvulnerable
		WARI AB 10 A_Look
        Loop
    Melee:
        WARI E 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
        WARI F 4 A_FaceTarget
        WARI G 5 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(5,12)), "ImpWarlordAttack", "", "Physical")
        Goto See
    Missile:
        TNT1 A 0 A_Jump(38,23)  //20% chance: jump to familiar drop
        TNT1 A 0 A_Jump(77,2)   //30% chance: jump to heat seekers
        TNT1 A 0 A_Jump(128,11) //50% chance: jump to green fireballs
        Goto Missile+28         //Otherwise : jump to red fireball
        TNT1 A 0 A_SetInvulnerable
        WARI I 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/shieldshot")
        WARI J 6 bright A_FaceTarget
        TNT1 A 0 A_Jump(128,4)
        TNT1 A 0 A_CustomMissile("YellowSkullSeeker", 32, 0, -45)
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 32, 0, 45)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 32, 0, 0)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI L 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
        WARI M 5 A_FaceTarget
        //TNT1 A 0 A_PlayWeaponSound("imp/attack")
        TNT1 A 0 A_Jump(128,3)
		TNT1 A 0 A_PlaySound("implord/poisonballfire")
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 40, 0, -6, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 24, 0, 6, 1)
		TNT1 A 0 A_CustomMissile("GreenPoisonBall", 32, 0, 0, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 36, 0, -3, 1)
        WARI N 6 A_CustomMissile("GreenPoisonBall", 28, 0, 3, 1)
        Goto See
        WARI GF 8 A_FaceTarget
        TNT1 A 0 A_Jump(128,2)
        WARI E 8 A_CustomMissile("FamiliarSpawner", 32, 0, -30)
        Goto See
        WARI E 8 A_CustomMissile("FamiliarSpawner", 32, 0, 30)
        Goto See
        TNT1 A 0 A_Jump(128,5)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
        WARI P 5 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 32, 0, 0)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
	    WARI P 5 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 32, 0, 0)
        Goto See
	Raise:
		WARI A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		WARI VUTSR 6
		Goto See
    }
}

ACTOR ShadowBeast
{
	OBITUARY "%o was killed by a shadow beast."
	Bloodcolor "70 AC 00"
	Health 1200
	Radius 24
	Height 64
	Scale 0.9
	Mass 500
	Speed 12
	PainChance 10
	SEESOUND "shadowbeast/sight"
	PAINSOUND "shadowbeast/pain"
	DEATHSOUND "shadowbeast/death"
	ACTIVESOUND "shadowbeast/active"
	MONSTER
	+FloorClip
	+BossDeath
	+USEKILLSCRIPTS
	DropItem "AccessoryRandomSpawner" 8
	Species "BaronOfHell"
	Tag "Shadow Beast"
	DamageFactor "Poison", 0.5
	DamageFactor "PoisonPlayer", 0.5
	DamageFactor "PoisonTime", 0.5
	states
	{
	Spawn:
		BDEM A 0
		BDEM A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,88,0)
	Idle:
		BDEM AB 10 A_Look
		Loop
	See:
		BDEM ABCDEF 6 A_Chase
		Loop
	Missile:
		TNT1 A 0 A_JumpIfHealthLower (acs_executewithresult(553,0,0,0)/2, "Missile2") 
		TNT1 A 0 A_Jump(90, 5)
		BDEM H 6 A_FaceTarget
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball1", 40, 0, -8)
		BDEM I 6 A_CustomMissile ("ShadowBeast_Ball1", 40, 0, 8)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball1", 40, 0, 0)
		Goto See
		BDEM H 4 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, -16)
		BDEM I 0 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, -8)
		BDEM I 0 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, 0)
		BDEM I 0 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, 8)
		BDEM I 0 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, 16)
		BDEM I 0 A_FaceTarget
		BDEM I 4 A_CustomMissile ("ShadowBeast_Ball2", 40, 0, 32)
		Goto See
	Missile2:
		TNT1 A 0 A_JumpIfCloser(300,1)
		TNT1 A 0 A_Jump(256,15)
		BDEM H 6 A_FaceTarget
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		BDEM I 2 A_CustomMissile ("ShadowBeast_BallFire", 40, 0, random(-8,8))
		Goto See
		BDEM H 16 A_FaceTarget
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -64)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 64)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -56)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 56)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -48)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 48)    
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -40)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 40)    
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -32)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 32)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -24)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 24)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -16)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 16)    
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, -8)
		BDEM I 0 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 8)    
		BDEM I 6 A_CustomMissile ("ShadowBeast_Ball3", 40, 0, 0)
		Goto See
	Pain:
		TNT1 A 0 A_Jump (16, "Spread")
		BDEM G 4 A_Pain
		Goto See
	Death:
		BDEM R 8
		BDEM S 8 A_Scream
		BDEM TUVWX 6
		BDEM Y 6 A_NoBlocking
		BDEM Z -1 A_BossDeath
		Stop
	Raise:
		BDEM Y 0 ACS_NamedExecuteAlways("WOC Monster Init",0,88)
		BDEM YXWVUTSR 6
		Goto See
	Spread:
		TNT1 A 0 A_SpawnItemEx ("ShadowBeast_Spread", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx ("ShadowBeast_Sparkle", random(0,16), random(0,16), random(16,48), 0, 0, 0, random(0,359), 128)
		TNT1 AAAAA 0 A_SpawnItemEx ("ShadowBeast_Creature", 0, 0, random(16,48), random(0,8), random(0,8), random(0,8), random(0,359), 0)
		TNT1 A 0 A_SetTranslucent (0.0)
		Goto Wander
	Wander:
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag("NoPain", 1)
		TNT1 A 0 A_Jump(60, 5)
		TNT1 A 0 A_Jump(60, 15)
		TNT1 A 0 A_Jump(60, 25)
		TNT1 A 0 A_Jump(60, 35)
		TNT1 A 0 A_Jump(60, 45)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_Wander
		BDEM A 3 A_Wander
		BDEM A 0 A_SetTranslucent (0.2)
		BDEM B 3 A_Wander
		BDEM A 0 A_SetTranslucent (0.4)
		BDEM C 3 A_Wander
		BDEM A 0 A_SetTranslucent (0.6)
		BDEM D 3 A_Wander
		BDEM A 0 A_SetTranslucent (0.75)
		BDEM E 3 A_Wander
		BDEM A 0 A_SetTranslucent (0.8)
		BDEM F 3 A_Wander
		BDEM A 0 A_SetTranslucent (1.0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_ChangeFlag("NoPain", 0)
		Goto See
	}
}

ACTOR ShadowBeast_Spread
{   
	Radius 1
	Height 1
	Damage 0
	Speed 0
	PROJECTILE
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("shadowbeast/spread")
		BDEM JKLMNOP 8
		BDEM Q 70 
		BDEM QQQQQQQQQQ 1 A_FadeOut(0.1)
		stop
	}
}

ACTOR ShadowBeast_Creature
{
	Alpha 1.0
	Renderstyle Add
	Speed 16
	MONSTER
	-SOLID
	-SHOOTABLE
	-COUNTKILL
	+FLOAT
	+NOGRAVITY
	+NODAMAGETHRUST
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,0,0)
		TNT1 A 0 A_Playsound("shadowbeast/spiritsit")
		Goto See
	Idle:
		TNT1 A 0 A_GiveInventory("GhostieTimer")
		TNT1 A 0 A_JumpIfInventory("GhostieTimer", 35, "Death")
		BDGH AB 2 A_Look
		Loop
	See:
		TNT1 A 0 A_GiveInventory("GhostieTimer")
		TNT1 A 0 A_JumpIfInventory("GhostieTimer", 35, "Death")
		BDGH AB 2 A_Chase
		Loop
	Melee:
		BDGH AB 2 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,2))
		Goto See
	Death:
		TNT1 A 0 A_Playsound("shadowbeast/spiritdth")
		BDGH EFGHIJ 5
		Stop
	}
}

Actor GhostieTimer : Inventory
{
	Inventory.MaxAmount 35
}

ACTOR ShadowBeast_Sparkle
{   
	Alpha 1.0
        Renderstyle Add
	Radius 1
	Height 1
	Damage 0
	Speed 0
	PROJECTILE
	Scale 1.0

	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_Jump(128,2)
		BDP1 GHI 5
		stop
	}
}

ACTOR ShadowBeast_BallFire
{
	Alpha 1.0  
	Renderstyle Add
	Speed 15
	Radius 10
	Height 6
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,2)))
	DamageType "Poison"
	Projectile
	+SPAWNSOUNDSOURCE
	+HITTRACER
	RenderStyle Add
	SeeSound "shadowbeast/pr1sight"
	Decal MummyScorch
	States
	{
	Spawn:
		BDP2 DEFGH 5 Bright
		Goto Death
	Death:
		TNT1 A 0 ACS_NamedExecuteWithResult("WOC DAMAGE OVER TIME", ACS_ExecuteWithResult(WOC_DECORATE,STATS,WOCTID,WOCTRACER), ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,6)), 5, POISONDOT)
		TNT1 A 3
		Stop
	}
}

ACTOR ShadowBeast_Ball1
{
	Alpha 1.0  
	Renderstyle Add
	Speed 15
	FastSpeed 20
	Radius 10
	Height 6
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(5,10)))
	DamageType "Poison"
	Projectile
	+SPAWNSOUNDSOURCE
	+HITTRACER
	RenderStyle Add
	SeeSound "shadowbeast/pr1sight"
	DeathSound "shadowbeast/pr1death"
	States
	{
	Spawn:
		BDP2 ABC 4 Bright
		Loop
	Death:
		BDP2 DE 4 Bright ACS_NamedExecuteWithResult("WOC DAMAGE OVER TIME", ACS_ExecuteWithResult(WOC_DECORATE,STATS,WOCTID,WOCTRACER), ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(10,20)), 5, POISONDOT)
		BDP2 FGH 3 Bright
		Stop
	}
}

ACTOR ShadowBeast_Ball2
{
	Alpha 1.0
	Renderstyle Add
	Radius 8
	Height 6
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,8)))
	Speed 16
	FastSpeed 20
	PROJECTILE
	+Randomize
	DamageType "Poison"
	+HITTRACER
	SeeSound "shadowbeast/pr2sight"
	DeathSound "shadowbeast/pr2death"
	Decal PlasmaScorchLower
	States
	{
	Spawn:
		BDP1 D 1 Bright A_BishopMissileWeave
		BDP1 E 1 Bright A_BishopMissileWeave
		loop
	Death:
		BDP1 F 0 Bright ACS_NamedExecuteWithResult("WOC DAMAGE OVER TIME", ACS_ExecuteWithResult(WOC_DECORATE,STATS,WOCTID,WOCTRACER), ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(2,16)), 5, POISONDOT)
		BDP1 FGHI 3 Bright
		Stop
	}
}

ACTOR ShadowBeast_Ball3
{
	Alpha 1.0
	Scale 1.4
	Renderstyle Add
	Radius 8
	Height 6
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,8)))
	Speed 20
	FastSpeed 25
	PROJECTILE
	+Randomize
	/*+NODAMAGETHRUST*/
	DamageType "Poison"
	+HITTRACER
	SeeSound "shadowbeast/pr2sight"
	DeathSound "shadowbeast/pr2death"
	Decal PlasmaScorchLower
	States
	{
	Spawn:
		BDP1 DEDEDEDED 1 Bright A_BishopMissileWeave
		BDP1 ED 1 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_FadeOut(0.20)
		Goto Spawn+9
	Death:	
		BDP1 F 0 Bright ACS_NamedExecuteWithResult("WOC DAMAGE OVER TIME", ACS_ExecuteWithResult(WOC_DECORATE,STATS,WOCTID,WOCTRACER), ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(2,16)), 5, POISONDOT)
		BDP1 FGHI 3 Bright
		Stop
	}
}

Actor ApprenticeofDsparil
{
	Health 350
	Height 56
	Radius 16
	Speed 12
	PainChance 64
	Monster
	+FloorClip
	+NoGravity
	+Float
	+DontHurtSpecies
	+USEKILLSCRIPTS
	+AVOIDMELEE
	SeeSound "Wizard2/Sight"
	PainSound "Wizard2/Pain"
	DeathSound "Wizard2/Death"
	ActiveSound "Wizard2/Active"
	PainChance "Convert", 255
	//Dropitem "NewMana1", 84, 15
	Dropitem "NewArtiHealingRadius", 4
	Dropitem "NewArtiSpeedBoots", 4
	Dropitem "ArtiAquaFlask", 16
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Species "Dsparil"
	Obituary "%o was spooked by one of D'sparil's Apprentices."
	BloodType "EtherealBloodBlue"
	Species "Cacodemon"
	Tag "Apprentice of D'Sparil"
	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:
    APDP A 0
    APDP A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		APDP AB 10 A_Look
		Loop
  See:
    APDP A 0 A_SetTranslucent(1, 0)
    APDP AAAABBBB 3 A_Chase
    Loop
  Missile:
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",0)
    APDP C 4 A_SetTranslucent(1, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",1)
    APDP C 4 A_SetTranslucent(0.4, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",0)
    APDP C 4 A_SetTranslucent(1, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",1)
    APDP C 4 A_SetTranslucent(0.4, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",0)
    APDP C 4 A_SetTranslucent(1, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",1)
    APDP C 4 A_SetTranslucent(0.4, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",0)
    APDP C 4 A_SetTranslucent(1, 0)
    APDP C 0 A_FaceTarget
	APDP C 0 A_ChangeFlag("GHOST",1)
    APDP C 4 A_SetTranslucent(0.4, 0)
	APDP C 0 A_ChangeFlag("GHOST",0)
    APDP C 0 A_SetTranslucent(1, 0)
    APDP C 0 A_Playsound("weapons/shock")
	APDP D 0 A_CustomMissile("ApprenticeOfDSparilFX2", 32, 0, 11.25)
	APDP D 0 A_CustomMissile("ApprenticeOfDSparilFX2", 32, 0, -11.25)
	APDP D 0 A_CustomMissile("ApprenticeOfDSparilFX2", 32, 0, 5.625)
	APDP D 0 A_CustomMissile("ApprenticeOfDSparilFX2", 32, 0, -5.625)
    APDP D 12 A_CustomMissile("ApprenticeOfDSparilFX2", 32, 0, 0)
    Goto See
  Pain:
	APDP D 0 A_ChangeFlag("GHOST",0)
    APDP E 0 A_SetTranslucent(1,0)
    APDP E 4
    APDP E 4 A_Pain
    Goto See
  Death:
	APDP D 0 A_ChangeFlag("GHOST",0)
    APDP E 0 A_SetTranslucent(1,0)
    APDP E 6
    APDP F 6
    APDP G 6 A_Scream
    APDP H 6
    APDP I 6 A_Fall
    APDP JKL 6
    APDP M -1
    Stop
  Raise:
    APDP M 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
    APDP ML 8
    APDP KJI 6
    Goto See
  }
}

ACTOR ApprenticeOfDSparilFX2
{
  Speed 25
  Radius 13
  Height 8
  Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(3,24)))
  DamageType "Lightning"
  DeathSound "weapons/devzap"
  RenderStyle Add
  Projectile
  /*+NODAMAGETHRUST*/
  ReactionTime 40
  Scale 0.7
  //DeathSound "MageLightningFire"//MageLightningFire       lite2
  States
  {
  Spawn:
      EALT ABC 1 Bright A_CountDown
      Loop
   Death:
      EALT DEFGHIJKLMNO 1 Bright
      Stop
  }
}

Actor _BruiserDemon
{
	Health 1500
	Radius 24
	Height 64
	Mass 2000
	Speed 10
	Monster
	/*+NODAMAGETHRUST*/
	+FloorClip
	+DONTMORPH
	+NEVERRESPAWN
	+NOFEAR
	+NOPAIN
	DamageFactor "Deathblow", 0
	SeeSound "superbaron/scream"
	PainSound "superbaron/pain"
	DeathSound "superbaron/death"
	ActiveSound "superbaron/act"
	MeleeSound "baron/melee"
	Obituary "%o was slaughtered by a Bruiserdemon."
	HitObituary "%o was cremated by a Bruiserdemon."
	Damagetype "Fire"
	dropitem "Armour1" 64
	dropitem "Armour2" 64
	dropitem "Armour3" 64
	dropItem "Armour4" 64
	DropItem "Armour5" 64
	DropItem "Armour6" 64
	Dropitem "Armour7" 64
	Dropitem "newArtiBoostMana" 128
	DropItem "Armour8" 64
	DropItem "Money3" 128
	DropItem "Money3" 128
	DropItem "Money3" 128
	DropItem "AccessoryRandomSpawner" 32
	DropItem "ChestKey"
	Species "BaronOfHell"
	Tag "Bruiser Demon"
	+USEKILLSCRIPTS
	DamageFactor "Fire", 0.5
	DamageFactor "FirePlayer", 0.5
	DamageFactor "FireTime", 0.5
	DamageFactor "Ice", 2.0
	DamageFactor "IcePlayer", 2.0
	DamageFactor "IceTime", 2.0
	States
	{
	Spawn:
		BRUS A 0
		BRUS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,75,WOC_STATUSIMMUNE)
	Idle:
		BRUS AB 10 Bright A_Look 
		Loop
	See:
		BRUS AABBCCDD 3 Bright A_Chase
		Loop
	Melee:
		BRUS E 6 Bright A_FaceTarget
		BRUS F 6 Bright A_FaceTarget
		BRUS G 6 Bright A_CustomComboAttack("BruiserBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "Physical")
		Goto See
	Missile:
		BRUS E 0 Bright A_Jump(144, 8)
		BRUS EF 6 Bright A_FaceTarget
		BRUS G 6 Bright A_CustomMissile ("BruiserBall", 32)
		BRUS G 0 Bright A_Jump(96, 1)
		Goto See
		BRUS HI 6 Bright A_FaceTarget
		BRUS J 6 Bright A_CustomMissile ("BruiserBall", 32)
		Goto See
		BRUS E 0 Bright A_Jump(96, 20)
		BRUS E 6 Bright A_FaceTarget
		BRUS F 4 Bright A_FaceTarget
		BRUS F 2 Bright A_Custommissile("BruiserBall2",32,0,-40,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,-30,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,-20,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,-10,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,0,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,10,0)
		BRUS G 1 Bright A_Custommissile("BruiserBall2",32,0,20,0)
		BRUS G 0 Bright A_Jump(96, 1)
		Goto See
		BRUS H 6 Bright A_FaceTarget
		BRUS I 4 Bright A_FaceTarget
		BRUS I 2 Bright A_Custommissile("BruiserBall2",32,0,40,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,30,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,20,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,10,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,0,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,-10,0)
		BRUS J 1 Bright A_Custommissile("BruiserBall2",32,0,-20,0)
		Goto See
		BRUS KL 6 Bright A_FaceTarget
		BRUS M 2 Bright A_Custommissile("BruiserFireSpawner",16,0,-15,0)
		BRUS M 2 Bright A_Custommissile("BruiserFireSpawner",16,0,0,0)
		BRUS M 2 Bright A_Custommissile("BruiserFireSpawner",16,0,15,0)
		Goto See
	Pain:
		BRUS N 5 Bright A_Pain
		Goto See
	Death:
		BRUD A 6 Bright A_Scream
		BRUD BCD 4 Bright 
		BRUD EFG 4 Bright
		BRUD H 4 Bright A_Fall
		BRUD IJKLMNOP 4 Bright
		BRUD QRSTUV 4
		BRUD W -1   
		Stop
	}
}

Actor BruiserBall
{
	Radius 16
	Height 16
	Speed 18
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(62,82)))
	Projectile
	+Randomize
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	RenderStyle "ADD"
	SeeSound "imp/attack"
	DeathSound "imp/shotx"
	Decal Scorch
	States
	{
	Spawn: 
		BRBA AABB 2 Bright A_SpawnItemEx("BruiserBallTrail", 0, 0, 0, 0, 0, 0, 0, 128)
		Loop
	Death:
		BRBA KLMNOPQRSTUVWX 3 Bright
		Stop
	}
}

Actor BruiserBall2
{
	Radius 8
	Height 8
	Speed 20
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(26,46)))
	Projectile
	+Randomize
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	RenderStyle Add
	SeeSound "imp/attack"
	DeathSound "imp/shotx"
	Decal BaronScorch
	States
	{
	Spawn: 
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		Loop
	Death:
		BRB2 CDEFGHI 3 Bright
		Stop
	}
}

Actor BruiserFireSpawner
{
	Radius 8
	Height 8
	Speed 12
	Damage 0
	+Ripper
	+FloorHugger
	+BloodlessImpact
	Projectile
	MissileType BruiserFire
	Missileheight 0
	States
	{
	Spawn: 
		TNT1 A 3 Bright A_SpawnItemEx("BruiserFire")
		TNT1 A 3
		TNT1 A 3
		Loop
	Death:  
		TNT1 A 6
		Stop
	}
}

Actor BruiserBallTrail
{
	Radius 1
	Height 1
	Speed 0
	Projectile
	RenderStyle Add
	Alpha 0.70
	+NoClip
	States
	{
	Spawn:
		BRBA CDEFGHIJ 4 Bright
		Stop       
	}
}

Actor BruiserFire
{
	Radius 1
	Height 1
	Speed 0
	Projectile
	RenderStyle Add
	+Missile
	+Ripper
	+BloodlessImpact
	+NoClip
	+FloorHugger
	/*+NODAMAGETHRUST*/
	SeeSound "weapons/rocklx"
	States
	{
	Spawn:
		XXBF AB 3 Bright
		XXBF C 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,48),128,0)
		XXBF DEFGHIJKLMNOPQRST 3 Bright
		Stop       
	}
}

Actor _PyroDemon
{
	Health 2500
	Radius 24
	Height 64
	Mass 1000
	Speed 10
	Monster
	Obituary "%o was burnt to a crisp by a pyro demon"
	HitObituary "%o was melted my a pyro demon"
	Bloodcolor "75 25 00"
	+FloorClip
	+MissileMore
	+DONTMORPH
	+NEVERRESPAWN
	+NOFEAR
	+NOPAIN
	+BOSSDEATH
	SeeSound "pyro/see"
	PainSound "pyro/pain"
	DeathSound "pyro/death"
	ActiveSound "pyro/idle"
	DamageFactor "Deathblow", 0
	DropItem "NewArtiSuperHealth" 64
	DropItem "AccessoryRandomSpawner"
	DropItem "NewArtiInvulnerability2" 64
	Dropitem "NewArtiDarkServant" 64
	Dropitem "NewArtiBoostMana" 64
	Dropitem "ForceCube" 64
	DropItem "Money3" 128
    DropItem "Money3" 128
    DropItem "Money3" 128
    DropItem "Money3" 128
    DropItem "Money3" 128
	DropItem "Money3" 128
	DropItem "Money3" 128
	DropItem "Money3" 128
	DropItem "ChestKey" 128
	Species "BaronOfHell"
	Tag "Pyrodemon"
	+USEKILLSCRIPTS
	DamageFactor "Fire", 0.5
	DamageFactor "FirePlayer", 0.5
	DamageFactor "FireTime", 0.5
	DamageFactor "Ice", 2.0
	DamageFactor "IcePlayer", 2.0
	DamageFactor "IceTime", 2.0
	States
	{
	Spawn:
		PYRO A 0
		PYRO A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,75,WOC_STATUSIMMUNE)
	Idle:
		PYRO AB 10 A_Look
		Loop
	See:
		PYRO AA 3 A_Chase
		//PYRO A 0 A_SpawnItemEx("WalkFire",0,0,0,1,0,0,0,128)
		PYRO BB 3 A_Chase
		//PYRO B 0 A_SpawnItemEx("WalkFire",0,0,0,1,0,0,0,128)
		PYRO CC 3 A_Chase
		//PYRO C 0 A_SpawnItemEx("WalkFire",0,0,0,1,0,0,0,128)
		PYRO DD 3 A_Chase
		//PYRO D 0 A_SpawnItemEx("WalkFire",0,0,0,1,0,0,0,128)
		Loop
	Missile:
		PYRO B 0 A_Jump(32,27)
		PYRO B 0 A_Jump(32,20)
		PYRO EF 8 Bright A_FaceTarget
		PYRO G 0 Bright A_CustomMissile ("FireShot",28,0,0,0)
		PYRO G 0 Bright A_CustomMissile ("FireShot",28,0,-4,0)
		PYRO G 3 Bright A_CustomMissile ("FireShot",28,0,4,0)
		PYRO H 3 Bright
		PYRO H 0 A_Jump(32,8)
		PYRO IJ 8 Bright A_FaceTarget 
		PYRO K 0 Bright A_CustomMissile ("FireShot",28,0,0,0)
		PYRO K 0 Bright A_CustomMissile ("FireShot",28,0,-4,0)
		PYRO K 3 Bright A_CustomMissile ("FireShot",28,0,4,0)
		PYRO L 3 Bright
		PYRO L 0 A_Jump(32,1)
		Goto See
		PYRO MN 8 Bright A_FaceTarget
		PYRO O 4 Bright A_CustomMissile ("PyroBlast",28,0,0,0)
		PYRO P 4 Bright
		Goto See
		PYRO MN 8 Bright A_FaceTarget
		PYRO O 4 Bright A_CustomMissile ("RainCometNull",28,0,0,0)
		PYRO O 4 Bright A_CustomMissile ("RainCometNull",28,0,90,0)
		PYRO O 4 Bright A_CustomMissile ("RainCometNull",28,0,180,0)
		PYRO O 4 Bright A_CustomMissile ("RainCometNull",28,0,270,0)
		PYRO P 4 Bright
		Goto See
		PYRO O 1 A_FaceTarget
		PYRO O 0 A_CustomMissile ("EscapeExplosion",28,10,0,0)
		PYRO O 0 //A_Mushroom ("Pyroball",16)
		PYRO O 3
		PYRO P 3 Bright
		PYRO A 0 A_UnSetShootable
		PYRO A 1 A_PlaySound("pyro/tele")
		PYRO A 1 A_SetTranslucent(0.90)
		PYRO A 1 A_SetTranslucent(0.80)
		PYRO A 1 A_SetTranslucent(0.70)
		PYRO A 1 A_SetTranslucent(0.60)
		PYRO A 1 A_SetTranslucent(0.50)
		PYRO A 1 A_SetTranslucent(0.40)
		PYRO A 1 A_SetTranslucent(0.30)
		PYRO A 1 A_SetTranslucent(0.20)
		PYRO A 1 A_SetTranslucent(0.10)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 A 0 A_Jump(128,25)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_ExtChase(0,0,1,1)
		PYRO A 1 A_PlaySound("pyro/tele")
		PYRO A 1 A_SetTranslucent(0.10)
		PYRO A 1 A_SetTranslucent(0.20)
		PYRO A 1 A_SetTranslucent(0.30)
		PYRO A 1 A_SetTranslucent(0.40)
		PYRO A 1 A_SetTranslucent(0.50)
		PYRO A 1 A_SetTranslucent(0.60)
		PYRO A 1 A_SetTranslucent(0.70)
		PYRO A 1 A_SetTranslucent(0.80)
		PYRO A 1 A_SetTranslucent(0.90)
		PYRO A 1 A_SetTranslucent(1.0)
		PYRO A 0 A_CustomMissile ("EscapeExplosion",28,10,0,0)
		PYRO O 0 //A_Mushroom ("Pyroball",16)
		PYRO A 0 A_SetShootable
		Goto See
	Pain:
		PYRO Q 2
		PYRO Q 2 A_Pain
		Goto See
	Death:
		PYRO R 20 Bright A_Scream
		PYRO S 20 Bright
		PYRO T 20 Bright 
		PYRO U 20 Bright A_NoBlocking
		PYRO VW 6 Bright
		PYRO X 6 Bright
		PYRO Y 3 Bright
		PYRO Z -1 Bright A_BossDeath
		Stop
	}
}

Actor FireShot
{
	Radius 3
	Height 3
	Speed 15
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(3,24)))
	Projectile
	/*+NODAMAGETHRUST*/
	RenderStyle Add
	Alpha 0.67
	DamageType Fire
	SeeSound "pyro/flame"
	DeathSound "pyro/flamepoof"
	Decal RevenantScorch
	States
	{
	Spawn:
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		FSHT A 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		Loop
	Death:
		FSHT A 0 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,128),128,0)
		FSHT B 0 Bright
		FSHT B 3 Bright
		FSHT C 3 Bright
		FSHT D 3 Bright
		FSHT E 3 Bright
		Stop
	}
}

Actor FireTail
{
	Projectile
	RenderStyle Add
	+NoClip
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
	Alpha 0.4
	States
	{
	Spawn:
		FRTB ABCDEFGHI 1 Bright
		Stop
	}
}

Actor EscapeExplosion 
{
	SeeSound "pyro/explosion"
	Radius 8
	Height 56
	Speed 0
	Projectile
	/*+NODAMAGETHRUST*/
	+RIPPER
	+BLOODLESSIMPACT
	Damagetype "Fire"
	States
	{
	Spawn:
		MKXP B 0 Bright
		NKXP B 3 Bright A_Mushroom ("Pyroball",16,MSF_DontHurt)
		NKXP C 3 Bright
		NKXP D 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,50), 192, 0)
		NKXP EFGHIJKLMNOPQRSTUV 3 Bright
		Stop
	}
}

Actor PyroBall
{
	Radius 10
	Height 8
	Speed 15
	SeeSound "pyro/bomb"
	DeathSound "pyro/bombhit"
	Projectile  
	RenderStyle Add
	Alpha 0.7
	-NoGravity
	+DoomBounce
	+LowGravity
	+SeekerMissile
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	Decal RevenantScorch
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(15,30)))
	States
	{
	Spawn:
		RBAL A 0 Bright
		RBAL A 0 Bright A_AlertMonsters
		RBAL AAAABBBB 1 Bright 
		Goto Spawn +2
	Death:
		RBAL DEFGHI 4 Bright 
		Stop
	}
}

Actor FirebombExplosion1
{
	Radius 11
	Height 8
	Speed 18
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(17,37)))
	+NoBlockMap
	+DropOff
	+Missile
	+ActivateImpact
	+ActivatePCross
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	States
	{
	Spawn:
		FRME A 1 Bright
		Loop
	Death:
		FRME A 0
		FRME A 0 A_PlaySound("pyro/blastexplosion")
		FRME A 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,128), 144, 0)
		FRME B 1 Bright A_Mushroom("Pyroball",8,MSF_DontHurt)
		FRME B 2 Bright A_CustomMissile("FirebombExplosion2",25,0,180,CMF_TRACKOWNER)
		FRME CDEFGHIJKLMNOPQRS 3 Bright
		Stop
	}
}

Actor FirebombExplosion2 : FirebombExplosion1
{
	States
	{
	Death:
		FRME A 0
		FRME A 0 A_PlaySound("pyro/blastexplosion")
		FRME A 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,128), 136, 0)
		FRME B 1 Bright
		FRME B 2 Bright A_CustomMissile("FirebombExplosion3",20,0,180,CMF_TRACKOWNER)
		FRME CDEFGHIJKLMNOPQRS 3 Bright
		Stop
	}
}

Actor FirebombExplosion3 : FirebombExplosion1
{
	Speed 14
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(15,30)))
	States
	{
	Death:
		FRME A 0
		FRME A 0 A_PlaySound("pyro/blastexplosion")
		FRME A 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,128), 128, 0)
		FRME BCDEFGHIJKLMNOPQRS 3 Bright
		Stop
	}
}

Actor PyroBlast
{
	Projectile
	+SeekerMissile
	+NoGravity
	RenderStyle Add
	Alpha 0.4
	SeeSound "pyro/blast"
	DeathSound "pyro/flamepoof"
	Speed 17
	Height 10
	Radius 10
	Decal Scorch
	states
	{
	Spawn:
		SBLL ABCDEFGHIJ 1 Bright A_SpawnItemEx("FireTail",0,0,0,0,0,0,0,128)
		SBLL A 0 Bright A_SeekerMissile(0,2)
		Goto Spawn+1
	Death:
		SBLL K 0 A_CustomMissile("FirebombExplosion1",1,0,45,4)
		SBLL K 0 A_CustomMissile("FirebombExplosion1",1,0,135,4)
		SBLL K 0 A_CustomMissile("FirebombExplosion1",1,0,225,4)
		SBLL K 0 A_CustomMissile("FirebombExplosion1",1,0,315,4)
		SBLL LMNOPQRSTUVW 1 Bright
		Stop
	}
}

Actor WalkFire
{
	+NoClip
	+Missile
	+DropOff
	+Randomize
	+CLIENTSIDEONLY +DONTBLAST
	Scale 1.5
	Speed 1
	RenderStyle Add
	Alpha 0.67
	States
	{
	Spawn:
		TNT1 A 8
		FRTF A 3 Bright
		FRTF A 0 
		FRTF B 3 Bright
		FRTF B 0 
		FRTF C 3 Bright
		FRTF C 0 
		FRTF C 0 
		FRTF C 0 A_Jump(191,4)
		FRTF C 0 A_CustomMissile("WalkFire", 0, 24, 0)
		FRTF C 0 A_CustomMissile("WalkFire", 0, 0, 0)
		FRTF C 0 A_CustomMissile("WalkFire", 0, -24, 0)
		FRTF DEFGHIJKLMNO 3 Bright
		Stop
	}
}

Actor RainCometNull
{
	Radius 0
	Height 0
	Speed 8
	Projectile
	+FloorClip
	+Ripper
	+DoomBounce
	+CeilingHugger
	+DontHurtSpecies
	States
	{
	Spawn:
		ZAP5 A 0 A_Jump(5,8)
		ZAP5 AAAAAA 1 A_Wander
		ZAP5 A 8 A_CustomMissile("FallingComet",-24,random(0,128),random(0,360),6,random(1,89))
		Loop
	Death:
		ZAP5 A 0
		Stop
	}
}

Actor FallingComet
{
	Radius 6
	Height 8
	Speed 5
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(15,30)))
	Scale 0.55
	Projectile
	SeeSound "pyro/comet"
	DeathSound "pyro/cometdeath"
	-NoGravity
	-Float
	+FloorClip
	+DontHurtSpecies 
	+SpawnCeiling
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	Decal RevenantScorch
	States
	{
	Spawn:
		COMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("FireTail", 0, 0, 0, 0, 0, 0, 0, 128)
		Loop
	Death:
		COMT D 3 Bright A_SpawnItemEx("CometDeathGlow", 0, 0, 0, 0, 0, 0, 0, 128)
		COMT E 3 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,20),128,0)
		COMT E 0 A_SpawnItemEx("CometDeath", 0, 0, 0, 0, 0, 0, 0, 128)
		Stop
	}
}

Actor CometDeathGlow : FireTail
{
	Scale 2.0
	Alpha 0.6
	States
	{
	Spawn:
		FRTB ABCDEFGHI 3 Bright
		Stop
	}
}

Actor CometDeath
{
	Projectile
	RenderStyle Add
	+NoClip
	Alpha 0.7
	States
	{
	Spawn:
		COMT FGHI 3 Bright
		Stop
	}
}


Actor _DarkImp //: DarkImp
{
	Meleerange 48
	Health 600
	Radius 20
	Height 56
	Mass 100
	Monster
	+FLOORCLIP
	/*+NODAMAGETHRUST*/
	+NOPAIN
	+NOFEAR
	+DONTMORPH
	+NEVERRESPAWN
	+AVOIDMELEE
	Damagetype "Shadow"
	Speed 12
	DropItem "Mana3" 128
	DropItem "Mana3" 128
	DropItem "Mana3" 128
	DropItem "Mana3" 128
	DropItem "Mana3" 128
	DropItem "PurplePotionRound" 128
	DropItem "PurplePotionHexagon" 128
	DropItem "PurplePotionVial" 128
	DropItem "PurplePotionPentagon" 128
	DropItem "PurplePotionVial" 128
	DropItem "AccessoryRandomSpawner" 32
	Species "DoomImp"
	Obituary "%o was cursed by a Dark Imp"
	HitObituary "%o found %hself next to a Dark Imp"
	SeeSound "imp/sight"
	PainSound "imp/pain"
	DeathSound "imp/death"
	ActiveSound "imp/active"
	Tag "Dark Imp"
	+USEKILLSCRIPTS
	DamageFactor "Shadow", 0.5
	DamageFactor "ShadowTime", 0.5
	DamageFactor "ShadowPlayer", 0.5
	DamageFactor "Holy", 2.0
	DamageFactor "HolyPlayer", 2.0
	DamageFactor "HolyTime", 2.0
	States
	{
	Spawn:
		DRKV A 0
		DRKV A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,WOC_STATUSIMMUNE)
	Idle:
		DRKV AB 10 A_Look
		Loop
	See:
        DRKV A 2 A_Chase
		DRKV A 3 A_Chase
		DRKV B 2 A_Chase
		DRKV B 3 A_Chase
		DRKV C 2 A_Chase
		DRKV C 3 A_Chase
		DRKV D 2 A_Chase
		DRKV D 3 A_Chase
		Loop
	Pain:
        DRKV H 2
        DRKV H 2 A_Pain
        Goto See
	Melee:
		Stop
	Missile:
		DRKV E 0 A_Jump(64,"Missile2")
		DRKV E 0 A_PlaySound("DarkImp/teleport")
		DRKV E 1 A_SetTranslucent(0.9,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.8,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.7,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.6,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.5,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.4,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.3,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.2,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.1,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.0,0)
		DRKV E 0 A_FaceTarget
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		DRKV F 0 A_PlaySound("DarkImp/teleport")
		DRKV F 1 A_SetTranslucent(0.1,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.2,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.3,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.4,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.5,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.6,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.7,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.8,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.9,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(1.0,0)
		DRKV G 6 A_CustomComboAttack("NewDarkImpBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,28)), "imp/melee", "Physical")
	Missile3:
		DRKV E 0 A_Jump(64,"Missile4")
		DRKV E 0 A_PlaySound("DarkImp/teleport")
		DRKV E 1 A_SetTranslucent(0.9,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.8,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.7,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.6,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.5,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.4,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.3,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.2,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.1,0)
		DRKV E 0 A_FaceTarget
		DRKV E 1 A_SetTranslucent(0.0,0)
		DRKV E 0 A_FaceTarget
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		DRKV F 0 A_PlaySound("DarkImp/teleport")
		DRKV F 1 A_SetTranslucent(0.1,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.2,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.3,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.4,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.5,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.6,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.7,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.8,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(0.9,0)
		DRKV F 0 A_FaceTarget
		DRKV F 1 A_SetTranslucent(1.0,0)
		DRKV G 6 A_CustomComboAttack("NewDarkImpBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,28)), "imp/melee", "Physical")
		Goto See
	Missile2:
		DRKV I 0 A_PlaySound("DarkImp/teleport")
		DRKV I 1 A_SetTranslucent(0.9,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.8,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.7,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.6,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.5,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.4,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.3,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.2,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.1,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.0,0)
		DRKV I 0 A_FaceTarget
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		DRKV J 0 A_PlaySound("DarkImp/teleport")
		DRKV J 1 A_SetTranslucent(0.1,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.2,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.3,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.4,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.5,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.6,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.7,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.8,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.9,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(1.0,0)
		DRKV J 0 A_SetShootable
		DRKV K 6 A_CustomComboAttack("DarkImpBallStrong", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(17,37)), "imp/melee", "Physical")
		Goto Missile3
	Missile4:
		DRKV I 0 A_PlaySound("DarkImp/teleport")
		DRKV I 1 A_SetTranslucent(0.9,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.8,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.7,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.6,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.5,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.4,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.3,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.2,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.1,0)
		DRKV I 0 A_FaceTarget
		DRKV I 1 A_SetTranslucent(0.0,0)
		DRKV I 0 A_FaceTarget
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		DRKV J 0 A_PlaySound("DarkImp/teleport")
		DRKV J 1 A_SetTranslucent(0.1,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.2,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.3,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.4,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.5,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.6,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.7,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.8,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(0.9,0)
		DRKV J 0 A_FaceTarget
		DRKV J 1 A_SetTranslucent(1.0,0)
		DRKV K 6 A_CustomComboAttack("DarkImpBallStrong", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(17,37)), "imp/melee", "Physical")
		Goto See
	Death:
		DRKV L 8
        DRKV M 8 A_Scream
        DRKV N 5
        DRKV O 5 A_Fall
        DRKV P -1
        Stop
	XDeath:
		DRKI N 5
        DRKI O 5 A_XScream
        DRKI P 5
        DRKI Q 5 A_Fall
        DRKI RST 5
        DRKI U -1
        Stop
	Raise:
		Stop
	}
}

actor NewDarkImpBall
{
	Radius 8
    Height 6
    Speed 20
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(3,24)))
	Damagetype "Shadow"
    PROJECTILE
	/*+NODAMAGETHRUST*/
    RENDERSTYLE ADD
    ALPHA 0.67
    SeeSound "imp/attack"
    DeathSound "imp/shotx"
    Decal DoomImpScorch
    States
    {
    Spawn:
        DKB1 AB 4 Bright
        Loop
    Death:
        DKB1 CDE 4 Bright
        Stop
    }
}

actor DarkImpBallStrong
{
    Radius 8
    Height 6
    Speed 20
    Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(17,37)))
    Damagetype "Shadow"
	PROJECTILE
	/*+NODAMAGETHRUST*/
	+SEEKERMISSILE
    RENDERSTYLE ADD
    ALPHA 0.67
    SeeSound "imp/attack"
    DeathSound "imp/shotx"
    Decal DoomImpScorch
    States
    {
    Spawn:
		DKB2 A 0 A_SeekerMissile(8,8, SMF_PRECISE)
        DKB2 AAAABBBB 1 Bright A_SpawnItemEx("DarkTail", 0, 0, 0, 0, 0, 0, 0, 128)
        Loop
    Death:
        DKB2 CDE 4 Bright
        Stop
    }
}

actor DarkTail
{
    PROJECTILE
    RENDERSTYLE ADD
    +NOCLIP
    ALPHA 0.5
    States
    {
    Spawn:
        DKBT ABCDEF 2 Bright
        Stop
    }
}