Actor EttinSpotz : RandomSpawner replaces Ettin
{
	Game Hexen
	SpawnID 4
	+TELESTOMP
	DropItem "NewEttin" 255 230
	DropItem "ChainmailEttin" 255 25
	DropItem "Bormereth" 255 1
}

Actor NewEttin : Ettin// Replaces Ettin
{
	PainChance "Convert", 255
	Painchance "EttinPower", 255
	dropitem "ArtiEmptyFlask" 64
	dropitem "ReagentRed" 64
	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
	MeleeRange 68
	+TELESTOMP
	//+BOSSDEATH
	+NODAMAGETHRUST
	Health 180
	Damagetype "Physical"
	Speed 15
	Tag "Ettin"
	AttackSound ""
	States
	{
	Pain.Convert:
		ETTN I 5 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto See
	ConvertMe:
		ETTN I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,30)
		ETTN I 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Spawn:
		ETTN A 0
		ETTN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,180,70,0)//increase health on higher difficulties
	Idle:
		ETTN AA 10 A_Look
		Loop
	Melee:
		ETTN E 5 A_FaceTarget
		ETTN F 0 A_PlayWeaponSound("EttinSwing")
		ETTN F 5 A_FaceTarget
		ETTN G 7 A_CustomMeleeAttack((Random(2, 16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "EttinAttack", "", "Physical")
		Goto See
	See:
		ETTN A 4 A_Chase
		ETTN B 5 A_Chase
		ETTN C 4 A_Chase
		ETTN D 5 A_Chase
		Loop
	Pain:
		ETTN H 7 A_Pain
		Goto See
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Death:
		ETTN I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		ETTN IJ 4
		ETTN K 4 A_Scream
		ETTN L 4 A_NoBlocking
		ETTN M 4 A_QueueCorpse
		ETTN NOP 4
		ETTN Q -1 //A_BossDeath
		Stop
		XDeath:
		ETTB A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		ETTB B 0 A_SpawnItemEx("GIBBER")
		ETTB B 4 A_Scream
		ETTB B 4 A_CustomMissile("EttinMace",2,0,-90,2)
		ETTB D 4 A_NoBlocking
		ETTB E 4 A_QueueCorpse
		ETTB FGHIJK 4
		ETTB L -1 //A_BossDeath
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		"----" H 5 A_GenericFreezeDeath
		"----" H 1 A_FreezeDeathChunks
		Wait
	Raise:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,180,70,0)
		ETTN QPONMLKJI 4
		goto See
	}
}

ACTOR NewEttinMash : NewEttin replaces EttinMash
{
  Game Hexen
  SpawnID 102
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +SHADOW
  RenderStyle Translucent
  Alpha 0.4
}

Actor ChainmailEttin : Ettin
{
  Health 500
  Radius 25
  Height 68
  Mass 175
  Speed 15
  Damage 3
  Painchance 35
  MeleeRange 68
  Monster
  +FLOORCLIP
  +TELESTOMP
  //+BOSSDEATH
  +NODAMAGETHRUST
  PainChance "Convert", 255
  SeeSound "EttinSight"
  AttackSound ""
  PainSound "EttinPain"
  DeathSound "EttinDeath"
  ActiveSound "EttinActive"
  HowlSound "PuppyBeat"
  Obituary "%o was smashed by an Ettin Commander."
  dropitem "ArtiEmptyFlask" 64
  dropitem "ReagentRed" 64
  DropItem "Armour1" 8
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money1" 64
  DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
  Damagetype "Physical"
  Tag "Ettin Commander"
  States
  {
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Spawn:
	CETN A 0
    CETN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,500,70,0)//increase health on higher difficulties
  Idle:
	CETN AA 10 A_Look
    Loop
  See:
    CETN A 4 A_Chase
	CETN B 5 A_Chase
	CETN C 4 A_Chase
	CETN D 5 A_Chase
    Loop
  Pain:
    CETN H 7 A_Pain
    Goto See
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto See
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Melee:
	CETN E 5 A_FaceTarget
	CETN F 0 A_PlayWeaponSound("EttinSwing")
	CETN F 5 A_FaceTarget
	CETN G 7 A_CustomMeleeAttack((Random(15, 30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,ACTIVATOR,0)), "EttinAttack", "", "Physical")
	Goto See
  Missile:
	CETN EF 6 A_FaceTarget
	CETN G 0 A_PlaySound("FighterHammerMiss")
	CETN G 8 A_CustomMissile("ThrownMace",52,0,0)
	Goto See
  Death:
	CETN I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
    CETN IJ 4
    CETN K 4 A_Scream
    CETN L 4 A_NoBlocking
    CETN M 4 A_QueueCorpse
    CETN NOP 4
    CETN Q -1 //A_BossDeath
    Stop
  XDeath:
	CETN I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
    CETB A 4 A_SpawnItemEx("GIBBER")
    CETB B 4 A_NoBlocking
    CETB C 4 A_SpawnItemEx("EttinMace", 0,0,8.5, random[DropMace](-128,127) * 0.03125, random[DropMace](-128,127) * 0.03125, 10 + random[DropMace](0,255) * 0.015625, 0, SXF_ABSOLUTEMOMENTUM)
    CETB D 4 A_Scream
    CETB E 4 A_QueueCorpse
    CETB FGHIJK 4
    ETTB L -1 //A_BossDeath
    Stop
  Ice:
	"----" I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
    "----" E 5 A_GenericFreezeDeath
    "----" E 1 A_FreezeDeathChunks
    Wait
  Raise:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,70,0)
	CETB QPONMLKJI 4
	goto See
  }
}

ACTOR ThrownMace
{
    Speed 15
	FastSpeed 20
    Radius 6
    Height 8
    PROJECTILE
    +NOTELEPORT
    Damage ((Random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	+NODAMAGETHRUST
	+HEXENBOUNCE
	-NOGRAVITY
	+WINDTHRUST
	+THRUGHOST
    BounceCount 4
    BounceFactor 1
    WallBounceFactor 1
    DeathSound "Fireball"
	Damagetype "Physical"
    States
    {
    Spawn:
	AEMC ABCDEFG 3
	AEMC H 0 A_PlaySound("FighterHammerContinuous")
	AEMC H 3
	Loop
    Death:
	CFCF Q 0 Bright A_SetTranslucent(1,1)
	CFCF Q 1 Bright A_NoGravity
	CFCF QQQ 1 Bright A_SpawnItemEx("FlailPuffParticleFXSpawner")
	CFCF RRR 1 Bright A_SpawnItemEx("FlailPuffParticleFXSpawner")
	CFCF SSSS 1 Bright A_SpawnItemEx("FlailPuffParticleFXSpawner")
    CFCF T 3 Bright
    CFCF U 4 Bright
    CFCF W 3 Bright
    CFCF X 4 Bright
    CFCF Z 3 Bright
    Stop
    }
}

ACTOR Bormereth : Ettin
{
    Health 1200
    Radius 25
    Height 64
    Speed 15
    PainChance 36
    Mass 2500
    MONSTER
	Species "Ettin"
	DropItem "NewArtiBoostMana" 128
	DropItem "NewArtiSuperHealth" 128
	DropItem "ArtiOrangeFlask" 128
	DropItem "ArtiRedFlask"
	DropItem "ArtiYellowFlask"
	DropItem "ArtiRedFlask"
	DropItem "ArtiYellowFlask"
	DropItem "AccessoryRandomSpawner" 32
	DamageFactor "Deathblow", 0
    //Meleedamage 8
    +MISSILEEVENMORE
    +FLOORCLIP
	+NEVERRESPAWN
	//+BOSSDEATH
	+NODAMAGETHRUST
	+DONTMORPH
	+NOFEAR
	DropItem "Money2" 128
    DropItem "Money2" 128
    DropItem "Money2" 128
    DropItem "Money2" 128
    DropItem "Money3" 128
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
    SeeSound "DMage/Attack"
    PainSound "DMage/Pain"
    ActiveSound "DMage/idle"
    DeathSound "DMage/death"
	AttackSound ""
    Obituary "%o was incinerated by the rage of Bormereth."
    HitObituary "%o was smashed by Bormereth."
	Tag "Bormereth"
    States
    {
    Spawn:
		BRMN A 0
		BRMN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1200,70,WOC_SUBBOSS)
	Idle:
		BRMN AA 10 A_Look
        Loop
    See:
        BRMN H 0 A_ChangeFlag("NOPAIN",0)
		BRMN A 0 A_UnSetInvulnerable
        BRMN A 4 A_Chase
		BRMN B 5 A_Chase
		BRMN C 4 A_Chase
		BRMN D 5 A_Chase
		Loop
    Missile:
	  TNT1 A 0 A_Jump(60,"Missile2")

	  TNT1 A 0 A_Jump(128,17)
	  BRMN E 6 A_FaceTarget
	  BRMN F 6 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 6 Bright A_CustomMissile("WraithFX12",25,0,0)
	  BRMN E 6 A_FaceTarget
	  BRMN F 6 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 6 Bright A_CustomMissile("WraithFX12",25,0,0)
	  BRMN E 6 A_FaceTarget
	  BRMN F 6 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 6 Bright A_CustomMissile("WraithFX12",25,0,0)
	  BRMN E 6 A_FaceTarget
	  BRMN F 6 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 6 Bright A_CustomMissile("WraithFX12",25,0,0)
	  Goto see

	  TNT1 A 0 A_Jump(128,9)
	  BRMN E 6 A_FaceTarget
	  BRMN F 3 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN F 3 Bright A_CustomMissile("WraithFX12",31,10,0)
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 3 Bright A_CustomMissile("WraithFX12",28,5,0)
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 3 Bright A_CustomMissile("WraithFX12",25,0,0)
	  Goto see

	  BRMN E 6 A_FaceTarget
	  BRMN F 6 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missilesimple","SoundSlot5")
	  BRMN G 0 A_CustomMissile("WraithFX12",25,0,20)
	  BRMN G 0 A_CustomMissile("WraithFX12",25,0,0)
	  BRMN G 0 A_CustomMissile("WraithFX12",25,0,-20)
	  BRMN G 6 Bright
	  Goto see
    Missile2:
	  BRMN F 5 A_FaceTarget
	  TNT1 A 0 A_PlaySoundEx("bormereth/missile2prepare","SoundSlot5")
	  TNT1 A 0 A_SpawnItemEx("PossBRMFakeFireBall",5,25,64,0,0,0,0,128)
	  BRMN EEEEE 5 A_FaceTarget
	  BRMN E 3 A_FaceTarget
	  TNT1 A 0 A_CustomMissile("PossBRMFireBall",64,25,0)
	  BRMN F 5 A_FaceTarget
	  BRMN G 5 A_FaceTarget
	  goto see
    Melee:
		BRMN E 5 A_FaceTarget
		BRMN F 0 A_PlayWeaponSound("EttinSwing")
		BRMN F 5 A_FaceTarget
		BRMN G 7 A_CustomMeleeAttack((Random(24, 38))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,7,ACTIVATOR,0)), "EttinAttack", "", "Physical")
		Goto See
    Pain:
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,0)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,90)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,180)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,270)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,45)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,135)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,-45)
	  TNT1 A 0 A_CustomMissile("FirePillarStarter",32,0,-135)
	  BRMN H 0 A_ChangeFlag("NOPAIN",1)
        BRMN H 2 A_SetInvulnerable
        BRMN H 2 A_Pain
        BRMN H 20
        BRMN H 2 A_UnSetInvulnerable
        Goto See
/*    Death:
        BRMN I 5
        BRMN J 5 A_Scream
        BRMN K 5 A_NoBlocking
        BRMN L 5 A_Fall
        BRMN MNOP 5
        BRMN Q -1
        Stop
*/
    Death:		//I just like this death too much! :P
	XDeath:
		TNT1 A 0 A_PlaySound("misc/gibbed")
		BRMB A 0 A_SpawnItemEx("GIBBER")
		BRMB A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 650)
        BRMB A 4 A_Scream
        BRMB B 4 A_SpawnItemEx("DBigEttinMace", 0, 0, 32, 3, 0, 0, -90, 128)
        BRMB C 4 A_NoBlocking
        BRMB D 4
        BRMB EFGHIJK 4
        BRMB L -1 //A_BossDeath
        Stop
	Ice:
		"----" H 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 650)
		"----" H 5 A_GenericFreezeDeath
		"----" H 1 A_FreezeDeathChunks
		Wait
    }
}


actor DBigettinMace
{
    +DOOMBOUNCE
    Speed 3
    States
    {
    Spawn:
        BRMB MNOPQR 5
        BRMB S -1
        Stop
    }
}

Actor WraithFX12 : WraithFX1
{
	DeathSound "bormereth/missilesimpledeath"
	Scale 0.85
	FastSpeed 28
	Damage ((Random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	+NODAMAGETHRUST
	Renderstyle Add
	Decal DoomImpScorch
}

Actor PossBRMFakeFireBall : WraithFX1
{
	+NOCLIP
	Damage 0
	Speed 0
	Scale 1.1
	Renderstyle Add
	States
	{
	Spawn:
		TNT1 AA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL A 1 Bright A_Settranslucent(0.1,1)
		WRBL A 1 Bright A_Settranslucent(0.15,1)
		WRBL A 1 Bright A_Settranslucent(0.2,1)
		TNT1 AAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL B 1 Bright A_Settranslucent(0.25,1)
		WRBL B 1 Bright A_Settranslucent(0.3,1)
		WRBL B 1 Bright A_Settranslucent(0.35,1)
		TNT1 AAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL C 1 Bright A_Settranslucent(0.4,1)
		WRBL C 1 Bright A_Settranslucent(0.45,1)
		WRBL C 1 Bright A_Settranslucent(0.5,1)
		TNT1 AAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL A 1 Bright A_Settranslucent(0.55,1)
		WRBL A 1 Bright A_Settranslucent(0.6,1)
		WRBL A 1 Bright A_Settranslucent(0.65,1)
		TNT1 AAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL B 1 Bright A_Settranslucent(0.7,1)
		WRBL B 1 Bright A_Settranslucent(0.75,1)
		WRBL B 1 Bright A_Settranslucent(0.8,1)
		TNT1 AAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL C 1 Bright A_Settranslucent(0.85,1)
		WRBL C 1 Bright A_Settranslucent(0.9,1)
		WRBL C 1 Bright A_Settranslucent(0.95,1)
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL A 3 Bright
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL B 3 Bright
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360))
		WRBL C 3 Bright
		Stop
	}
}


Actor PossBRMFireBall: WraithFX1
{
	Damage ((Random(35,55))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,TARGET,0)))
	+NODAMAGETHRUST
	Scale 1.1
	Speed 20
	FastSpeed 40
	+SEEKERMISSILE
	Renderstyle Add
	SeeSound "bormereth/missile2fired"
	DeathSound "bormereth/missile2death"
	Decal DoomImpScorch
	States
	{
	Spawn:
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360),128)
		WRBL A 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL A 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL A 1 Bright A_SeekerMissile(5,5)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360),128)
		WRBL B 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL B 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL B 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		TNT1 AAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360),128)
		WRBL C 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL C 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		WRBL C 1 Bright A_SeekerMissile(5,5,SMF_PRECISE)
		TNT1 A 0 A_SpawnItemEx("PEFBTrail",0,0,0,0,0,0,0,128)
		Loop
	Death:
		TNT1 A 0 A_CustomMissile("PEFBExplo",0,0,0)
		TNT1 A 0 A_Explode(80+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,18,TARGET,0)),80,0)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WraithFX23",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360),128)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WraithFX22",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(1,360),128)
		WRBL DEF 3 Bright
		WRBL GHI 3
		Stop
}
}

Actor WraithFX22
{
	Projectile
	Damage 0
	+RIPPER
	+BLOODLESSIMPACT
	Speed 0
	Radius 1
	Height 1
	Scale 0.75
	States
	{
	Spawn:
		WRBL KLKL 2 Bright
		TNT1 A 0 A_Jump(128,1)
		Loop
		WRBL MNOP 2 Bright
		WRBL P 1 Bright A_FadeOut
		Wait
	Death:
		TNT1 A 1
		Stop
	}
}

Actor WraithFX23
{
	Projectile
	Damage 0
	+RIPPER
	+BLOODLESSIMPACT
	Speed 0
	Radius 1
	Height 1
	States
	{
	Spawn:
		WRBL KLKL 2 Bright
		TNT1 A 0 A_Jump(128,1)
		Loop
		WRBL MNOP 2 Bright
		WRBL P 1 Bright A_FadeOut
		Wait
	Death:
		TNT1 A 1
		Stop
	}
}

Actor PEFBExplo
{
	Projectile
	Speed 0
	Damage 0
	+NOCLIP
	Renderstyle Add
	RenderStyle Add
	Alpha 0.6
	States
	{
	Spawn:
		FX58 ABCDEFGHIJKLMNOPQ 1 Bright
		Stop
	}
}

Actor PEFBTrail
{
	Projectile
	Speed 0
	Damage 0
	+NOCLIP
	Renderstyle Add
	RenderStyle Add
	Scale 0.4
	Alpha 0.45
	States
	{
	Spawn:
		FX50 ABCDEFG 1
		FX50 HIJKLMNOPQR 1
		Stop
	}
}


//-------------------------------------------------------
Actor FirePillarStarter
{
	Projectile
	+RIPPER
	Speed 28
	Damage 0
	+NOTARGET
	+RIPPER
	+BLOODLESSIMPACT
	RenderStyle None
	States
	{
	Spawn:
		TNT1 A 3
		Goto Death
	Death:
		TNT1 A 3 A_CustomMissile("FirePillarBase",-20,0,0,4)
		Stop
	}
}

Actor FirePillarBase
{
	Projectile
	Speed 0
	+NOCLIP
	Damage 0
	RenderStyle None
	States
	{
	Spawn:
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot2",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot2",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot2",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot2",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot2",5,0,0,4)
		TNT1 A 2 A_CustomMissile("FirePillarShot",5,0,0,4)
		Stop
	}
}

Actor FirePillarShot
{
	Projectile
	Speed 0
	Radius 4
	Height 3
	Damage (Random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	+NODAMAGETHRUST
	+BLOODLESSIMPACT
	DamageType Fire
	Scale 0.5
	RenderStyle Add
	Alpha 0.6
	States
	{
	Spawn:
		TNT1 AAAA 0
		INFE ABCD 1 Bright ThrustThingZ(0,7,0,1)
		INFE EFGHIJKLMNOPQRST 1 Bright
		Stop
	}
}

Actor FirePillarShot2 : FirePillarShot	//this one wont have light definition
{
	Alpha 0.59
}


//////////////////////////////////////////////////////Afrits
Actor AfritSpotZ : RandomSpawner replaces FireDemon
{
	Game Hexen
	SpawnID 5
	+TELESTOMP
	DropItem "NewFireDemon" 255 180
	DropItem "FireDemonLeader" 255 50
	DropItem "FireDemonCommander" 255 25
	DropItem "FireDemonQueen" 255 1
}

Actor NewFireDemon : FireDemon
{
	PainChance 1
	speed 7
	Species "Afrit"
	PainChance "Convert", 255
	+TELESTOMP
	//+BOSSDEATH
	+LOOKALLAROUND
	Height 56
	dropitem "ReagentRed" 32
	MinMissileChance 400
	Tag "Afrit"
	States
	{
	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_MONSTERXPSCRIPT,0,12)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto Chase
	See:
		FDMN E 8 Bright
		FDMN F 6 Bright
		FDMN G 5 Bright
		FDMN F 8 Bright
		FDMN E 6 Bright
		FDMN G 7 Bright A_FiredRocks
		FDMN HI 5 Bright
		FDMN J 5 Bright A_UnSetInvulnerable
	Chase:
		FDMN A 0 Bright A_UnsetInvulnerable
		FDMN AABBCC 3 Bright A_FireDChase
		Loop
	Missile:
		FDMN K 3 Bright A_FaceTarget
		FDMN KKK 5 Bright A_FiredAttack
		Goto Chase
	Pain:
		FDMN D 3 Bright A_UnsetInvulnerable
		FDMN D 3 Bright A_Pain
		Goto Chase
	Spawn:
		FDMN X 0 Bright
		FDMN X 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,80,56,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(522,0,0,0)==1,"Mutate")
		FDMN X 5 Bright
		FDMN EFG 10 Bright A_Look
		Goto Spawn+3
	Idle:
		FDMN AB 10 Bright A_LookEx(0, 0, 0, 0, 0, "Chase")
		Loop
	Death:
		FDMN A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,12)
		FDMN D 4 A_FaceTarget
		FDMN L 4 A_Scream
		FDMN L 4 A_NoBlocking
		FDMN L 200 //A_BossDeath
		Stop
	Crash:
		FDMN M 5 A_FaceTarget
		FDMN N 5 A_NoBlocking
		FDMN O 0 A_CustomMissile("FireDemonSplotch1",2,0,Random(0,360),2)
		FDMN O 0 A_CustomMissile("FireDemonSplotch2",2,0,Random(0,360),2)
		FDMN O 5 //A_BossDeath
		Stop
	XDeath:
		FDMN A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,12)
		FDMN M 5 A_FaceTarget
		FDMN N 5 A_NoBlocking
		FDMN O 0 A_CustomMissile("FireDemonSplotch1",2,0,Random(0,360),2)
		FDMN O 0 A_CustomMissile("FireDemonSplotch2",2,0,Random(0,360),2)
		FDMN O 5 //A_BossDeath
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,12)
		"----" D 5 A_GenericFreezeDeath
		"----" D 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewFireDemonMissile : FireDemonMissile replaces FireDemonMissile
{
	Speed 15
	FastSpeed 20
	Damage (Random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	+NODAMAGETHRUST
	States
	{
	Spawn:
      FDMB A 1 Bright A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
	  FDMB A 1 Bright A_CustomMissile("FireDemonTrail2",0,0,0,0)
      Loop
	}
}

ACTOR FireDemonTrail1
{   
   Radius 2
   Height 2
   Speed 1
   ReactionTime 60
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.75
   +CLIENTSIDEONLY +DONTBLAST
   +NOGRAVITY
   +DOOMBOUNCE
   +EXPLODEONWATER
   -CANBOUNCEWATER
   -SOLID
   +DONTSPLASH
   +NOINTERACTION
   States
   {
   Spawn:
      FDSP AB 3 BRIGHT A_FadeOut(0.1)
      loop
   Death:
      FDSP CDE 3 BRIGHT
      Stop 
   }
}

ACTOR FireDemonTrail2
{   
   Radius 2
   Height 2
   Speed 0
   Scale 1.0
   PROJECTILE
   RENDERSTYLE ADD
   +CLIENTSIDEONLY +DONTBLAST
   +NOINTERACTION
   ALPHA 0.67
   States
   {
   Spawn:
      NULL A 3 Bright
      FDFX ABCDE 3 BRIGHT
      Stop 
   }
}

Actor FireDemonLeader : FireDemon
{
   Health 160
   ReactionTime 8
   PainChance 1
   Speed 7
   Radius 20
   Height 56
   Mass 75
   Damage 1
   Monster
   +DROPOFF
   +NOGRAVITY
   +FLOAT
   +FLOORCLIP
   +INVULNERABLE
   +TELESTOMP
   //+BOSSDEATH
   +LOOKALLAROUND
   MinMissileChance 400
   Species "Afrit"
   PainChance "Convert", 255
   SeeSound "FireDemonSpawn"
   PainSound "FireDemonPain"
   DeathSound "FireDemonDeath"
   ActiveSound "FireDemonActive"
   Obituary "%o tasted an Afrit Leader's fire."
   dropitem "ReagentRed" 32
   Tag "Afrit Leader"
   States
   {
   Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
   Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,18)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto Chase
   Spawn:
		FDNL X 0 Bright
		FDNL X 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,56,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(522,0,0,0)==1,"Mutate")
		FDNL X 5 Bright
		FDNL EFG 10 Bright A_Look
		Goto Spawn+3
	Idle:
		FDNL AB 10 Bright A_LookEx(0, 0, 0, 0, 0, "Chase")
		Loop
   See:
       FDNL E 8 Bright
       FDNL F 6 Bright
       FDNL G 5 Bright
       FDNL F 8 Bright
       FDNL E 6 Bright
       FDNL G 7 Bright A_FiredRocks
       FDNL HI 5 Bright
       FDNL J 5 Bright A_UnSetInvulnerable
   Chase:
	   FDNL A 0 Bright A_UnsetInvulnerable
       FDNL AABBCC 3 Bright A_FireDChase
	   Loop
   Pain:
	   FDNL D 3 bright A_UnsetInvulnerable
       FDNL D 3 Bright A_Pain
       Goto Chase
   Missile:
       FDNL K 3 Bright A_FaceTarget
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNL K 5 Bright A_CustomMissile("FireDemonLeaderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNL K 5 Bright A_CustomMissile("FireDemonLeaderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNL K 5 Bright A_CustomMissile("FireDemonLeaderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNL K 5 Bright A_CustomMissile("FireDemonLeaderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNL K 5 Bright A_CustomMissile("FireDemonLeaderMissile",32)
       Goto Chase
   Crash:
		FDNL M 5 A_FaceTarget
       FDNL N 5 A_NoBlocking
	   TNT1 A 0 A_SpawnItemEx("FireDemonLeaderSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNL O 0 A_SpawnItemEx("FireDemonLeaderSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNL O 5 //A_BossDeath
       Stop
   XDeath:
		FDNL M 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,18)
       FDNL M 5 A_FaceTarget
       FDNL N 5 A_NoBlocking
	   TNT1 A 0 A_SpawnItemEx("FireDemonLeaderSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNL O 0 A_SpawnItemEx("FireDemonLeaderSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNL O 5 //A_BossDeath
	   Stop
   Death:
		FDNL M 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,18)
       FDNL D 4 Bright A_FaceTarget
       FDNL L 4 Bright A_Scream
       FDNL L 4 Bright A_NoBlocking
       FDNL L 200 Bright //A_BossDeath
       Stop
   Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,18)
       "----" D 5 A_GenericFreezeDeath
       "----" D 1 A_FreezeDeathChunks
       Wait
   }
}

Actor FireDemonLeaderMissile
{
  Health 1000
  ReactionTime 8
  Speed 15
  FastSpeed 20
  Radius 10
  Height 6
  Mass 5
  Damage (Random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  +NODAMAGETHRUST
  DamageType "Fire"
  Projectile
  +FLOORCLIP
  +SEEKERMISSILE
  RenderStyle Add
  DeathSound "FireDemonMissileHit"
  States
  {
  Spawn:
    FDLB A 1 Bright A_CustomMissile("FireDemonLeaderTrail1",0,0,Random(-200,200),50,Random(-200,200))
	FDLB A 1 Bright A_CustomMissile("FireDemonLeaderTrail2",0,0,0,0)
      Loop
  Death:
    FDLB BCDE 5 Bright
    Stop
  }
}

ACTOR FireDemonLeaderTrail1
{   
   Radius 2
   Height 2
   Speed 1
   ReactionTime 60
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.75
   +CLIENTSIDEONLY +DONTBLAST
   +NOGRAVITY
   +DOOMBOUNCE
   +EXPLODEONWATER
   -CANBOUNCEWATER
   -SOLID
   +DONTSPLASH
   +NOINTERACTION
   States
   {
   Spawn:
      FLSP AB 3 BRIGHT A_FadeOut(0.1)
      loop
   Death:
      FLSP CDE 3 BRIGHT
      Stop 
   }
}

ACTOR FireDemonLeaderTrail2
{   
   Radius 2
   Height 2
   Speed 0
   Scale 1.0
   PROJECTILE
   RENDERSTYLE ADD
   +CLIENTSIDEONLY +DONTBLAST
   +NOINTERACTION
   ALPHA 0.67
   States
   {
   Spawn:
      NULL A 3 Bright
      FLFX ABCDE 3 BRIGHT
      Stop 
   }
}

Actor FireDemonLeaderSplotch1
{
   Health 1000
   ReactionTime 8
   Radius 3
   Height 16
   Mass 100
   +DROPOFF
   +CORPSE
   +NOTELEPORT
   +FLOORCLIP
   States
   {
   Spawn:
       FDNL P 3
       FDNL P 6 A_QueueCorpse
       FDNL Y -1
       Stop
   }
}

Actor FireDemonLeaderSplotch2 : FireDemonLeaderSplotch1
{
   States
   {
   Spawn:
       FDNL Q 3
       FDNL Q 6 A_QueueCorpse
       FDNL Z -1
       Stop
   }
}

Actor FireDemonCommander : FireDemon
{
   Health 300
   ReactionTime 8
   PainChance 1
   Speed 7
   Radius 20
   Height 56
   Mass 75
   Damage 1
   Species "Afrit"
   Monster
   +DROPOFF
   +NOGRAVITY
   +FLOAT
   +FLOORCLIP
   +INVULNERABLE
   +TELESTOMP
   //+BOSSDEATH
   +LOOKALLAROUND
   MinMissileChance 400
   dropitem "ReagentRed" 32
   SeeSound "FireDemonSpawn"
   PainSound "FireDemonPain"
   DeathSound "FireDemonDeath"
   ActiveSound "FireDemonActive"
   Obituary "%o tasted an Afrit Commander's fire."
   Tag "Afrit Commander"
   States
   {
   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_MONSTERXPSCRIPT,0,25)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto Chase
   Spawn:
		FDNC X 0 Bright
		FDNC X 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,56,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(522,0,0,0)==1,"Mutate")
		FDNC X 5 Bright
		FDNC EFG 10 Bright A_Look
		Goto Spawn+3
	Idle:
		FDNC AB 10 Bright A_LookEx(0, 0, 0, 0, 0, "Chase")
		Loop
   See:
       FDNC E 8 Bright
       FDNC F 6 Bright
       FDNC G 5 Bright
       FDNC F 8 Bright
       FDNC E 6 Bright
       FDNC G 7 Bright A_FiredRocks
       FDNC HI 5 Bright
       FDNC J 5 Bright A_UnSetInvulnerable
   Chase:
	   FDNC A 0 Bright A_UnsetInvulnerable
       FDNC AABBCC 3 Bright A_FireDChase
	   Loop
   Pain:
	   FDNC D 3 Bright A_UnsetInvulnerable
       FDNC D 3 Bright A_Pain
       Goto Chase
   Missile:
       FDNC K 3 Bright A_FaceTarget
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
       TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNC K 5 Bright A_CustomMissile("FireDemonCommanderMissile",32)
       Goto Chase
   Crash:
		FDNC M 5 A_FaceTarget
       FDNC N 5 A_NoBlocking
	   TNT1 A 0 A_SpawnItemEx("FireDemonCommanderSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNC O 0 A_SpawnItemEx("FireDemonCommanderSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNC O 5 //A_BossDeath
	   Stop
   XDeath:
	   FDNC M 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,25)
       FDNC M 5 A_FaceTarget
       FDNC N 5 A_NoBlocking
	   TNT1 A 0 A_SpawnItemEx("FireDemonCommanderSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNC O 0 A_SpawnItemEx("FireDemonCommanderSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNC O 5 //A_BossDeath
       Stop
   Death:
	   FDNC M 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,25)
       FDNC D 4 Bright A_FaceTarget
       FDNC L 4 Bright A_Scream
       FDNC L 4 Bright A_NoBlocking
       FDNC L 200 Bright //A_BossDeath
       Stop
   Ice:
		"----" D 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 25)
       "----" D 5 A_GenericFreezeDeath
       "----" D 1 A_FreezeDeathChunks
       Wait
   }
}

Actor FireDemonCommanderMissile
{
  Health 1000
  ReactionTime 8
  Speed 15
  FastSpeed 20
  Radius 10
  Height 6
  Mass 5
  Damage (Random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  +NODAMAGETHRUST
  DamageType "Fire"
  Projectile
  +FLOORCLIP
  RenderStyle Add
  DeathSound "FireDemonMissileHit"
  States
  {
  Spawn:
    FDCB A 1 Bright A_CustomMissile("FireDemonCommanderTrail1",0,0,Random(-200,200),50,Random(-200,200))
	FDCB A 1 Bright A_CustomMissile("FireDemonCommanderTrail2",0,0,0,0)
      Loop
  Death:
    FDCB BCDE 5 Bright
    Stop
  }
}

ACTOR FireDemonCommanderTrail1
{   
   Radius 2
   Height 2
   Speed 1
   ReactionTime 60
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.75
   +CLIENTSIDEONLY +DONTBLAST
   +NOGRAVITY
   +DOOMBOUNCE
   +EXPLODEONWATER
   -CANBOUNCEWATER
   -SOLID
   +DONTSPLASH
   +NOINTERACTION
   States
   {
   Spawn:
      FCSP AB 3 BRIGHT A_FadeOut(0.1)
      loop
   Death:
      FCSP CDE 3 BRIGHT
      Stop 
   }
}

ACTOR FireDemonCommanderTrail2
{   
   Radius 2
   Height 2
   Speed 0
   Scale 1.0
   PROJECTILE
   RENDERSTYLE ADD
   +CLIENTSIDEONLY +DONTBLAST
   +NOINTERACTION
   ALPHA 0.67
   States
   {
   Spawn:
      NULL A 3 Bright
      FCFX ABCDE 3 BRIGHT
      Stop 
   }
}

Actor FireDemonCommanderSplotch1
{
   Health 1000
   ReactionTime 8
   Radius 3
   Height 16
   Mass 100
   +DROPOFF
   +CORPSE
   +NOTELEPORT
   +FLOORCLIP
   States
   {
   Spawn:
       FDNC P 3
       FDNC P 6 A_QueueCorpse
       FDNC Y -1
       Stop
   }
}

Actor FireDemonCommanderSplotch2 : FireDemonCommanderSplotch1
{
   States
   {
   Spawn:
       FDNC Q 3
       FDNC Q 6 A_QueueCorpse
       FDNC Z -1
       Stop
   }
}

Actor FireDemonQueen : FireDemon
{
   Health 1000
   ReactionTime 8
   Speed 7
   Radius 20
   Height 56
   Mass 75
   Damage 1
   Monster
   +DROPOFF
   +NOGRAVITY
   +FLOAT
   +FLOORCLIP
   +INVULNERABLE
   +TELESTOMP
   +NEVERRESPAWN
   //+BOSSDEATH
   +LOOKALLAROUND
   +DONTMORPH
   +NOFEAR
   +NOPAIN
   MinMissileChance 400
   Species "Afrit"
   SeeSound "FireDemonSpawn"
   PainSound "FireDemonPain"
   DeathSound "FireDemonDeath"
   ActiveSound "FireDemonActive"
   dropitem "ArtiPurpleFlask" 128
   dropitem "ArtiRedFlask" 128
   dropitem "ArtiAquaFlask" 128
   dropItem "ArtiBlackFlask" 128
   DropItem "ArtiWhiteFlash" 128
   DropItem "ArtiYellowFlask" 128
   Dropitem "ArtiOrangeFlask" 128
   DropItem "ArtiTanFlask" 128
   DropItem "ArtiBlueFlask" 128
   dropitem "ArtiPurpleFlask" 128
   dropitem "ArtiRedFlask" 128
   dropitem "ArtiAquaFlask" 128
   dropItem "ArtiBlackFlask" 128
   DropItem "ArtiWhiteFlash" 128
   DropItem "ArtiYellowFlask" 128
   Dropitem "ArtiOrangeFlask" 128
   DropItem "ArtiTanFlask" 128
   DropItem "ArtiBlueFlask" 128
   Dropitem "newArtiBoostMana" 128
   DropItem "ForceCube" 128
   DropItem "AccessoryRandomSpawner" 32
   Obituary "%o tasted an Afrit Queen's fire."
   DamageFactor "Deathblow", 0
   Tag "Afrit Queen"
   States
   {
   Spawn:
		FDNQ X 0 Bright
		FDNQ X 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1000,56,WOC_SUBBOSS)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(522,0,0,0)==1,"Mutate")
		FDNQ X 5 Bright
		FDNQ EFG 10 Bright A_Look
		Goto Spawn+3
	Idle:
		FDNQ AB 10 Bright A_LookEx(0, 0, 0, 0, 0, "Chase")
		Loop
   See:
       FDNQ E 8 Bright
       FDNQ F 6 Bright
       FDNQ G 5 Bright
       FDNQ F 8 Bright
       FDNQ E 6 Bright
       FDNQ G 7 Bright A_FiredRocks
       FDNQ HI 5 Bright
       FDNQ J 5 Bright A_UnSetInvulnerable
   Chase:
	FDNQ A 0 Bright A_UnsetInvulnerable
       FDNQ AABBCC 3 Bright A_FireDChase
		Loop
   Pain:
	   FDNQ D 3 Bright A_UnsetInvulnerable
       FDNQ D 3 Bright A_Pain
       Goto Chase
   Missile:
       TNT1 A 0 A_Jump(48,28)
       FDNQ K 3 Bright A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
	   FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
	   FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
       Goto Chase
	   TNT1 A 0 Thing_Stop(0)
	   TNT1 A 0 A_KillChildren
       TNT1 A 0 A_UnSetShootable
       FDNQ AAAAAAAAA 1 Bright A_FadeOut(0.10)
       FDNQ A 1 Bright A_SetTranslucent(0.0)
       TNT1 A 0 A_SpawnItemEx("FireDemonQueenClone",-50,100,0,0,0,0,0,16)
       TNT1 A 0 A_SpawnItemEx("FireDemonQueenClone",50,-100,0,0,0,0,0,16)
       TNT1 A 0 A_SpawnItemEx("FireDemonQueenClone",100,100,0,0,0,0,0,16)
       TNT1 A 0 A_SpawnItemEx("FireDemonQueenClone",-100,-50,0,0,0,0,0,16)
       FDNQ AAAAAAAAAA 1 Bright A_FadeIn(0.10)
       TNT1 A 0 A_SetShootable
       Goto Chase
   Crash:
	   FDNQ M 5 A_FaceTarget
       FDNQ N 5// A_NoBlocking
	   TNT1 A 0 A_SpawnItemEx("FireDemonQueenSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNQ O 0 A_SpawnItemEx("FireDemonQueenSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNQ O 5 //A_BossDeath
       Stop
   XDeath:
	   TNT1 A 0 A_KillChildren
	   FDNQ D 0 Bright A_NoBlocking
	   FDNQ D 0 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 500)
       FDNQ M 5 A_FaceTarget
       FDNQ N 5
	   TNT1 A 0 A_SpawnItemEx("FireDemonQueenSplotch1",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
       FDNQ O 0 A_SpawnItemEx("FireDemonQueenSplotch2",0,0,0,Random(1,2),Random(1,2),Random(3,5),Random(1,360))
	   FDNQ O 5 //A_BossDeath
       Stop
   Death:
	   TNT1 A 0 A_KillChildren
	   FDNQ D 0 Bright A_NoBlocking
	   FDNQ D 0 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 500)
       FDNQ D 4 Bright A_FaceTarget
       FDNQ L 4 Bright A_Scream
       FDNQ L 4 Bright
       FDNQ L 200 Bright //A_BossDeath
       Stop
   Ice:
       "----" A 0 A_KillChildren
	   "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0, 500)
       "----" A 5 A_GenericFreezeDeath
       "----" A 1 A_FreezeDeathChunks
       Wait
   }
}

actor FireDemonQueenClone: FireDemonQueen
{
   Health 1
   +NOBLOOD
   -COUNTKILL
   -TELESTOMP
   -INVULNERABLE
   +GHOST
   RenderStyle Translucent
   Alpha 0.0
   Tag "Afrit Queen Clone"
   States
   {
   Spawn:
       FNDQ A 0
	   FNDQ A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1,56,WOC_SUBBOSS)
       FDNQ AAAAAAA 1 Bright A_FadeIn(0.10)
       Goto Chase
   Missile:
       FDNQ K 3 Bright A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   TNT1 A 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("FireDemonAttack")
       FDNQ K 4 Bright A_CustomMissile("FireDemonQueenMissile",32)
	   Goto Chase
   Crash:
   XDeath:
   Death:
       FDNQ A 1 Bright A_FadeOut(0.10)
	   Loop
   }
}

Actor FireDemonQueenMissile
{
  Health 1000
  ReactionTime 8
  Speed 15
  FastSpeed 20
  Radius 10
  Height 6
  Mass 5
  Damage (Random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  +NODAMAGETHRUST
  DamageType "Fire"
  Projectile
  +FLOORCLIP
  +SEEKERMISSILE
  RenderStyle Add
  DeathSound "FireDemonMissileHit"
  States
  {
  Spawn:
    FDQB A 1 Bright A_CustomMissile("FireDemonQueenTrail1",0,0,Random(-200,200),50,Random(-200,200))
	FDQB A 1 Bright A_CustomMissile("FireDemonQueenTrail2",0,0,0,0)
	FDQB A 1 Bright A_CustomMissile("FireDemonQueenTrail1",0,0,Random(-200,200),50,Random(-200,200))
	FDQB A 1 Bright A_CustomMissile("FireDemonQueenTrail2",0,0,0,0)
	FDQB A 0 Bright A_SeekerMissile(14,14,SMF_PRECISE)
      Loop
  Death:
    FDQB BCDE 5 Bright
    Stop
  }
}

ACTOR FireDemonQueenTrail1
{   
   Radius 2
   Height 2
   Speed 1
   ReactionTime 60
   PROJECTILE
   RENDERSTYLE ADD
   Alpha 0.75
   +CLIENTSIDEONLY +DONTBLAST
   +NOGRAVITY
   +DOOMBOUNCE
   +EXPLODEONWATER
   -CANBOUNCEWATER
   -SOLID
   +DONTSPLASH
   +NOINTERACTION
   States
   {
   Spawn:
      FQSP AB 3 BRIGHT A_FadeOut(0.1)
      loop
   Death:
      FQSP CDE 3 BRIGHT
      Stop 
   }
}

ACTOR FireDemonQueenTrail2
{   
   Radius 2
   Height 2
   Speed 0
   Scale 1.0
   PROJECTILE
   RENDERSTYLE ADD
   +CLIENTSIDEONLY +DONTBLAST
   +NOINTERACTION
   ALPHA 0.67
   States
   {
   Spawn:
      NULL A 3 Bright
      FQFX ABCDE 3 BRIGHT
      Stop 
   }
}

Actor FireDemonQueenSplotch1
{
   Health 1000
   ReactionTime 8
   Radius 3
   Height 16
   Mass 100
   +DROPOFF
   +CORPSE
   +NOTELEPORT
   +FLOORCLIP
   States
   {
   Spawn:
       FDNQ P 3
       FDNQ P 6 A_QueueCorpse
       FDMN Y -1
       Stop
   }
}

Actor FireDemonQueenSplotch2 : FireDemonQueenSplotch1
{
   States
   {
   Spawn:
       FDNQ Q 3
       FDNQ Q 6 A_QueueCorpse
       FDMN Z -1
       Stop
   }
}

Actor Demon1SpotZ : RandomSpawner replaces Demon1
{
	Game Hexen
	SpawnID 3
	+TELESTOMP
	DropItem "NewDemon1" 255 230
	DropItem "Demon3" 255 25
	DropItem "Demon5" 255 1
}

Actor Demon2SpotZ : RandomSpawner replaces Demon2
{
	+TELESTOMP
	DropItem "NewDemon2" 255 230
	DropItem "Demon4" 255 25
	DropItem "2Demon5" 255 1
}

Actor NewDemon1 : Demon1 //Replaces Demon1
{
speed 13
Species "ChaosSerpent"
PainChance "Convert", 255
DamageFactor ChaosSerpentFire, 0
+TELESTOMP
//+BOSSDEATH
+NODAMAGETHRUST
dropitem "ReagentTan" 32
meleerange 82
Height 64
Damagetype "Physical"
Tag "Chaos Serpent"
States
{
Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
	Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
	Spawn:
		DEMN A 0
   	 	DEMN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)
	Idle:
		DEMN AA 10 A_Look
    	Loop
	See:
		DEMN A 4 A_Chase
		DEMN B 3 A_Chase
		DEMN C 4 A_Chase
		DEMN D 3 A_Chase
		Loop
	Pain:
		DEMN E 4
		DEMN E 4 A_Pain
		Goto See
	Missile:
		DEMN E 5 A_FaceTarget
		DEMN F 6 A_FaceTarget
		DEMN G 5 A_CustomMissile("Demon1FX1", 70, 0)
		Goto See
	Melee:
		DEMN E 5 A_FaceTarget
		DEMN F 6 A_FaceTarget
		DEMN G 5 A_CustomMeleeAttack((Random(17, 37))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,ACTIVATOR,0)), "", "", "Physical")
		Goto See
	Death:
		DMN1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		DEMN H 0 A_SpawnItemEx("GIBBER")
		DEMN HI 6
		DEMN J 6 A_Scream
		DEMN K 6 A_NoBlocking
		DEMN L 6 A_QueueCorpse
		DEMN MNO 6
		DEMN P -1 //A_BossDeath
		Stop
	XDeath:
	DEMN A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		DEMN H 6 A_SpawnItemEx("GIBBER")
		DEMN I 0 A_SpawnItemEx("Demon1Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
    DEMN I 0 A_SpawnItemEx("Demon1Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEMN I 0 A_SpawnItemEx("Demon1Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEMN I 0 A_SpawnItemEx("Demon1Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEMN I 6 A_SpawnItemEx("Demon1Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    Goto Death+4

	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	"----" E 5 A_GenericFreezeDeath
	"----" E 1 A_FreezeDeathChunks
	Wait
	Raise:
	DEMN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)
	DEMN PONMLKJIH 6
	Goto See
}
}

ACTOR NewDemon1Mash : NewDemon1 replaces Demon1Mash
{
  Game Hexen
  SpawnID 100
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +SHADOW
  RenderStyle Translucent
  Alpha 0.4
}

Actor NewDemon1FX1 : Demon1FX1 replaces Demon1FX1
{
	Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	Speed 19
	FastSpeed 25
	+NODAMAGETHRUST
	-SPAWNSOUNDSOURCE
	States
	{
	Spawn:
    DMFX AABBCC 2 Bright A_spawnitemEx("Demon1FX1Trail")
    Loop
	}
}

ACTOR Demon1FX1Trail
{
    Radius 1
    Height 1
	Gravity 0
	Speed 1
	Scale 0.3
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+CLIENTSIDEONLY +DONTBLAST
	+FORCEXYBILLBOARD
	Renderstyle Add
    States
    {
    Spawn:
        DMFX DEFGH 2 bright
        Stop
    }
}


Actor Demon3 : Demon1
{
  Health 600
  Painchance 50
  Speed 13
  Radius 32
  Height 64
  Mass 220
  Monster
  +TELESTOMP
  +FLOORCLIP
  //+BOSSDEATH
  +NODAMAGETHRUST
  meleerange 82
  dropitem "ReagentRed" 32
  DamageFactor ChaosSerpentFire, 0
  Species "ChaosSerpent"
  BloodColor "Orange"
  SeeSound "DemonSight"
  AttackSound "DemonAttack"
  PainChance "Convert", 255
  PainSound "DemonPain"
  DeathSound "DemonDeath"
  ActiveSound "DemonActive"
  Obituary "%o was blasted by a Magma Serpent."
  HitObituary "%o was swallowed by a Magma Serpent."
  Damagetype "Physical"
  Tag "Magma Serpent"
  States
  {
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Spawn:
	RDMN A 0
   	RDMN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,600,96,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(535,0,0,0)==1,"Mutate")
    Goto Idle
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Idle:
	RDMN AA 10 A_Look
    Loop
  See:
    RDMN ABCD 4 A_Chase
    Loop
  Pain:
    RDMN E 4
    RDMN E 4 A_Pain
    Goto See
  Melee:
    RDMN E 5 A_FaceTarget
    RDMN F 6 A_FaceTarget
    RDMN G 5 A_CustomMeleeAttack((Random(26, 46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,ACTIVATOR,0)), "", "", "Physical")
    Goto See
  Missile:
    RDMN E 5 A_FaceTarget
    RDMN F 6 A_FaceTarget
    RDMN G 5 A_CustomMissile("Demon3FX",70,0,0,0)
    Goto See
  Death:
	RDMN A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    RDMN H 6 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
	RDMN I 6
    RDMN J 6 A_Scream
    RDMN K 6 A_NoBlocking
    RDMN L 6  A_QueueCorpse
    RDMN MNO 6
    RDMN P -1 //A_BossDeath
    Stop
  XDeath:
	RDMN A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    RDMN H 6 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
    TNT1 A 0 A_SpawnItemEx("Demon3Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
    TNT1 A 0 A_SpawnItemEx("Demon3Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    TNT1 A 0 A_SpawnItemEx("Demon3Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    TNT1 A 0 A_SpawnItemEx("Demon3Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    RDMN I 6 A_SpawnItemEx("Demon3Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    Goto Death+3
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    "----" E 5 A_GenericFreezeDeath
    "----" E 1 A_FreezeDeathChunks
    Wait
  Raise:
	RDMN A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)
	RDMN PONMLKJIH 6
	Goto See
  }
}

Actor Demon5 : Demon1
{
  Health 1400
  Painchance 10
  Speed 13
  Radius 32
  Height 64
  Mass 220
  Monster
  +TELESTOMP
  +FLOORCLIP
  //+BOSSDEATH
  +NODAMAGETHRUST
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +DONTMORPH
  dropitem "newartidarkservant" 128
   dropitem "NewArtiTorch" 128
   dropitem "NewArtiSpeedBoots" 128
   dropItem "NewArtiHealingRadius" 128
   DropItem "NewArtiPork" 128
   DropItem "NewArtiTeleport" 128
   Dropitem "NewArtiSuperHealth" 128
   Dropitem "newArtiBoostMana" 128
   DropItem "ForceCube" 128
   DropItem "AccessoryRandomSpawner" 32
  Renderstyle Add
  meleerange 82
  SeeSound "DemonSight"
  AttackSound "DemonAttack"
  PainSound "DemonPain"
  DeathSound "DemonDeath"
  ActiveSound "DemonActive"
  Species "ChaosSerpent"
  Obituary "%o was blasted by a Spectral Chaos Serpent."
  Damagetype "ManaDrain"
  Tag "Spectral Chaos Serpent"
  +NOFEAR
  States
  {
  Spawn:
	DEM5 A 0
   	DEM5 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1400,96,WOC_SUBBOSS)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(535,0,0,0)==1,"Mutate")
  Idle:
	DEM5 AA 10 A_Look
    Loop
  See:
    DEM5 ABCD 4 A_Chase
    Loop
  Pain:
    DEM5 E 4
    DEM5 E 4 A_Pain
    Goto See
  Melee:
	DEM5 E 5 A_FaceTarget
	DEM5 F 6 A_FaceTarget
	DEM5 G 5 A_CustomMeleeAttack((Random(26, 46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,ACTIVATOR,0)), "", "", "Holy")
	Goto See
  Missile:
    DEM5 E 5 A_FaceTarget
    DEM5 F 6 A_FaceTarget
	DEM5 G 0 A_Jump(128,6)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, -10)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, 0)
	DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, -20)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, 20)
   	DEM5 G 5 A_CustomMissile ("Demon5FX1", 70, 0, 10)
	Goto See
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	Goto See
  Death:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,400)
	"----" H 0 A_NoBlocking
	"----" H 2 A_FadeOut
    Wait
  XDeath:
	Stop
  Ice:
	"----" E 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,400)
    "----" E 5 A_GenericFreezeDeath
    "----" E 1 A_FreezeDeathChunks
    Wait
  }
}

Actor 2Demon5 : Demon2
{
  Health 1400
  Painchance 10
  Speed 13
  Radius 32
  Height 64
  Mass 220
  Monster
  +TELESTOMP
  +FLOORCLIP
  //+BOSSDEATH
  +NODAMAGETHRUST
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +DONTMORPH
  dropitem "newartidarkservant" 128
   dropitem "NewArtiTorch" 128
   dropitem "NewArtiSpeedBoots" 128
   dropItem "NewArtiHealingRadius" 128
   DropItem "NewArtiPork" 128
   DropItem "NewArtiTeleport" 128
   Dropitem "NewArtiSuperHealth" 128
   Dropitem "newArtiBoostMana" 128
   DropItem "ForceCube" 128
   DropItem "AccessoryRandomSpawner" 32
  Renderstyle Add
  meleerange 82
  SeeSound "DemonSight"
  AttackSound "DemonAttack"
  PainSound "DemonPain"
  DeathSound "DemonDeath"
  ActiveSound "DemonActive"
  Species "ChaosSerpent"
  Obituary "%o was blasted by a Spectral Chaos Serpent."
  Damagetype "ManaDrain"
  Tag "Spectral Chaos Serpent"
  +NOFEAR
  States
  {
  Spawn:
	DEM5 A 0
   	DEM5 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1400,96,WOC_SUBBOSS)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(535,0,0,0)==1,"Mutate")
  Idle:
	DEM5 AA 10 A_Look
    Loop
  See:
    DEM5 ABCD 4 A_Chase
    Loop
  Pain:
    DEM5 E 4
    DEM5 E 4 A_Pain
    Goto See
  Melee:
	DEM5 E 5 A_FaceTarget
	DEM5 F 6 A_FaceTarget
	DEM5 G 5 A_CustomMeleeAttack((Random(26, 46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,ACTIVATOR,0)), "", "", "Holy")
	Goto See
  Missile:
    DEM5 E 5 A_FaceTarget
    DEM5 F 6 A_FaceTarget
	DEM5 G 0 A_Jump(128,6)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, -10)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, 0)
	DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, -20)
    DEM5 G 0 A_CustomMissile ("Demon5FX1", 70, 0, 20)
   	DEM5 G 5 A_CustomMissile ("Demon5FX1", 70, 0, 10)
	Goto See
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	DEM5 G 2 A_CustomMissile("Demon5Jet", 70, 0)
	Goto See
  Death:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,400)
	"----" H 0 A_NoBlocking
	"----" H 2 A_FadeOut(0.025)
    Wait
  XDeath:
	Stop
  Ice:
	Stop
  }
}

ACTOR Demon5FX1
{
  Speed 19
  FastSpeed 25
  Radius 10
  Height 6
  Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
  +NODAMAGETHRUST
  DamageType ManaDrain
  Projectile
  +SPAWNSOUNDSOURCE
  RenderStyle Add
  SeeSound "DemonMissileFire"
  DeathSound "DemonMissileExplode"
  States
  {
  Spawn:
    D5FX ABCDEF 4 Bright
    Loop
  Death:
    D5FX GHIJ 4 Bright
    D5FX KL 3 Bright
    Stop
  }
}

ACTOR Demon5Jet
{
		Radius 14
		Height 12
		Speed 20
		Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
		PROJECTILE
		+RIPPER
		+BLOODLESSIMPACT
		+NODAMAGETHRUST
		Renderstyle Add
		Alpha 0.5
		SeeSound "DemonMissileFire"
		DeathSound "FireBall"
		DamageType ManaDrain
		States
		{
		Spawn:
			D5JT ABC 4 BRIGHT
			Loop
		Death:
			D5JT DEFG 4 BRIGHT
			Stop
		}
}

Actor Demon3Chunk1 : DemonChunk
{
  States
  {
  Spawn:
    RDMA A 4
    RDMA A 10 A_QueueCorpse
    RDMA A 20
    Wait
  Death:
    RDMA A -1
    Stop
  }
}

Actor Demon3Chunk2 : DemonChunk
{
  States
  {
  Spawn:
    RDMB A 4
    RDMB A 10 A_QueueCorpse
    RDMB A 20
    Wait
  Death:
    RDMB A -1
    Stop
  }
}

Actor Demon3Chunk3 : DemonChunk
{
  States
  {
  Spawn:
    RDMC A 4
    RDMC A 10 A_QueueCorpse
    RDMC A 20
    Wait
  Death:
    RDMC A -1
    Stop
  }
}

Actor Demon3Chunk4 : DemonChunk
{
  States
  {
  Spawn:
    RDMD A 4
    RDMD A 10 A_QueueCorpse
    RDMD A 20
    Wait
  Death:
    RDMD A -1
    Stop
  }
}

Actor Demon3Chunk5 : DemonChunk
{
  States
  {
  Spawn:
    RDME A 4
    RDME A 10 A_QueueCorpse
    RDME A 20
    Wait
  Death:
    RDME A -1
    Stop
  }
}

Actor Demon3FX
{
  Speed 19
  FastSpeed 25
  Radius 10
  Height 6
  Damage ((random(26,46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,TARGET,0)))
  +NODAMAGETHRUST
  DamageType Fire
  Projectile
  RenderStyle Add
  SeeSound "DemonMissileFire"
  DeathSound "DemonMissileExplode"
  States
  {
  Spawn:
	RDFX AABBCC 2 Bright A_spawnitemEx("Demon3FX1Trail")
    Loop
  Death:
  	TNT1 AA 0 A_CustomMissile("HrVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
	TNT1 AA 0 A_CustomMissile("HrVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
  	TNT1 AA 0 A_CustomMissile("HrVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    XPL1 A 4 BRIGHT A_CustomMissile("HrVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    XPL1 B 4 BRIGHT //A_SpawnItemEx("RedDemonFXExplosion")
    XPL1 CDEF 4 BRIGHT
    Stop
  }
}

ACTOR Demon3FX1Trail
{
    Radius 1
    Height 1
	Gravity 0
	Speed 1
	Scale 1.1
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+CLIENTSIDEONLY +DONTBLAST
	+FORCEXYBILLBOARD
	+NOINTERACTION
	Renderstyle Add
    States
    {
    Spawn:
        FBL1 CDEFG 4
        Stop
    }
}

ACTOR HrVolcanoTBlast
{
  Radius 8
  Height 6
  Speed 20
  Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  +NODAMAGETHRUST
  Gravity 0.825
  +NOBLOCKMAP
  +MISSILE
  +DROPOFF
  +NOTELEPORT
  Damagetype "Fire"
  Renderstyle Add
  States
  {
  Spawn:
    VTFB AB 4 BRIGHT
    Loop
  Death:
    SFFI CBABCDE 4 BRIGHT
    Stop
  }
}

Actor RedDemonFXExplosion
{
  DamageType ChaosSerpentFire
  +NODAMAGETHRUST
  States
  {
  Spawn:
  	TNT1 A 0 A_Explode(32,52,0)
  Death:
    TNT1 A 0
  	Stop
  }
}

Actor NewDemon2 : Demon2
{
DamageFactor ChaosSerpentFire, 0
PainChance "Convert", 255
Species "ChaosSerpent"
+TELESTOMP
//+BOSSDEATH
+NODAMAGETHRUST
meleerange 82
dropitem "ReagentTan" 32
Height 64
Damagetype "Physical"
Tag "Chaos Serpent"
States
{
Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
	Spawn:
		DEM2 A 0
   	 	DEM2 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(536,0,0,0)==1,"Mutate")
	Idle:
		DEM2 AA 10 A_Look
    	Loop
	See:
		DEM2 A 4 A_Chase
		DEM2 B 3 A_Chase
		DEM2 C 4 A_Chase
		DEM2 D 3 A_Chase
		Loop
	Pain:
		DEM2 E 4
		DEM2 E 4 A_Pain
		Goto See
	Missile:
		DEM2 E 5 A_FaceTarget
		DEM2 F 6 A_FaceTarget
		DEM2 G 5 A_CustomMissile("Demon2FX1", 70, 0)
		Goto See
	Melee:
		DEM2 E 5 A_FaceTarget
		DEM2 F 6 A_FaceTarget
		DEM2 G 5 A_CustomMeleeAttack((Random(17, 37))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,ACTIVATOR,0)), "", "", "Physical")
		Goto See
	XDeath:
	DEM2 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	DEM2 H 6 A_SpawnItemEx("GIBBER")
	DEM2 I 0 A_CustomMissile("Demon2Chunk1",2,0,Random(0,360),2)
	DEM2 I 0 A_CustomMissile("Demon2Chunk2",2,0,Random(0,360),2)
	DEM2 I 0 A_CustomMissile("Demon2Chunk3",2,0,Random(0,360),2)
	DEM2 I 0 A_CustomMissile("Demon2Chunk4",2,0,Random(0,360),2)
	DEM2 I 0 A_CustomMissile("Demon2Chunk5",2,0,Random(0,360),2)
	DEM2 I 6
	DEM2 J 6 A_Scream
	DEM2 K 6 A_NoBlocking
	DEM2 L 6 A_QueueCorpse
	DEM2 MNO 6
	DEM2 P -1 //A_BossDeath
	Stop
	Death:
	DEM2 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	DEM2 H 0 A_SpawnItemEx("GIBBER")
    DEM2 HI 6
    DEM2 J 6 A_Scream
    DEM2 K 6 A_NoBlocking
    DEM2 L 6 A_QueueCorpse
    DEM2 MNO 6
    DEM2 P -1 //A_BossDeath
    Stop
  XDeath:
  DEM2 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
    DEM2 H 6 A_SpawnItemEx("GIBBER")
    DEM2 I 0 A_SpawnItemEx("Demon2Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
    DEM2 I 0 A_SpawnItemEx("Demon2Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEM2 I 0 A_SpawnItemEx("Demon2Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEM2 I 0 A_SpawnItemEx("Demon2Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEM2 I 6 A_SpawnItemEx("Demon2Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625),
                           1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    Goto Death+4
	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
	"----" E 5 A_GenericFreezeDeath
	"----" E 1 A_FreezeDeathChunks
	Wait
	Raise:
	DEM2 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)
	DEM2 PONMLKJIH 6
	Goto See
}
}

ACTOR NewDemon2Mash : NewDemon2 replaces Demon2Mash
{
  Game Hexen
  SpawnID 101
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +SHADOW
  RenderStyle Translucent
  Alpha 0.4
}

Actor Demon4 : Demon2
{
  Health 600
  Painchance 50
  Speed 13
  Radius 32
  Height 64
  Mass 220
  Monster
  +TELESTOMP
  +FLOORCLIP
  //+BOSSDEATH
  +NODAMAGETHRUST
  meleerange 82
  BloodColor 00 80 00
  dropitem "ReagentGreen" 32
  SeeSound "DemonSight"
  AttackSound "DemonAttack"
  PainSound "DemonPain"
  PainChance "Convert", 255
  DeathSound "DemonDeath"
  ActiveSound "DemonActive"
  Species "ChaosSerpent"
  Obituary "%o was envenomed by a Serpent."
  Damagetype "Physical"
  Tag "Black Serpent"
  States
  {
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Spawn:
	DEM4 A 0
   	DEM4 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,600,96,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(535,0,0,0)==1,"Mutate")
  Idle:
	DEM4 AA 10 A_Look
    Loop
  See:
    DEM4 A 4 A_Chase
	DEM4 B 3 A_Chase
	DEM4 C 4 A_Chase
	DEM4 D 3 A_Chase
	Loop
  Pain:
    DEM4 E 4
    DEM4 E 4 A_Pain
    Goto See
  Melee:
	DEM4 E 5 A_FaceTarget
	DEM4 F 6 A_FaceTarget
	DEM4 G 5 A_CustomMeleeAttack((Random(26, 46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,ACTIVATOR,0)), "", "", "Physical")
	Goto See
  Missile:
    DEM4 E 5 A_FaceTarget
    DEM4 F 6 A_FaceTarget
    DEM4 G 5 A_CustomMissile("Demon4FX", 70, 0)
    Goto See
  Death:
	DEM4 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	DEM4 H 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
    DEM4 HI 6
    DEM4 J 6 A_Scream
    DEM4 K 6 A_NoBlocking
    DEM4 L 6 A_QueueCorpse
    DEM4 MNO 6
    DEM4 P -1 //A_BossDeath
    Stop
  XDeath:
	DEM4 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    DEM4 H 6 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, SXF_USEBLOODCOLOR)
    TNT1 A 0 A_SpawnItemEx("Demon4Chunk1", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 90)
    TNT1 A 0 A_SpawnItemEx("Demon4Chunk2", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    TNT1 A 0 A_SpawnItemEx("Demon4Chunk3", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    TNT1 A 0 A_SpawnItemEx("Demon4Chunk4", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    DEM4 I 6 A_SpawnItemEx("Demon4Chunk5", 0,0,45, 1+(random[DemonChunks](0,255)*0.015625), 1+(random[DemonChunks](0,255)*0.015625), ChunkFlags, 270)
    Goto Death+4
  Ice:
	"----" E 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    "----" E 5 A_GenericFreezeDeath
    "----" E 1 A_FreezeDeathChunks
    Wait
  Raise:
	DEM4 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,96,0)
	DEM4 PONMLKJIH 6
	Goto See
  }
}

Actor Demon4Chunk1 : DemonChunk
{
  States
  {
  Spawn:
    BDMA A 4
    BDMA A 10 A_QueueCorpse
    BDMA A 20
    Wait
  Death:
    BDMA A -1
    Stop
  }
}

Actor Demon4Chunk2 : DemonChunk
{
  States
  {
  Spawn:
    BDMB A 4
    BDMB A 10 A_QueueCorpse
    BDMB A 20
    Wait
  Death:
    BDMB A -1
    Stop
  }
}

Actor Demon4Chunk3 : DemonChunk
{
  States
  {
  Spawn:
    BDMC A 4
    BDMC A 10 A_QueueCorpse
    BDMC A 20
    Wait
  Death:
    BDMC A -1
    Stop
  }
}

Actor Demon4Chunk4 : DemonChunk
{
  States
  {
  Spawn:
    BDMD A 4
    BDMD A 10 A_QueueCorpse
    BDMD A 20
    Wait
  Death:
    BDMD A -1
    Stop
  }
}

Actor Demon4Chunk5 : DemonChunk
{
  States
  {
  Spawn:
    BDME A 4
    BDME A 10 A_QueueCorpse
    BDME A 20
    Wait
  Death:
    BDME A -1
    Stop
  }
}

Actor Demon4FX
{
  Speed 19
  FastSpeed 25
  Radius 10
  Height 6
  Damage ((random(26,46))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,8,TARGET,0)))
  +NODAMAGETHRUST
  PoisonDamage 1, 8, 35
  DamageType Poison
  PoisonDamageType "PoisonTrue"
  Projectile
  +SPAWNSOUNDSOURCE
  +ADDITIVEPOISONDAMAGE
  +ADDITIVEPOISONDURATION
  RenderStyle Add
  Alpha 0.99
  SeeSound "DemonMissileFire"
  DeathSound "DemonMissileExplode"
  States
  {
  Spawn:
    D4FX AABB 2 Bright A_SpawnItemEx("BlackDemonTrail", 0, 0,
                                0, 0, 0, 0, 0, 0)
    Loop
  Death:
	TNT1 AA 0 A_CustomMissile("PoisonVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
	TNT1 AA 0 A_CustomMissile("PoisonVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
  	TNT1 AA 0 A_CustomMissile("PoisonVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    D4FX C 4 BRIGHT A_CustomMissile("PoisonVolcanoTBlast",0,0,random(0,359),CMF_TRACKOWNER,random(0,60))
    D4FX DEFGH 4 BRIGHT
    Stop
  }
}

ACTOR BlackDemonTrail
{
  Radius 6
  Height 8
  Speed 10
  +NOBLOCKMAP
  +NOGRAVITY
  +MISSILE
  +NOTELEPORT
  +DONTSPLASH
  +CLIENTSIDEONLY +DONTBLAST
  +NOINTERACTION
  RenderStyle Add
  States
  {
  Spawn:
    D4TR DEFGH 4
    Stop
  }
}

Actor PoisonVolcanoTBlast
{
  Radius 8
  Height 6
  Speed 20
  Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  +NODAMAGETHRUST
  Gravity 0.825
  PoisonDamage 1, 1, 35
  DamageType Poison
  PoisonDamageType "PoisonTrue"
  Obituary "%o was envenomed by a Serpent."
  +NOBLOCKMAP
  +MISSILE
  +DROPOFF
  +NOTELEPORT
  +ADDITIVEPOISONDAMAGE
  +ADDITIVEPOISONDURATION
  Renderstyle Add
  States
  {
  Spawn:
    BPBL AB 4 BRIGHT
    Loop
  Death:
    BPBL EDCDEFG 4 BRIGHT
    Stop
  }
}

/*Actor NewDemon1Fx1 : Demon1FX1 replaces Demon1FX1
{
	states
	{
  Spawn:
    DMFX ABC 4 Bright A_SpawnItemEx("Demon1FX1Trail")
    Loop
}
}

Actor Demon1FX1Trail
{
	Radius 10
  Height 6
  Projectile
	Renderstyle Add
	States
	{
	Spawn:
    DMFX E 3 Bright
    DMFX FGH 3 Bright
    Stop
  }
}*/


Actor NewDemon2Fx1 : Demon2FX1 replaces Demon2FX1
{
	PoisonDamage 1, 5, 35
	Damagetype "Poison"
	PoisonDamageType "PoisonTrue"
	Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	+NODAMAGETHRUST
	+ADDITIVEPOISONDAMAGE
	+ADDITIVEPOISONDURATION
	Speed 19
	FastSpeed 25
}

Actor NewIceGuy : IceGuy Replaces IceGuy
{
PainChance "Convert", 255
+NOPAIN
+TELESTOMP
+FLOORCLIP
dropitem "ReagentBlue" 64
Health 280
Tag "Wendigo"
States
{
Spawn:
	ICEY A 0
	ICEY A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,280,75,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(536,0,0,0)==1,"Mutate")
Idle:
	ICEY A 10 A_IceGuyLook
    Loop
Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto See
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
	Death:
	ICEY A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,35)
	ICEY A 1 A_IceGuyDie
	Stop
}
}

Actor NewIceGuyFX : IceGuyFX replaces IceGuyFX
{
	Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	Speed 16
	FastSpeed 20
	+NODAMAGETHRUST
	+THRUGHOST
	+WINDTHRUST
	States
	{
	Death:
    ICPR D 4 Bright
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 360, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 315, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 270, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 235, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 180, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 135, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 90, 6, 3)
	ICPR E 0 Bright A_CustomMissile("IceGuyFX2", 0, 0, 45, 6, 3)
    ICPR E 4 Bright A_CustomMissile("IceGuyFX2", 0, 0, 0, 6, 3)
    ICPR FG 4 Bright
    ICPR H 3 Bright
    Stop
	}
}

Actor NewIceGuyFX2 : IceGuyFX2 replaces IceGuyFX2
{
	Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	Speed 16
	FastSpeed 20
	+NODAMAGETHRUST
	+THRUGHOST
	+WINDTHRUST
	-STRIFEDAMAGE
}

ACTOR MinoPuff : PhoenixPuff
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +CANNOTPUSH
  RenderStyle Translucent
  Alpha 0.4
    SeeSound ""
  DeathSound ""
  States
  {
  Spawn:
    FX04 BCDEF 4
    Stop
  }
}

ACTOR HammerCheck : Inventory
{
inventory.maxamount 1
}

Actor CentaurSpotZ : RandomSpawner replaces Centaur
{
	Game Hexen
	SpawnID 1
	+TELESTOMP
	DropItem "NewCentaur"
	DropItem "ImpWarrior"
	DropItem "NewClink"
}

Actor NewCentaur : Centaur// Replaces Centaur
{
speed 15
PainChance "Convert", 255
Species "Centaur"
+TELESTOMP
-DEFLECT
//+BOSSDEATH
+NODAMAGETHRUST
dropitem "ArtiEmptyFlask" 64
  dropitem "ArtiMaroonFlask" 16
  dropitem "ReagentRed" 64
  Dropitem "Armour2" 8
  Damagefactor "Electric", 1
meleerange 60
Health 220
Damagetype "Physical"
AttackSound ""
Tag "Centaur"
States
{
Spawn:
	CENT A 0
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,220,75,WOC_STAT)//increase health on higher difficulties
Idle:
	CENT AB 10 A_Look
    Loop
	Melee:
    CENT H 5 A_FaceTarget
	CENT I 0 A_PlayWeaponSound("CentaurSwing")
    CENT I 4 A_FaceTarget
    CENT J 7 A_CustomMeleeAttack(random(14,18)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "CentaurAttack", "", "Physical")
    Goto See
Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,5),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain:
    CENT G 12 A_Pain
    CENT G 0 A_SetReflectiveInvulnerable
    CENT EEEEEEEEEEEEEEE 5 A_CentaurDefend
    CENT E 1 A_UnsetReflectiveInvulnerable
    Goto See
	Death:
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4 A_QueueCorpse
	CENT S 4
	CENT T -1 //A_BossDeath
	Stop
	XDeath:
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	CTXD A 0 A_SpawnItemEx("GIBBER")
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
                           1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270)
    CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
                           1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90)

	CTXD D 3 A_Scream
	CTXD E 4 A_QueueCorpse
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3
	CTXD K -1 //A_BossDeath
	Stop
	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
	Raise:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,220,75,WOC_STAT)
		CENT SRQPONMLK 4
		goto See
}
}

ACTOR NewCentaurMash : NewCentaur replaces CentaurMash
{
  Game Hexen
  SpawnID 103
  +NOBLOOD
  +NOICEDEATH
  +GHOST
  +SHADOW
  RenderStyle Translucent
  Alpha 0.4
}

Actor ImpWarrior : Centaur
{
    Health 200
    Radius 16
    Height 64
	Scale 1.15
    Speed 10
    PainChance 128
    MONSTER
    +FLOORCLIP
	+TELESTOMP
	+NEVERFAST
	//+BOSSDEATH
	+NODAMAGETHRUST
	Meleerange 52
	PainChance "Convert", 255
	Species "Centaur"
    SeeSound "orc/sight"
    PainSound "orc/pain"
    DeathSound "orc/death"
    ActiveSound "orc/active"
	AttackSound ""
	dropitem "ArtiEmptyFlask" 64
	dropitem "ArtiBlackFlask" 8
	dropitem "ReagentRed" 64
	DropItem "Armour3" 8
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Damagefactor "Electric", 1
	//AttackSound "implord/macehit"
    Obituary "%o couldn't run from the imp warrior's fireball."
    HitObituary "%o was beaten to death by an imp warrior."
	Damagetype "Physical"
	Tag "Imp Warrior"
    States
    {
	Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
    Spawn:
		WARI A 0
		WARI A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,64,0)//increase health on higher difficulties
	Idle:
		WARI A 0 A_UnSetInvulnerable
		WARI AB 10 A_Look
        Loop
    See:
		WARI A 0 A_UnSetInvulnerable
        WARI AABBCCDD 3 A_Chase
        Loop
    Melee:
        WARI E 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
        WARI F 4 A_FaceTarget
        WARI G 5 A_CustomMeleeAttack(random(5,12)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "ImpWarlordAttack", "", "Physical")
        Goto See
    Missile:
		WARI G 0 A_Jump(38, 1)
		Goto See
        WARI GF 8 A_FaceTarget
        TNT1 A 0 A_Jump(128,2)
        WARI E 8 A_CustomMissile("FamiliarSpawner", 36, 0, -30)
        Goto See
        WARI E 8 A_CustomMissile("FamiliarSpawner", 36, 0, 30)
        Goto See
    Pain:
        WARI H 8 A_Pain
	    WARI I 1
        TNT1 A 0 A_SetInvulnerable
	    WARI IIIIII 4 A_CentaurDefend
        WARI IIII 4 A_CentaurDefend
        TNT1 A 0 A_UnSetInvulnerable
		Goto See
	Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
    Death:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
        TNT1 A 0 A_SpawnItemEx("WarlordMace", 0, 0, 32, 4, 0, 0, -90, 128)
        WARI R 8 A_SpawnItemEx("WarlordShield", 0, 0, 32, 5, 0, 0, 90, 128)
        WARI S 8 A_Scream
        WARI T 6
	    WARI U 6 A_NoBlocking
        WARI V -1 //A_BossDeath
        Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		"----" H 5 A_GenericFreezeDeath
		"----" H 1 A_FreezeDeathChunks
		Wait
	XDeath:
		Stop
	Raise:
		WARI A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,64,0)
		WARI VUTSR 6
		Goto See
    }
}

Actor NewClink : Centaur
{
  Health 190
  Radius 20
  Height 56
  Mass 135
  Speed 14
  Painchance 32
  Monster
  +NOBLOOD
  +FLOORCLIP
  Species "Centaur"
  +DONTHURTSPECIES
  +QUICKTORETALIATE
  //+BOSSDEATH
  +NODAMAGETHRUST
  HowlSound ""
  DropItem "ForceCube" 8
  SeeSound "clink/sight"
  AttackSound ""
  PainSound "clink/pain"
  DeathSound "clink/death"
  ActiveSound "clink/active"
  Damagefactor "Electric", 1
  Damage (random(3,9)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,ACTIVATOR,0)))
  +NOTARGET
  +NOINFIGHTING
  Obituary "$OB_CLINK" // "%o was slashed by a sabreclaw."
  MeleeRange 52
  Damagetype "Physical"
  Tag "Sabreclaw"
  States
  {
  Spawn:
	CLNK A 0
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,190,56,0)//increase health on higher difficulties
  Idle:
    CLNK AB 10 A_Look
    Loop
  See:
    CLNK A 2 A_Chase
	CLNK B 3 A_Chase
	CLNK C 2 A_Chase
	CLNK D 3 A_Chase
    Loop
  Melee:
    CLNK E 5 A_FaceTarget
	CLNK F 0 A_PlayWeaponSound("ClinkSwing")
    CLNK F 4 A_FaceTarget
    CLNK G 7 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "ClinkAttack", "none", "Physical", 1)
    Goto See
  Missile:
	CLNK P 6 A_FaceTarget
	CLNK P 0 A_FaceTarget
	CLNK Q 1 ThrustThingZ(0,40,0,1)
    CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
    CLNK E 0 A_FaceTarget
    CLNK Q 0 A_Recoil (-10)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK PPPP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK P 1 A_JumpIfCloser(71, "MeleeStrike")
	Goto See
	MeleeStrike:
		CLNK G 0 A_FaceTarget
		CLNK G 7 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "ClinkAttack", "None", "Physical", 1)
		Goto See
  Pain:
	CLNK A 0 A_UnSetInvulnerable
    CLNK H 3
    CLNK H 3 A_Pain
    Goto See
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
  ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Death:
	CLNK I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
    CLNK I 6 A_Scream
	CLNK J 6
    CLNK K 5
    CLNK L 5 A_NoBlocking
    CLNK MN 5
    CLNK O -1 //A_BossDeath
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
	Raise:
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,190,56,0)
	CLNK NMLKJI 6
	Goto See
	XDeath:
		Stop
  }
}

ACTOR SabreclawGhostTrail
{
	Radius 16
	Height 56
	Speed 1
	Damage 0
	RenderStyle Translucent
	Alpha 0.7
	PROJECTILE
	+CLIENTSIDEONLY +DONTBLAST
	states
	{
	Spawn:
        CLNK Q 0
		CLNK Q 1 A_FadeOut(0.10)
		goto Spawn+1
	}
}

ACTOR SabreclawGhostTrail2
{
	Radius 16
	Height 56
	Speed 1
	Damage 0
	RenderStyle Translucent
	Alpha 0.7
	PROJECTILE
	+CLIENTSIDEONLY +DONTBLAST
	states
	{
	Spawn:
        CLNK P 0
		CLNK P 1 A_FadeOut(0.10)
		goto Spawn+1
	}
}

Actor CentaurLeaderSpotZ : RandomSpawner replaces CentaurLeader
{
	Game Hexen
	SpawnID 2
	+TELESTOMP
	DropItem "NewCentaurLeader"
	DropItem "ImpWarlord"
	Dropitem "Razreblade"
}

Actor ImpWarlord : CentaurLeader
{
    Health 250
    Radius 16
    Height 64
	Scale 1.15
    Speed 10
    PainChance 128
    MONSTER
    +FLOORCLIP
	+TELESTOMP
	//+BOSSDEATH
	+NODAMAGETHRUST
	Meleerange 52
	PainChance "Convert", 255
	Damagefactor "Electric", 1
	Species "Centaur"
    SeeSound "orc/sight"
    PainSound "orc/pain"
    DeathSound "orc/death"
    ActiveSound "orc/active"
	AttackSound ""
	HowlSound ""
	dropitem "ArtiEmptyFlask" 64
	dropitem "ArtiBlackFlask" 8
	dropitem "ReagentRed" 64
	Dropitem "ReagentGreen" 64
	DropItem "Armour3" 8
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
    Obituary "%o couldn't run from the imp warlord's fireball."
    HitObituary "%o was beaten to death by an imp warlord."
	Damagetype "Physical"
	Tag "Imp Warlord"
    States
    {
	Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
    Spawn:
		WARI A 0
		WARI A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,64,0)//increase health on higher difficulties
	Idle:
		WARI A 0 A_UnSetInvulnerable
		WARI AB 10 A_Look
        Loop
    See:
		WARI A 0 A_UnSetInvulnerable
        WARI AABBCCDD 3 A_Chase
        Loop
    Melee:
        WARI E 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
        WARI F 4 A_FaceTarget
        WARI G 5 A_CustomMeleeAttack(random(5,12)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "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", 36, 0, -45)
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 36, 0, 45)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 36, 0, 0)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI L 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
        WARI M 4 A_FaceTarget
		TNT1 A 0 A_PlaySound("implord/poisonballfire")
        TNT1 A 0 A_Jump(128,3)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 44, 0, -8, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 28, 0, 8, 1)
		TNT1 A 0 A_CustomMissile("GreenPoisonBall", 36, 0, 0, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 40, 0, -4, 1)
        WARI N 6 A_CustomMissile("GreenPoisonBall", 32, 0, 4, 1)
        Goto See
        WARI GF 8 A_FaceTarget
        TNT1 A 0 A_Jump(128,2)
        WARI E 8 A_CustomMissile("FamiliarSpawner", 36, 0, -30)
        Goto See
        WARI E 8 A_CustomMissile("FamiliarSpawner", 36, 0, 30)
        Goto See
        TNT1 A 0 A_Jump(128,5)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
        WARI P 4 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 36, 0, 0)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("ImpWarlordSwing")
	    WARI P 4 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 36, 0, 0)
        Goto See
    Pain:
        WARI H 8 A_Pain
	    WARI I 1
        TNT1 A 0 A_SetInvulnerable
	    WARI IIIIII 4 A_CentaurDefend
        WARI IIII 4 A_CentaurDefend
        TNT1 A 0 A_UnSetInvulnerable
		Goto See
	Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
    Death:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
        TNT1 A 0 A_FaceTarget
        TNT1 A 0 A_SpawnItemEx("WarlordMace", 0, 0, 32, 4, 0, 0, -90, 128)
        WARI R 8 A_SpawnItemEx("WarlordShield", 0, 0, 32, 5, 0, 0, 90, 128)
        WARI S 8 A_Scream
        WARI T 6
	    WARI U 6 A_NoBlocking
        WARI V -1 //A_BossDeath
        Stop
	Raise:
		WARI A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,64,0)
		WARI VUTSR 6
		Goto See
	XDeath:
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		"----" H 5 A_GenericFreezeDeath
		"----" H 1 A_FreezeDeathChunks
		Wait
    }
}

Actor YellowSkullSeeker
{
    Radius 8
    Height 6
    Speed 9
	FastSpeed 18
    Damage ((random(2,16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,TARGET,0)))
	+NODAMAGETHRUST
    +SEEKERMISSILE
    PROJECTILE
    RenderStyle Add
    Scale 0.67
    Alpha 0.67
    DeathSound "implord/shieldshothit"
    Decal RevenantScorch
	Damagetype "Holy"
    States
    {
    Spawn:
        WLP2 ABCD 3 Bright A_SeekerMissile (5,10,SMF_PRECISE)
        Loop
    Death:
        WLP2 EFG 4 Bright
        Stop
    }
}

Actor GreenPoisonBall
{
    Radius 8
    Height 6
    Speed 10
	FastSpeed 20
    Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	+NODAMAGETHRUST
    PROJECTILE
    RenderStyle Add
	Damagetype Poison
	PoisonDamage 1, 1, 35
	+ADDITIVEPOISONDURATION
	PoisonDamageType "PoisonTrue"
	+ADDITIVEPOISONDAMAGE
    Alpha 0.67
    DeathSound "implord/poison"
    States
    {
    Spawn:
        WLP1 ABCD 3
        Loop
    Death:
        WLP1 EFGH 4
        Stop
    }
}

Actor FamiliarSpawner
{
     +MISSILE
     +DOOMBOUNCE
     +BOUNCEONACTORS
     +BLOODLESSIMPACT
     +PAINLESS
     Speed 8
     DeathSound "implord/familiarspawn"
     States
     {
     Spawn:
          WLP3 ABCD 4
          Loop
     Death:
          WLP3 E 4
          WLP3 F 6
          TNT1 A 0 A_Jump(85,3)
          WLP3 G 8 A_SpawnItemEx("SummonedBatFamiliar",0,0,32,0,0,0,0,SXF_SETMASTER)
          WLP3 H 350
          Stop
          WLP3 G 8 A_SpawnItemEx("DragonFamiliar",0,0,32,0,0,0,0,SXF_SETMASTER)
          WLP3 H 350
          Stop
     }
}

Actor RedSkullBall
{
    Radius 8
    Height 6
    Speed 15
	FastSpeed 20
	Scale 0.35
    Damage ((random(8,28))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
	+NODAMAGETHRUST
    PROJECTILE
    RenderStyle Add
    SeeSound "whiteballbsee"
    DeathSound "whiteballbdeth"
    Decal PlasmaScorchLower
	Damagetype "Shadow"
    States
    {
    Spawn:
		RSMM AAABBBCCCDDDEEEFFF 1 Bright A_CustomMissile("RSLM2Trail",0,0,0)
		Goto Spawn+9
    Death:
		RSMM GGHHIIJJKKLLMM 2 Bright A_FadeOut(0.05)
		Stop
    }
}

ACTOR RSLM2Trail
{
    PROJECTILE
    +NOCLIP
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
    Damage 0
    RenderStyle Add
    Alpha 0.45
    Scale 0.9
    States
    {
    Spawn:
		TNT1 A 2
		BSP4 BDFHJLNPRTVXZ 1 BRIGHT
		BSP5 B 1 BRIGHT
		Stop
    }
}

Actor WarlordMace
{
    +DOOMBOUNCE
    Speed 4
    States
    {
    Spawn:
        WLI2 ABCDEF 5
        WLI2 G -1
        Stop
    }
}

Actor WarlordShield
{
    +DOOMBOUNCE
    Speed 5
    States
    {
    Spawn:
        WLI1 ABCDEF 5
        WLI1 G -1
        Stop
    }
}

Actor SummonedBatFamiliar
{
    Health 10
    Radius 12
    Height 24
    Speed 14
    PainChance 200
    MONSTER
	+NODAMAGETHRUST
    +NOGRAVITY
    +FLOAT
    +NEVERRESPAWN
    SeeSound "batfam/idle"
    PainSound "batfam/pain"
    DeathSound "batfam/death"
    ActiveSound "batfam/idle"
    HitObituary "%o was scratched by a bat familiar"
	Damagetype "Physical"
	Tag "Bat Familiar"
    States
    {
	Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
    Spawn:
		BFAM A 0
		BFAM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,10,24,0)//increase health on higher difficulties
	Idle:
		BFAM ABCB 3 A_Look
        Loop
    See:
        BFAM ABCB 3 A_Chase
        Loop
    Melee:
        BFAM A 3 A_FaceTarget
        BFAM B 3 A_CustomMeleeAttack(random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,ACTIVATOR,0)),"batfam/idle","","Physical")
        BFAM CB 3 A_FaceTarget
        Goto See
    Pain:
        BFAM A 2
        BFAM A 2 A_Pain
        Goto See
    Death:
        TNT1 A 0 A_Die
        TNT1 A 0 A_NoBlocking
        BFAM D 5 A_Scream
        BFAM E 5
        BFAM FDEF 5
        Goto Death+5
    Crash:
        TNT1 A 0 A_SetFloorClip
        BFAM G 6 A_PlaySound("batfam/crash")
        BFAM H 7
        BFAM I 8
        BFAM J -1
        Stop
    }
}

Actor DragonFamiliar
{
    Health 25
    Radius 16
    Height 32
    Speed 10
    PainChance 200
    MaxTargetRange 78
    MONSTER
	+NODAMAGETHRUST
    +NOGRAVITY
    +FLOAT
    +STRIFEDAMAGE
    +NEVERRESPAWN
    SeeSound "dragonfam/see"
    PainSound "dragonfam/pain"
    DeathSound "dragonfam/death"
    ActiveSound "dragonfam/idle"
    Obituary "%o was cooked by a dragon familiar."
	Tag "Dragon Familiar"
    States
    {
	Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
    Spawn:
		DFAM A 0
		DFAM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,25,32,0)//increase health on higher difficulties
	Idle:
		DFAM ABCD 10 A_Look
        Loop
    See:
        DFAM AABBCCDD 3 A_Chase
        Loop
    Missile:
        TNT1 A 0 A_JumpIfCloser(270,2)
	    Goto See
		TNT1 A 0 A_Jump(48,"See")
	    Goto Missile+3
	    TNT1 A 0 A_PlaySound("dragonfam/attack")
	    TNT1 A 0 A_JumpIfCloser(270,1)
	    Goto See
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuffNoDamage", 12, 0, 0)
	    TNT1 A 0 A_JumpIfCloser(270,1)
	    Goto See
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuff", 12, 0, Random(1,2))
	    TNT1 A 0 A_JumpIfCloser(270,1)
	    Goto See
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuff", 12, 0, Random(-1,-2))
        Goto Missile+1
    Pain:
        DFAM F 2
        DFAM F 2 A_Pain
        Goto See
    Death:
        TNT1 A 0 A_Die
        DFAM G 8 A_NoBlocking
        DFAM H 8 A_Scream
        DFAM I 6 A_SetFloorClip
        DFAM JKL 6
        DFAM M -1
        Stop
    }
}

Actor MiniFirePuff
{
    Radius 6
    Height 10
    Speed 7
    Damage (random(1,4)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0))/2)
	+NODAMAGETHRUST
    PROJECTILE
	Damagetype Fire
    RenderStyle Add
    Alpha 0.67
    States
    {
    Spawn:
        DFFP ABCDEFGH 2 Bright
    Death:
        DFFP IJKLMNOPQR 2 Bright
        Stop
    }
}

Actor MiniFirePuffNoDamage : MiniFirePuff
{
    Damage 0
}

Actor NewCentaurLeader : CentaurLeader
{
Species "Centaur"
PainChance "Convert", 255
+TELESTOMP
-DEFLECT
//+BOSSDEATH
+NODAMAGETHRUST
meleerange 74
dropitem "ArtiEmptyFlask" 32
  dropitem "ArtiBlueFlask" 32  
  dropitem "ReagentRed" 64
  DropItem "Armour2" 8
  Damagefactor "Electric", 1
  Health 300
  AttackSound ""
  Damagetype "Physical"
  Speed 15
  Tag "Slaughtaur"
States
{
Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
Spawn:
	CENT A 0
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,75,WOC_STAT)//increase health on higher difficulties
Idle:
	CENT AB 10 A_Look
    Loop
	Pain:
	CENT G 12 A_Pain
	CENT G 0 A_SetReflectiveInvulnerable
	CENT G 0 A_Jump(128,5)
	CENT E 10 A_FaceTarget
	CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
	CENT E 6 A_FaceTarget
	CENT E 0 A_Jump(256,16)
	CENT EEEEEEEEEEEEEEE 5 A_CentaurDefend
	CENT E 1 A_UnsetReflectiveInvulnerable
	Goto See
Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
	Melee:
    CENT H 5 A_FaceTarget
	CENT I 0 A_PlayWeaponSound("CentaurSwing")
    CENT I 4 A_FaceTarget
    CENT J 7 A_CustomMeleeAttack(random(14,18)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "CentaurAttack", "", "Physical")
    Goto See
	Missile:
	CENT E 0 A_SetReflectiveInvulnerable
    CENT E 10 A_FaceTarget
    CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
    CENT E 10 A_FaceTarget
    CENT F 8 Bright A_CustomMissile("CentaurFX", 45, 0, 0, CMF_AIMOFFSET)
	CENT F 0 A_FaceTarget
	CENT A 5 A_UnsetReflectiveInvulnerable
    Goto See+1
	Death:
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	CENT K 4
	CENT L 4 A_Scream
	CENT MN 4
	CENT O 4 A_NoBlocking
	CENT PQ 4
	CENT R 4 A_QueueCorpse
	CENT S 4
	CENT T -1
	Stop
	XDeath:
	CENT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	CTXD A 0 A_SpawnItemEx("GIBBER")
	CTXD B 4 A_NoBlocking
	CTXD C 0 A_SpawnItemEx("CentaurSword", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
                           1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 270, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSCALE)
    CTXD C 4 A_SpawnItemEx("CentaurShield", 0, 0, 45, 1 + random[CentaurDrop](-128,127)*0.03125,
                           1 + random[CentaurDrop](-128,127)*0.03125, 8 + random[CentaurDrop](0,255)*0.015625, 90, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSCALE)
	CTXD D 3 A_Scream
	CTXD E 4 A_QueueCorpse
	CTXD F 3
	CTXD G 4
	CTXD H 3
	CTXD I 4
	CTXD J 3
	CTXD K -1 //A_BossDeath
	Stop
	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
	Raise:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,75,WOC_STAT)
		CENT SRQPONMLK 4
		goto See
}
}

Actor NewCentaurFX : CentaurFX replaces CentaurFX
{
	Radius 6
	Damage ((random(8,28))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
	Damagetype "Arcane"
	FastSpeed 25
	+NODAMAGETHRUST
	Height 8
	States
	{
	Spawn:
      CTFX A 1 Bright A_SpawnItemEx("CentaurTrailFX",  -(MomX/1.2), -(MomY/1.2), (MomZ/1.2*-1), (MomX/1.2), (MomY/1.2), (MomZ/1.2), 0, 138)
      Loop
	}
}

Actor CentaurTrailFX
{
	Radius 6
	Height 8
	Projectile
	RenderStyle Add
	Alpha 0.5
	+PAINLESS
	+CLIENTSIDEONLY +DONTBLAST
	States
	{
	Spawn:
	CTFX A 0 Bright
	CTFX A 1 Bright A_FadeOut(0.05)
	Loop
	}
}

Actor RazreBlade : CentaurLeader
{
  Health 240
  Radius 20
  Height 56
  Mass 135
  Speed 14
  Painchance 32
  Monster
  +NOBLOOD
  +FLOORCLIP
  Species "Centaur"
  +DONTHURTSPECIES
  +QUICKTORETALIATE
  //+BOSSDEATH
  +NODAMAGETHRUST
  SeeSound "clink/sight"
  AttackSound ""
  PainSound "clink/pain"
  DeathSound "clink/death"
  ActiveSound "clink/active"
  Damagefactor "Electric", 1
  HowlSound ""
  Damage (random(3,9)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,ACTIVATOR,0)))
  +NOTARGET
  +NOINFIGHTING
  Obituary "%o was slashed by a razreblade."
  HitObituary "%o was slashed by a razreblade."
  MeleeRange 52
  Damagetype "Physical"
  Tag "Razreblade"
  States
  {
  Spawn:
	CLNK A 0
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,56,0)//increase health on higher difficulties
  Idle:
    CLNK AB 10 A_Look
    Loop
  See:
	CLNK A 0 A_UnSetInvulnerable
    CLNK A 2 A_Chase
	CLNK B 3 A_Chase
	CLNK C 2 A_Chase
	CLNK D 3 A_Chase
    Loop
  Melee:
	CLNK E 0 A_UnSetInvulnerable
	CLNK E 5 A_FaceTarget
	CLNK F 0 A_PlayWeaponSound("ClinkSwing")
    CLNK F 4 A_FaceTarget
    CLNK G 7 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "ClinkAttack", "none", "physical", 1)
    Goto See
  Missile:
	CLNK A 0 A_UnSetInvulnerable
	CLNK A 0 A_JumpIfCloser(200,1)
	Goto AxeMissile
	CLNK A 0 A_Jump(128, "AxeMissile")
	CLNK P 6 A_FaceTarget
	CLNK P 0 A_FaceTarget
	CLNK Q 1 ThrustThingZ(0,40,0,1)
    CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
    CLNK E 0 A_FaceTarget
    CLNK Q 0 A_Recoil (-10)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK PPPP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK P 1 A_JumpIfCloser(71, "MeleeStrike")
	Goto See
  MeleeStrike:
	CLNK G 0 A_FaceTarget
	CLNK G 7 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "ClinkAttack", "none", "physical", 1)
	Goto See
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
	goto Pain
  ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  AxeMissile:
	CLNK E 5 A_FaceTarget
	CLNK F 5 A_FaceTarget
	CLNK G 5 A_CustomMissile("ClinkAxe",30,0,0)
	Goto See
  Pain:
	CLNK A 0 A_UnSetInvulnerable
    CLNK H 3
    CLNK H 3 A_Pain
    Goto See
  Death:
	CLNK I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
    CLNK I 6 A_Scream
	CLNK J 6
    CLNK K 5
    CLNK L 5 A_NoBlocking
    CLNK MN 5
    CLNK O -1 //A_BossDeath
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
  Raise:
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,56,0)
	CLNK NMLKJI 6
	Goto See
  XDeath:
	Stop
  }
}

ACTOR ClinkAxe
{
  Radius 10
  Height 8
  Speed 25
  FastSpeed 30
  Damage ((random(2,16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,TARGET,0)))
  Damagetype "Physical"
  Projectile
  +NODAMAGETHRUST
  -ACTIVATEIMPACT
  -ACTIVATEPCROSS
  +THRUGHOST
  +WINDTHRUST
  Renderstyle Add
  Scale 0.6
  DeathSound "hknight/hit"
  States
  {
  Spawn:
    CLAX A 3 Bright A_PlaySound("hknight/axewhoosh")
    CLAX BC 3 Bright
    Loop
  Death:
    CLAX DEF 6 Bright
    Stop
  }
}

Actor SerpentSpotZ : RandomSpawner replaces Serpent
{
	Game Hexen
	SpawnID 6
	+TELESTOMP
	DropItem "NewSerpent" 255 160
	DropItem "IceStalker" 255 86
}

Actor NewSerpent : Serpent
{
+TELESTOMP
//meleerange 72
//+BOSSDEATH
+NODAMAGETHRUST
Dropitem "ReagentGreen" 64
Health 130
Damagetype "Poison"
PoisonDamage 1, 5, 35
+ADDITIVEPOISONDAMAGE
+ADDITIVEPOISONDURATION
PoisonDamageType "PoisonTrue"
Tag "Swamp Stalker"
States
{
Spawn:
	SSPT H 0
	SSPT H 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,130,70,0)//increase health on higher difficulties
Idle:
	SSPT H 10 A_Look
    Loop
Idle:
SSPT H 10 A_Look
    Loop
	MeleeAttack:
    SSPT N 5 A_CustomMeleeAttack((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,ACTIVATOR,0)), "", "", "Physical")
    Goto Dive
	Death:
	SSPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,30)
	SSPT O 4
	SSPT P 4 A_Scream
	SSPT Q 4 A_NoBlocking
	SSPT RSTUVWXYZ 4
	SSPT Z 0 //A_BossDeath
	Stop
	XDeath:
	SSPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,30)
	SSXD A 4
	SSXD B 0 A_CustomMissile("SerpentHead",45,0,0,2)
	SSXD B 4
	SSXD C 4 A_NoBlocking
	SSXD DE 4
	SSXD FG 3
	SSXD H 0 A_CustomMissile("SerpentGib1",6,0,0,2)
	SSXD H 0 A_CustomMissile("SerpentGib2",6,0,0,2)
	SSXD H 0 A_CustomMissile("SerpentGib3",6,0,0,2)
	SSXD H 3 //A_BossDeath
	Stop
	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,30)
	"----" L 5 A_GenericFreezeDeath
	"----" L 1 A_FreezeDeathChunks
	Wait
}
}

ACTOR iceStalker : serpent
{
	Health 180
	Speed 10
	Monster
	//MeleeRange 72
	damagetype ice
	-SHOOTABLE
	+NOBLOOD
	+CANTLEAVEFLOORPIC +NONSHOOTABLE
	+STAYMORPHED +DONTBLAST +NOTELEOTHER
	+INVISIBLE
	+NOICEDEATH
	//+BOSSDEATH
	+NODAMAGETHRUST
	Dropitem "ReagentBlue" 64
        Obituary "%o caught a chill from an ice stalker."
        HitObituary "%o caught a chill from an ice stalker."
		Tag "Ice Stalker"
	States
	{
	Spawn:
		ISPT H 0
		ISPT H 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,180,70,0)
	Idle:
		ISPT H 10 A_Look
		Loop
	See:
		ISPT HH 1 A_Chase("Melee", "None", CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		ISPT H 2 A_SerpentHumpDecide
		Loop
	Pain:
		ISPT L 5
		ISPT L 5 A_Pain
	Dive:
		ISDV ABC 4
		ISDV D 4 A_UnSetShootable
		ISDV E 3 A_PlaySoundEx("SerpentActive", "Body")
		ISDV F 3
		ISDV GH 4
		ISDV I 3
		ISDV J 3 A_SerpentHide
		Goto See
	Melee:
		ISPT A 1 A_UnHideThing
		ISPT A 1 A_PlaySoundEx("SerpentBirth", "Voice")
		ISPT B 3 A_SetShootable
		ISPT C 3
		ISPT D 4 A_SerpentCheckForAttack
		Goto Dive
	Death:
		ISPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
		ISPT A 0 //A_BossDeath
		ISPT [ 1 A_IceGuyDie
		Stop
	XDeath:
		ISPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
		ISPT A 0 //A_BossDeath
		ISPT [ 1 A_IceGuyDie
		Stop
	Ice:
		STOP
	Walk:
		ISPT IJI 5 A_Chase("Attack", "None", CHF_NIGHTMAREFAST)
		ISPT J 5 A_SerpentCheckForAttack
		Goto Dive
	Hump:
		ISPT H 3 A_SerpentUnHide
		ISPT EFGEF 3 A_SerpentRaiseHump
		ISPT GEF 3
		ISPT GEFGE 3 A_SerpentLowerHump
		ISPT F 3 A_SerpentHide
		Goto See
	Attack:
		ISPT K 6 A_FaceTarget
		ISPT L 5 A_SerpentChooseAttack
		Goto MeleeAttack
	MeleeAttack:
		ISPT N 5 A_CustomMeleeAttack((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,ACTIVATOR,0)), "", "", "Physical")
		Goto Dive
	}
}

Actor SerpentLeaderSpotZ : RandomSpawner replaces SerpentLeader
{
	Game Hexen
	SpawnID 7
	+TELESTOMP
	DropItem "NewSerpentLeader" 255 160
	DropItem "IceStalkerLeader" 255 86
}

Actor NewSerpentLeader : SerpentLeader
{
+TELESTOMP
//meleerange 72
//+BOSSDEATH
+NODAMAGETHRUST
Dropitem "ReagentGreen" 64
Health 130
Damagetype "Poison"
PoisonDamage 1, 5, 35
+ADDITIVEPOISONDAMAGE
+ADDITIVEPOISONDURATION
PoisonDamageType "PoisonTrue"
Tag "Swamp Stalker"
States
{
Spawn:
	SSPT H 0
	SSPT H 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,130,70,0)//increase health on higher difficulties
Idle:
    SSPT H 10 A_Look
    Loop
Idle:
	SSPT H 10 A_Look
    Loop
	MeleeAttack:
    SSPT N 5 A_CustomMeleeAttack((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,ACTIVATOR,0)), "", "", "Physical")
    Goto Dive
	Death:
	SSPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,50)
	SSPT O 4
	SSPT P 4 A_Scream
	SSPT Q 4 A_NoBlocking
	SSPT RSTUVWXYZ 4
	SSPT Z 0 //A_BossDeath
	Stop
	XDeath:
	SSPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,50)
	SSXD A 4
	SSXD B 0 A_CustomMissile("SerpentHead",45,0,0,2)
	SSXD B 4
	SSXD C 4 A_NoBlocking
	SSXD DE 4
	SSXD FG 3
	SSXD H 0 A_CustomMissile("SerpentGib1",6,0,0,2)
	SSXD H 0 A_CustomMissile("SerpentGib2",6,0,0,2)
	SSXD H 0 A_CustomMissile("SerpentGib3",6,0,0,2)
	SSXD H 3 //A_BossDeath
	Stop
	Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,50)
	"----" L 5 A_GenericFreezeDeath
	"----" L 1 A_FreezeDeathChunks
	Wait
}
}

//Ice Stalker created by Ben2k9/Virtue

ACTOR iceStalkerLeader : serpentleader
{
	Health 160
	Speed 10
	Monster
	Meleerange 72
	damagetype ice
	-SHOOTABLE
	+NOBLOOD
	+CANTLEAVEFLOORPIC +NONSHOOTABLE
	+STAYMORPHED +DONTBLAST +NOTELEOTHER
	+INVISIBLE
	+NOICEDEATH
	//+BOSSDEATH
	+NODAMAGETHRUST
	Dropitem "ReagentBlue" 64
	Dropitem "ArtiAquaFlask" 4
        Obituary "%o caught a chill from an ice stalker."
        HitObituary "%o caught a chill from an ice stalker."
		Tag "Ice Stalker"
	States
	{
	Spawn:
		ISPT H 0
		ISPT H 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,70,0)
	Idle:
		ISPT H 10 A_Look
		Loop
	See:
		ISPT HH 1 A_Chase("Melee", "None", CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		ISPT H 2 A_SerpentHumpDecide
		Loop
	Pain:
		ISPT L 5
		ISPT L 5 A_Pain
	Dive:
		ISDV ABC 4
		ISDV D 4 A_UnSetShootable
		ISDV E 3 A_PlaySoundEx("SerpentActive", "Body")
		ISDV F 3
		ISDV GH 4
		ISDV I 3
		ISDV J 3 A_SerpentHide
		Goto See
	Melee:
		ISPT A 1 A_UnHideThing
		ISPT A 1 A_PlaySoundEx("SerpentBirth", "Voice")
		ISPT B 3 A_SetShootable
		ISPT C 3
		ISPT D 4 A_SerpentCheckForAttack
		Goto Dive
	Missile:
		ISPT N 0 A_CustomMissile("iceguyFX", 32, 0)
		ISPT N 5 A_CustomMissile("iceguyFX", 32, 0)
		Goto Dive
	Death:
		ISPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
		ISPT A 0 //A_BossDeath
		ISPT [ 1 A_IceGuyDie
		Stop
	XDeath:
		ISPT A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
		ISPT A 0 //A_BossDeath
		ISPT [ 1 A_IceGuyDie
		Stop
	Ice:
		STOP
	Walk:
		ISPT IJI 5 A_Chase("Attack", "None", CHF_NIGHTMAREFAST)
		ISPT J 5 A_SerpentCheckForAttack
		Goto Dive
	Hump:
		ISPT H 3 A_SerpentUnHide
		ISPT EFGEF 3 A_SerpentRaiseHump
		ISPT GEF 3
		ISPT GEFGE 3 A_SerpentLowerHump
		ISPT F 3 A_SerpentHide
		Goto See
	Attack:
		ISPT K 6 A_FaceTarget
		ISPT L 5 A_SerpentChooseAttack
		Goto MeleeAttack
	MeleeAttack:
		ISPT N 5 A_CustomMeleeAttack((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,ACTIVATOR,0)), "", "", "Physical")
		Goto Dive
	}
}


Actor NewSerpentFX : SerpentFX replaces SerpentFX
{
	PoisonDamage 1, 4, 35
	FastSpeed 20
	Damagetype Poison
	PoisonDamageType "PoisonTrue"
	+ADDITIVEPOISONDAMAGE
	+ADDITIVEPOISONDURATION
	Damage ((random(8,28))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
	+NODAMAGETHRUST
	States
	{
	Spawn:
    SSFX A 0
    SSFX A 0 Bright A_PlaySoundEx("SerpentFXContinuous", "Body", 1)
    SSFX AAABBBAAABBB 1 Bright A_SpawnItemEx("CStaffTrail",0,0,0,0,0,0,0,8)
    Goto Spawn+1
	}
}

Actor NewHeresiarch : Heresiarch Replaces Heresiarch
{
Health 30000
+TELESTOMP
+NEVERRESPAWN
+NOPAIN
+NOFEAR
-NOBLOOD
+LOOKALLAROUND
Damagefactor "PoisonCloud", 0.25
DamageFactor "Deathblow", 0
DropItem "NewArtiBoostMana"
DropItem "NewArtiSuperHealth"
DropItem "AccessoryRandomSpawner" 32
Speed 20
Bloodtype "EtherealBloodPurple"
Tag "Heresiarch"
States
{
	Spawn:
		SORC A 0
		SORC A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,30000,110,WOC_BOSS + WOC_STAT)
		SORC A 5 A_SorcSpinBalls
	Idle:
		SORC A 10 A_Look
		Wait
	See:
		SORC A 4 A_Chase
		SORC B 5 A_Chase
		SORC C 4 A_Chase
		SORC D 5 A_Chase
		Loop
	Missile:
		SORC F 6 Bright A_FaceTarget
		SORC F 6 Bright A_SpeedBalls
		SORC F 6 Bright A_FaceTarget
		Wait
	Attack1:
		SORC E 6 Bright
		SORC E 6 Bright A_SpawnFizzle
		SORC E 5 Bright A_FaceTarget
		Goto Attack1+1
	Attack2:
		SORC E 2 Bright
		SORC E 2 Bright A_SorcBossAttack
		Goto See
	Death:
		SORC A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20000)
		SORC H 5
		SORC I 5 Bright A_FaceTarget
		SORC I 5 A_Scream
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaBoom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC I 1 A_SpawnItemEx ("KaGas", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SORC J 5 //A_Scream
		SORC KLMNOPQRST 5
		SORC U 5 A_NoBlocking
		SORC VWXY 5
		SORC Z -1
		Stop
	}
}

ACTOR NewClericBoss : ClericBoss Replaces ClericBoss
{
  Health 8000
  +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,8000,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 8000
+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,8000,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 8000
	+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,8000,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
  }
}

Actor BossMageStaffFX2 : MageStaffFX2
{
Damage (Random(8,28)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
+NODAMAGETHRUST
States
  {
  Spawn:
	MSP2 A 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 A 1 Bright A_MStaffTrack
	MSP2 A 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 A 1 Bright
	MSP2 B 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 B 1 Bright A_MStaffTrack
	MSP2 B 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 B 1 Bright
	MSP2 C 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 C 1 Bright A_MStaffTrack
	MSP2 C 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 C 1 Bright
	MSP2 D 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 D 1 Bright A_MStaffTrack
	MSP2 D 0 Bright A_CustomMissile("BloodscourgeFXSpawner",0,0,0,4)
    MSP2 D 1 Bright
    Loop
  Death:
	MSP2 E 0 Bright A_ChangeFlag("NODAMAGETHRUST", 1)
    MSP2 E 4 Bright A_SetTranslucent(1,1)
    MSP2 F 5 Bright A_Explode(80+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,18,TARGET,0)), 192, 0)
    MSP2 GH 5 Bright
    MSP2 I 4 Bright
    Stop
}
}

Actor WraithSpotZ : RandomSpawner replaces Wraith
{
	Game Hexen
	SpawnID 8
	+TELESTOMP
	DropItem "NewWraith" 255 150
	DropItem "Ghostie" 255 53
	DropItem "PoisonWraith" 255 53
}

Actor WraithBuredSpotZ : RandomSpawner replaces WraithBuried
{
	Game Hexen
	SpawnID 9
	+TELESTOMP
	DropItem "NewWraithBuried" 255 150
	DropItem "GhostieBuried" 255 53
	DropItem "PoisonWraithBuried" 255 53
}

Actor NewWraithFX1 : WraithFX1 replaces WraithFX1
{
	Renderstyle Add
	Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	+NODAMAGETHRUST
	Speed 16
	FastSpeed 20
}

Actor NewWraith : Wraith
{
  Health 240
  PainChance 25
  Speed 11
  Height 55
  Mass 75
  Damage 10
  Monster
  +NOGRAVITY
  +DROPOFF
  +FLOAT
  +FLOORCLIP
  +TELESTOMP
  +SHOOTABLE
  +SOLID
  -DONTMORPH
  -DONTBLAST
  -SPECIALFLOORCLIP
  -STAYMORPHED
  -INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  SeeSound "WraithSight"
  AttackSound "WraithAttack"
  PainSound "WraithPain"
  DeathSound "WraithDeath"
  ActiveSound "WraithActive"
  dropitem "ArtiGreenFlask" 32
  Dropitem "GreenReagent" 64
  dropitem "ArtiWhiteFlask" 8
	dropitem "ArtiBlackFlask" 8
	Dropitem "Armour1" 16
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Species "Wraith"
  HitObituary "%o had %p life stolen by a Reiver."
  Obituary "%o was charred by a Reiver."
  Damagetype "Physical"
  Tag "Reiver"
  States
  {
  Spawn:
    WRTH A 0
    WRTH A 10 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,55,0)
    WRTH B 5 A_WraithInit
    Goto Look
  Look:
    WRTH AB 15 A_Look
    Loop
  Idle:
    WRTH AB 15 A_Look
	Loop
  See:
    WRTH ABCD 4 A_WraithChase
    Loop
  Melee:
    WRTH E 6 A_FaceTarget
    WRTH F 6 A_WraithFX3
    WRTH G 6 A_CustomMeleeAttack((Random(2, 16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "", "", "Physical")
    Goto See
  Pain:
    WRTH A 2
    WRTH H 6 A_Pain
    Goto See
  Death:
	WRTH A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4 A_QueueCorpse
	WRTH O 4
	WRTH PQ 5
	WRTH R -1 //A_BossDeath
	Stop
  XDeath:
	WRT2 A 0
	WRT2 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5 A_QueueCorpse
	WRT2 G 5
	WRT2 H -1 //A_BossDeath
	Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	"----" H 5 A_GenericFreezeDeath
	"----" H 1 A_FreezeDeathChunks
	Wait
  Raise:
	WRTH R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,55,0)
	WRTH RQPONMLKJI 5
	goto See
  }
}

Actor NewWraithBuried : WraithBuried
{
  Height 68
  -SHOOTABLE
  -SOLID
  +DONTMORPH
  +DONTBLAST
  +SPECIALFLOORCLIP
  +STAYMORPHED
  +INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  Damagetype "Physical"
  Health 240
  +NOPAIN
  dropitem "ArtiGreenFlask" 32
  Dropitem "GreenReagent" 64
  dropitem "ArtiWhiteFlask" 8
	dropitem "ArtiBlackFlask" 8
	Dropitem "Armour1" 16
	DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Tag "Reiver"
  States
  {
  Spawn:
	WRTH A 0
    WRTH A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,55,0)
    Goto Look
  Look:
    WRTH AB 15 A_Look
    Loop
  Idle:
    WRTH AB 15 A_Look
	Loop
  See:
    WRTH A 2 A_WraithRaiseInit
    WRTH A 2 A_WraithRaise
    WRTH A 2 A_FaceTarget
    WRTH BB 2 A_WraithRaise
    Goto See+1
  Chase:
    WRTH ABCD 4 A_WraithChase
    Loop
  Melee:
    WRTH E 6 A_FaceTarget
    WRTH F 6 A_WraithFX3
    WRTH G 6 A_CustomMeleeAttack((Random(2, 16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "", "", "Physical")
    Goto Chase
  Missile:
    WRTH E 6 A_FaceTarget
    WRTH F 6
    WRTH G 6 A_CustomMissile("WraithFX1", 32, 0)
    Goto Chase
  Pain:
    WRTH A 2
    WRTH H 6 A_Pain
    Goto Chase
  Death:
	WRTH A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	WRTH I 4
	WRTH J 4 A_Scream
	WRTH KL 4
	WRTH M 4 A_NoBlocking
	WRTH N 4 A_QueueCorpse
	WRTH O 4
	WRTH PQ 5
	WRTH R -1 //A_BossDeath
	Stop
  XDeath:
	WRT2 A 0
	WRT2 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	WRT2 A 5
	WRT2 B 5 A_Scream
	WRT2 CD 5
	WRT2 E 5 A_NoBlocking
	WRT2 F 5 A_QueueCorpse
	WRT2 G 5
	WRT2 H -1 //A_BossDeath
	Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,60)
	"----" H 5 A_GenericFreezeDeath
	"----" H 1 A_FreezeDeathChunks
	Wait
  Raise:
	WRTH R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,240,55,0)
	WRTH RQPONMLKJI 5
	goto See
  }
}

Actor PoisonWraith : Wraith
{
  Health 250
  PainChance 25
  Speed 11
  Height 55
  Mass 75
  Damage 10
  BloodColor "33 99 33"
  Monster
  +NOGRAVITY
  +DROPOFF
  +FLOAT
  +FLOORCLIP
  +TELESTOMP
  +SHOOTABLE
  +SOLID
  -DONTMORPH
  -DONTBLAST
  -SPECIALFLOORCLIP
  -STAYMORPHED
  -INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  Species "Wraith"
  SeeSound "WraithSight"
  AttackSound "WraithAttack"
  PainSound "WraithPain"
  DeathSound "WraithDeath"
  ActiveSound "WraithActive"
  dropitem "ArtiGreenFlask" 32
  Dropitem "GreenReagent" 64
  DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
  HitObituary "%o had %p life stolen by a Poison Reiver."
  Obituary "%o was poisoned by a Poison Reiver."
  Damagetype "Poison"
  PoisonDamage 1, 2, 35
  +ADDITIVEPOISONDAMAGE
  +ADDITIVEPOISONDURATION
  PoisonDamageType "PoisonTrue"
  Tag "Poison Reiver"
  States
  {
  Spawn:
    PWTH A 0
    PWTH A 10 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,55,0)
    PWTH B 5 A_WraithInit
    Goto Look
  Look:
    PWTH AB 15 A_Look
    Loop
  Idle:
    PWTH AB 15 A_Look
	Loop
  See:
    PWTH ABCD 4 A_WraithChase
    Loop
  Pain:
    PWTH A 2
    PWTH H 6 A_Pain
    Goto See
  Melee:
    PWTH E 6 A_FaceTarget
	TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
	TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("PoisonWraithFX3",Random(-4,4),Random(-4,4),1,0,0,0,0)
    PWTH F 6
    PWTH G 6 A_CustomMeleeAttack((Random(2, 16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "", "", "Poison")
    Goto See
  Missile:
    PWTH E 6 A_FaceTarget
    PWTH F 6
    PWTH G 6 A_CustomMissile("PoisonWraithFX1", 32, 0)
    Goto See
  Death:
    PWTH I 4 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    PWTH J 4 A_Scream
    PWTH KL 4
    PWTH M 4 A_NoBlocking
    PWTH N 4 A_QueueCorpse
    PWTH O 4
    PWTH PQ 5
    PWTH R -1 //A_BossDeath
    Stop
  XDeath:
    PWT2 A 5 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    PWT2 B 5 A_Scream
    PWT2 CD 5
    PWT2 E 5 A_NoBlocking
    PWT2 F 5 A_QueueCorpse
    PWT2 G 5
    PWT2 H -1 //A_BossDeath
    Stop
  Ice:
    "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    "----" I 5 A_FreezeDeath
    "----" I 1 A_FreezeDeathChunks
    Wait
  Raise:
	PWTH R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,55,0)
	PWTH RQPONMLKJI 5
	goto See
  }
}

Actor PoisonWraithBuried : WraithBuried
{
  Height 68
  Health 250
  -SHOOTABLE
  -SOLID
  +DONTMORPH
  +DONTBLAST
  +SPECIALFLOORCLIP
  +STAYMORPHED
  +INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  Species "Wraith"
  BloodColor "33 99 33"
  dropitem "ArtiGreenFlask" 32
  Dropitem "GreenReagent" 64
  DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
  HitObituary "%o had %p life stolen by a Poison Reiver."
  Obituary "%o was poisoned by a Poison Reiver."
  +NOPAIN
  Damagetype "Poison"
  PoisonDamage 1, 2, 35
  +ADDITIVEPOISONDAMAGE
  +ADDITIVEPOISONDURATION
  Tag "Poison Reiver"
  PoisonDamageType "PoisonTrue"
  States
  {
  Spawn:
	PWTH A 0
    PWTH A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,55,0)
    Goto Look
  Look:
    PWTH AB 15 A_Look
    Loop
  Idle:
    PWTH AB 15 A_Look
	Loop
  See:
    PWTH A 2 A_WraithRaiseInit
    PWTH A 2 A_WraithRaise
    PWTH A 2 A_FaceTarget
    PWTH BB 2 A_WraithRaise
    Goto See+1
  Chase:
    PWTH ABCD 4 A_WraithChase
    Loop
  Pain:
    PWTH A 2
    PWTH H 6 A_Pain
    Goto Chase
  Melee:
    PWTH E 6 A_FaceTarget
	TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
	TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("PoisonWraithFX3",Random(-4,4),Random(-4,4),1,0,0,0,0)
    PWTH F 6
    PWTH G 6 A_CustomMeleeAttack((Random(2, 16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "", "", "Physical")
    Goto Chase
  Missile:
    PWTH E 6 A_FaceTarget
    PWTH F 6
    PWTH G 6 A_CustomMissile("PoisonWraithFX1", 32, 0)
    Goto Chase
  Death:
    PWTH I 4 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    PWTH J 4 A_Scream
    PWTH KL 4
    PWTH M 4 A_NoBlocking
    PWTH N 4 A_QueueCorpse
    PWTH O 4
    PWTH PQ 5
    PWTH R -1 //A_BossDeath
    Stop
  XDeath:
    PWT2 A 5 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    PWT2 B 5 A_Scream
    PWT2 CD 5
    PWT2 E 5 A_NoBlocking
    PWT2 F 5 A_QueueCorpse
    PWT2 G 5
    PWT2 H -1 //A_BossDeath
    Stop
  Ice:
    "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    "----" I 5 A_FreezeDeath
    "----" I 1 A_FreezeDeathChunks
    Wait
  Raise:
	PWTH R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,250,55,0)
	PWTH RQPONMLKJI 5
	goto See
  }
}

Actor PoisonWraithFX1
{
  Speed 16
	FastSpeed 20
  Radius 10
  Height 6
  Mass 5
  Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
  +NODAMAGETHRUST
  PoisonDamage 1, 5, 35
  +ADDITIVEPOISONDAMAGE
  +ADDITIVEPOISONDURATION
  DamageType "Poison"
  PoisonDamageType "PoisonTrue"
  Projectile
  +FLOORCLIP
  +PIERCEARMOR
  SeeSound "WraithMissileFire"
  DeathSound "WraithMissileExplode"
  Renderstyle Add
  States
  {
  Spawn:
    PWRB A 3 Bright
    TNT1 A 0 A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(0,90))
    PWRB B 3 Bright A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(270,0))
    PWRB C 3 Bright
    Loop
  Death:
    PWRB D 4 Bright
    TNT1 A 0 A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(0,90))
    PWRB E 4 Bright A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(270,0))
    PWRB F 4 Bright
    TNT1 A 0 A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(0,90))
    WRBL G 3 Bright A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(270,0))
    TNT1 A 0 A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(0,90))
    WRBL H 3 Bright A_SpawnItemEx("PoisonWraithFX2",0,0,1,Random(1.0,1.5),Random(1.0,1.5),0,Random(270,0))
    WRBL I 3 Bright
    Stop
  }
}

Actor PoisonWraithFX2
{
  Radius 2
  Height 5
  Mass 5
  +NOBLOCKMAP
  +DROPOFF
  +FLOORCLIP
  +NOTELEPORT
  States
  {
  Spawn:
    PWRB JKLMNOP 4 Bright
    Stop
  }
}

Actor PoisonWraithFX3
{
  Radius 2
  Height 5
  Mass 5
  +NOBLOCKMAP
  +DROPOFF
  +MISSILE
  +FLOORCLIP
  +NOTELEPORT
  DeathSound "Drip"
  States
  {
  Spawn:
    PWRB QRS 4 Bright
    Loop
  Death:
    PWRB S 4 Bright
    Stop
  }
}

Actor Ghostie : Wraith
{
  Health 280
  PainChance 25
  Speed 11
  Height 55
  Mass 75
  Damage 10
  BloodColor "white"
  Monster
  +NOGRAVITY
  +DROPOFF
  +FLOAT
  +FLOORCLIP
  +TELESTOMP
  +SHOOTABLE
  +SOLID
  -DONTMORPH
  -DONTBLAST
  -SPECIALFLOORCLIP
  -STAYMORPHED
  -INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  +GHOST
  +SHADOW
  Species "Wraith"
  SeeSound "WraithSight"
  AttackSound "WraithAttack"
  PainSound "WraithPain"
  DeathSound "WraithDeath"
  ActiveSound "WraithActive"
  HitObituary "%o had %p life stolen by a Wraith."
  Obituary "%o was drained by a Wraith."
  DamageType ManaDrain
  Renderstyle Add
  DropItem "ArtiWhiteFlask" 16
  DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Tag "Ghost"
  States
  {
  Spawn:
    GOST A 0
    GOST A 10 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,280,55,0)
    GOST B 5 A_WraithInit
    Goto Look
  Idle:
    GOST AB 15 A_Look
	Loop
  Look:
    GOST AB 15 A_Look
    Loop
  See:
    GOST ABCD 4 A_WraithChase
    Loop
  Pain:
    GOST A 2
    GOST H 6 A_Pain
    Goto See
  Melee:
	Stop
  Missile:
    GOST E 6 A_FaceTarget
    GOST F 6
	GOST G 0 A_CustomMissile("WVSpell1", 32, 0)
	GOST G 0 A_CustomMissile("WVSpell2", 32, 0)
	GOST G 0 A_CustomMissile("WVSpell3", 32, 0)
    GOST G 6 A_CustomMissile("WVSpell4", 32, 0)
    Goto See
  Death:
    GOST I 4 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    GOST J 4 A_Scream
    GOST KL 4
    GOST M 4 A_NoBlocking
    GOST N 4 A_QueueCorpse
    GOST O 4
    GOST PQ 5
    GOST R -1 //A_BossDeath
    Stop
  XDeath:
    GOS2 A 5 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    GOS2 B 5 A_Scream
    GOS2 CD 5
    GOS2 E 5 A_NoBlocking
    GOS2 F 5 A_QueueCorpse
    GOS2 G 5
    GOS2 H -1 //A_BossDeath
    Stop
  Ice:
    "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    "----" I 5 A_FreezeDeath
    "----" I 1 A_FreezeDeathChunks
    Wait
  Raise:
	GOST R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,280,55,0)
	GOST RQPONMLKJI 5
	goto See
  }
}

Actor GhostieBuried : WraithBuried
{
  Height 68
  -SHOOTABLE
  -SOLID
  +DONTMORPH
  +DONTBLAST
  +SPECIALFLOORCLIP
  +STAYMORPHED
  +INVISIBLE
  //+BOSSDEATH
  +NODAMAGETHRUST
  +GHOST
  +SHADOW
  Species "Wraith"
  BloodColor "White"
  +NOPAIN
  DamageType ManaDrain
  Renderstyle Add
  DropItem "ArtiWhiteFlask" 16
  DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money" 64
    DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
  HitObituary "%o had %p life stolen by a Wraith."
  Obituary "%o was drained by a Wraith."
  Health 280
  Tag "Ghost"
  States
  {
  Spawn:
	GOST A 0
    GOST A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,280,55,0)
    Goto Look
  Idle:
    GOST AB 15 A_Look
	Loop
  Look:
    GOST AB 15 A_Look
    Loop
  See:
    GOST A 2 A_WraithRaiseInit
    GOST A 2 A_WraithRaise
    GOST A 2 A_FaceTarget
    GOST BB 2 A_WraithRaise
    Goto See+1
  Chase:
    GOST ABCD 4 A_WraithChase
    Loop
  Pain:
    GOST A 2
    GOST H 6 A_Pain
    Goto Chase
  Melee:
	Stop
  Missile:
    GOST E 6 A_FaceTarget
    GOST F 6
	GOST G 0 A_CustomMissile("WVSpell1", 32, 0)
	GOST G 0 A_CustomMissile("WVSpell2", 32, 0)
	GOST G 0 A_CustomMissile("WVSpell3", 32, 0)
    GOST G 6 A_CustomMissile("WVSpell4", 32, 0)
    Goto Chase
  Death:
    GOST I 4 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    GOST J 4 A_Scream
    GOST KL 4
    GOST M 4 A_NoBlocking
    GOST N 4 A_QueueCorpse
    GOST O 4
    GOST PQ 5
    GOST R -1 //A_BossDeath
    Stop
  XDeath:
    GOS2 A 5 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    GOS2 B 5 A_Scream
    GOS2 CD 5
    GOS2 E 5 A_NoBlocking
    GOS2 F 5 A_QueueCorpse
    GOS2 G 5
    GOS2 H -1 //A_BossDeath
    Stop
  Ice:
    "----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
    "----" I 5 A_FreezeDeath
    "----" I 1 A_FreezeDeathChunks
    Wait
  Raise:
	GOST R 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,280,55,0)
	GOST RQPONMLKJI 5
	goto See
  }
}

ACTOR WVSpell1
{
    Speed 20
	FastSpeed 25
    Damagetype "ManaDrain"
	Damage (random(1,4)*2+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
    Scale 0.35
    Radius 6
    Height 12
    RenderStyle Add
    Alpha 0.75
    PROJECTILE
    //+SEEKERMISSILE
	+NODAMAGETHRUST
    +EXTREMEDEATH
    +DONTREFLECT
    SeeSound "whiteballbsee"
    DeathSound "whiteballbdeth"
    States
    {
    Spawn:
	PSMM A 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM A 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM A 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM A 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM B 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM B 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM B 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM B 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM C 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM C 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM C 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM D 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM D 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM E 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM E 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM F 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	PSMM F 1 Bright A_SeekerMissile(25,10)
	TNT1 A 0 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	Goto Spawn+33
    Death:
	PSMM GGHHIIJJKKLLMM 2 Bright A_FadeOut(0.05)
	Stop
    }
}

ACTOR WVSpell2 : WVSpell1
{
    States
    {
    Spawn:
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	Goto Spawn+48
    }
}

ACTOR WVSpell3 : WVSpell1
{
    States
    {
    Spawn:
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	Goto Spawn+36
    }
}

ACTOR WVSpell4 : WVSpell1
{
    States
    {
    Spawn:
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM A 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM B 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM C 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM D 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM E 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	TNT1 A 0 A_SeekerMissile(25,10)
	PSMM F 1 Bright A_BishopMissileWeave
	TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
	Goto Spawn+72
    }
}

ACTOR SLM2Trail
{
    PROJECTILE
    +NOCLIP
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
    Damage 0
    RenderStyle Add
    Alpha 0.45
    Scale 0.9
    States
    {
    Spawn:
	TNT1 A 2
	PUF2 BDFHJLNPRTVXZ 1
	PUF3 B 1 A_FadeOut(0.2)
	Wait
    }
}

Actor BishopSpotZ : RandomSpawner Replaces Bishop
{
	Game Hexen
	SpawnID 19
	+TELESTOMP
	DropItem "NewBishop" 255 99
	DropItem "Priest" 255 66
	DropItem "Disciple" 255 49
	DropItem "Vampire" 255 41
}

Actor NewBishop : Bishop// Replaces Bishop
{
	Species "Bishop"
	PainChance "Convert", 255
	dropitem "ArtiOrangeFlask" 32
	DropItem "Armour4" 8
	dropitem "ReagentGreen" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	+TELESTOMP
	//+BOSSDEATH
	+NODAMAGETHRUST
	-NOTARGETSWITCH
	-NOBLOOD
	Health 160
	Damagetype "Holy"
	Bloodtype "EtherealBloodGreen"
	Tag "Dark Bishop"
	States
	{
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
		Spawn:
		BISH A 0
		BISH A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,65,0)//increase health on higher difficulties
	Idle:
		BISH A 10 A_Look
		Loop
	See:
		BISH A 2 A_Chase
		BISH A 0 A_BishopDecide
		BISH A 2 A_BishopChase
		BISH A 2 A_BishopDecide
		BISH B 2 A_BishopChase
		BISH A 0 A_BishopDecide
		BISH B 2 A_Chase
		BISH A 0 A_BishopDecide
		BISH B 2 A_BishopChase
		BISH A 0 A_BishopDecide
		Loop
	Blur:
		BISH A 2 A_BishopDoBlur
		BISH A 4 A_BishopSpawnBlur
		Wait
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,30),"ConvertMe")
		goto Pain
		ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,65)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
		Blur:
		BISH A 2 A_BishopDoBlur
		BISH A 4 A_BishopSpawnBlur
		Wait
	Pain:
		BISH C 6 A_Pain
		BISH CCC 6 A_BishopPainBlur
		BISH C 0
		Goto See
	Missile:
		BISH A 3 A_FaceTarget
		BISH DE 3 A_FaceTarget
		BISH F 3 A_BishopAttack
		BISH F 5 A_BishopAttack2
		Wait
	Death:
		BISH A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,65)
		BISH G 6
		BISH H 6 BRIGHT A_Scream
		BISH I 5 BRIGHT A_NoBlocking
		BISH J 5 BRIGHT A_Explode(random(25, 40) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,7,ACTIVATOR,0)),128,XF_NOTMISSILE)
		BISH K 5 BRIGHT
		BISH LM 4 BRIGHT
		BISH N 4 A_CustomMissile("BishopPuff",40,0,0,2)
		BISH O 4 A_QueueCorpse
		BISH P -1 //A_BossDeath
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,65)
		"----" C 5 A_GenericFreezeDeath
		"----" C 1 A_FreezeDeathChunks
		Wait
	Raise:
		BISH O 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,65,0)
		BISH ON 5 
		BISH MLKJIH 5 Bright
		BISH G 5
		goto See
	}
}

Actor HeresiarchNewBishop : NewBishop
{
	DropItem "Mana3" 64
	States
	{
	Spawn:
		BISH A 0
		BISH A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,65,0)
		BISH P 4
		BISH ON 4
		BISH MLKJIH 3
		BISH G 3
		Goto Idle
	Raise:
		BISH O 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,65,0)
		BISH ON 5 
		BISH MLKJIH 5 Bright
		BISH G 5
		goto See
	}
}

Actor NewBishopFX : BishopFX replaces BishopFX
{
	Damage (random(1,4)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)/2))
	FastSpeed 15
	+NODAMAGETHRUST
	-STRIFEDAMAGE
	Damagetype "Holy"
	States
	{
	Spawn:
		BPFX ABAB 1 Bright A_BishopMissileWeave
		BPFX B 0 Bright A_SeekerMissile(2, 3, SMF_PRECISE)
		Loop
	Death:
		BPFX CDEF 4 Bright
		BPFX GH 3 Bright
		Stop
	}
}

//Acolyte

Actor Priest : Bishop// replaces Bishop
{
	Health 160
	Radius 22
	Height 65
	Speed 10
	PainChance 110
	Species "Bishop"
	Monster
	+FLOAT
	+NOTARGET
	+NOGRAVITY
	+TELESTOMP
	+DONTOVERLAP
	-NOTARGETSWITCH
	+TELESTOMP
	//+BOSSDEATH
	+NODAMAGETHRUST
	-NOBLOOD
	SeeSound "BishopSight"
	AttackSound "BishopAttack"
	PainSound "BishopPain"
	DeathSound "BishopDeath"
	ActiveSound "BishopActiveSounds"
	Obituary "%o succumbed to a Acolyte's dark power."
	dropitem "ArtiOrangeFlask" 32
	dropitem "ReagentRed" 64
	DropItem "Armour8" 16
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Damagetype "Holy"
	Bloodtype "EtherealBloodYellow"
	Tag "Dark Acolyte"
	States
	{
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Spawn:
		ACOL A 0
		ACOL A 0 A_GiveInventory("FriendlyInDisguise")
		ACOL A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,65,0)//increase health on higher difficulties
	Idle:
		ACOL A 10 A_Look
		Loop
	See:
		ACOL A 0 A_ChangeFlag ("Friendly", 1)
		ACOL A 2 A_Chase
		ACOL A 0 A_BishopDecide
		ACOL A 2 A_BishopChase
		ACOL A 2 A_BishopDecide
		ACOL B 2 A_BishopChase
		ACOL A 0 A_BishopDecide
		ACOL B 2 A_Chase
		ACOL A 0 A_BishopDecide
		ACOL B 2 A_BishopChase
		ACOL A 0 A_BishopDecide
		Loop
	Blur:
		ACOL A 2 A_BishopDoBlur
		ACOL AAA 4 A_SpawnItem("AcolyteBlur")
		TNT1 A 0 A_Jump(256,1,2,3)
		ACOL AA 4 A_SpawnItem("AcolyteBlur")
		TNT1 A 0 Thing_Stop(0)
		TNT1 A 0 A_SpawnItem("AcolyteBlur")
		Goto See
	Missile:
		ACOL A 3 A_FaceTarget
		ACOL DE 3 A_FaceTarget
		ACOL F 3 A_PlaySound("BishopAttack")
		TNT1 A 0 A_Jump(256,2,4,6,8)
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 5 A_CustomMissile("AcolyteFX",32)
		ACOL F 0 Acs_ExecuteAlways(WOC_HEALTARGET,0,Acs_executewithresult(WOC_MONSTERSCALE,8,ACTIVATOR,0))
		ACOL F 0 A_ClearTarget
		Goto See
	Pain:
		ACOL C 6 A_Pain
		TNT1 A 0 A_Jump(64,"Blur")
		ACOL C 6 A_SpawnItemEx("AcolytePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		TNT1 A 0 A_Jump(64,"Blur")
		ACOL C 6 A_SpawnItemEx("AcolytePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		TNT1 A 0 A_Jump(64,"Blur")
		ACOL C 6 A_SpawnItemEX("AcolytePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		Goto See
	Death:
		ACOL G 6 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,65)
		ACOL H 6 Bright A_Scream
		ACOL I 5 Bright A_NoBlocking
		ACOL J 5 Bright A_Explode(random(25, 40) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,7,ACTIVATOR,0)),128,XF_NOTMISSILE)
		ACOL K 5 Bright
		ACOL LM 4 Bright
		ACOL N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
		ACOL O 4 A_QueueCorpse
		ACOL P -1 //A_BossDeath
		Stop
	Ice:
		"----" C 0 Bright ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,65)
		"----" C 5 A_GenericFreezeDeath
		"----" C 1 A_FreezeDeathChunks
		Wait
	}
}



Actor AcolytePainBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    ACOL C 8
    Stop
  }
}

Actor AcolyteBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    ACOL A 16
    ACOL A 8 A_SetTranslucent(0.4)
    Stop
  }
}

Actor AcolyteFX
{
   Radius 10
   Height 6
   Speed 10
   Damagetype "AcolyteHealing"
   Projectile
   +SEEKERMISSILE
   +FOILINVUL
   +NODAMAGETHRUST
   +PAINLESS
   RenderStyle Add
   Alpha 0.67
   DeathSound "BishopMissileExplode"
   States
   {
   Spawn:
      CFX1 AB 1 Bright A_BishopMissileWeave
	  TNT1 A 0 A_SeekerMissile(90,90,SMF_PRECISE)
	  CFX1 AB 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(90,90,SMF_PRECISE)
      loop
   Death:
      CFX1 CDEF 4 Bright
	  CFX1 GH 3 Bright
      stop
   }
}

ACTOR Vampire : Bishop
{
Health 200
PainChance 170
SeeSound "vampire/see"
DeathSound "vampire/death"
PainSound "vampire/pain"
MONSTER
+DONTHURTSPECIES
+TELESTOMP
//+BOSSDEATH
+NODAMAGETHRUST
-NOTARGETSWITCH
-NOBLOOD
dropitem "ArtiOrangeFlask" 32
  dropitem "ArtiBlackFlask" 8
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money" 64
  DropItem "Money1" 64
  DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
PainChance "Convert", 255
Species "Bishop"
Obituary "A Vampire drained all of %o's life."
Tag "Vampire"
States
   {
   Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
   Spawn:
		VAM1 A 0
		VAM1 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,65,0)//increase health on higher difficulties
        Goto Idle
	   Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,30),"ConvertMe")
	goto Pain
	ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
	Idle:
		VAM1 AB 10 A_Look
       Loop
   See:
       VAM1 A 2 A_Chase
		VAM1 A 0 A_BishopDecide
		VAM1 A 2 A_BishopChase
		VAM1 A 2 A_BishopDecide
		VAM1 B 2 A_BishopChase
		VAM1 A 0 A_BishopDecide
		VAM1 B 2 A_Chase
		VAM1 A 0 A_BishopDecide
		VAM1 B 2 A_BishopChase
		VAM1 A 0 A_BishopDecide
		Loop
   Blur:
	   VAM1 A 2 A_BishopDoBlur
	   VAM1 AAA 4 A_SpawnItem("VampireBlur")
	   TNT1 A 0 A_Jump(256,1,2,3)
	   VAM1 AA 4 A_SpawnItem("VampireBlur")
	   TNT1 A 0 Thing_Stop(0)
	   TNT1 A 0 A_SpawnItem("VampireBlur")
	   TNT1 A 0 A_Jump(97,"Missile")
	   Goto See
   Missile:
	   TNT1 A 0 A_JumpIfCloser(64,1)
	   Goto Missile+5
	   VAM1 ADE 3 Bright A_FaceTarget
	   VAM1 F 3 Bright A_BishopAttack
	   Goto See
	   VAM1 X 1 Bright A_Jump(96,26)
       VAM1 X 8 Bright A_FaceTarget
	   TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("VampCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	   TNT1 AAAAAAAAA 0 A_CustomMissile("BatAttack",Random(8,64),Random(-32,32),Random(20,-20),1)
	   VAM1 Y 8 Bright A_CustomMissile("BatAttack",Random(8,64),Random(-32,32),Random(20,-20),1)
       Goto See
       VAM1 E 8 Bright A_FaceTarget
	   TNT1 AAAAAAAAAAAAAA 0 A_SpawnDebris("NashGore_FlyingBlood",1)
       VAM1 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1 Bright A_CustomMissile("VampireRoundBeam",32,0,0,1)
       Goto See
   Pain:
       VAM1 C 6 A_Pain
	   TNT1 A 0 A_Jump(64,"Blur")
	   VAM1 C 6 A_SpawnItemEx("VampirePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
	   TNT1 A 0 A_Jump(64,"Blur")
	   VAM1 C 6 A_SpawnItemEx("VampirePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
	   TNT1 A 0 A_Jump(64,"Blur")
	   VAM1 C 6 A_SpawnItemEX("VampirePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
       Goto See
   Death:
       VAM1 G 1 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
       VAM1 G 8 A_Scream
       VAM1 H 5 Bright
       VAM1 I 5 Bright A_NoBlocking
	   TNT1 AAAAAAAAAAAAAA 0 A_SpawnItemEx("VampCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
	   TNT1 A 0 A_Jump(128,3)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),1)
	   TNT1 A 0 A_Jump(256,2)
	   TNT1 A 0 A_SpawnItemEx("BatAttack", 0, 0, 30, random(-8, 8), random(-8, 8),-1)
       VAM1 J 5 Bright
       VAM1 KLM 5 Bright
       VAM1 N 5
       VAM1 O 5
       VAM1 P -1 //A_BossDeath
       Stop
	Ice:
		"----" C 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
		"----" C 5 A_GenericFreezeDeath
		"----" C 1 A_FreezeDeathChunks
		Wait
	Raise:
		VAM1 O 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,65,0)
		VAM1 ON 5 
		VAM1 MLKJIH 5 Bright
		VAM1 G 5
		goto See
	}
}

Actor VampirePainBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY +DONTBLAST
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    VAM1 C 8
    Stop
  }
}

Actor VampireBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  +CLIENTSIDEONLY +DONTBLAST
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    VAM1 A 16
    VAM1 A 8 A_SetTranslucent(0.4)
    Stop
  }
}


ACTOR VampireRoundBeam
{
   Radius 2
   Height 4
   Speed 10
   FastSpeed 15
   Damage (random(1,4)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)/2))
   Damagetype "Shadow"
   +NODAMAGETHRUST
   Scale 0.50
   PROJECTILE
   +FLOATBOB
   Renderstyle Add
   +SeekerMissile
   States
   {
   Spawn:
      VAM2 A 0 Bright A_PlaySound("vampire/beam")
	  VAM2 A 0 Bright A_PlaySound("vampire/beam")
	  VAM2 A 0 Bright A_PlaySound("vampire/beam")
	  VAM2 A 0 Bright A_PlaySound("vampire/beam")
	  VAM2 A 0 Bright A_PlaySound("vampire/beam")
      VAM2 A 1 Bright A_CStaffMissileSlither
      VAM2 A 0 Bright A_SpawnItemEx("VampireRoundBeamTrail", 0, 0, 0, 0, 0, 0, 0, 128)
      VAM2 A 1 Bright A_CStaffMissileSlither
      VAM2 A 0 Bright A_SpawnItemEx("VampireRoundBeamTrail", 0, 0, 0, 0, 0, 0, 0, 128)
      VAM2 A 1 Bright A_CStaffMissileSlither
      VAM2 A 0 Bright A_SpawnItemEx("VampireRoundBeamTrail", 0, 0, 0, 0, 0, 0, 0, 128)
      VAM2 A 1 Bright A_CStaffMissileSlither
      VAM2 A 0 Bright A_SpawnItemEx("VampireRoundBeamTrail", 0, 0, 0, 0, 0, 0, 0, 128)
      VAM2 A 0 Bright A_SeekerMissile(5,5,SMF_PRECISE)
      loop
   Death:
      VAM2 CDEFGH 3 Bright
      stop
   }
}

ACTOR VampireRoundBeamTrail
{
   Radius 2
   Height 4
   RENDERSTYLE ADD
   ALPHA 0.67
   Scale 0.50
   PROJECTILE
   +CLIENTSIDEONLY +DONTBLAST
   +FLOATBOB
   +NOINTERACTION
   +DONTSPLASH
   SeeSound "monster/acosht"
   DeathSound "monster/acohit"
   States
   {
   Spawn:
	  VAM2 A 1 Bright A_FadeOut(0.05)
      Loop
   }
}


actor VampireBloodBoom
{
 game Doom
 scale 0.75
 health 1
 radius 8
 height 1
 mass 1
 +CORPSE
 +CLIENTSIDEONLY +DONTBLAST
 +NOTELEPORT
 +NOBLOCKMAP
 states
 {
 Spawn:
  TNT1 A 0
  VAB1 A 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 A 1
  VAB1 A 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 A 1
  VAB1 B 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 B 1
  VAB1 B 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 B 1
  VAB1 C 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 C 1
  VAB1 C 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 C 1
  VAB1 D 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 D 1
  VAB1 D 1 A_SpawnItemEx("VampireBloodTrail",0,0,0,1,0,0,0,128)
  VAB1 D 1
  loop
 Crash:
  TNT1 A 1 A_SpawnItemEx("VampireBloodSpot",0,0,0,1,0,0,0,128)
  stop
 }
}

actor VampireBloodSpot
{
 game Doom
 radius 12
 height 2
 mass 1
 +NOTELEPORT
 -NOBLOCKMAP
 +CLIENTSIDEONLY +DONTBLAST
 states
 {
 Spawn:
  TNT1 A 0
  TNT1 A 0 A_PlaySound("vampireblood")
  TNT1 A 0 A_Jump(64,4)
  TNT1 A 0 A_Jump(128,4)
  TNT1 A 0 A_Jump(192,4)
  TNT1 A 0 A_Jump(255,4)
  VAB3 A 750
  stop
  VAB3 B 750
  stop
  VAB3 C 750
  stop
  VAB3 D 750
  stop
 }
}

actor VampireBloodTrail
{
 game Doom
 scale 0.70
 mass 1
 +LOWGRAVITY
 +NOTELEPORT
 +NOBLOCKMAP
 +CLIENTSIDEONLY +DONTBLAST
 states
 {
  Spawn:
  VAB2 A 4
  VAB2 B 4
  VAB2 C 4
  VAB2 D 4
  stop
 }
}

ACTOR BatAttack
{
  Radius 8
  Height 16
  Speed 12
  Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
  Damagetype "Shadow"
  +NODAMAGETHRUST
  PROJECTILE
  +Randomize
  +NoGravity
  //+Float
  seesound "vampire/bats"
  states
  {
  Spawn:
    VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
    Goto death
  Death:
    TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    VAM4 A 2 A_SetTranslucent(0.9)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.8)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.7)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.6)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.5)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.4)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.3)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.2)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.1)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    Stop
  }
}

ACTOR BatTrail
{
  Radius 8
  Height 16
  RenderStyle Add
  Alpha 0.8
  Scale 0.3
  PROJECTILE
  +Randomize
  +CLIENTSIDEONLY +DONTBLAST
  +NoGravity
  +Float
  states
  {
  Spawn:
    VAM5 ABCDEFGHI 3 BRIGHT
    Goto death
  Death:
	VAM5 I 1
    Stop
  }
}

Actor VampCloudSpawner
{
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY +DONTBLAST
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("VampCloud", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1))
    Stop
  }
}

Actor VampCloud
{
  renderstyle translucent
  alpha 0.9
  Scale 0.5
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY +DONTBLAST
  States
  {
  Spawn:
    VAM6 A 0
    VAM6 A 0 A_Jump(128, 6)
    VAM6 ABCDE 3 A_FadeOut(0.05)
    Goto Spawn+1
    VAM6 F 0 A_Jump(128, 6)
    VAM6 FGHIJ 3 A_FadeOut(0.05)
    Goto Spawn+7
    VAM6 KLMNO 3 A_FadeOut(0.05)
    Goto Spawn+12
  }
}

Actor BatCloudSpawner
{
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +NONSHOOTABLE
  +CLIENTSIDEONLY +DONTBLAST
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItemEx("BatCloud", 0, 0, 0, random(-2, 2), random(-2, 2), random(-1, 1))
    Stop
  }
}

Actor BatCloud
{
  renderstyle translucent
  alpha 0.9
  Scale 0.2
  radius 0
  height 0
  +NOGRAVITY
  +NOBLOCKMAP
  +NOLIFTDROP
  +NOTARGET
  +DONTSQUASH
  +NOTELEOTHER
  +CLIENTSIDEONLY +DONTBLAST
  +NONSHOOTABLE
  States
  {
  Spawn:
    VAM6 A 0
    VAM6 A 0 A_Jump(128, 6)
    VAM6 ABCDE 3 A_FadeOut(0.10)
    Goto Spawn+1
    VAM6 F 0 A_Jump(128, 6)
    VAM6 FGHIJ 3 A_FadeOut(0.10)
    Goto Spawn+7
    VAM6 KLMNO 3 A_FadeOut(0.10)
    Goto Spawn+12
  }
}

ACTOR BatAttackSafe
{
  Radius 8
  Height 16
  Speed 15
  Damage 0
  PROJECTILE
  +Randomize
  +NoGravity
  +Float
  seesound "vampire/bats"
  states
  {
  Spawn:
    VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
	VAM4 ABCABCABCABC 3 BRIGHT A_SpawnItemEx("BatTrail")
    Goto death
  Death:
    TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    VAM4 A 2 A_SetTranslucent(0.9)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.8)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.7)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.6)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.5)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.4)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 A 2 A_SetTranslucent(0.3)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 B 2 A_SetTranslucent(0.2)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
	VAM4 C 2 A_SetTranslucent(0.1)
	TNT1 A 0 A_SpawnItemEx("BatCloudSpawner", 0, 0, 30, 0, 0, 0, 0, 128)
    Stop
  }
}

Actor Disciple : Bishop
{
	Health 220
	Radius 22
	Height 65
	Speed 10
	PainChance 110
	Monster
	+FLOAT
	+NOGRAVITY
	+TELESTOMP
	+DONTOVERLAP
	-NOTARGETSWITCH
	//+BOSSDEATH
	+NODAMAGETHRUST
	-NOBLOOD
	Species "Bishop"
	SeeSound "BishopSight"
	AttackSound "BishopAttack"
	PainSound "BishopPain"
	DeathSound "BishopDeath"
	ActiveSound "BishopActiveSounds"
	dropitem "ArtiOrangeFlask" 32
	dropitem "ArtiPurpleFlask" 8
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Obituary"%o succumbed to a Disciple's dark power."
	Damagetype "Arcane"
	Bloodtype "EtherealBloodPurple"
	Tag "Dark Disciple"
	States
	{
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Spawn:
		HDIS A 0
		HDIS A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,220,65,0)//increase health on higher difficulties
	Idle:
		HDIS A 10 A_Look
        Loop
	See:
        HDIS A 0 A_ChangeFlag("GHOST",0)
	    HDIS A 0 A_SetTranslucent(1,0)
        HDIS A 2 A_Chase
		HDIS A 0 A_BishopDecide
		HDIS A 2 A_BishopChase
		HDIS A 2 A_BishopDecide
		HDIS B 2 A_BishopChase
		HDIS A 0 A_BishopDecide
		HDIS B 2 A_Chase
		HDIS A 0 A_BishopDecide
		HDIS B 2 A_BishopChase
		HDIS A 0 A_BishopDecide
		Loop
	Blur:
		HDIS A 0 A_ChangeFlag("GHOST",1)
		HDIS A 0 A_SetTranslucent(0.8,0)
		HDIS A 2 A_BishopDoBlur
		HDIS AAA 4 A_SpawnItem("DiscipleBlur")
		TNT1 A 0 A_Jump(256,1,2,3)
		HDIS AA 4 A_SpawnItem("DiscipleBlur")
		HDIS A 0 A_ChangeFlag("GHOST",0)
		HDIS A 0 A_SetTranslucent(1,0)
		TNT1 A 0 Thing_Stop(0)
		TNT1 A 0 A_SpawnItem("DiscipleBlur")
		TNT1 A 0 A_Jump(97,"Missile")
		Goto See
	Missile:
		HDIS A 3 A_FaceTarget
		HDIS DE 3 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(64,1)
		Goto Missile+5
		HDIS F 3 A_BishopAttack
		Goto See
		HDIS F 3 A_PlaySound("BishopAttack")
		TNT1 A 0 A_Jump(256,1,4,7,10)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,-60,1)
		TNT1 A 0 A_CustomMissile("DiscipleSpreadFX",32,0,60,1)
		HDIS F 5 A_CustomMissile("DiscipleFX",32)
		Goto See
	Pain:
		HDIS A 0 A_ChangeFlag("GHOST",0)
		HDIS A 0 A_SetTranslucent(1,0)
		HDIS C 6 A_Pain
		TNT1 A 0 A_Jump(64,"Blur")
		HDIS C 6 A_SpawnItemEx("DisciplePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		TNT1 A 0 A_Jump(64,"Blur")
		HDIS C 6 A_SpawnItemEx("DisciplePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		TNT1 A 0 A_Jump(64,"Blur")
		HDIS C 6 A_SpawnItemEX("DisciplePainBlur",Random(-10,10),Random(-10,10),Random(-10,10))
		Goto See
	Death:
		HDIS A 0 A_ChangeFlag("GHOST",0)
		HDIS A 0 A_SetTranslucent(1,0)
		HDIS G 6 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
		HDIS H 6 Bright A_Scream
		HDIS I 5 Bright A_NoBlocking
		HDIS J 5 Bright A_Explode(random(25, 40) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,7,ACTIVATOR,0)),128,XF_NOTMISSILE)
		HDIS K 5 Bright
		HDIS LM 4 Bright
		HDIS N 4 A_SpawnItemEx("BishopPuff", 0,0,40, 0,0,0.5)
		HDIS O 4 A_QueueCorpse
		HDIS P -1 //A_BossDeath
		Stop
	Ice:
		"----" C 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,70)
		"----" C 5 A_GenericFreezeDeath
		"----" C 1 A_FreezeDeathChunks
		Wait
	Raise:
		HDIS O 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,325,56,0)
		HDIS ON 5 
		HDIS MLKJIH 5 Bright
		HDIS G 5
		goto See
	}
}

Actor DisciplePainBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    HDIS C 8
    Stop
  }
}

Actor DiscipleBlur
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Translucent
  Alpha 0.6
  States
  {
  Spawn:
    HDIS A 16
    HDIS A 8 A_SetTranslucent(0.4)
    Stop
  }
}

Actor DiscipleFX
{
   Radius 10
   Height 6
   Speed 10
   FastSpeed 15
   Damage (random(1,4)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)/2))
   Projectile
   +NODAMAGETHRUST
   +SEEKERMISSILE
   -ACTIVATEIMPACT
   -ACTIVATEPCROSS
   RenderStyle Add
   DeathSound "BishopMissileExplode"
   Damagetype "Arcane"
   States
   {
   Spawn:
      HDFX ABAB 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,3,SMF_PRECISE)
      loop
   Death:
      HDFX CDEF 4 Bright
	  HDFX GH 3 Bright
      stop
   }
}

Actor DiscipleSpreadFX : DiscipleFX
{
   States
   {
   Spawn:
      HDFX A 1 Bright A_BishopMissileWeave
	  TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX B 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX A 1 Bright A_BishopMissileWeave
	  TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX B 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX A 1 Bright A_BishopMissileWeave
	  TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX B 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX A 1 Bright A_BishopMissileWeave
	  TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
	  HDFX B 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,9,SMF_PRECISE)
      HDFX ABAB 1 Bright A_BishopMissileWeave
      TNT1 A 0 A_SeekerMissile(2,3,SMF_PRECISE)
      Goto Spawn+16
   Death:
      HDFX CDEF 4 Bright
	  HDFX GH 3 Bright
      stop
   }
}

ACTOR NewDragon : Dragon Replaces Dragon
{
Health 4800
+TELESTOMP
Speed 20
DamageFactor "Deathblow", 0
+NOTARGET
+NOPAIN
+LOOKALLAROUND
Damagefactor "PoisonCloud", 0.25
DropItem "AccessoryRandomSpawner" 16
Damagetype "Physical"
Tag "Death Wyvern"
  States
  {
  Spawn:
	DRAG D 0
	DRAG D 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,4800,65,WOC_BOSS)
  Idle:
    DRAG D 10 A_Look
    Loop
  See:
    DRAG AABB 2 A_Chase
	DRAG C 0 A_PlaySound("DragonWingflap")
	DRAG CCDDCCBB 2 A_Chase
	DRAG AABB 2 A_Chase
	DRAG C 0 A_PlaySound("DragonWingflap")
	DRAG CCDDCCBB 2 A_Chase
    Loop
  Missile:
	DRAG E 0 A_FaceTarget
    DRAG E 0 A_CustomMissile("DragonFireball")
	DRAG E 0 A_SpidRefire
	DRAG E 0 A_Wander
	DRAG E 2 A_FaceTarget
	DRAG E 0 A_Wander
	DRAG E 2 A_FaceTarget
	DRAG E 0 A_Wander
	DRAG E 2 A_FaceTarget
	DRAG E 0 A_Wander
	DRAG E 2 A_FaceTarget
	DRAG E 0 A_Jump(128, "See")
    Loop
  Pain:
    DRAG F 10 A_DragonPain
    Goto See+3
  Death:
    DRAG A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,750)
    DRAG G 5 A_ScreamAndUnblock
    DRAG H 4
    DRAG I 4 A_BossDeath
    DRAG J 4 A_JumpIf (z <= floorz, "Crash")
    Wait
  Crash:
    DRAG KL 5
	DRAG M 0 A_SetFloorClip
    DRAG M -1 A_BossDeath
    Stop
  }
}

Actor NewDragonFireBall : DragonFireBall replaces DragonFireball
{
	Damage ((random(17,37))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,TARGET,0)))
	+NODAMAGETHRUST
}

Actor NewDragonExplosion : DragonExplosion replaces DragonExplosion
{
	+NODAMAGETHRUST
	States
	{
	Spawn:
     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+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,18,TARGET,0)), 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 NewDart : Dart replaces Dart
{
	+THRUGHOST
	+WINDTHRUST
	+NODAMAGETHRUST
	Damagetype "Physical"
}

Actor NewPoisonDart : PoisonDart replaces PoisonDart
{
	+THRUGHOST
	+WINDTHRUST
	Damagetype "Poison"
	PoisonDamageType "PoisonTrue"
	+NODAMAGETHRUST
}

Actor NewProjectileBlade : ProjectileBlade replaces ProjectileBlade
{
	+THRUGHOST
	+WINDTHRUST
	+NODAMAGETHRUST
	Damagetype "Physical"
}

Actor NewRipperBall : RipperBall replaces RipperBall
{
	+THRUGHOST
	+WINDTHRUST
	+NODAMAGETHRUST
	Damagetype "Physical"
	States
  {
  Death:
    CFCF Q 4 Bright A_SetTranslucent(1,1)
    CFCF R 3 Bright
    CFCF S 4 Bright
    CFCF T 3 Bright
    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
  }
}