//Arachnotron

Actor NewArachnotron : Arachnotron replaces Arachnotron
{
	Tag "Arachnotron"
	Species "Arachnotron"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	States
	{
	Spawn:
		BSPI A 0
		BSPI A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,64,0)//increase health on higher difficulties
	Idle:
		BSPI AB 10 A_Look
		Loop
	Death:
		BSPI J 0 A_Scream
		BSPI J 0 A_SpawnItemEx("GIB1",0,0,32,0,0,random(3,6), 48, 128)
		BSPI J 5 A_SpawnItemEx("GIB2SPLAT",0,0,30,0,0,random(3,6), 48, 128)
		BSPI J 5 A_SpawnItemEx("GIB3",0,0,34,0,0,random(3,6), 48, 128)
		BSPI J 5 A_SpawnItemEx("GIB5SPLAT",0,0,30,0,0,random(3,6), 48, 128)
		BSPI J 5 A_SpawnItemEx("GIB4", 0,0,25,0,0,random(3,6), 48, 128)
		BSPI K 7 A_NoBlocking
		BSPI LMNO 7
		BSPI P -1 A_BossDeath
		Stop
	Raise:
		BSPI P 5 ACS_NamedExecuteAlways("WOC Monster Init",0,64,0)
		BSPI ONMLKJ 5
		Goto See+1
	}
}

Actor NewArachnotronPlasma : ArachnotronPlasma replaces ArachnotronPlasma
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(15,30)))
	Damagetype "Lightning"
	States
	{
	Spawn:
		APLS AAABBB 1 Bright A_SpawnItemEx("NewArachnotronPlasmaTrail", -(MomX/1.6), -(MomY/1.6), (MomZ/1.6*-1), (MomX/1.6), (MomY/1.6), (MomZ/1.6), -Angle, 138)
		Loop
	Death:
		APBX ABCDE 3 Bright
		Stop
	}
}

ACTOR NewArachnotronPlasmaTrail
{
  Scale 0.75
  Radius 8
  Height 6
  Damage 0
  Projectile
  +CLIENTSIDEONLY +DONTBLAST
  +DONTSPLASH
  RenderStyle Add
  Alpha 0.5
  States
  {
  Spawn:
    APLS A 0
    APLS A 0 A_Jump(128, 4)
    APLS AAABBB 2 Bright A_FadeOut(0.12)
    Loop
  }
}

ACTOR NewStealthArachnotron : NewArachnotron replaces StealthArachnotron
{
  Game Doom
  SpawnID 117
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "%o thought he saw an arachknight."
}

//Arch-Vile

Actor NewArchvile : Archvile Replaces Archvile
{
	/*+NODAMAGETHRUST*/
	+DONTMORPH
	+NOFEAR
	DropItem "AccessoryRandomSpawner" 8
	Tag "Archvile"
	Species "Archvile"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	DamageFactor "Fire", 0.75
	DamageFactor "FirePlayer", 0.75
	DamageFactor "FireTime", 0.75
	DamageFactor "Holy", 0.75
	DamageFactor "HolyPlayer", 0.75
	DamageFactor "HolyTime", 0.75
	States
	{
	Spawn:
		VILE A 0
		VILE A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,80,WOC_STATUSIMMUNE)
	Idle:
		VILE AB 10 A_Look
		Loop
	See:
		VILE AABBCCDDEEFF 2 A_VileChase
		Loop
	Pain:
		VILE Q 5   
		VILE Q 5 A_Pain
		Goto See
	Missile:
		VILE G 0 Bright A_Jump(128, "Doom3Flame", "Teleportation")
		VILE G 0 Bright A_VileStart
		VILE G 10 Bright A_FaceTarget
		VILE H 8 Bright A_VileTarget
		VILE IJKLMN 8 Bright A_FaceTarget
		VILE O 8 Bright A_VileAttack("vile/stop", ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,20), ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,70))
		VILE P 20 Bright
		Goto See
	Teleportation:
		VILE G 0 A_SpawnItemEx("ArchvileTeleportFireReverse")
		VILE GHIJKL 3 BRIGHT A_FaceTarget
		VILE M 5 Bright
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		VILE M 0 A_FaceTarget
		VILE M 5 Bright A_SpawnItemEx("ArchvileTeleportFire")
		VILE LKJIHG 3 A_FaceTarget
		Goto See
	Doom3Flame:
		VILE JKLMNO 4 BRIGHT A_FaceTarget
		VILE A 0 A_PlaySound("archvile/firewall")
		VILE A 0 A_CustomMissile("Doom3ArchvileFlame",0,0,0)
		VILF A 24 BRIGHT
		Goto see
	Death:
		VILE QQ 1 A_SpawnItemEx("GIB2",0,0,32,0,0,random(3,6), 48, 128)
		VILE Q 1 A_SpawnItemEx("GIB2SPLAT",0,0,30,0,0,random(3,6), 48, 128)
		VILE Q 1 A_SpawnItemEx("GIB3",0,0,25,0,0,random(3,6), 48, 128)
		VILE Q 3 A_Scream
		VILE R 1 A_SpawnItemEx("GIB3SPLAT",0,0,36,0,0,random(3,6), 48, 128)
		VILE R 1 A_SpawnItemEx("GIB1",0,0,24,0,0,random(3,6), 48, 128)
		VILE R 1 A_SpawnItemEx("GIB1SPLAT",0,0,38,0,0,random(3,6), 48, 128)
		VILE RR 1 A_SpawnItemEx("GIB3",0,0,32,0,0,random(3,6), 48, 128)
		VILE SS 1 A_SpawnItemEx("GIB4",0,0,32,0,0,random(3,6), 48, 128)
		VILE S 1 A_SpawnItemEx("GIB4SPLAT",0,0,40,0,0,random(3,6), 48, 128)
		VILE S 1 A_SpawnItemEx("GIB5SPLAT",0,0,32,0,0,random(3,6), 48, 128)
		VILE S 3 A_NoBlocking
		VILE TT 1 A_SpawnItemEx("GIB2",0,0,32,0,0,random(3,6), 48, 128)
		VILE T 1 A_SpawnItemEx("GIB3",0,0,30,0,0,random(3,6), 48, 128)
		VILE T 5
		VILE UVWXYXY 7
		VILE Z -1 
		stop
	}
}

Actor NewArchvileFire : ArchvileFire
{
	Damagetype "Fire"
	/*+NODAMAGETHRUST*/
	+MISSILE
	+NOCLIP
	States
	{
	Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_Fire
	TNT1 A 1 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,70),70,0)
    Stop
	}
}

ACTOR ArchvileTeleportFire
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Add
  Alpha 1
  States
  {
  Spawn:
    FIRE A 1 Bright A_PlaySound("vile/firestrt")
    FIRE BAB 1 Bright
    FIRE C 1 Bright A_FireCrackle
    FIRE BCBCDCDCDEDED 1 Bright
    FIRE E 1 Bright A_FireCrackle
    FIRE FEFEFGHGHGH 1 Bright
    Stop
  }
}

ACTOR ArchvileTeleportFireReverse
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Add
  Alpha 1
  States
  {
  Spawn:
    FIRE H 1 Bright A_PlaySound("vile/firestrt")
    FIRE GHG 1 Bright
    FIRE H 1 Bright A_FireCrackle
    FIRE GFEFEFEDEDEDC 1 Bright
    FIRE D 1 Bright A_FireCrackle
    FIRE CDCBCBCBABA 1 Bright
    Stop
  }
}

ACTOR Doom3ArchvileFlame
{
	Radius 2
	Height 2
	Speed 20
	Damage 0
	RenderStyle Add
	Alpha 0.5
	PROJECTILE
	+FLOORHUGGER
	+RIPPER
	+BLOODLESSIMPACT
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	States
	{
	Spawn:
		TNT1 A 1 bright A_CustomMissile("Doom3ArchvileFlameTrail",0,0,0)
		TNT1 A 0 bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,35),70,0)
		Loop 
	Death:
		TNT1 A 17
		Stop
	}
}

ACTOR Doom3ArchvileFlameTrail
{
	Radius 2
	Height 2
	RenderStyle Add
	Alpha 0.7
	+NOCLIP
	+CLIENTSIDEONLY
	+NOINTERACTION
	States
	{
	Spawn:
		FIRE ABCBCDEFGH 2 bright
		Stop	
	Death:
		TNT1 A 1
		Stop	
	}
}

ACTOR NewStealthArchvile : NewArchvile replaces StealthArchvile
{
  Game Doom
  SpawnID 118
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHVILE"
}

/*Actor BaronOfHellSpotz : RandomSpawner replaces BaronOfHell
{
	Game Doom
	SpawnID 3
	DropItem "NewBaronOfHell" 255 90
	DropItem "NewBelphegor" 255 10
}*/

// Baron Of Hell/Hellknight
Actor NewBaronOfHell : BaronOfHell Replaces BaronOfHell
{
	BloodColor "0 78 0"
	Meleerange 78
	/*+NODAMAGETHRUST*/
	PainChance "Convert", 255
	Species "BaronOfHell"
	DropItem "AccessoryRandomSpawner" 8
	Damagetype "Physical"
	Speed 10
	Tag "Baron Of Hell"
	+USEKILLSCRIPTS
	States
	{
	Spawn:
		BOSS A 0
		BOSS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,75,0)
	Idle:
		BOSS AB 10 A_Look
		Loop
	Melee:
	Missile:
		BOSS E 0 A_Jump(64, "ComboAttack")
		BOSS EF 6 A_FaceTarget
		BOSS G 8 A_CustomComboAttack("BaronBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "Physical")
		Goto See
	ComboAttack:
		BOSS EF 6 A_FaceTarget
		BOSS G 8 A_CustomComboAttack("BaronBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "Physical")
		BOSS XY 6 A_FaceTarget
		BOSS Z 8 A_CustomComboAttack("BaronBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "Physical")
		BOSS PQ 8 A_FaceTarget
		BOSS R 0 A_JumpIfTargetInsideMeleeRange(5)
		BOSS R 0 A_CustomMissile("BaronBall", 32, 0, 3)
		BOSS R 0 A_CustomMissile("BaronBall", 32, 0, -3)
		BOSS R 0 A_CustomMissile("BaronBall", 32, 0, -9)
		BOSS R 8 A_CustomMissile("BaronBall", 32, 0, 9)
		Goto See
		BOSS R 0 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "", "Physical")
		BOSS R 8 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "", "Physical")
		Goto See
	Death:
		BOSS I 8
		BOSS J 8 A_Scream
		BOSS K 8 A_SpawnItem("GREENDOOMGIBBER")
		BOSS L 8 A_NoBlocking
		BOSS M 8
		BOSS N 8
		BOSS O -1 A_BossDeath
		stop
	Raise:
		BOSS O 8 ACS_NamedExecuteAlways("WOC Monster Init",0,75,0)
		BOSS NMLKJI 8
		Goto See
	}
}

ACTOR NewStealthBaron : NewBaronOfHell replaces StealthBaron
{
  Game Doom
  SpawnID 100
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHBARON"
}

Actor NewHellknight : Hellknight Replaces Hellknight
{
	BloodColor "0 78 0"
	Meleerange 72
	Species "BaronOfHell"
	PainChance "Convert", 255
	Damagetype "Physical"
	Tag "Hell Knight"
	Speed 10
	+USEKILLSCRIPTS
	States
	{
	Spawn:
		BOS2 A 0
		BOS2 A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,75,0)
	Idle:
		BOS2 AB 10 A_Look
		Loop
	Melee:
	Missile:
		BOS2 EF 6 A_FaceTarget
		BOS2 G 8 A_CustomComboAttack("BaronBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(35,55)), "baron/melee", "Physical")
		Goto See
	Death:
		BOS2 I 8
		BOS2 J 8 A_Scream
		BOS2 K 0 A_SpawnItem("GREENDOOMGIBBER")
		BOS2 K 8
		BOS2 L 8 A_NoBlocking
		BOS2 M 8
		BOS2 N 8
		BOS2 O -1
		stop
	Raise:
		BOS2 O 8 ACS_NamedExecuteAlways("WOC Monster Init",0,75,0)
		BOS2 NMLKJI 8
		Goto See
	}
}

ACTOR NewStealthHellknight : NewHellknight replaces StealthHellknight
{
  Game Doom
  SpawnID 101
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHKNIGHT"
}

Actor NewBaronBall : BaronBall replaces BaronBall
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(26,46)))
	/*+NODAMAGETHRUST*/
	Damagetype "Shadow"
	Speed 20
	FastSpeed 25
	states
	{
	Spawn:
		TNT1 AAA 0 A_SpawnItemEx ("BaronBallFire", 0, random (1,-1), random (1,-1), 0, 0, 0, 0, 160)
		TNT1 A 1
		loop
	}
}

//Cacodemon

/*Actor CacodemonSpotz : RandomSpawner replaces Cacodemon
{
	Game Doom
	SpawnID 19
	DropItem "NewCacodemon" 255 90
	DropItem "NewCacoLantern" 255 7
	DropItem "NewAbaddon" 255 3
}*/

Actor NewCacodemon : Cacodemon Replaces Cacodemon
{
	BloodColor "Blue"
	Meleerange 84
	/*+NODAMAGETHRUST*/
	PainChance "Convert", 255
	Species "Cacodemon"
	Tag "Cacodemon"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	DamageFactor "Lightning", 0.75
	DamageFactor "LightningPlayer", 0.75
	DamageFactor "LightningTime", 0.75
	States
	{
	Spawn:
		HEAD A 0
		HEAD A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,64,0)
	Idle:
		HEAD A 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,7),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Melee:
	Missile:
		HEAD BC 5 A_FaceTarget
		HEAD D 5 A_CustomComboAttack("CacodemonBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(26,46)), "", "Physical")
		Goto See
	Death:
		HEAD G 8 A_Scream
		HEAD H 6
		HEAD H 0 A_SpawnItem("BLUEDOOMGIBBER")
		HEAD H 2
		HEAD I 8
		HEAD J 8 A_NoBlocking
		HEAD K 8
		HEAD L -1 A_SetFloorClip
		stop
	Raise:
		HEAD L 0 ACS_NamedExecuteAlways("WOC Monster Init",0,64,0)
		HEAD L 8 A_UnSetFloorClip
		HEAD KJIHG 8
		Goto See
	}
}

ACTOR NewStealthCacodemon : NewCacodemon replaces StealthCacodemon
{
  Game Doom
  SpawnID 119
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHCACO"
  HitObituary "$OB_STEALTHCACO"
}

Actor NewCacodemonBall : CacodemonBall replaces CacodemonBall
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(15,30)))
	/*+NODAMAGETHRUST*/
	Damagetype "Lightning"
	Speed 19
	FastSpeed 25
	States
	{
	Spawn:
		BAL2 AAAABBBB 1 bright A_SpawnItemEx ("CacoShockTrail", 0,0,0, frandom (-1.0, 1.0),0,frandom (-1.0, 1.0), random (0,359), SXF_NOCHECKPOSITION)
		Loop
	Death:
		BAL2 CDEFGH 3 Bright
		Stop
	}
}

Actor CacoShockTrail
{
    +NOCLIP
    +NOINTERACTION
	+CLIENTSIDEONLY +DONTBLAST
	+DONTSPLASH
    RenderStyle Add
    
    States
    {
    Spawn:
        BAL2 FFFGGGHHH 1 BRIGHT A_FadeOut (0.1)
        Stop
    }
}

//Cyberdemon
Actor NewCyberdemon2 : Cyberdemon replaces Cyberdemon
{
	Health 8000
	DamageFactor "DeathBlow", 0
	-NORADIUSDMG
	+DONTHURTSPECIES
	/*+NODAMAGETHRUST*/
	+NOFEAR
	+LOOKALLAROUND
	Damagefactor "PoisonCloud", 0.25
	DropItem "AccessoryRandomSpawner" 16
	+NOPAIN
	Tag "Cyberdemon"
	+USEKILLSCRIPTS
	States
	{
	Spawn:
		CYBR A 0
		CYBR A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,110,WOC_STATUSIMMUNE|WOC_MAXLEVEL)
	Idle:
		CYBR AB 10 A_Look
		Loop
	Missile:
		CYBR E 6 A_FaceTarget
		CYBR F 12 A_CustomMissile("CyberRocket")
		CYBR E 12 A_FaceTarget
		CYBR F 12 A_CustomMissile("CyberRocket")
		CYBR E 12 A_FaceTarget
		CYBR F 12 A_CustomMissile("CyberRocket")
		Goto See
	Death:
		CYBR H 60 A_Scream 
		CYBR HHHHHHHHHH 1 A_SpawnItemEx("Kaboom", 0, 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR H 1 A_SpawnItem("BOSSGIBBER")
		CYBR HH 1 A_SpawnItemEx("Kaboom", 0, 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR JJJJJJJJJJJJJJJ 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR J 1 A_SpawnItem("BOSSGIBBER")
		CYBR JJJJJJJJJJJJ 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR K 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR K 1 A_SpawnItem("BOSSGIBBER")
		CYBR KKKKKKKKK 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR K 1 A_SpawnItem("BOSSGIBBER")
		CYBR KKKKKKKKKKK 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR LLLLLLL 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR L 1 A_SpawnItem("BOSSGIBBER")
		CYBR LLLLLLLLLLLL 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR L 1 A_SpawnItem("BOSSGIBBER")
		CYBR LLLLLLLL 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		CYBR NO 5
		CYBR P 30
		CYBR P 0 A_BossDeath
		CYBR P -1 A_NoBlocking
		stop
	}
}

Actor CyberRocket : Rocket
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(80,100)))
	Damagetype "Fire"
	/*+NODAMAGETHRUST*/
	States
	{
	Death:
		MISL B 8 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,128),128,0)
		MISL C 6 Bright
		MISL D 4 Bright
		Stop
	}
}

//Demon

/*Actor DemonSpotz : RandomSpawner replaces Demon
{
	Game Doom
	SpawnID 8
	DropItem "NewDemon" 255 90
	DropItem "NewBloodDemon" 255 10
}*/

Actor NewDemon : Demon replaces Demon
{
	Meleerange 72
	PainChance "Convert", 255
	PainChance 0
	/*+NODAMAGETHRUST*/
	Damagetype "Physical"
	Speed 12
	Tag "Demon"
	Species "Demon"
	+USEKILLSCRIPTS
	Health 200
	States
	{
	Spawn:
		SARG A 0
		SARG A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		SARG AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,4),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Melee:
		SARG EF 8 A_FaceTarget
		SARG G 8 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(15,30)), "", "", "Physical")
		Goto See
	Raise:
		SARG N 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		SARG MLKJI 5
		Goto See
	}
}

ACTOR NewStealthDemon : NewDemon replaces StealthDemon
{
  Game Doom
  SpawnID 121
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHDEMON"
  HitObituary "$OB_STEALTHDEMON"
}

/*Actor SpectreSpotz : RandomSpawner replaces Spectre
{
	Game Doom
	SpawnID 9
	DropItem "NewSpectre" 255 90
	DropItem "NewBloodSpectre" 255 10
}*/

ACTOR NewSpectre : NewDemon replaces Spectre
{
  Game Doom
  SpawnID 9
  +SHADOW
  RenderStyle OptFuzzy
  Alpha 0.5
  SeeSound "spectre/sight"
  AttackSound "spectre/melee"
  PainSound "spectre/pain"
  DeathSound "spectre/death"
  ActiveSound "spectre/active"
  HitObituary "$OB_SPECTREHIT" // "%o was eaten by a spectre."
  Tag "Spectre"
}

/*ACTOR NewBloodSpectre : NewBloodDemon
{
  +SHADOW
  RenderStyle OptFuzzy
  Alpha 0.5
  SeeSound "spectre/sight"
  AttackSound "spectre/melee"
  PainSound "spectre/pain"
  DeathSound "spectre/death"
  ActiveSound "spectre/active"
  Obituary "%o was rammed by a blood spectre."
  HitObituary "%o was eaten by a blood spectre."
}*/

//Chaingun Guy

Actor NewChaingunGuy : ChaingunGuy replaces ChaingunGuy
{
	dropitem "ArtiEmptyFlask" 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
	PainChance "Convert", 255
	/*+NODAMAGETHRUST*/
	Tag "Former Commando"
	+USEKILLSCRIPTS
	Species "ChaingunGuy"
	Health 100
	+AVOIDMELEE
	States
	{
	Spawn:
		CPOS A 0
		CPOS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,60,0)
	Idle:
		CPOS AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		CPOS E 10 A_FaceTarget
		CPOS F 0 bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
		CPOS F 4 Bright A_CustomMissile("ZombieBulletTracer", 32, 12, random(-400,400)/100.0)
		CPOS F 0 bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
		CPOS E 4 Bright A_CustomMissile("ZombieBulletTracer", 32, 12, random(-400,400)/100.0)
		CPOS F 1 A_CPosRefire
		Goto Missile+1
	Pain:
		CPOS G 3
		CPOS G 3 A_Pain
		Goto See
	Death:
		CPOS H 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		CPOS HHHH 1 A_SpawnItemEx("Blood", 0,0,0, 0,0,random(2,6), random(0,360), 128)
		CPOS II 1 A_SpawnItemEx("Blood", 0,0,0, 0,0,random(2,6), random(0,360), 128)
		CPOS I 3 A_Scream
		CPOS J 5 A_NoBlocking
		CPOS KLM 5
		CPOS N 1
		CPOS N -1
		stop
	Burn:
		BURN A 3 Bright A_PlaySound("monster/burndeath")
		BURN B 3 Bright A_Wander
		BURN C 3 Bright A_Pain
		BURN D 3 Bright A_NoBlocking
		BURN E 5 Bright A_Pain
		BURN FGH 5 Bright A_Wander
		BURN I 5 Bright A_Pain
		BURN JKL 5 Bright A_Wander
		BURN M 5 Bright A_Pain
		BURN NOP 5 Bright
		BURN Q 5 Bright A_Pain
		BURN PQ 5 Bright
		BURN R 7 Bright A_Scream
		BURN STU 7 Bright
		BURN V -1
		Stop
	XDeath:
		CPOS O 5 A_SpawnItem("GIBBER")
		CPOS P 5 A_XScream
		CPOS Q 5 A_NoBlocking
		CPOS RS 5
		CPOS T -1
		Stop
	Raise:
		CPOS N 5 ACS_NamedExecuteAlways("WOC Monster Init",0,60,0)
		CPOS MLKJIH 5
		Goto See
	}
}

ACTOR CHAINGUNNERHEAD
{
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
    -NOBLOCKMAP
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    Decal BloodSplat
    bouncefactor 0.6
    SeeSound "gibbage/xpart"
    Speed 5
    States
    {
    Spawn:
      CHED A 0 
      CHED A 0 ThrustThingZ (0, 45, 0, 1)
      goto See 
    See:
      CHED A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
      CHED B 5 ThrustThingZ(0,6,1,1)
      CHED AB 5 
      loop
    Death:
      CHED B 0 A_Jump (128,2)
      CHED B 0 A_Jump (128,3)
      CHED A 350 
      CHED A 1 A_FadeOut
	  wait
      CHED B 350 
      CHED B 1 A_FadeOut
	  wait               
    }
}

ACTOR NewStealthChaingunGuy : NewChaingunGuy replaces StealthChaingunGuy
{
  Game Doom
  SpawnID 120
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHCHAINGUY"
}

ACTOR ZombieBulletTracer : FastProjectile
{
   Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(6,12)))
   Damagetype "Physical"
   Radius 1
   Height 1
   Mass 5
   Speed 80
   PROJECTILE
   +BLOODSPLATTER
   /*+NODAMAGETHRUST*/
   Renderstyle Add
   Alpha 1.0
   Scale 0.5
   decal BulletChip
   States
   {
   Spawn:
      TNT1 A 0 bright
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-15.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-12.5,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-10.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-7.5,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-5.0,0,0,0,0,0,0,128,0)
      TNT1 A 0 bright A_SpawnItemEx("ZombieBulletTracerTrail",-2.5,0,0,0,0,0,0,128,0)
	  TNT1 A 1 bright A_SpawnItemEx("ZombieBulletTracerTrail",0.0,0,0,0,0,0,0,128,0)
      loop
   XDeath:
      TNT1 A 1 //A_SpawnItem("bulletpuff")
      stop
   Death:
   Crash:
      TNT1 A 1 A_SpawnItem("bulletpuff")
      stop
   }
}

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

//Imp

/*Actor DoomImpSpotz : RandomSpawner replaces DoomImp
{
	Game Doom
	SpawnID 5
	DropItem "NewDoomImp" 255 90
	DropItem "NewDarkImp" 255 10
}*/

Actor NewDoomImp : DoomImp replaces DoomImp
{
	Meleerange 48
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	/*+NODAMAGETHRUST*/
	Species "DoomImp"
	Damagetype "Physical"
	Speed 12
	Tag "Imp"
	+USEKILLSCRIPTS
	Health 80
	States
	{
	Spawn:
		TROO A 0
		TROO A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		TROO AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	See:
		TROO A 2 A_Chase
		TROO A 3 A_Chase
		TROO B 2 A_Chase
		TROO B 3 A_Chase
		TROO C 2 A_Chase
		TROO C 3 A_Chase
		TROO D 2 A_Chase
		TROO D 3 A_Chase
		Loop
	Melee:
		TROO EF 6 A_FaceTarget
		TROO G 6 A_CustomComboAttack("DoomImpBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,24)), "imp/melee", "Physical")
		Goto See
	Missile:
		TROO E 0 A_Jump(128, 2)
		TROO E 0 A_JumpIfCloser(200,"Charge")
		TROO EF 6 A_FaceTarget
		TROO G 6 A_CustomComboAttack("DoomImpBall", 32, ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,24)), "imp/melee", "Physical")
		Goto See
	Charge:
		TROO E 6 A_FaceTarget
		TROO E 0 ThrustThingZ(0,30,0,1)
        TROO E 0 A_FaceTarget
        TROO E 0 A_Recoil (-20)
		TROO FFFFFFFFGGGGGGGG 1 A_JumpIfTargetInsideMeleeRange("MeleeStrike")
		Goto See
	MeleeStrike:
		TROO G 0 A_FaceTarget
		TROO G 6 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,24)), "imp/melee", "", "Physical")
		Goto See
	Burn:
		BURN A 3 Bright A_PlaySound("monster/burndeath")
		BURN B 3 Bright A_Wander
		BURN C 3 Bright A_Pain
		BURN D 3 Bright A_NoBlocking
		BURN E 5 Bright A_Pain
		BURN FGH 5 Bright A_Wander
		BURN I 5 Bright A_Pain
		BURN JKL 5 Bright A_Wander
		BURN M 5 Bright A_Pain
		BURN NOP 5 Bright
		BURN Q 5 Bright A_Pain
		BURN PQ 5 Bright
		BURN R 7 Bright A_Scream
		BURN STU 7 Bright
		BURN V -1
		Stop
	XDeath:
		TROO N 5 A_SpawnItem("GIBBER")
		TROO O 5 A_XScream
		TROO P 5
		TROO Q 5 A_NoBlocking
		TROO RST 5
		TROO U -1
		Stop
	Raise:
		TROO M 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		TROO MLKJI 8
		Goto See
	}
}

actor ZIMPHEAD
{
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
    -NOBLOCKMAP
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    bouncefactor 0.6
    Decal BloodSplat
    SeeSound "gibbage/xpart"
    Speed 5
    States
    {
    Spawn:
        IMPH A 0 
        IMPH A 0 ThrustThingZ (0, 45, 0, 1)
        goto See 
    See:
        IMPH A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
        IMPH B 5 ThrustThingZ(0,6,1,1)
        IMPH C 5 
        IMPH ABC 5 
        loop
    Death:
      IMPH C 0 A_Jump (32,3)
	  IMPH C 0 A_Jump (64,4)
	  IMPH C 0 A_Jump (128,5)
      IMPH A 350 
      IMPH A 1 A_FadeOut
	  wait
      IMPH B 350 
      IMPH B 1 A_FadeOut
	  wait
      IMPH C 350 
      IMPH C 1 A_FadeOut
	  wait         
    }
}

ACTOR NewStealthDoomImp : NewDoomImp replaces StealthDoomImp
{
  Game Doom
  SpawnID 122
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHIMP"
  HitObituary "$OB_STEALTHIMP"
}

actor IMPCLAW
{
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
    -NOBLOCKMAP
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    bouncefactor 0.4
    Decal BloodSplat
    SeeSound "gibbage/xpart"
    Speed 5
    States
    {
    Spawn:
        IMPC A 0 
        IMPC A 0 ThrustThingZ (0, 45, 0, 1)
        goto See 
    See:
        IMPC A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
        IMPC B 5 ThrustThingZ(0,6,1,1)
        IMPC C 5 
        IMPC ABC 5 
        loop
    Death:
        IMPC C 0 A_Jump (128,3)
        IMPC C 0 A_Jump (128,4)
        IMPC C 0 A_Jump (128,5)
        IMPC A 350 
		IMPC A 1 A_FadeOut
		wait
		IMPC B 350 
		IMPC B 1 A_FadeOut
		wait
		IMPC C 350 
		IMPC C 1 A_FadeOut
		wait               
    }
}

Actor NewDoomImpBall : DoomImpBall replaces DoomImpBall
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(3,24)))
	Damagetype "Fire"
	/*+NODAMAGETHRUST*/
	Speed 15
	States
    {
    Spawn:
        BAL1 AAAABBBB 1 bright A_SpawnItemEx ("ImpFireballTrail", frandom (-6, 6),0,frandom (-6, 6), 0, 0, 0, random (0,359), SXF_NOCHECKPOSITION|SXF_ABSOLUTEVELOCITY)
        loop
    Death:
        TNT1 AAAAAAAAAA 0  bright A_SpawnItemEx ("ImpFireballExplosion", frandom (-6, 6),0,frandom (-6, 6), frandom (-2,2),0,frandom (-1,1), random (0,359), SXF_NOCHECKPOSITION|SXF_ABSOLUTEVELOCITY)
        BAL1 CDE 6 bright
        stop
    }
}

Actor ImpFireballTrail
{
    +NOINTERACTION
    +CLIENTSIDEONLY +DONTBLAST
	+DONTSPLASH
	+NOCLIP
    Scale 0.1
    RenderStyle Add
    Alpha 0.4
    
    States
    {
    Spawn:
	    PART A 5
        PART A 1 BRIGHT A_FadeOut (0.1)
        wait
    }
}

Actor ImpFireballExplosion: ImpFireballTrail
{
    Alpha 1.0
	Scale 0.15
    States
    {
    Spawn:
        PART A 10 BRIGHT
        PART A 1 BRIGHT A_FadeOut (0.1)
        wait
    }
}

//Fatso

/*Actor FatsoSpotz : RandomSpawner replaces Fatso
{
	Game Doom
	SpawnID 112
	DropItem "NewFatso" 255 90
	DropItem "NewHectebus" 255 10
}*/

Actor NewFatso : Fatso replaces Fatso
{
	PainChance "Convert", 255
	Species "Fatso"
	/*+NODAMAGETHRUST*/
	Tag "Mancubus"
	+USEKILLSCRIPTS
	States
	{
	Spawn:
		FATT A 0
		FATT A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,72,0)
	Idle:
		FATT AB 15 A_Look
		Loop
	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_VISIONSSCRIPT,0,0,0,0)
		goto See
	Death:
		FATT KK 1 A_SpawnItemEx("Blood",0,0,0,0,0,random(3,6), 48, 128)
		FATT K 4 A_SpawnItemEx("Blood",0,0,0,0,0,random(3,6), 48, 128)
		FATT L 6 A_Scream
		FATT M 6 A_NoBlocking
		FATT N 6
		FATT O 6
		FATT PPPPPP 1 A_SpawnItemEx("Blood",0,0,0,0,0,random(3,6), 48, 128)
		FATT QQQQQQ 1 A_SpawnItemEx("Blood",0,0,0,0,0,random(3,6), 48, 128)
		FATT RRRRRR 1 A_SpawnItemEx("Blood",0,0,0,0,0,random(3,6), 48, 128)
		FATT S 6
		FATT T -1 A_BossDeath
		stop
	Raise:
		FATT R 5 ACS_NamedExecuteAlways("WOC Monster Init",0,72,0)
		FATT QPONMLK 5
		Goto See
	}
}

ACTOR NewStealthFatso : NewFatso replaces StealthFatso
{
  Game Doom
  SpawnID 123
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHFATSO"
}

Actor NewFatShot : FatShot replaces FatShot
{
  //Scale 0.95
  Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(26,46)))
  Projectile
  /*+NODAMAGETHRUST
	+ThruGhost
  +WindThrust*/
  Damagetype "Fire"
  /*Renderstyle Normal
  SeeSound "ArchonOfHell/Comet"
  Deathsound "ArchonOfHell/CometHit"
  Decal Scorch
  states
  {
  Spawn:
    PROJ ABC 4 Bright
    Loop
  Death:
    PROJ D 4 Bright A_SetTranslucent(1,1)
    PROJ EFGH 4 Bright
    PROJ I 4 Bright A_Fadeout(0.50)
    Stop
  }*/
}

//Lost Soul

Actor NewLostSoul : LostSoul replaces LostSoul
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(3,24)))
	+NOBLOOD
	/*+NODAMAGETHRUST*/
	PainChance "Convert", 255
	Damagetype "Physical"
	Tag "Lost Soul"
	+USEKILLSCRIPTS
	Species "Cacodemon"
	Health 60
	DamageFactor "PoisonTime", 0.0
	DamageFactor "Holy", 1.5
	DamageFactor "HolyPlayer", 1.5
	DamageFactor "HolyTime", 1.5
	DamageFactor "Bleed", 0
	States
	{
	Spawn:
		SKUL A 0
		SKUL A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		SKUL AB 10 Bright A_Look
		Loop
	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_VISIONSSCRIPT,0,0,0,0)
		goto See
	}
}

//Pain Elemental

Actor NewPainElemental : PainElemental replaces PainElemental
{
	PainChance "Convert", 255
	/*+NODAMAGETHRUST*/
	Tag "Pain Elemental"
	Species "Cacodemon"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	States
	{
	Spawn:
		PAIN A 0
		PAIN A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,64,0)
	Idle:
		PAIN A 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,7),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	}
}

//Revenant

Actor NewRevenant : Revenant replaces Revenant
{
	Meleerange 72
	PainChance "Convert", 255
	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
	Damagetype "Physical"
	/*+NODAMAGETHRUST*/
	Tag "Revenant"
	Species "Revenant"
	+USEKILLSCRIPTS
	+NOBLOOD
	+AVOIDMELEE
	DamageFactor "PoisonTime", 0
	DamageFactor "Bleed", 0
	DamageFactor "Holy", 1.5
	DamageFactor "HolyPlayer", 1.5
	DamageFactor "HolyTime", 1.5
	States
	{
	Spawn:
		SKEL A 0
		SKEL A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,86,0)
	Idle:
		SKEL AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,7),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Melee:
		SKEL G 1 A_FaceTarget
		SKEL G 6 A_SkelWhoosh
		SKEL H 6 A_FaceTarget
		SKEL I 6 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Monster Damage Scale",ACTIVATOR,FRandom(26,46)),"skeleton/melee","none", "Physical")
		Goto See
	Raise:
		SKEL Q 5 ACS_NamedExecuteAlways("WOC Monster Init",0,86,0)
		SKEL PONML 5
		Goto See
	}
}

ACTOR NewStealthRevenant : NewRevenant replaces StealthRevenant
{
  Game Doom
  SpawnID 124
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHUNDEAD"
  HitObituary "$OB_STEALTHUNDEAD"
}

Actor NewRevenantTracer : RevenantTracer replaces RevenantTracer
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(35,55)))
	Damagetype "Physical"
	/*+NODAMAGETHRUST*/
}

//Shotgun Guy

/*Actor ShotgunguySpotz : RandomSpawner replaces Shotgunguy
{
	Game Doom
	SpawnID 1
	DropItem "NewShotgunGuy" 255 90
	DropItem "NewSuperShotgunGuy" 255 10
}*/

Actor NewShotgunGuy : ShotgunGuy replaces ShotgunGuy
{
	dropitem "ArtiEmptyFlask" 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
	Species "ShotgunGuy"
	PainChance "Convert", 255
	/*+NODAMAGETHRUST*/
	Speed 12
	Tag "Former Sergeant"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	Species "ShotgunGuy"
	Health 60
	States
	{
	Spawn:
		SPOS A 0
		SPOS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
	Idle:
		SPOS AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Pain:
		SPOS G 3
		SPOS G 3 A_Pain
		SPOS G 0 A_Jump(100,"Avoid")
		Goto See
	Avoid:
		SPOS A 0 A_ChangeFlag("NOPAIN",1)
		SPOS A 0 A_ChangeFlag("NODROPOFF",1)
		SPOS A 3 A_Chase("","",CHF_FASTCHASE)
		SPOS B 3 A_Chase("","",CHF_FASTCHASE)
		SPOS C 3 A_Chase("","",CHF_FASTCHASE)
		SPOS D 3 A_Chase("","",CHF_FASTCHASE)
		SPOS A 0 A_ChangeFlag("NODROPOFF",0)
		SPOS A 0 A_ChangeFlag("NOPAIN",0)
		Goto Missile	   
	Missile:
		SPOS E 10 A_FaceTarget
		SPOS E 0 bright A_PlaySound("shotguy/attack", CHAN_WEAPON)
		SPOS FF 0 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SPOS F 10 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SPOS E 10
		SPOS E 0 A_Jump(50,"InfiniteShot")
		Goto See
	InfiniteShot:
		SPOS E 10 A_FaceTarget
		SPOS E 0 bright A_PlaySound("shotguy/attack", CHAN_WEAPON)
		SPOS FF 0 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SPOS F 10 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SPOS E 10
		SPOS E 0 A_CPosRefire
		Goto InfiniteShot
	Burn:
		BURN A 3 Bright A_PlaySound("monster/burndeath")
		BURN B 3 Bright A_Wander
		BURN C 3 Bright A_Pain
		BURN D 3 Bright A_NoBlocking
		BURN E 5 Bright A_Pain
		BURN FGH 5 Bright A_Wander
		BURN I 5 Bright A_Pain
		BURN JKL 5 Bright A_Wander
		BURN M 5 Bright A_Pain
		BURN NOP 5 Bright
		BURN Q 5 Bright A_Pain
		BURN PQ 5 Bright
		BURN R 7 Bright A_Scream
		BURN STU 7 Bright
		BURN V -1
		Stop
	XDeath:
		SPOS M 5 A_SpawnItem("GIBBER")
		SPOS N 5 A_XScream
		SPOS O 5 A_NoBlocking
		SPOS PQRST 5
		SPOS U -1
		Stop
	Raise:
		SPOS L 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		SPOS KJIH 5
		Goto See
	}
}

//Shotgunguy Head
ACTOR ShotgunguyHead
{
  +DOOMBOUNCE
  PROJECTILE
  -NOGRAVITY
  -NOBLOCKMAP
  +CLIENTSIDEONLY
  -NOTELEPORT
  -SOLID
  Radius 3
  Damage 0
  Bouncefactor 0.6
  Decal BloodSplat
  SeeSound "gibbage/xpart"
  Speed 5
  States
  {
  Spawn:
    SGHD A 0 
    SGHD A 0 ThrustThingZ (0, 45, 0, 1)
    goto See 
  See:
    SGHD A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
    SGHD B 5 ThrustThingZ(0,6,1,1)
    SGHD CABC 5
    loop
  Death:
    SGHD C 0 A_Jump (32,3)
    SGHD C 0 A_Jump (64,4)
    SGHD C 0 A_Jump (128,5)
    SGHD A 350 
      SGHD A 1 A_FadeOut
	  wait
      SGHD B 350 
      SGHD B 1 A_FadeOut
	  wait
      SGHD C 350 
      SGHD C 1 A_FadeOut
	  wait      
  }
}

//Shotgunguy Arm
ACTOR ShotgunguyArm
{
  +DOOMBOUNCE
  PROJECTILE
  -NOGRAVITY
  -NOBLOCKMAP
  +CLIENTSIDEONLY
  -NOTELEPORT
  -SOLID
  Radius 3
  Damage 0
  bouncefactor 0.4
  Decal BloodSplat
  SeeSound "gibbage/xpart"
  Speed 5
  States
  {
  Spawn:
    SARM A 0 
    SARM A 0 ThrustThingZ (0, 45, 0, 1)
    goto See 
  See:
    SARM A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
    SARM B 5 ThrustThingZ(0,6,1,1)
    SARM CABC 5 
    loop
  Death:
    SARM C 0 A_Jump (128,3)
    SARM C 0 A_Jump (128,4)
    SARM C 0 A_Jump (128,5)
    SARM A 350 
      SARM A 1 A_FadeOut
	  wait
      SARM B 350 
      SARM B 1 A_FadeOut
	  wait
      SARM C 350 
      SARM C 1 A_FadeOut
	  wait        
  }
}

ACTOR NewStealthShotgunGuy : NewShotgunGuy replaces StealthShotgunGuy
{
  Game Doom
  SpawnID 103
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHSHOTGUNGUY"
}

//Spider Mastermind

Actor NewSpiderMastermind : SpiderMastermind replaces SpiderMastermind
{
	DamageFactor "DeathBlow", 0
	-NORADIUSDMG
	Damagefactor "PoisonCloud", 0.25
	+NOPAIN
	Health 6000
	DropItem "AccessoryRandomSpawner" 16
	/*+NODAMAGETHRUST*/
	+NOFEAR
	+LOOKALLAROUND
	Tag "Spider Mastermind"
	Species "Cyberdemon"
	+USEKILLSCRIPTS
	States
	{
	Spawn:
		SPID A 0
		SPID A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,100,WOC_STATUSIMMUNE|WOC_MAXLEVEL)
	Idle:
		SPID AB 10 A_Look
		Loop
	Missile:
		SPID A 20 Bright A_FaceTarget
		SPID G 0 bright A_PlaySound("shotguy/attack", CHAN_WEAPON)
		SPID GG 0 Bright A_CustomMissile("SpiderMastermindTracer", 40, 10, random(-1200,1200)/100.0)
		SPID G 4 Bright A_CustomMissile("SpiderMastermindTracer", 40, 10, random(-1200,1200)/100.0)
		SPID H 0 bright A_PlaySound("shotguy/attack", CHAN_WEAPON)
		SPID HH 0 Bright A_CustomMissile("SpiderMastermindTracer", 40, 10, random(-1200,1200)/100.0)
		SPID H 4 Bright A_CustomMissile("SpiderMastermindTracer", 40, 10, random(-1200,1200)/100.0)
		SPID H 1 Bright A_SpidRefire
		Goto Missile+1
	Death:
		SPID J 20 A_Scream
		SPID K 10 A_NoBlocking
		SPID L 10
		SPID MMMMMMMM 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SPID M 1 A_SpawnItem("BOSSGIBBER")
		SPID MMM 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SPID NNNNNNNNNNNNNNN 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SPID N 1 A_SpawnItem("BOSSGIBBER")
		SPID NNNNNNNNN 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SPID O 1 A_SpawnItem("BOSSGIBBER")
		SPID O 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SPID P 5
		SPID QR 10
		SPID S -1 A_BossDeath
		stop
	}
}

Actor SpiderMastermindTracer : ZombieBulletTracer
{
	Damage (ACS_NamedExecuteWithResult("WOC Monster Damage Scale",WOCTARGET,FRandom(1,8)))
}

Actor NewZombieman : Zombieman replaces Zombieman
{
	dropitem "ArtiEmptyFlask" 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
	PainChance "Convert", 255
	/*+NODAMAGETHRUST*/
	Speed 12
	Tag "Former Human"
	Species "Zombieman"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	Health 50
	States
	{
	Spawn:
		POSS A 0
		POSS A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)//increase health on higher difficulties
	Idle:
		POSS AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Missile:
		POSS E 10 A_FaceTarget
		POSS E 0 A_PlaySound ("grunt/attack")
		POSS F 8 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-800,800)/100.0)
		POSS E 8
		Goto See
	Pain:
		POSS G 3
		POSS G 3 A_Pain
		Goto See	   
	Burn:
		BURN A 3 Bright A_PlaySound("monster/burndeath")
		BURN B 3 Bright A_Wander
		BURN C 3 Bright A_Pain
		BURN D 3 Bright A_NoBlocking
		BURN E 5 Bright A_Pain
		BURN FGH 5 Bright A_Wander
		BURN I 5 Bright A_Pain
		BURN JKL 5 Bright A_Wander
		BURN M 5 Bright A_Pain
		BURN NOP 5 Bright
		BURN Q 5 Bright A_Pain
		BURN PQ 5 Bright
		BURN R 7 Bright A_Scream
		BURN STU 7 Bright
		BURN V -1
		Stop
	XDeath:
		POSS M 5 A_SpawnItem("GIBBER")
		POSS N 5 A_XScream
		POSS O 5 A_NoBlocking
		POSS PQRST 5
		POSS U -1
		Stop
	Raise:
		POSS K 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		POSS JIH 5
		Goto See
	}
}

ACTOR NewStealthZombieMan : NewZombieMan replaces StealthZombieMan
{
  Game Doom
  SpawnID 102
  +STEALTH
  RenderStyle Translucent
  Alpha 0
  Obituary "$OB_STEALTHZOMBIE"
}

ACTOR ZOMBIEMANHEAD
{
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
    -NOBLOCKMAP
	+CLIENTSIDEONLY
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    bouncefactor 0.6
    Decal BloodSplat
    SeeSound "gibbage/xpart"
    Speed 5
    States
    {
    Spawn:
      PSHD A 0 
      PSHD A 0 ThrustThingZ (0, 45, 0, 1)
      goto See 
    See:
      PSHD A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
      PSHD B 5 ThrustThingZ(0,6,1,1)
      PSHD CD 5 
      PSHD ABCD 5
      loop
    Death:
      PSHD C 0 A_Jump (16,4)
      PSHD C 0 A_Jump (32,5)
      PSHD C 0 A_Jump (64,6)
      PSHD C 0 A_Jump (128,7)
      PSHD A 350 
      PSHD A 1 A_FadeOut
	  wait
      PSHD B 350 
      PSHD B 1 A_FadeOut
	  wait
      PSHD C 350 
      PSHD C 1 A_FadeOut
	  wait 
	  PSHD D 350 
      PSHD D 1 A_FadeOut
	  wait
    }
}

ACTOR ZOMBIEMANLEG
{
    +DOOMBOUNCE
    PROJECTILE
    -NOGRAVITY
	+CLIENTSIDEONLY
    -NOBLOCKMAP
    -NOTELEPORT
    -SOLID
    Radius 3
    Damage 0
    bouncefactor 0.4
    Decal BloodSplat
    SeeSound "gibbage/xpart"
    Speed 5
    States
    {
    Spawn:
      PLEG A 5 A_SpawnItemEx("Blood", 0, 0, 0,0,0,0,0,128)
      PLEG B 5 ThrustThingZ(0,6,1,1)
      PLEG C 5 
      PLEG ABC 5
      loop
    Death:
      PLEG C 0 A_Jump (32,3)
      PLEG C 0 A_Jump (64,4)
      PLEG C 0 A_Jump (128,5)
      PLEG A 350 
      PLEG A 1 A_FadeOut
	  wait
      PLEG B 350 
      PLEG B 1 A_FadeOut
	  wait
      PLEG C 350 
      PLEG C 1 A_FadeOut
	  wait 
    }
}

Actor NewWolfensteinSS : WolfensteinSS replaces WolfensteinSS
{
	dropitem "ArtiEmptyFlask" 64
	PainChance "Convert", 255
	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
	/*+NODAMAGETHRUST*/
	Tag "Wolfenstein SS"
	+USEKILLSCRIPTS
	+AVOIDMELEE
	States
	{
	Spawn:
		SSWV A 0
		SSWV A 0 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)//increase health on higher difficulties
	Idle:
		SSWV AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Pain:
		SSWV G 3
		SSWV G 3 A_Pain
		Goto See	   
	Missile:
		SSWV E 10 A_FaceTarget
		SSWV F 10 A_FaceTarget
		SSWV E 0 bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
		SSWV G 4 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SSWV F 6 A_FaceTarget
		SSWV E 0 bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
		SSWV G 4 Bright A_CustomMissile("ZombieBulletTracer", 32, 10, random(-400,400)/100.0)
		SSWV F 1 A_CPosRefire
		Goto Missile+1
	Burn:
		BURN A 3 Bright A_PlaySound("monster/burndeath")
		BURN B 3 Bright A_Wander
		BURN C 3 Bright A_Pain
		BURN D 3 Bright A_NoBlocking
		BURN E 5 Bright A_Pain
		BURN FGH 5 Bright A_Wander
		BURN I 5 Bright A_Pain
		BURN JKL 5 Bright A_Wander
		BURN M 5 Bright A_Pain
		BURN NOP 5 Bright
		BURN Q 5 Bright A_Pain
		BURN PQ 5 Bright
		BURN R 7 Bright A_Scream
		BURN STU 7 Bright
		BURN V -1
		Stop
	XDeath:
		SSWV N 5 A_SpawnItem("GIBBER")
		SSWV O 5 A_XScream
		SSWV P 5 A_NoBlocking
		SSWV QRSTU 5
		SSWV V -1
		Stop
	Raise:
		SSWV M 5 ACS_NamedExecuteAlways("WOC Monster Init",0,56,0)
		SSWV LKJI 5
		Goto See
	}
}

Actor NewExplosiveBarrel : ExplosiveBarrel replaces ExplosiveBarrel
{
	/*+NODAMAGETHRUST*/
	Damagetype "Fire"
	States
	{
	Spawn:
		BAR1 AB 6
		Loop
	Death:
		BEXP A 5 Bright
		BEXP B 5 Bright A_Scream
		BEXP C 5 Bright
		BEXP D 5 Bright A_SpawnItemEx("BarrelExplode", 0, 0, 28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
		BEXP E 10 Bright
		TNT1 E 1050 Bright A_BarrelDestroy
		TNT1 E 5 A_Respawn
		Wait
    }
}

Actor BarrelExplode
{
	Speed 0
	Height 4
	Radius 4
	PROJECTILE
	Damage (0)
	PROJECTILE
	+DONTBLAST
	Damagetype "Fire"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 3 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 128, CURRENTLEVEL, 0, WOCTARGET), 128, 1)
		Stop
	}
}