ACTOR Choke : GhoulBaseFloat
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
//Creator: Fluffy
//Origin: Ghouls VS Humans
//Sprite: GHOU
//Title: "Choke" 
Health 2470
Radius 20
Height 56
Speed 19
PainChance 64
Renderstyle Translucent
alpha 0.7
+NODAMAGETHRUST
+DONTBLAST
+LOOKALLAROUND
+DONTSPLASH
SeeSound "choke1"
PainSound "choke2"
ActiveSound "choke3"
MeleeSound "choke4"
DeathSound "choke5"
Obituary "%o was ripped apart by Choke."
Tag "\c[e5]Choke\c-"
States
{
  Spawn:
   TNT1 A 0 A_Look
   GHOU AB 1 A_Wander
   Loop
  See:
   GHOU AB 1 A_Chase
   Loop
  Melee:
   TNT1 A 0 A_FaceTarget
   GHOU E 1 A_Recoil(-10)
   TNT1 A 0 A_FaceTarget
   GHOU E 1 A_Recoil(-10)
   TNT1 A 0 A_FaceTarget
   GHOU F 1 A_Recoil(-10)
   TNT1 A 0 A_FaceTarget
   GHOU F 1 A_Recoil(-10)
   TNT1 A 0 A_CustomMeleeAttack(40,"choke4")
   TNT1 A 0 A_FaceTarget
   GHOU J 2 A_Recoil(-5)
   TNT1 A 0 A_CustomMeleeAttack(40,"choke4")
   TNT1 A 0 A_FaceTarget
   GHOU G 2 A_Recoil(-5)
   TNT1 A 0 A_CustomMeleeAttack(40,"choke4")
   TNT1 A 0 A_FaceTarget
   GHOU K 2 A_Recoil(-5)
   GHOU LI 2
   Goto See
  Death:
   GHOU H 5
   GHOU C 0 A_SpawnItem("DarknessRing", 1, 32)
   GHOU I 10 A_Scream
   GHOU M 10 A_Fall
   GHOU N 10
   GHOU O 10
   GHOU P 10
   Stop
   }
}

actor DarknessRing
{
  -SOLID
  +NOCLIP
  +DONTSPLASH
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 1
    TNT1 A 0 A_CustomMissile("Darkness",0,0,0,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,45,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,90,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,135,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,180,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,225,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,270,2)
    TNT1 A 0 A_CustomMissile("Darkness",0,0,315,2)
    stop
  }
}

actor Darkness
{
  Height 1
  Radius 1
  Speed 26
  PROJECTILE
  -NOGRAVITY
  +NOCLIP
  +DONTSPLASH
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    DAX1 A 7
    DAX2 A 7
    DAX3 A 7
    DAX4 A 7
    DAX5 A 7
    DAX6 A 7
    DAX7 A 7
    DAX8 A 7
  Death:
    TNT1 A 1
    stop
  }
}

ACTOR CreeperGhoul : GhoulBaseFloor
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
//Creator: Fluffy
//Origin: Ghouls VS Humans
//Sprite: CREE
//Title: "Creeper" 
MONSTER
BloodColor "white"
Speed 16
Height 16
Radius 13
xscale 0.8
yscale 0.1
Health 1600
MeleeDamage 250
painchance 255
Obituary "%o did not see the Creeper coming."
Tag "\c[u4]Creeper\c-"
Mass 0x7FFFFFFF
+DONTSPLASH
+NOBLOCKMONST
+DROPOFF
+LOOKALLAROUND
+PIERCEARMOR
-SOLID
States
{
  Spawn:
    TNT1 A 0
    CREE A 0 A_ChangeFlag(NOCLIP,0)
  Idle:
    CREE A 0 A_Look
    CREE AAAABBBB 3 A_Wander
    Loop
  See:
    CREE A 0 A_ChangeFlag(NOCLIP, 1)
    CREE A 0 A_ChangeFlag(FRIGHTENED, 0)
    CREE A 0 A_Playsound("creeperact",4,1.0,1)
  SeeLoop:
    CREE AAAABBBB 3 A_Chase
    Loop
  Melee:
    TNT1 A 0 A_JumpIfInTargetInventory("CreeperCooldown",1,"See")
    TNT1 A 0 A_ChangeFlag(NOPAIN,1)
    TNT1 A 0 A_GiveToTarget("CreeperGhoulScare", 1)
    TNT1 A 0 A_MeleeAttack
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_ChangeFlag(NOPAIN,0)
    Goto See
  Pain:
    CREE A 0 A_PlaySound("Creeperpain")
    CREE A 0 A_ChangeFlag(FRIGHTENED, 0)
    CREE BABABABABA 1 A_Chase
    CREE A 0 A_ChangeFlag(FRIGHTENED, 1)
    CREE BABABABABABABABABABABAB 1 A_Chase
    CREE ABABABABABAB 2 A_Chase
    CREE ABABABABABAB 3 A_Chase
    CREE A 0 A_ChangeFlag(FRIGHTENED, 0)
    Goto See
  Death:
    TNT1 A 20 A_SpawnItemEx("Creeperdeath",1,1,1)
    TNT1 A 1 A_Fall
    Stop
  }
}

ACTOR CreeperGhoulScare : Crusaderbuff
{
	States 
	{
		Pickup:
		    TNT1 A 1
			TNT1 A 0 A_GiveInventory("CreeperCooldown",1)
			TNT1 A 0 ACS_NamedExecuteAlways("CreepAttack",0)
			stop
	}
}

Actor CreeperCooldown : PowerDamage
{
+INVENTORY.ADDITIVETIME
DamageFactor "notarealdamagetype", 1.0
Powerup.duration 35
}

ACTOR Creeperdeath
{
Height 10
Radius 10
Scale 0.06
Speed 4
renderstyle translucent
-SOLID
States
{
  Spawn:
    CREE D 0
    CREE D 0 A_Playsound("creeperdie")
    CREE D 1 A_FadeOut(0.01)
    CREE D 0 A_SpawnItemEx("GhoulFireX3",0,0,frandom(0,10),frandom(0,3),0,frandom(0,3),random(0,360),0,200)
    CREE D 0 A_Wander
    Goto spawn+2
    }
}

Actor SoulHarvester : GhoulBaseFloat
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
//Creator: Fluffy
//Origin: Ghouls VS Humans
//Sprite: SCAR
//Title: "Soul Harvester" 
  health 3000
  PainChance 255
  radius 24
  height 62
  Speed 15
  Mass 0x7FFFFFFF
  RENDERSTYLE TRANSLUCENT
  scale 0.25
  Activesound "ghoul/act"
  MaxTargetRange 500
  MeleeThreshold 200
  BloodColor Gray
  Painchance 255
  Obituary "%o's soul was succed by the Soul Harvester."
  Tag "\c[t1]Soul Harvester\c-"
  +LOOKALLAROUND
  +DONTSPLASH
  States
  {
  Spawn:
    SCAR A 0 A_Look
    SCAR A 0 A_LoopActiveSound
    SCAR A 0 A_SetTranslucent(0.4,0)
    SCAR A 1 A_Wander
    loop
  See:
    SCAR A 0 A_LoopActiveSound
    SCAR A 0 A_SetTranslucent(0.4,0)
    SCAR A 1 A_Chase
    loop
  Melee:
    SCAR A 0 A_SetTranslucent(1,0)
    SCAR D 0 A_CustomMeleeAttack(255,"none","none","Hell",1)
    SCAR D 0 A_Playsound("Whiteskullattack")
    SCAR DADADADADA 1 Bright
    SCAR D 20
    goto see
  Missile:
    TNT1 A 0 A_Jump(128,"SkullShot")
  Normal:
	SCAR E 20
	SCAR D 10 Bright A_CustomMissile("NemesisCyberBigBall",60)
	Goto See
  SkullShot:
    SCAR E 10
    SCAR DDDDD 6 Bright A_CustomMissile("NemesisExileSkullShot",60,0,random(-5,5))
	Goto See
  Pain:
    SCAR D 1
    Goto See
  Death:
    TNT1 A 0 A_StopSound
    SCAR A 0 A_SpawnItem("DarknessRing", 1, 32)
    SCAR A 0 A_SetTranslucent(1,0)
    SCAR B 50 A_Playsound("ghoul/die")
    SCAR BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC 2 A_Playsound("ghoul/die")
    SCAR B 50 A_Fall
    SCAR AAAAAAAAAAAA 0 A_CustomMissile("GhoulFireX3", 0, 0, random(0,360), 0)
    SCAR BBBBBBBBBB 5 A_Fadeout(0.1)
    stop
  }
}

Actor Misty : GhoulBaseFloat
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
health 2900
radius 20
height 62
Speed 15
RENDERSTYLE TRANSLUCENT
Alpha 0.40
Painsound "Misty/painy"
Deathsound "Misty/death"
Activesound "Misty/idley"
scale 0.15
MaxTargetRange 500
Obituary "%o was lost in the Mist."
bloodcolor gray
Painchance 255
Tag "\c[g1]Misty\c-"
+LOOKALLAROUND
+DONTSPLASH
States
{
  Spawn:
    TNT1 A 0
  Idle:
    TNT1 A 0 A_LoopActiveSound
    TNT1 A 0 A_SpawnItemEx("mistspawner")
    TNT1 A 0 A_Look
    TY20 A 1 A_Wander
    loop
  See:
    TNT1 A 0 A_LoopActiveSound
    TNT1 A 0 A_SpawnItemEx("mistspawner")
	TNT1 A 0 A_JumpIfCloser(100,"Spook")
    TY20 A 1 A_Chase("","Missile")
    loop
  Spook:
    TY20 A 0 A_PlaySound("Misty/activ")
    TY20 A 35 Bright A_CustomMeleeAttack(255,"none","none","Hell",1)
    goto see
  Missile:
    TY20 AAAAAAAAAA 1 A_SpawnItemEx("mistspawner")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("Mistspawner2",-32,0,random(-50,50))
	TY20 A 10 Bright
	Goto See
  Pain:
    TY20 A 0 A_Pain
    TY20 A 1 A_FaceTarget
    TY20 A 0 A_SkullAttack
    TY20 AAAAAAAA 0 A_SpawnItemEx("mistspawner",0,0,0,frandom(5,10),0,frandom(-2,2),random(0,360))
    TY20 A 100 ThrustThing(random(0,255), 30, 0)
    goto see
  Death:
    TY20 A 0 A_Stopsound
    TY20 A 1 A_Fall
    TY20 A 0 A_Scream
    TY20 A 1 A_CustomMissile("Trailsmoke3", 0, 0, 0)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, 45)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, -45)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, 90)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, -90)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, 135)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, -135)
    TY20 A 0 A_CustomMissile("Trailsmoke3", 0, 0, 180)
    TY20 A 10 A_SpawnItem("DarknessRing", 1, 32)
    TY20 AAAAAAAAAAAA 4 A_CustomMissile("GhoulFireX3", 0, 0, random(0,360), 0)
    TY20 A 1 Radius_Quake(6,32,0,32,0)
    TY20 AAAAAAAAAAAA 4 A_CustomMissile("GhoulFireX3", 0, 0, random(0,360), 0)
    TY20 A 1 Radius_Quake(6,32,0,32,0)
    TY20 AAAAAAAAAAAA 4 A_CustomMissile("GhoulFireX3", 0, 0, random(0,360), 0)
    TY20 A 1 Radius_Quake(6,32,0,32,0)
    TY20 AAAAAAAAAAAA 4 A_CustomMissile("GhoulFireX3", 0, 0, random(0,360), 0)
    TY20 A 1 Radius_Quake(6,32,0,32,0)
    TNT1 A 0 A_KillChildren
    TY20 AAAAAAAAAA 5 A_FadeOut(0.1)
    TNT1 A 1
    stop
  }
}

actor Jugulum : GhoulBaseFloat
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
obituary "%o was torched by Jugulum."
health 2600
Radius 16
Height 56
speed 18
floatspeed 18
painchance 40
MaxTargetRange 1000
bloodcolor "darkred"
renderstyle translucent
alpha 0.75
Scale 0.20
ActiveSound "juggy/breath"
SeeSound "juggy/taunt"
Tag "\c[o4]Jugulum\c-"
+DONTBLAST
+SHADOW
states
{
  Spawn:
    JUGY A 1 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_LoopActiveSound
    loop
  See:
    TNT1 A 0 A_LoopActiveSound
    JUGY A 1 A_Chase
    loop
  Missile:
    JUGY BCD 3
    JUGY EEEEEE 1 A_CustomMissile("juggyball",32,0,frandom(-8,8),CMF_OFFSETPITCH,frandom(-2,2))
    goto See
  Melee:
    JUGY B 2 A_CustomMeleeAttack(40,"singenjitsu/melee")
    JUGY A 2
    Goto See
  Pain:
    JUGY B 4 A_PlaySound("juggy/pain")
    goto See
  Death:
    JUGY A 0 A_SpawnItem("DarknessRing", 1, 32)
    JUGY A 1 A_Playsound("juggy/death")
    JUGY A 0 A_NoBlocking
    JUGY AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_CustomMissile("GhoulFireX2", 2, 0, random(0,360), 2,0)
    JUGY AAAAAAAAAA 5 A_FadeOut(0.1)
    Stop
  }
}

ACTOR JuggyBall
{
Radius 9
Height 18
Speed 35
Damage 5
ExplosionDamage 8
ExplosionRadius 32
PROJECTILE
RENDERSTYLE ADD
ALPHA 0.80
+THRUGHOST
SeeSound "juggy/shoot"
DeathSound "imp/shotx"
Decal "RevenantScorch"
States
{
   Spawn:
      AFX5 ABC 3 Bright
      loop
   Death:
      AFX5 D 3 Bright A_Explode(8,32)
      AFX5 EFGH 3 Bright
      stop
   }
}

//Smoke
Actor Trailsmoke
{
  Renderstyle Translucent
  Alpha 0.40
  +CLIENTSIDEONLY
  +NOINTERACTION
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    SMIS A 50
    SMIS ABCDEFGIJK 5 A_Fadeout(0.1)
	}
}

Actor Trailsmoke4
{
  Renderstyle Add
  Alpha 0.40
  +CLIENTSIDEONLY
  +NOINTERACTION
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetScale(FRandom(0.1,0.8))
    SMIS A 100 A_SetTics(Random(50,500))
    SMIS ABCDEFGIJK 10 A_Fadeout(0.1)
	}
}

Actor Trailsmoke3 : Trailsmoke
{
  Speed 12
  Scale 2.0
  Alpha 0.75
}

Actor Mistspawner
{
  +NOINTERACTION
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Spawn1")
    TNT1 AAAA 1 A_SpawnItemEx("TrailSmoke",frandom(-200,200),frandom(-200,200),frandom(0,40),frandom(0,1),0,frandom(-1,1),random(0,360))
    stop
  Spawn1:
    TNT1 A 1 A_SpawnItemEx("TrailSmoke",frandom(-200,200),frandom(-200,200),frandom(0,40),frandom(0,1),0,frandom(-1,1),random(0,360))
	Stop
	}
}

Actor Mistspawner2
{
  Speed 50
  +NOINTERACTION
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Spawn1")
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("TrailSmoke",frandom(-40,40),frandom(-40,40),frandom(0,40),frandom(0,1),0,frandom(-1,1),random(0,360))
    stop
  Spawn1:
    TNT1 A 1 A_SpawnItemEx("TrailSmoke",frandom(-40,40),frandom(-40,40),frandom(0,40),frandom(0,1),0,frandom(-1,1),random(0,360))
	Stop
	}
}

Actor Mistspawner3
{
  Speed 50
  +NOINTERACTION
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 2 A_SpawnItemEx("RandomSmokeSpawner",frandom(-40,40),frandom(-40,40),0,frandom(-0.5,0.5),frandom(-0.5,0.5),0,random(0,360))
    stop
	}
}

Actor RandomSmokeSpawner : RandomSpawner
{
DropItem "SmokeFX", 256, 1
DropItem "SmokeFX2", 256, 1
DropItem "SmokeFX3", 256, 1
DropItem "SmokeFX4", 256, 1
DropItem "SmokeFX5", 256, 1
DropItem "SmokeFX6", 256, 1
DropItem "SmokeFX7", 256, 1
DropItem "Trailsmoke4", 256, 1
DropItem "TrailSmoke4", 256, 1
}

//Fire
Actor SmallFlame
{
+ClientSideOnly
+NoClip
+NoBlockMap
+NoGravity
+NoInteraction
States
{
  Spawn:
   TNT1 A 1
   Stop
   }
}

Actor MediumFlame : SmallFlame {}
Actor LargeFlame : SmallFlame {}

Actor GFlame1A
{
Height 2
Radius 1
RenderStyle Add
Alpha 0.8
Scale 0.35
+NoGravity
+NoBlockMap
+Missile
+NoInteraction
+ForceXYBillboard
+ClientSideOnly
States
{
  Spawn:
    FLM1 A 0
    FLM1 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM1 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM1 ABCDE 2 Bright
    FLM1 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM1 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM1 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM1 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM1 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM1 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM1 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM1 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM1 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM1 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM1 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM1 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM1 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM1 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor GFlame1B : GFlame1A
{
States
{
  Spawn:
    FLM2 A 0
    FLM2 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM2 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM2 ABCDE 2 Bright
    FLM2 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM2 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM2 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM2 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM2 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM2 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM2 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM2 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM2 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM2 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM2 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM2 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM2 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM2 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor GFlame2A : GFlame1A
{
States
{
  Spawn:
    FLM3 A 0
    FLM3 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM3 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM3 ABCDE 2 Bright
    FLM3 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM3 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM3 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM3 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM3 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM3 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM3 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM3 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM3 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM3 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM3 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM3 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM3 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM3 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor GFlame2B : GFlame1A
{
States
{
  Spawn:
    FLM4 A 0
    FLM4 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM4 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM4 ABCDE 2 Bright
    FLM4 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM4 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM4 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM4 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM4 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM4 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM4 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM4 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM4 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM4 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM4 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM4 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM4 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM4 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor GFlame3A : GFlame1A
{
States
{
  Spawn:
    FLM5 A 0
    FLM5 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM5 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM5 ABCDE 2 Bright
    FLM5 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM5 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM5 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM5 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM5 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM5 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM5 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM5 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM5 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM5 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM5 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM5 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM5 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM5 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor GFlame3B : GFlame1A
{
States
{
  Spawn:
    FLM6 A 0
    FLM6 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    FLM6 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    FLM6 ABCDE 2 Bright
    FLM6 F 1 Bright A_SetTranslucent(0.75, 1)
    FLM6 F 1 Bright A_SetTranslucent(0.7, 1)
    FLM6 G 1 Bright A_SetTranslucent(0.65, 1)
    FLM6 G 1 Bright A_SetTranslucent(0.6, 1)
    FLM6 H 1 Bright A_SetTranslucent(0.55, 1)
    FLM6 H 1 Bright A_SetTranslucent(0.5, 1)
    FLM6 I 1 Bright A_SetTranslucent(0.45, 1)
    FLM6 I 1 Bright A_SetTranslucent(0.4, 1)
    FLM6 J 1 Bright A_SetTranslucent(0.35, 1)
    FLM6 J 1 Bright A_SetTranslucent(0.3, 1)
    FLM6 K 1 Bright A_SetTranslucent(0.25, 1)
    FLM6 K 1 Bright A_SetTranslucent(0.2, 1)
    FLM6 L 1 Bright A_SetTranslucent(0.15, 1)
    FLM6 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

ACTOR GhoulsFireSFX
{
Obituary "%o burned to death"
+CLIENTSIDEONLY
+NOCLIP
+NOBLOCKMAP
+NOGRAVITY
+NOSECTOR
+NOINTERACTION
+DONTSPLASH
States
{
  Spawn:
    TNT1 A 0 A_SpawnItemEx("SmallFlame", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_Jump(216, 2)
    TNT1 A 1 A_SpawnItemEx("GFlame1A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(176, 2)
    TNT1 A 1 A_SpawnItemEx("GFlame1B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(136, 2)
    TNT1 A 1 A_SpawnItemEx("GFlame2A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(96, 2)
    TNT1 A 1 A_SpawnItemEx("GFlame2B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(56, 2)
    TNT1 A 1 A_SpawnItemEx("GFlame3A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 1 A_SpawnItemEx("GFlame3B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
  Death:
    TNT1 A -1
    Stop
  }
}

ACTOR GhoulFireX
{
Speed 5
+CLIENTSIDEONLY
+NOBLOCKMAP
+NOCLIP
+NOGRAVITY
+NOSECTOR
+NOINTERACTION
+DONTSPLASH
States
{
  Spawn:
	TNT1 A 0 NoDelay A_FireCrackle
    TNT1 AAAAA 4 A_SpawnItemEx("GhoulsFireSFX", 1, 4)
	TNT1 A 0 A_FireCrackle
	TNT1 AAAAA 4 A_SpawnItemEx("GhoulsFireSFX", 1, 4)
    Stop
  }
}

ACTOR GhoulFireX2 : GhoulFireX { Speed 2 }

ACTOR GhoulFireX3 : GhoulFireX
{
  Speed 2
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_FireCrackle
    TNT1 AAAAA 4 A_SpawnItemEx("GhoulsFireSFXWhite", 1, 4)
	TNT1 A 0 A_FireCrackle
	TNT1 AAAAA 4 A_SpawnItemEx("GhoulsFireSFXWhite", 1, 4)
    Stop
  }
}

ACTOR GhoulsFireSFXWhite
{
  +CLIENTSIDEONLY
  +NOCLIP
  +NOBLOCKMAP
  +NOGRAVITY
  +NOSECTOR
  +NOINTERACTION
  +DONTSPLASH
  Obituary "%o burned to death"
  States
  {
  Spawn:
    TNT1 A 0 A_SpawnItemEx("SmallWhiteFlame", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_Jump(216, 2)
    TNT1 A 1 A_SpawnItemEx("WFlame1A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(176, 2)
    TNT1 A 1 A_SpawnItemEx("WFlame1B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(136, 2)
    TNT1 A 1 A_SpawnItemEx("WFlame2A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(96, 2)
    TNT1 A 1 A_SpawnItemEx("WFlame2B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 0 A_Jump(56, 2)
    TNT1 A 1 A_SpawnItemEx("WFlame3A", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
    TNT1 A 1 A_SpawnItemEx("WFlame3B", 0, 0, 0, 0, 0, 0, 0, 128)
    Goto death
  Death:
    TNT1 A -1
    Stop
  }
}

Actor SmallWhiteFlame
{
  +ClientSideOnly
  +NoClip
  +NoBlockMap
  +NoGravity
  +NoInteraction
  States
  {
  Spawn:
   TNT1 A 1
   Stop
  }
}

Actor WFlame1A
{
  Height 2
  Radius 1
  +NoGravity
  +NoBlockMap
  +Missile
  +NoInteraction
  +ForceXYBillboard
  +ClientSideOnly
  RenderStyle Add
  Alpha 0.8
  Scale 0.35
  States
  {
  Spawn:
    WLM1 A 0
    WLM1 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM1 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM1 ABCDE 2 Bright
    WLM1 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM1 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM1 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM1 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM1 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM1 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM1 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM1 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM1 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM1 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM1 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM1 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM1 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM1 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor WFlame1B : WFlame1A
{
  States
  {
  Spawn:
    WLM2 A 0
    WLM2 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM2 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM2 ABCDE 2 Bright
    WLM2 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM2 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM2 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM2 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM2 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM2 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM2 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM2 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM2 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM2 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM2 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM2 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM2 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM2 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor WFlame2A : WFlame1A
{
  States
  {
  Spawn:
    WLM3 A 0
    WLM3 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM3 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM3 ABCDE 2 Bright
    WLM3 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM3 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM3 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM3 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM3 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM3 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM3 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM3 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM3 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM3 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM3 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM3 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM3 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM3 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor WFlame2B : WFlame1A
{
  States
  {
  Spawn:
    WLM4 A 0
    WLM4 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM4 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM4 ABCDE 2 Bright
    WLM4 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM4 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM4 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM4 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM4 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM4 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM4 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM4 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM4 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM4 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM4 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM4 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM4 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM4 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor WFlame3A : WFlame1A
{
  States
  {
  Spawn:
    WLM5 A 0
    WLM5 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM5 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM5 ABCDE 2 Bright
    WLM5 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM5 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM5 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM5 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM5 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM5 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM5 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM5 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM5 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM5 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM5 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM5 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM5 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM5 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

Actor WFlame3B : WFlame1A
{
  States
  {
  Spawn:
    WLM6 A 0
    WLM6 A 0 ThrustThingZ(0, Random(8, 16), 0, 0)
    WLM6 A 0 ThrustThing(Random(0, 255), Random(0, 1), 0, 0)
    WLM6 ABCDE 2 Bright
    WLM6 F 1 Bright A_SetTranslucent(0.75, 1)
    WLM6 F 1 Bright A_SetTranslucent(0.7, 1)
    WLM6 G 1 Bright A_SetTranslucent(0.65, 1)
    WLM6 G 1 Bright A_SetTranslucent(0.6, 1)
    WLM6 H 1 Bright A_SetTranslucent(0.55, 1)
    WLM6 H 1 Bright A_SetTranslucent(0.5, 1)
    WLM6 I 1 Bright A_SetTranslucent(0.45, 1)
    WLM6 I 1 Bright A_SetTranslucent(0.4, 1)
    WLM6 J 1 Bright A_SetTranslucent(0.35, 1)
    WLM6 J 1 Bright A_SetTranslucent(0.3, 1)
    WLM6 K 1 Bright A_SetTranslucent(0.25, 1)
    WLM6 K 1 Bright A_SetTranslucent(0.2, 1)
    WLM6 L 1 Bright A_SetTranslucent(0.15, 1)
    WLM6 L 1 Bright A_SetTranslucent(0.1, 1)
    Stop
  }
}

//Weaker Ghouls (meant for Samara)
Actor Sin-GenjitsuWeak : sin-genjitsu3
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2700
Species "Hell"
Tag "\c[t7]s\c[n6]i\c[j8]n\c[c6]-\c[k5]g\c[e6]e\c[d3]n\c[v0]j\c[a4]i\c[g2]tsu\c-"
dropitem ""
States
{
  Death:
	TNT1 A 0 A_StopSound(5)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("2huBossDeathFlame",0,0,20,random(-3,3),random(-3,3),random(-3,3))
	SING A 25 A_Scream
	SING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,random(5,25),random(-15,15),random(-15,15),random(-15,30))
	SING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,random(5,25),random(-15,15),random(-15,15),random(-15,30))
	SING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,random(5,25),random(-15,15),random(-15,15),random(-15,30))
	SING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,random(5,25),random(-15,15),random(-15,15),random(-15,30))
	SING AAAAAAAAAAAA 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,random(5,25),random(-15,15),random(-15,15),random(-15,30))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	SING AA 1 A_Fadeout(0.1)
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	SING AA 1 A_Fadeout(0.1)
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	SING AA 1 A_Fadeout(0.1)
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	SING AA 1 A_Fadeout(0.1)
	TNT1 A 0 A_NoBlocking
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
 	SING AA 1 A_Fadeout(0.1)
    Stop
   }
}

Actor CorruptWeak : NexusCorrupt
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2999
DropItem ""
Tag "corrupt"
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(user_script == 1,4)
    TNT1 A 0 ACS_NamedExecuteAlways("CorruptScript2")
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SetUserVar("user_script",1)
	TNT1 A 0 A_JumpIf(user_appear == 1,"SpawnAppear")
    TNT1 A 1 A_Look
	Loop
  Heal:
	CORP A 1 Light("CorruptLight") A_SpawnItemEx("CorruptFlame",0,0,32)
	TNT1 A 0 A_PlaySound("weaverbonnie/appear",7)
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetUserVar("user_appear",1)
	//TNT1 A 0 A_RadiusGive("CorruptResurrectFuckery",1000,RGF_MONSTERS)
	Goto See
  Death:
	TNT1 A 0 A_PlaySound("Corrupt/NoiseActive",1,1.0,1)
	TNT1 A 0 A_TakeFromTarget("CorruptStartToken",1)
  DeathTimer:
    TNT1 A 0 ThrustThingZ(0, 4, 0, 0)
	CORP A 1 Light("CorruptLight") A_SpawnItemEx("CorruptFlame",0,0,32)
	TNT1 A 0 A_SpawnItemEx("WhiteNemesisKaboom",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	TNT1 A 0 A_JumpIf(user_deathtimer >= 175,"DeathEnd")
	TNT1 A 0 A_SetUserVar("user_deathtimer",user_deathtimer+1)
	loop
  DeathEnd:
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_SpawnItem("NemesisDeathBall")
    TNT1 A 1 A_Fall
	Stop
	}
}

Actor BloodeyeWeak : NexusBloodeye
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 3999
DropItem ""
Tag "\c[o5]Bloodeye\c-"
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(user_script == 1,4)
    TNT1 A 0 ACS_NamedExecuteAlways("BloodeyeScript")
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SetUserVar("user_script",1)
	TNT1 A 0 A_Wander
    TNT1 A 1 A_Look
	Loop
  Death:
	TNT1 A 0
	UROB M 0 A_Playsound("bloodeye/death",6,2.0,0,ATTN_NONE)
	BLE1 ABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRST 1 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-3,3),random(-3,3),random(-3,3),0,0,180)
	TNT1 A 0 A_Explode(128,1024,0)
	TNT1 A 0 A_Explode(460,640,0)
	TNT1 A 0 A_Explode(618,256,0)
	TNT1 A 0 A_Fall
	TNT1 A 0 A_SpawnItemEx("BloodEyeExplosion",0,0,18)
	TNT1 AAA 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,128)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX3",0,0,random(0,360),2,random(0,360))
	TNT1 AAAAAA 0 A_CustomMissile("Kaboom",0,0,random(0,360),2,random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AA 0 A_SpawnItemEx("SmokeFX3",Random(-48,48),Random(-48,48),Random(8,96))
	TNT1 AAAAAA 2 A_SpawnItemEx("Kaboom",Random(-48,48),Random(-48,48),Random(8,64))
    Stop
	}
}

Actor WeaverBonnieWeak : WeaverBonnie
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2800
Tag "\c[h2]????\c-"
States
{
  Spawn:
    TNT1 A 0 nodelay A_PlaySound("weaverbonnie/appear",6)
	TNT1 A 0 A_SetTranslucent(0)
	TNT1 A 0 A_JumpIf(user_script == 1,4)
    TNT1 A 0 ACS_NamedExecuteAlways("WeaverScript")
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SetUserVar("user_script",1)
	WBI0 AAAAAAAAAAA 3 A_FadeIn(0.1)
  Idle:
    TNT1 A 0 A_JumpIf(user_phase == 1,"StopPhaseWalkingIdle")
    TNT1 A 0 A_ChangeFlag(NOCLIP,1)
	TNT1 A 0 A_SetTranslucent(0.15)
	TNT1 A 0 A_PlaySound("phaseimp/teleport",7)
	TNT1 A 0 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	WBI1 ABCDEF 1 A_Wander
	TNT1 A 0 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	WBI1 GHIJKL 1 A_Wander
	TNT1 A 0 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner",0,0,0,0,0,0,0,0,160)
	WBI1 MNOPQR 1 A_Wander
	TNT1 A 0 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	WBI1 STUVWX 1 A_Wander
	TNT1 A 0 A_LookEx(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	WBI1 YZ 1 A_Wander
	WB11 ABCDEF 1 A_Wander
	TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner",0,0,0,0,0,0,0,0,160)
	WB11 GHIJKLMN 1 A_Wander
    Goto Idle+4
  Death:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_Changeflag(NOCLIP,0)
	WBI7 A 5 A_Scream
	WBI7 A 132 A_SpawnItemEx("ZamasuimpDeathEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	WBI7 BCDEF 2
	WBI7 G 2 A_Fall
	WBI7 HIJKLMNO 2
	WBI7 P 2 A_SpawnItem("BodyCrash",0,0,0,0)
	WBI7 QRSTU 2
	WBI7 V 2 A_SpawnItem("NemesisDeathBall")
	WBI7 WXY 2
	WBI7 "Y" 100
	TNT1 A 0 A_PlaySound("weaverbonnie/appear",6)
	WBI7 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 1 A_FadeOut(0.03,0)
	WBI7 YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 1 A_FadeOut(0.03,0)
	Stop
	}
}

Actor ClownyWeak : Clowny
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2700
Tag "\cm3h4C10W3ny\c-"
DropItem ""
States
{
  Spawn:
   TNT1 A 0
   TNT1 A 0 A_SetUserVar("user_music",1)
   TNT1 A 0 A_Changeflag(NOCLIP,1)
   TNT1 A 0 A_UnSetShootable
   TNT1 A 0 A_Look
   TNT1 AAAA 3 A_Wander
   Goto Spawn+4
  Death:
	CLWX A 0 A_Settranslucent(0.4,1)
	CLWX A 0 A_StopSound(7)
	CLWX A 50 A_Scream
	CLWX A 4 A_NoBlocking
	CLWX AAAAAAAAAAAAAAAA 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	CLWX AAAA 5 A_Fadeout(0.1)
	Stop
   }
}

Actor JitterskullWeak : Jitterskull
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2500
Tag "\c[v2]Jitter Skull\c-"
States
{
   Spawn:
      TNT1 A 0
      TNT1 A 0 A_SetUserVar("user_music",1)
      JSKL A 10 A_Look 
      Goto Spawn+2
   Death: 
      JSKL A 1 A_StopSoundEx("Voice")
      JSKL D 1 A_PlaySoundEx("skulldie", "Voice")
      JSKL D 1 A_NoBlocking
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
	  TNT1 A 0 A_GiveInventory("SpecOpsStrafing",1)
      JSKL DD 1 BRIGHT A_CustomMissile("ArchvileFirex",2,0,random(0,360),2,0)
      JSKL Z 200
      Stop
	  }
}

Actor BNDWeak : BND
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2400
DamageFactor 1.0
Tag "\c[d8]BND\c-"
States
{
  Death:
    VBND B 50 A_Playsound("BND/DEATH")
    VBND BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC 2 a_playsound("BND/DEATH2",127)
    VBND B 75 A_Playsound("BND/DEATH")
	VBND B 1 A_StopSound(7)
	//TNT1 A 0 A_CustomBulletAttack(0,0,1,7000,"BulletPuff",128,CBAF_AIMFACING)
	//TNT1 A 0 Bright A_Explode(10000,3600,true,true,666)
	//TNT1 A 0 Bright A_Blast(BF_DONTWARN,225,1000,30)
    VBND D 3 A_Playsound("BND/EXPLOSION")
    VBND E 3 A_NoBlocking
	VBND F 3 A_SetFloorClip
	VBND GHIJK 3
	TNT1 A -1
    stop
	}
}

Actor ExetiorWeak : Exetior
{ //Scripted (Samara and Halloween mode will not spawn this ghoul if replaced)
Health 2900
DamageFactor 1.0
Tag "\c[b2]Exetior\c-"
DropItem ""
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_startspeed",ACS_NamedExecuteWithResult("Hem_GetCurrentSpeed"))
	TNT1 A 0 A_ChangeFlag(FLOATBOB,1)
	TNT1 A 0 ThrustThingZ(0,2,0,1)
	TNT1 A 0 A_JumpIf(user_aurascript == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("ExetiorAura",0)
	TNT1 A 0 A_SetUserVar("user_aurascript",1)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SetUserVar("user_secondmusic",1)
	TNT1 A 0 A_SetUserVar("user_realstartspeed",ACS_NamedExecuteWithResult("Hem_GetCurrentSpeed"))
	TNT1 A 0 A_PlaySound("Exetior/horror",5,1.0,TRUE)
	EXE_ AAAAAA 5 Bright A_Look
	TNT1 A 0 A_Stop
  SpawnLoop:
    EXE_ A 5 Bright A_Look
	Loop
  Melee:
    EXE_ A 4 Bright A_FaceTarget
    EXE_ KL 3 Bright
	TNT1 A 0 A_CustomMeleeAttack(random(110,250),"singenjitsu/melee","none","Exectior")
	EXE_ M 3 Bright A_GiveToTarget("ExetiorFuckery",1)
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Rekt2")
	Goto See
  Rekt2:
    TNT1 AAA 0 A_StopSound
	TNT1 A 0 A_PlaySound("Exetior/spawn",CHAN_VOICE,0.8,0,ATTN_NONE)
	TNT1 A 0 A_TakeInventory("MarineKilled",1)
	EXE_ DE 10 Bright A_Look
	Goto See
  Death:
    TNT1 A 0 A_StopSound(6)
	EXE_ F 8 A_StopSound(5)
    EXE_ F 8 A_Scream
    EXE_ Q 6
    EXE_ Q 6 A_NoBlocking
    EXE_ S 1
    EXE_ T 200
	TNT1 A 0 A_PlaySound("weaverbonnie/appear",6)
    EXE_ TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 1 A_FadeOut(0.03,0)
	EXE_ TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 1 A_FadeOut(0.03,0)
	Stop
	}
}