ACTOR JohnRomero : BossBrain replaces BossBrain
{
  Health 1500
  States
{
  }
}

ACTOR Dummy : Blood
{
  states
{
  Spawn:
    TNT1 A 0
    stop
  }
}

actor ShubEye : BossEye replaces BossEye
{
  DropItem "Demon"
  DropItem "Spectre"
  DropItem "PainElemental"
  DropItem "Cacodemon"
  DropItem "Archvile"
  DropItem "Revenant"
  DropItem "Arachnotron"
  DropItem "Fatso"
  DropItem "HellKnight"
  DropItem "BaronOfHell"
}

actor DeathB: Ammo 
{
	Inventory.MaxAmount 1
}

actor ColdBloodedKillah: Ammo 
{
	Inventory.MaxAmount 1
}

ACTOR QZombie
{
  Game Doom
  SpawnID 5
  Health 60
  GibHealth 18
  Radius 20
  Height 56
  Mass 99999999
  Speed 3
  DamageFactor "Grenade", 2.5
  DamageFactor "RocketDamage", 2.5
  DamageFactor "hammer", 1.2
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  PainChance 250
  Monster
  -COUNTKILL
  +FLOORCLIP
  +SHOOTABLE
  +DONTGIB
  Scale 0.25
  SeeSound "Zombie/act"
  PainSound "Zombie/pain"
  DeathSound "QuakeZom/death"
  ActiveSound "Zombie/act"
  Obituary "%o joins the zombies"
  States
  {
  Spawn:
    QZU0 A 0 A_JumpIfInventory("ColdBloodedKillah",1,"Angry")
    QZUM ABCDEFGHIJKLMN 3 A_Look
    Loop
  Angry:
    QZUC A 4 A_Wander
    QZUC B 4 A_Recoil(-1)
    QZUC CDEF 4 A_Look
    QZUC G 4 A_Wander
    QZUC H 4 A_Recoil(-1)
    QZUC IJKL 4 A_Look
    QZUC M 4 A_Wander
    QZUC N 4 A_Recoil(-1)
    QZUC OPQRS 4 A_Look
    Loop
  See:
    QZU0 B 4 A_Chase
    QZU2 ABCDEFGHIJKLMNOPQ 4 A_Chase
    Loop
  Melee:
  Missile:
    QZUM Z 0 A_Jump(256, "Missile1", "Missile2", "Missile3")
  Missile1:
    QZU0 C 4 A_facetarget
    QZU3 ABCDEFGHIJK 4 A_FaceTarget
    QZU3 K 0 A_playsound("Zthrow")
    QZU3 L 4 A_CustomMissile("ZombFlesh", 32)
    Goto See
  Missile2:
    QZU0 D 4 A_facetarget
    QZU4 ABCDEFGHIJKL 4 A_FaceTarget
    QZU4 L 0 A_playsound("Zthrow")
    QZU4 M 4 A_CustomMissile("ZombFlesh", 32)
    Goto See
  Missile3:
    QZU0 E 4 A_facetarget
    QZU5 ABCDEFGHIJ 4 A_FaceTarget
    QZU5 J 0 A_playsound("Zthrow")
    QZU5 K 4 A_CustomMissile("ZombFlesh", 32)
    Goto See
  Pain:
    QZU0 F 0 A_Jump(256, "Pain1", "Pain2", "Pain3")
  Pain1:
    QZU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QZU0 F 4 A_facetarget
    QZU6 A 3 A_Pain
    QZU6 BCDEFGHIJK 3
    QZU6 K 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain2:
    QZU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QZU0 G 4 A_facetarget
    QZU7 A 3 A_Pain
    QZU7 BCDEFGHIJKLMNOP 3
    QZU7 P 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain3:
    QZU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QZU0 H 4 A_facetarget
    QZU8 A 3 A_Pain
    QZU8 BCDEFGHIJKLM 3
    QZU8 M 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Death:
    QZU9 A 0 A_Jump(256,"Death1","Death2")
  Death1:
    QZU9 A 1 A_FaceTarget
    QZU9 A 2 A_Pain
    QZU9 A 0 A_ChangeFlag("NOPAIN", 1)
    QZU9 B 3 A_NoBlocking
    QZU9 CDEFGHIJ 3
    QZU9 J 0 A_Jump(14,9)
    QZU9 J 0 A_Jump(24,7)
    QZU9 J 0 A_Jump(34,5)
    QZU9 J 0 A_Jump(44,3)
    QZU9 J 0 A_Jump(64,1)
    QZU9 J 50
    QZU9 J 50
    QZU9 J 50
    QZU9 J 50
    QZU9 J 0 A_Playsound("Zombie/act")
    QZU9 KLMNOPQRSTUVWXYZ 4
    QZU9 "[" 4
    QZU9 "\" 1 A_SpawnItemEx("ZombRise",0,0,0)
    Stop    
  Death2:
    QZUA A 1 A_FaceTarget
    QZUA A 2 A_Pain
    QZUA A 0 A_ChangeFlag("NOPAIN", 1)
    QZUA B 3 A_NoBlocking
    QZUA CDEFGHIJK 3
    QZUA L 0 A_Jump(14,9)
    QZUA L 0 A_Jump(24,7)
    QZUA L 0 A_Jump(34,5)
    QZUA L 0 A_Jump(44,3)
    QZUA L 0 A_Jump(64,1)
    QZUA L 50
    QZUA L 50
    QZUA L 50
    QZUA L 50
    QZUA L 0 A_Playsound("Zombie/act")
    QZUA MNOPQRSTUVWXYZ 4
    QZUA "[\]" 4
    QZUB A 3
    QZUB A 1 A_SpawnItemEx("ZombRise",0,0,0)
    Stop 
  Death.ShellDMG:
    QZU9 A 0 A_JumpIfInTargetInventory("QPowerQuadDamage",1,"XDeath")
    Goto Death
  Death.ZombieBasher:
    QZU9 A 0 A_JumpIfCloser(50,"XDeath")
    QZU9 A 0 A_JumpIfInTargetInventory("QPowerQuadDamage",1,"XDeath")
    Goto death
  Pain.Pushed:
  Death.Hammer:
  Death.LavaShells:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("ZombHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_Scream
    Stop
  }
}

ACTOR QZombieRise : Qzombie
{
  +LOOKALLAROUND
}

ACTOR ZombFlesh
{
  Radius 4
  Height 9
  Health 40
  Damage (10)
  Speed 25
  Mass 0
  Scale 0.2
  PROJECTILE
  +CANBOUNCEWATER
  -NOGRAVITY
  ReactionTime 120
  +NOBLOCKMAP 
  +MISSILE 
  States
  {
  Spawn:
	ZFLS ABCDEFGHIJK 1 A_SpawnItemEx("GibBlood",0,0,0)
	Loop
   Death:
	ZFLS B 1 A_PlaySound ("ZMISS")
	Stop
   XDeath:
	ZFLS B 1 A_PlaySound ("ZHIT")
	Stop
   }
}

actor ZombSpawner1 : RandomSpawner replaces DeadDoomimp
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}


actor ZombSpawner2 : RandomSpawner replaces DeadCacodemon
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie", 255, 29
    DropItem "QMummy", 255, 1
}


actor ZombSpawner3 : RandomSpawner replaces DeadDemon
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie", 255, 49
    DropItem "QMummy", 255, 1
}


actor ZombSpawner4 : RandomSpawner replaces DeadLostSoul
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QMummy"
}


actor ZombSpawner5 : RandomSpawner replaces DeadShotgunguy
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}


actor ZombSpawner : RandomSpawner replaces DeadZombieman
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}

actor ZombSpawner6 : RandomSpawner replaces Brainstem
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}

actor ZombSpawner7 : RandomSpawner replaces Gibs
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}

actor ZombSpawner8 : RandomSpawner replaces SmallBloodPool
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}

actor ZombSpawner9 : RandomSpawner replaces ColonGibs
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QZombie"
}

actor ZombRise : RandomSpawner
{
    +FIXMAPTHINGPOS
    DropItem "QZombieRise"
}

ACTOR QMummy : QZombie
{
  Health 1000
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "hammer", 1
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Scale 0.30
  Obituary "%o was Mummified"
  States
  {
  Spawn:
    QMU0 A 0 A_JumpIfInventory("ColdBloodedKillah",1,"Angry")
    QMUM ABCDEFGHIJKLMN 3 A_Look
    Loop
  Angry:
    QMUC A 4 A_Wander
    QMUC B 4 A_Recoil(-1)
    QMUC CDEF 4 A_Look
    QMUC G 4 A_Wander
    QMUC H 4 A_Recoil(-1)
    QMUC IJKL 4 A_Look
    QMUC M 4 A_Wander
    QMUC N 4 A_Recoil(-1)
    QMUC OPQRS 4 A_Look
    Loop
  See:
    QMU0 B 4 A_Chase
    QMU2 ABCDEFGHIJKLMNOPQ 4 A_Chase
    Loop
  Melee:
  Missile:
    QMUM Z 0 A_Jump(256, "Missile1", "Missile2", "Missile3")
  Missile1:
    QMU0 C 4 A_facetarget
    QMU3 ABCDEFGHIJK 4 A_FaceTarget
    QMU3 K 0 A_playsound("Zthrow")
    QMU3 L 4 A_CustomMissile("MumFlesh", 32)
    Goto See
  Missile2:
    QMU0 D 4 A_facetarget
    QMU4 ABCDEFGHIJKL 4 A_FaceTarget
    QMU4 L 0 A_playsound("Zthrow")
    QMU4 M 4 A_CustomMissile("MumFlesh", 32)
    Goto See
  Missile3:
    QMU0 E 4 A_facetarget
    QMU5 ABCDEFGHIJ 4 A_FaceTarget
    QMU5 J 0 A_playsound("Zthrow")
    QMU5 K 4 A_CustomMissile("MumFlesh", 32)
    Goto See
  Pain:
    QMU0 F 0 A_Jump(256, "Pain1", "Pain2", "Pain3")
  Pain1:
    QMU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QMU0 F 4 A_facetarget
    QMU6 A 3 A_Pain
    QMU6 BCDEFGHIJK 3
    QMU6 K 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain2:
    QMU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QMU0 G 4 A_facetarget
    QMU7 A 3 A_Pain
    QMU7 BCDEFGHIJKLMNOP 3
    QMU7 P 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain3:
    QMU0 G 0 A_ChangeFlag("NOPAIN", 1)
    QMU0 H 4 A_facetarget
    QMU8 A 3 A_Pain
    QMU8 BCDEFGHIJKLM 3
    QMU8 M 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain.Pushed:
  Death:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("ZombHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_Scream
    Stop
  }
}

ACTOR MumFlesh : ZombFlesh
{
  Damage (random(17,29)*1)
  States
  {
   }
}

ACTOR rottweiler
{
  Game Doom
  SpawnID 4
  Health 25
  GibHealth 35
  PainChance 255
  Speed 15
  Radius 20
  Height 30
  Damage (Random(10,15)*1)
  DamageFactor "Dodge", 0.0
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  PainChance "Mine", 0
  Mass 99999999
  Monster
  Scale 0.3
  +FLOORCLIP
  +NOTARGETSWITCH
  +DONTGIB
  SeeSound "dog/sight"
  AttackSound "dog/melee"
  PainSound "dog/pain"
  DeathSound "dog/death"
  ActiveSound "dog/active"
  Obituary "%o was mauled by a Rottweiler"
  States
  {
  Spawn:
    DOG1 ABCDEFGHI 3 A_Look
    Loop
  Decide:
    DOG2 A 0 A_Jump(100,"Leap0")
  See:
    DOG2 ABCDEFGHIJKL 3 A_Chase
    DOG2 A 0 A_JumpIfCloser(200, "Decide")
    Loop
  Leap0:
    DOG3 A 0 A_CheckFloor("Leap")
    Goto see
  Leap:
    DOG3 AB 2 A_facetarget
    DOG3 CDE 2 A_Skullattack(10)
    DOG3 FGHI 3
    DOG3 I 0 A_Stop
    Goto see
  Melee:
    DOG4 ABCD 3 A_FaceTarget
    DOG4 E 3 A_CustomMeleeAttack(random(5,10)*1)
    DOG4 FGH 3 A_FaceTarget
    Goto see
  Pain:
    DOG5 A 0 A_ChangeFlag("NOPAIN", 1)
    DOG5 A 0 A_Jump (100, "Pain2")
    DOG5 A 3 A_pain
    DOG5 BCDEF 3
    DOG5 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain2:
    DOG6 A 3 A_pain
    DOG6 BCDEFGHIJKLMNOP 3
    DOG6 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    DOG7 A 0 A_Jump(256,"Death1","Death2")
  Death1:
    DOG7 A 3
    DOG7 B 3 A_Scream
    DOG7 C 3
    DOG7 D 3 A_NoBlocking
    DOG7 EFGH 3
    DOG7 I -1
    Stop
  Death2:
    DOG8 A 3
    TNT1 A 0 A_GiveInventory("DeathB",1)
    DOG8 B 3 A_Scream
    DOG8 C 3
    DOG8 D 3 A_NoBlocking
    DOG8 EFGH 3
    DOG8 I -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("dogHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    DOG7 I 0
    DOG7 I 0 A_JumpIfInventory("DeathB",1,"Raise2")
    DOG7 I 5
    DOG7 I 1 A_Die("Cannibal")
    Loop
  Raise2:
    DOG8 I 5
    DOG8 I 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    DOG7 I 0 A_Fall
    DOG7 I 0 A_JumpIFInventory("Counter",5,"Eaten")
    DOG7 I 0 A_GiveInventory("Counter",1)
    DOG7 I 2
    DOG7 I -1
    Stop
  Death.Cannibal2:
    DOG8 I 0 A_Fall
    DOG8 I 0 A_JumpIFInventory("Counter",5,"Eaten")
    DOG8 I 0 A_GiveInventory("Counter",1)
    DOG8 I 2
    DOG8 I -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("DogHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor DogSpawner : RandomSpawner replaces ZombieMan
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Rottweiler", 255, 1
    DropItem "Grunt", 255, 2
}

actor ShamblerSpawner : RandomSpawner replaces Archvile
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Shambler"
}

ACTOR Shambler
{
  Health 600
  GibHealth 60
  Radius 20
  Height 64
  Mass 99999999
  Speed 20
  MeleeRange 64
  PainChance 30
  MaxTargetRange 800
  Scale 0.5
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Mine", 0
  DamageFactor "Mine", 0
  Monster
  +FLOORCLIP
  +MISSILEMORE
  +MISSILEEVENMORE
  +DONTGIB
  +NORADIUSDMG
  SeeSound "Shambler/sight"
  PainSound "Shambler/pain"
  DeathSound "Shambler/death"
  ActiveSound "Shambler/active"
  Obituary "%o was smashed by a Shambler"
  States
  {
  Spawn:
   SHAM ABCDEFGHIJKLMNOPQ 4 A_Look
   Loop
  See:
   SHA2 ABCDEF 4 A_Chase
   Loop
  Melee:
   SHA0 A 0 A_Jump(256,"melee1","melee2")
  Melee1:
   SHA0 A 3 A_FaceTarget
   SHA0 A 0 A_CustomMeleeAttack(random(1,20)*1)
   SHA0 A 0 A_Recoil(-1)
   SHA3 A 4 A_playsound("Shambler/Swing")
   SHA3 A 0 A_CustomMeleeAttack(random(1,20)*1)
   SHA3 A 0 A_Recoil(-2)
   SHA3 BCDEF 4 A_FaceTarget
   SHA3 G 4 A_CustomMeleeAttack(random(1,20)*1, "Shambler/hit")
   SHA3 H 4 A_FaceTarget
   Goto see
  Melee2:
   SHA0 B 0 A_Jump(90,"Smash")
   SHA0 B 3 A_FaceTarget
   SHA0 B 0 A_Recoil(-1)
   SHA0 B 0 A_CustomMeleeAttack(random(1, 20)*1)
   SHA4 A 4 A_playsound("Shambler/Swing")
   SHA4 A 0 A_Recoil(-2)
   SHA4 A 0 A_CustomMeleeAttack(random(1, 20)*1)
   SHA4 BCDEF 4 A_FaceTarget
   SHA4 A 0 A_Recoil(-1)
   SHA4 G 4 A_CustomMeleeAttack(random(1, 20)*1, "Shambler/hit")
   SHA4 H 4 A_FaceTarget
   Goto See
  Smash:
   SHA0 C 4 A_FaceTarget
   SHA0 C 0 A_CustomMeleeAttack(random(1,40)*1)
   SHA5 A 0 A_Recoil(-1)
   SHA5 A 4 A_playsound("Shambler/smash")
   SHA5 A 0 A_CustomMeleeAttack(random(1,40)*1)
   SHA5 A 0 A_Recoil(-2)
   SHA5 BCDEFGH 4 A_FaceTarget
   SHA5 H 0 A_Recoil(-1)
   SHA5 I 4 A_CustomMeleeAttack(random(1,40)*1, "Shambler/hit")
   SHA5 JK 4 A_FaceTarget
   Goto See
  Missile:
   SHA6 A 2 A_FaceTarget
   SHA6 B 2 A_PlaySound("Shambler/magic")
   SHA6 C 2 A_FaceTarget
   SHA6 DME 5 Bright A_FaceTarget
   SHA6 F 0 A_CustomMissile("ShamblerBolt",40)
   SHA6 F 4 Bright A_CustomBulletAttack(0, 0, 1, Random(10,10)+0,ThunderPuff,800,CBAF_NORANDOM)
   SHA6 G 0 A_CustomMissile("LightningBolt",40)
   SHA6 G 4 Bright A_CustomBulletAttack(0, 0, 1, Random(10,10)+0,ThunderPuff,800,CBAF_NORANDOM)
   SHA6 H 0 A_CustomMissile("LightningBolt",40)
   SHA6 H 4 Bright A_CustomBulletAttack(0, 0, 1, Random(10,10)+0,ThunderPuff,800,CBAF_NORANDOM)
   SHA6 IJKL 3 A_FaceTarget
   Goto see
  Pain.Pushed:
   SHA7 A 0 A_ChangeFlag("NOPAIN", 1)
   SHA7 A 0 A_FaceTarget
   SHA7 A 0 ThrustThingZ(0,100,0,0)
   SHA7 A 0 ThrustThing(angle*256/360+128, 100, 0, 0)
   SHA7 A 3
   SHA7 B 3 A_Pain
   SHA7 CDEF 3
   SHA7 A 0 A_ChangeFlag("NOPAIN", 1)
   Goto see
  Pain:
   SHA7 A 0 A_ChangeFlag("NOPAIN", 1)
   SHA7 A 3
   SHA7 B 3 A_Pain
   SHA7 CDEF 3
   SHA7 A 0 A_ChangeFlag("NOPAIN", 1)
   Goto see
  Death:
   SHA8 A 0 A_ChangeFlag("NOPAIN", 1)
   SHA8 AB 5
   SHA8 C 5 A_Scream
   SHA8 DEFGHI 5
   SHA8 J 5 A_NoBlocking
   SHA8 K -1
   Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("ShamblerHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    TNT1 A 1 A_BossDeath
    Stop
  Raise:
    SHA8 K 5
    SHA8 K 1 A_Die("Cannibal")
    Loop
  Death.Cannibal:
    SHA8 K 0 A_Fall
    SHA8 K 0 A_JumpIFInventory("Counter",5,"Eaten")
    SHA8 K 0 A_GiveInventory("Counter",1)
    SHA8 K 2
    SHA8 K -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("ShamblerHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor VoreSpawner : RandomSpawner replaces BaronofHell
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Vore"
}

ACTOR Vore : BaronofHell
{
  Game Doom
  SpawnID 111
  Health 400
  GibHealth 90
  Radius 24
  Height 50
  Mass 99999999
  Speed 3
  PainChance 10
  Monster
  Species Vore
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Mine", 0
  +QUICKTORETALIATE
  +FLOORCLIP
  +NOTARGET
  +DONTGIB
  Scale 0.4
  SeeSound "vore/sight"
  PainSound "vore/pain"
  DeathSound "vore/death"
  ActiveSound "vore/active"
  Obituary "%o was exploded by a Vore"
  States
  {
  Spawn:
    VORE A 10 A_Look
    Loop
  See:
    VORE XYZ 3 A_Chase
    VOR2 ABCDEFGHI 3 A_Chase
    Loop
  Melee:
  Missile:
    VORE A 0 A_Playsound("Vore/rage")
    VORE ABCDEFGH 3 A_FaceTarget
    VORE I 3 A_CustomMissile("VorePod", 40)
    VORE JK 3 A_FaceTarget
    goto see
  Pain.Pushed:
    VORE L 0 A_ChangeFlag("NOPAIN", 1)
    VORE L 0 A_FaceTarget
    VORE L 0 ThrustThingZ(0,100,0,0)
    VORE L 0 ThrustThing(angle*256/360+128, 100, 0, 0)
    VORE L 3 A_Pain
    VORE MNOP 3
    VORE P 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain:
    VORE L 0 A_ChangeFlag("NOPAIN", 1)
    VORE L 3 A_Pain
    VORE MNOP 3
    VORE P 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    VORE Q 0 A_ChangeFlag("NOPAIN", 1)
    VORE Q 3 A_Scream
    VORE RST 3
    VORE U 3 A_NoBlocking
    VORE V 3
    VORE W -1 A_Bossdeath
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("VoreHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    VORE W 5
    VORE W 1 A_Die("Cannibal")
    Loop
  Death.Cannibal:
    VORE W 0 A_Fall
    VORE W 0 A_JumpIFInventory("Counter",5,"Eaten")
    VORE W 0 A_GiveInventory("Counter",1)
    VORE W 2
    VORE W -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("VoreHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

Actor Vorepod
{
  Radius 3
  Height 4
  Speed 12
  Damage (0)
  Projectile
  +SeekerMissile
  SeeSound "Vore/melee"
  DeathSound "Explode"
  Scale 0.4
  Decal RevenantScorch
  States
  {
  Spawn:
    VBAL A 0 Bright A_SpawnItemEx("VorepodTrail")
    VBAL A 1 Bright A_Tracer
    VBAL B 0 Bright A_SpawnItemEx("VorepodTrail")
    VBAL B 1 Bright A_Tracer
    VBAL C 0 Bright A_SpawnItemEx("VorepodTrail")
    VBAL C 1 Bright A_Tracer
    VBAL D 0 Bright A_SpawnItemEx("VorepodTrail")
    VBAL D 1 Bright A_Tracer
    Loop
  Death:
    MISL BBBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 4 Bright A_Explode(40, 90)
    MISL DEFG 4 Bright
    Stop
  }
}

actor ShottySpawner : RandomSpawner replaces Shotgunguy
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Grunt"
}

ACTOR Grunt
{
  Health 30
  GibHealth 35
  Radius 20
  Height 56
  Mass 99999999
  Speed 8
  PainChance 255
  Monster
  Scale 0.28
  +FLOORCLIP
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Mine", 0
  SeeSound "grunt/sight"
  AttackSound "shotguy/attack"
  PainSound "grunt/pain"
  DeathSound "grunt/death"
  ActiveSound "grunt/active"
  Obituary "%o was shot by a Grunt"
  States
  {
  Spawn:
    GNT1 ABCDEFGH 4 A_Look
    Loop
  See:
    GNT2 ABCDEFGH 4 A_Chase
    Loop
  Missile:
    GNT3 A 6 A_FaceTarget
    GNT3 BCD 4 A_FaceTarget
    GNT3 E 3 A_CustomBulletAttack(22.5,0,4,random(2,2)*1,"QuakePuff",0)
    GNT3 FGHI 4
    Goto see
  Pain:
    GNT3 A 0 A_Jump(256,"Pain1","Pain2","Pain3")
  Pain1:
    GNT4 A 0 A_ChangeFlag("NOPAIN", 1)
    GNT4 A 4 A_Pain
    GNT4 BCDEF 4
    GNT4 F 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    GNT5 A 0 A_ChangeFlag("NOPAIN", 1)
    GNT5 A 4 A_Pain
    GNT5 BCDEFGHIJKLMN 4
    GNT5 N 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain3:
    GNT6 A 0 A_ChangeFlag("NOPAIN", 1)
    GNT6 A 4 A_Pain
    GNT6 BCDEFGHIJKLM 4
    GNT6 M 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    GNT7 A 0 A_Jump(256,"Death1","Death2")
  Death1:
    GNT7 A 4
    TNT1 A 0 A_SpawnItemEx ("ShellPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    GNT7 B 4 A_Scream
    GNT7 C 4 A_Fall
    GNT7 DEFGHI 4
    GNT7 J -1
    Stop
  Death2:
    GNT8 A 4
    TNT1 A 0 A_GiveInventory("DeathB",1)
    TNT1 A 0 A_SpawnItemEx ("ShellPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    GNT8 B 4 A_Scream
    GNT8 C 4 A_Fall
    GNT8 DEFGHIJ 4
    GNT8 K -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("GruntHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    GNT7 J 0
    GNT7 J 0 A_JumpIfInventory("DeathB",1,"Raise2")
    GNT7 J 5
    GNT7 J 1 A_Die("Cannibal")
    Loop
  Raise2:
    GNT8 K 5
    GNT8 K 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    GNT7 J 0 A_Fall
    GNT7 J 0 A_JumpIFInventory("Counter",5,"Eaten")
    GNT7 J 0 A_GiveInventory("Counter",1)
    GNT7 J 2
    GNT7 J -1
    Stop
  Death.Cannibal2:
    GNT8 K 0 A_Fall
    GNT8 K 0 A_JumpIFInventory("Counter",5,"Eaten")
    GNT8 K 0 A_GiveInventory("Counter",1)
    GNT8 K 2
    GNT8 K -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("GruntHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor KnightSpawner : RandomSpawner replaces Demon
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "QKnight"
}

ACTOR QKnight
{
  Game Doom
  SpawnID 8
  Health 75
  GibHealth 40
  PainChance 255
  Speed 20
  Radius 24
  Height 56
  Mass 99999999
  DamageFactor "Dodge", 0.0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Monster
  Scale 0.3
  +FLOORCLIP
  +NOTARGETSWITCH
  +DONTGIB
  SeeSound "QKnight/sight"
  AttackSound "QKnight/melee"
  PainSound "QKnight/pain"
  DeathSound "QKnight/death"
  ActiveSound "QKnight/active"
  Obituary "%o was slashed by a Knight"
  States
  {
  Spawn:
    KNT1 ABCDEFGHI 4 A_Look
    Loop
  See:
    KNT2 A 4 A_Chase
    KNT2 A 0 A_JumpIfCloser(80,"slash")
    KNT2 B 4 A_Chase
    KNT2 B 0 A_JumpIfCloser(80,"slash")
    KNT2 C 4 A_Chase
    KNT2 C 0 A_JumpIfCloser(80,"slash")
    KNT2 D 4 A_Chase
    KNT2 D 0 A_JumpIfCloser(80,"slash")
    KNT2 E 4 A_Chase
    KNT2 E 0 A_JumpIfCloser(80,"slash")
    KNT2 F 4 A_Chase
    KNT2 F 0 A_JumpIfCloser(80,"slash")
    KNT2 G 4 A_Chase
    KNT2 G 0 A_JumpIfCloser(80,"slash")
    KNT2 H 4 A_Chase
    KNT2 H 0 A_JumpIfCloser(80,"slash")
    Loop
  Slash:
    KNT3 A 0
    KNT3 A 1 A_PlaySound("QKnight/Swing1")
    KNT3 A 2 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 B 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    KNT3 C 3 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 D 3 A_FaceTarget
    KNT3 E 3 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 F 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    KNT3 G 3 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 H 3 A_FaceTarget
    KNT3 I 3 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 J 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    KNT3 K 3 A_CustomMeleeAttack(random(1,5)*1)
    KNT3 K 0 A_GiveInventory("KnightSlashChecker",1)
    Goto see
  Melee:
    KNT4 A 1 A_PlaySound("QKnight/Swing2")
    KNT4 A 2 A_CustomMeleeAttack(random(1,3)*1)
    TNT1 A 0 A_Recoil(-1)
    KNT4 B 3 A_FaceTarget
    KNT4 C 3 A_CustomMeleeAttack(random(1,3)*1)
    KNT4 D 3 A_FaceTarget
    KNT4 E 3 A_CustomMeleeAttack(random(1,3)*1)
    TNT1 A 0 A_Recoil(-1)
    KNT4 F 3 A_FaceTarget
    KNT4 G 3 A_CustomMeleeAttack(random(1,3)*1)
    KNT4 H 3 A_FaceTarget
    KNT4 I 3 A_CustomMeleeAttack(random(1,3)*1)
    TNT1 A 0 A_Recoil(-1)
    KNT4 J 3 A_FaceTarget
    KNT4 K 3 A_CustomMeleeAttack(random(1,3)*1)
    Goto see
  Pain:
    KNT5 A 0 A_Jump(200,"pain1","pain2")
  Pain1:
    KNT5 A 0 A_ChangeFlag("NOPAIN", 1)
    KNT5 A 4
    KNT5 B 4 A_Pain
    KNT5 C 4
    KNT5 C 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    KNT6 A 0 A_ChangeFlag("NOPAIN", 1)
    KNT6 A 4 A_Recoil(-2)
    KNT6 B 4 A_Pain
    KNT6 CDEFGHIJK 4
    KNT6 K 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    KNT7 A 0 A_Jump(256,"death1","death2")
  Death1:
    KNT7 A 4
    KNT7 B 4 A_Scream
    KNT7 C 4 A_NoBlocking
    KNT7 DEFGHI 4
    KNT7 J -1
    Stop
  Death2:
    KNT8 A 4
    TNT1 A 0 A_GiveInventory("DeathB",1)
    KNT8 B 4 A_Scream
    KNT8 C 4 A_NoBlocking
    KNT8 DEFGHIJ 4
    KNT8 K -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("KnightHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    KNT7 J 0
    KNT7 J 0 A_JumpIfInventory("DeathB",1,"Raise2")
    KNT7 J 5
    KNT7 J 1 A_Die("Cannibal")
    Loop
  Raise2:
    KNT8 K 5
    KNT8 K 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    KNT7 J 0 A_Fall
    KNT7 J 0 A_JumpIFInventory("Counter",5,"Eaten")
    KNT7 J 0 A_GiveInventory("Counter",1)
    KNT7 J 2
    KNT7 J -1
    Stop
  Death.Cannibal2:
    KNT8 K 0 A_Fall
    KNT8 K 0 A_JumpIFInventory("Counter",5,"Eaten")
    KNT8 K 0 A_GiveInventory("Counter",1)
    KNT8 K 2
    KNT8 K -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("KnightHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor KnightSlashChecker: Ammo 
{
	Inventory.MaxAmount 1
}

ACTOR Fiend
{
  Health 300
  GibHealth 80
  PainChance 40
  Speed 16
  Radius 24
  Height 56
  Damage (Random(40,80))
  scale 0.3
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Species Fiend
  Mass 99999999
  Monster
  +FLOORCLIP
  +NOTARGETSWITCH
  +DONTGIB
  SeeSound "Fiend/sight"
  PainSound "Fiend/pain"
  DeathSound "Fiend/death"
  ActiveSound "Fiend/active"
  Obituary "%o was eviscerated by a Fiend"
  States
  {
  Spawn:
    FIN1 ABCDEFGHIJKLM 3 A_Look
    Loop
  Decide:
    FIN3 A 0 A_Jump(100,"Leap0")
  See:
    FIN3 A 0 A_JumpIfInventory("LeapCounter",1,"Land")
    FIN2 ABCDEF 3 A_Chase
    FIN3 A 0 A_JumpIfCloser(600, "Decide")
    Loop
  Leap0:
    FIN3 A 0 A_CheckFloor("Leap")
    Goto see
  Leap:
    FIN3 A 0
    FIN3 A 0 A_ChangeFlag("NOPAIN", 1)
    FIN3 A 0 A_PlaySound("Fiend/Jump")
    FIN3 A 0 A_GiveInventory("LeapCounter",1)
    FIN3 AB 2 A_facetarget
    FIN3 B 0 A_ChangeVelocity(0,0,4)
    FIN3 B 0 A_Skullattack
    FIN3 CDE 2
  Jump:
    FIN3 F 10
    FIN3 F 0 A_ChangeFlag("Nogravity",0)
  Falling:
    FIN3 F 10
    FIN3 F 0 A_CheckFloor("Land")
    Loop
  Land:
    FIN3 F 0 A_Stop
    FIN3 GHIJ 2
    FIN3 I 0 A_Playsound("Fiend/land")
    FIN3 KL 2
    FIN3 A 0 A_TakeInventory("Leapcounter",1)
    FIN3 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Melee:
    FIN4 ABCDEF 3 A_FaceTarget
    FIN4 G 3 A_CustomMeleeAttack(random(11,17)*1,"Fiend/munch")
    TNT1 A 0 A_Recoil(-2)
    FIN4 HIJKL 3 A_FaceTarget
    FIN4 M 3 A_CustomMeleeAttack(random(11,17)*1,"Fiend/munch")
    FIN4 NO 3
    Goto see
  Pain.Pushed:
    FIN5 A 0 A_ChangeFlag("NOPAIN", 1)
    FIN5 A 0 A_FaceTarget
    FIN5 A 0 ThrustThingZ(0,100,0,0)
    FIN5 A 0 ThrustThing(angle*256/360+128, 100, 0, 0) 
    FIN5 A 3 A_pain
    FIN5 BCDEF 3
    FIN5 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain:
    FIN5 A 0 A_ChangeFlag("NOPAIN", 1)
    FIN5 A 3 A_pain
    FIN5 BCDEF 3
    FIN5 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    FIN6 A 3
    FIN6 B 3 A_Scream
    FIN6 C 3
    FIN6 D 3 A_NoBlocking
    FIN6 EFGH 3
    FIN6 I -1
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("FiendHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    FIN6 I 5
    FIN6 I 1 A_Die("Cannibal")
    Loop
  Death.Cannibal:
    FIN6 I 0 A_Fall
    FIN6 I 0 A_JumpIFInventory("Counter",5,"Eaten")
    FIN6 I 0 A_GiveInventory("Counter",1)
    FIN6 I 2
    FIN6 I -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("FiendHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor LeapCounter: Ammo 
{
	Inventory.MaxAmount 1
}

actor FiendSpawner : RandomSpawner replaces Hellknight
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Fiend", 255, 3
    DropItem "Gremlin", 255, 1
}

ACTOR Spawn
{
  Health 80
  PainChance 0
  Speed 3
  Radius 16
  Height 56
  Mass 99999999
  MONSTER
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Mine", 0
  Species tarbaby
  Scale 0.3
  +FloorClip 
  +Faster 
  +FastMelee 
  +MissileMore 
  +MissileEvenMore
  +NOINFIGHTING
  +THRUSPECIES
  MinMissileChance 1
  +DontFall 
  +NoIceDeath
  Damage (Random(11,20)*1)
  DamageFactor "Slime", 0
  SeeSound "spawn/see"
  DeathSound "spawn/die"
  Obituary "%o was slimed by a Spawn"
  states
  {
  Spawn:
    SPWN A 10 A_Look
    Loop
  See:
    SPW2 A 0 A_JumpIfInventory("LeapCounter",1,"Land")
    SPW2 ABCDEFGHIJKLMNOPQRSTUVWXY 1 A_Chase
    Loop
  Melee:
    SPW3 AB 2 A_facetarget
    SPW3 B 0 A_CustomMeleeAttack(random(11,20)*1, "Spawn/hit") 
    SPW3 C 0  A_Playsound("Spawn/land")
    SPW3 C 0 ThrustThing(0,0,8)
    SPW3 CDEF 2 A_Recoil(4)
    SPW3 GHIJ 1
    SPW3 EDF 2
    Goto see
  Missile:
    SPW3 A 0 A_CheckFloor("Leap")
    Goto see
  Leap:
    SPW3 A 0
    SPW3 A 0 A_GiveInventory("LeapCounter",1)
    SPW3 A 0 A_FaceTarget
    SPW3 AB 2 A_CustomMeleeAttack(random(11,20)*1, "Spawn/hit") 
    SPW3 A 0 A_Skullattack
    SPW3 C 0  A_Playsound("Spawn/land")
    SPW3 CDEF 2 A_CustomMeleeAttack(random(11,20)*1, "Spawn/hit") 
  Jump:
    SPW3 GHIJ 2 A_CustomMeleeAttack(random(11,20)*1, "Spawn/hit") 
    FIN3 F 0 A_ChangeFlag("Nogravity",0)
  Falling:
    SPW3 GHIJ 2 A_CustomMeleeAttack(random(11,20)*1, "Spawn/hit") 
    SPW3 F 0 A_CheckFloor("Land")
    Loop
  Land:
    SPW3 F 0 A_Stop
    SPW3 EDF 3
    SPW3 A 0 A_TakeInventory("Leapcounter",1)
    SPW3 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain.Pushed:
  Death:
    SPWN K 0
    SPWN K 0 A_NoGravity
    SPWN K 4 A_Scream
    TNT1 A 0 A_SpawnItemEx("SpawnExplosion",0,0,40)
    TNT1 A 1 Bright A_Explode(120,90)
    TNT1 AAAAA 1 Bright A_SpawnItemEx("SPAWNparticles",0,0,40)
    TNT1 A 4 A_NoBlocking
    Stop
  }
}

ACTOR SpawnExplosion
{
  Radius 3
  Height 2
  Speed 0
  Damage 0
  Projectile
  +THRUACTORS
  -Solid
  States
  {
  Spawn:
    MISL B 0
    MISL B 4 Bright
  Death:
    MISL CDEFG 4 Bright
    Stop
  }
}

actor EnforcerSpawner : RandomSpawner replaces Doomimp
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Enforcer"
}

ACTOR Enforcer
{
  Health 80
  GibHealth 35
  Radius 20
  Height 56
  Mass 99999999
  Speed 8
  PainChance 255
  Monster
  Scale 0.3
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  +FLOORCLIP
  +DONTGIB
  SeeSound "enforcer/sight"
  PainSound "enforcer/pain"
  DeathSound "enforcer/death"
  ActiveSound "enforcer/active"
  Obituary "%o was blasted by a Enforcer"
  States
  {
  Spawn:
    ENF1 ABCDEFG 4 A_Look
    Loop
  See:
    ENF2 ABCDEFGH 4 A_Chase
    Loop
  Missile:
    ENF3 A 6 A_FaceTarget
    ENF3 BCDE 4 A_FaceTarget
    ENF3 F 3 A_CustomMissile("EnforcerLaser",35)
    ENF3 GHI 4 A_FaceTarget
    ENF3 F 3 A_CustomMissile("EnforcerLaser",35)
    ENF3 GHIJ 4
    Goto see
  Pain:
    ENF3 A 0 A_Jump(256,"Pain1","Pain2","Pain3","Pain4")
  Pain1:
    ENF4 A 0 A_ChangeFlag("NOPAIN", 1)
    ENF4 A 4 A_Pain
    ENF4 BCD 4
    ENF4 D 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    ENF5 A 0 A_ChangeFlag("NOPAIN", 1)
    ENF5 A 4 A_Pain
    ENF5 BCDE 4
    ENF5 E 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain3:
    ENF6 A 0 A_ChangeFlag("NOPAIN", 1)
    ENF6 A 4 A_Pain
    ENF6 BCDEFGH 4
    ENF6 H 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain4:
    ENF7 A 0 A_ChangeFlag("NOPAIN", 1)
    ENF7 A 4 A_Pain
    ENF7 BCDEFGHIJKLMNOPQRS 4
    ENF7 S 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    ENF8 A 0 A_Jump(256,"Death1","Death2")
  Death1:
    ENF8 A 4
    TNT1 A 0 A_SpawnItemEx ("CellPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    ENF8 B 4 A_Scream
    ENF8 C 4 A_Fall
    ENF8 DEFGHIJKLMN 4
    ENF8 N -1
    Stop
  Death2:
    ENF9 A 4
    TNT1 A 0 A_GiveInventory("DeathB",1)
    TNT1 A 0 A_SpawnItemEx ("CellPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    ENF9 B 4 A_Scream
    ENF9 C 4 A_Fall
    ENF9 DEFGHI 4
    ENF9 J -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("EnforcerHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    ENF8 N 0
    ENF8 N 0 A_JumpIfInventory("DeathB",1,"Raise2")
    ENF8 N 5
    ENF8 N 1 A_Die("Cannibal")
    Loop
  Raise2:
    ENF9 J 5
    ENF9 J 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    ENF8 N 0 A_Fall
    ENF8 N 0 A_JumpIFInventory("Counter",5,"Eaten")
    ENF8 N 0 A_GiveInventory("Counter",1)
    ENF8 N 2
    ENF8 N -1
    Stop
  Death.Cannibal2:
    ENF9 J 0 A_Fall
    ENF9 J 0 A_JumpIFInventory("Counter",5,"Eaten")
    ENF9 J 0 A_GiveInventory("Counter",1)
    ENF9 J 2
    ENF9 J -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("EnforcerHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

ACTOR EnforcerLaser
{
  Radius 3
  Height 2
  Speed 25
  Damage (15)
  Projectile
  SeeSound "Enforcer/Attack"
  DeathSound "Enforcer/Hit"
  +NOEXTREMEDEATH
  +SKYEXPLODE
  States
  {
  Spawn:
    BAL7 A 1 Bright
    Loop
  Death:
    ENLZ CBA 3 Bright
    Stop
  }
}

ACTOR SpikeMine
{
  Health 100
  Radius 16
  Height 56
  Mass 99999999
  Speed 8
  Scale 0.4
  PainChance 256
  DamageFactor "Nails", 1000
  DamageFactor "lavanails", 1000
  DamageFactor "lavashells", 1.3
  DamageFactor "Grenade", 0.0
  DamageFactor "RocketDamage", 0.0
  PainChance "Pushed", 256
  PainChance "Mine", 0
  DamageFactor "Mine", 0
  Species tarbaby
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  Monster
  +FLOAT
  +NOGRAVITY
  +MISSILEMORE
  +DONTFALL
  +NOICEDEATH
  +NORADIUSDMG
  +LOOKALLAROUND
  +NOINFIGHTING
  DeathSound "explode"
  Obituary "%o was blasted by a spike mine"
  States
  {
  Spawn:
    SPKM ABCDEFGHI 3 A_Look
    Loop
  See:
    SPKM A 3 A_Chase
    SPKM A 0 A_Playsound("mine/active")
    SPKM BCDEFHIABCDEFHI 3 A_Chase
    Loop
  Melee:
  Pain.Pushed:
  Death:
    TNT1 A 0
    TNT1 A 0 A_Scream
    TNT1 A 0 A_Explode(200,100)
    MISL BBBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

actor SpikeMineSpawner : RandomSpawner replaces LostSoul
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "SpikeMine", 255, 1
    DropItem "Spawn", 255, 9
}

actor DoubleSpawner : RandomSpawner replaces Commanderkeen
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "doppelganger"
}

ACTOR Doppelganger
{
  Speed 15
  Health 100
  Radius 16
  Height 56
  Mass 100
  Gravity 0.8
  Scale 0.25
  MONSTER
  PainChance 255
  +NOTARGETSWITCH
  +LOOKALLAROUND
  +DONTGIB
  PainChance "DDamage", 0
  DamageFactor "DDamage", 0
  DamageFactor "Dodge", 1
  DamageFactor "none", 0.7
  DamageFactor "nails", 0.7
  DamageFactor "BFGSplash", 0.7
  DamageFactor "lavanails", 1.0
  DamageFactor "lavashells", 1.0
  DamageFactor "Grenade", 0.7
  DamageFactor "RocketDamage", 0.7
  DamageFactor "hammer", 0.7
  DeathSound "Player/Death"
  PainSound "Player/Pain"
  Obituary "%o was fragged"
  States
  {
  Spawn:
    DUP1 ABCDE 4 A_Look
    Loop
  See:
    DUP2 A 0 A_AlertMonsters
    DUP2 A 0 A_Jump(128,"See2")
    DUP2 ABCDEF 4 A_Chase
    Loop
  Jump:
    DUP2 A 0
    DUP2 A 0 A_ChangeVelocity(0,0,8) 
    DUP2 A 0 A_PlaySound("Player/Jump")
    DUP2 ABCDEF 4 A_FastChase
  See2:
    DUP2 A 0 A_Jump(128,"See")
    DUP2 A 0 A_Jump(50,"Jump")
    DUP2 ABCDEF 4 A_FastChase
    Loop
  Missile:
    DUP2 A 0 A_JumpIfCloser(300,"BoomStick")
    DUP2 A 0 A_Jump(256,"NailGun","HardBlows")
  BoomStick:
    DUP3 A 4 
    DUP3 A 0 A_PlaySound("SSG/use")
    DUP3 B 4 BRIGHT A_CustomBulletAttack(10, 7, 14, random(4,4)*1, "DoublePuff")
    DUP3 CDEF 4 
    Goto See
  HardBlows:
    DUP3 A 0 A_Jump(40,"Rocket","Lasers")
  NailGun:
    DU3B A 0
    DU3B A 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,-4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,-4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,-4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,4)
    DU3B B 2 A_FaceTarget
    DU3B B 0 A_PlaySound("Nailgun/fire")
    DU3B A 2 BRIGHT A_CustomMissile("NailWeak", 35,-4)
    DU3B B 2 A_FaceTarget
    Goto See
  Rocket:
    DU3C A 0 A_FaceTarget
    DU3C A 3 BRIGHT A_CyberAttack
    DU3C BCDEF 4
    Goto See
  Lasers:
    DU3D A 0 A_CustomMissile("Laser1", 35,3)
    DU3D A 0 A_PlaySound("Armagon/Laser")
    DU3D A 0 A_FaceTarget
    DU3D A 2 BRIGHT A_CustomMissile("Laser1", 35,-3)
    DU3D B 0 A_PlaySound("Armagon/Laser")
    DU3D B 0 A_FaceTarget
    DU3D B 2 BRIGHT A_CustomMissile("Laser1", 41)
    DU3D A 0 A_CustomMissile("ArmagonLaser", 35,3)
    DU3D A 0 A_PlaySound("Armagon/Laser")
    DU3D A 0 A_FaceTarget
    DU3D A 2 BRIGHT A_CustomMissile("Laser1", 35,-3)
    DU3D B 0 A_PlaySound("Armagon/Laser")
    DU3D B 0 A_FaceTarget
    DU3D B 2 BRIGHT A_CustomMissile("Laser1", 41)
    DU3D A 0 A_CustomMissile("ArmagonLaser", 35,3)
    DU3D A 0 A_PlaySound("Armagon/Laser")
    DU3D A 0 A_FaceTarget
    DU3D A 2 BRIGHT A_CustomMissile("Laser1", 35,-3)
    DU3D B 0 A_PlaySound("Armagon/Laser")
    DU3D B 0 A_FaceTarget
    DU3D B 2 BRIGHT A_CustomMissile("Laser1", 41)
    DU3D A 0 A_CustomMissile("ArmagonLaser", 35,3)
    DU3D A 0 A_PlaySound("Armagon/Laser")
    DU3D A 0 A_FaceTarget
    DU3D A 2 BRIGHT A_CustomMissile("Laser1", 35,-3)
    DU3D B 0 A_PlaySound("Armagon/Laser")
    DU3D B 0 A_FaceTarget
    DU3D B 2 BRIGHT A_CustomMissile("Laser1", 41)
    DU3D A 0 A_CustomMissile("ArmagonLaser", 35,3)
    DU3D A 0 A_PlaySound("Armagon/Laser")
    DU3D A 0 A_FaceTarget
    DU3D A 2 BRIGHT A_CustomMissile("Laser1", 35,-3)
    DU3D B 0 A_PlaySound("Armagon/Laser")
    DU3D B 0 A_FaceTarget
    DU3D B 2 BRIGHT A_CustomMissile("Laser1", 41)
    Goto See
  Melee:
    DUP3 A 0 A_Jump(256,"Axe1","Axe2","Axe3","Axe4")
  Axe1:
    DAXE A 2 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    DAXE A 0 A_PlaySound("AXE/SWING")
    DAXE B 2 A_CustomMeleeAttack (Random(20,20)+0,"","", BFGSplash)
    DAXE CDEF 2 A_FaceTarget
    Goto See
  Axe2:
    DAXE G 2 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    DAXE A 0 A_PlaySound("AXE/SWING")
    DAXE H 2 A_CustomMeleeAttack (Random(20,20)+0,"","", BFGSplash)
    DAXE IJKL 2 A_FaceTarget
    Goto See
  Axe3:
    DAXE M 2 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    DAXE A 0 A_PlaySound("AXE/SWING")
    DAXE N 2 A_CustomMeleeAttack (Random(20,20)+0,"","", BFGSplash)
    DAXE OPQR 2 A_FaceTarget
    Goto See
  Axe4:
    DAXE S 2 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    DAXE A 0 A_PlaySound("AXE/SWING")
    DAXE T 2 A_CustomMeleeAttack (Random(20,20)+0,"","", BFGSplash)
    DAXE UVWX 2 A_FaceTarget
    Goto See 
  Pain:
    DUP4 A 0
    DUP4 A 0 A_Pain
    DUP4 ABCDEF 3 A_Chase("","")
    Goto See
  Pain.Dodge:
    DUP2 A 0
    DUP2 A 1 A_Jump(256,"DodgeRight","DodgeLeft")
    Goto see
  DodgeRight:
    DUP2 A 0
    DUP2 A 0 A_FaceTarget
    DUP2 A 0 HealThing(1)
    DUP2 A 1 ThrustThing(angle*256/360+64, 15, 0, 0)
    Goto see
  DodgeLeft:
    DUP2 A 0
    DUP2 A 0 HealThing(1)
    DUP2 A 0 A_FaceTarget
    DUP2 A 1 ThrustThing(angle*256/360+192, 15, 0, 0)
    Goto see
  Pain.Pushed:
    DUP4 A 0
    DUP4 A 0 A_Pain
    DUP4 A 0 A_FaceTarget
    DUP4 A 0 ThrustThingZ(0,100,0,0)
    DUP4 A 0 ThrustThing(angle*256/360+128, 100, 0, 0)
    DUP4 ABCDEF 3
    Goto See
  Pain.Fire:
    DUP4 A 0
    DUP4 A 0 A_PlaySound("Player/Burn")
    DUP4 ABCDEF 3 A_Chase("","")
    Goto See
  Pain.Hammer:
  Pain.BFGSplash:
    DUP4 A 0
    DUP4 A 0 A_PlaySound("Player/cut")
    DUP4 ABCDEF 3 A_Chase("","")
    Goto See
  Death:
    DUP5 A 0 A_Jump(256,"death1","death2","death3","death4","death5")
  Death1:
    DUP5 A 3
    DUP5 B 3 A_Scream
    DUP5 C 3 A_NoBlocking
    DUP5 DEFGHIJ 3
    TNT1 A 0 A_SpawnItemEx ("DoubleDrop", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    DUP5 K -1 A_KeenDie
    Stop
  Death2:
    DUP6 A 3
    DUP6 B 3 A_Scream
    DUP6 C 3 A_NoBlocking
    DUP6 DEFGH 3
    TNT1 A 0 A_SpawnItemEx ("DoubleDrop", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    DUP6 I -1 A_KeenDie
    Stop
  Death3:
    DUP7 A 3
    DUP7 B 3 A_Scream
    DUP7 C 3 A_NoBlocking
    DUP7 DEFGHIJKLMN 3
    TNT1 A 0 A_SpawnItemEx ("DoubleDrop", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    DUP7 O -1 A_KeenDie
    Stop
  Death4:
    DUP8 A 3
    DUP8 B 3 A_Scream
    DUP8 C 3 A_NoBlocking
    DUP8 DEFGH 3
    TNT1 A 0 A_SpawnItemEx ("DoubleDrop", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    DUP8 I -1 A_KeenDie
    Stop
  Death5:
    DUP9 A 3
    DUP9 B 3 A_Scream
    DUP9 C 3 A_NoBlocking
    DUP9 DEFGH 3
    TNT1 A 0 A_SpawnItemEx ("DoubleDrop", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    DUP9 I -1 A_KeenDie
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("PlayerHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    TNT1 A 1 A_KeenDie
    Stop
  Death.Telefrag:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("PlayerHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("Player/Telefrag")
    TNT1 A 1 A_KeenDie
    Stop
  }
}

ACTOR DoublePuff : BulletPuff
{
  DamageType DDamage
  States
  {
  }
}

actor ScragSpawner : RandomSpawner replaces cacodemon
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Scrag"
}

ACTOR Scrag
{
  Health 80
  GibHealth 40
  PainChance 128
  Speed 16
  Radius 31
  Height 56
  Damage 10
  Mass 99999999
  Scale 0.3
  Monster
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  +FLOAT
  +NOGRAVITY
  +DONTGIB
  SeeSound "wiz/sight"
  PainSound "wiz/pain"
  DeathSound "wiz/death"
  ActiveSound "wiz/active"
  Obituary "%o was scragged by a Scrag"
  States
  {
  Spawn:
    WIZ1 ABCDEFGHIJKLMNO 3 A_Look
    Loop
  See:
    WIZ2 ABCDEFGHIJKLMN 3 A_Chase
    Loop
  Missile:
    WIZ3 ABCDEF 3 A_FaceTarget
    WIZ3 F 0 A_PLaySound("Wiz/attack")
    WIZ3 G 3 A_CustomMissile("WizardAcid",50)
    WIZ3 HJKLMLKJH 3 A_FaceTarget
    WIZ3 I 3 A_CustomMissile("WizardAcid",50)
    WIZ3 HGFEDCBA 3
    Goto see
  Pain:
    WIZ4 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ4 A 3 A_pain
    WIZ4 BCD 3
    WIZ4 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ5 A 3
    WIZ5 B 3 A_Scream
    WIZ5 C 3
    WIZ5 D 3 A_NoBlocking
    WIZ5 EFG 3
    WIZ5 H -1 A_SetFloorClip
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("WizardHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    WIZ5 H 5
    WIZ5 H 1 A_Die("Cannibal")
    Loop
  Death.Cannibal:
    WIZ5 H 0 A_Fall
    WIZ5 H 0 A_JumpIFInventory("Counter",5,"Eaten")
    WIZ5 H 0 A_GiveInventory("Counter",1)
    WIZ5 H 2
    WIZ5 H -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("WizardHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

ACTOR WizardAcid
{
  Radius 3
  Height 2
  Speed 18
  Damage (9)
  Projectile
  DeathSound "wiz/Hit"
  +NOEXTREMEDEATH
  +SKYEXPLODE
  States
  {
  Spawn:
    BAL7 A 0
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,-1)
    BAL7 A 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,-1)
    BAL7 B 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,-1)
    BAL7 C 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,-1)
    BAL7 D 1 Bright
    Loop
  Death:
    TNT1 A 1
    Stop
  }
}

actor OgreSpawner : RandomSpawner replaces Chaingunguy
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Ogre", 255, 8
    DropItem "MultiOgre", 255, 1
}

ACTOR Ogre
{
  Health 200
  GibHealth 80
  Radius 20
  Height 56
  Mass 99999999
  Speed 10
  PainChance 30
  Species Ogre
  Scale 0.3
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "Dodge", 0.0
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  PainChance "Dodge", 0
  Monster
  +FLOORCLIP
  +MISSILEMORE
  +DONTHURTSPECIES
  +DONTGIB
  SeeSound "Ogre/sight"
  PainSound "Ogre/pain"
  DeathSound "Ogre/death"
  ActiveSound "Ogre/active"
  Obituary "%o was destroyed by an Ogre"
  States
  {
  Spawn:
    OGR1 ABCDEFGHI 4 A_Look
    Loop
  See:
    OGR2 ABCDEFGH 3 A_Chase
    Loop
  Melee:
    OGR3 A 0 A_Jump(256,"Overhead","Slash")
  Overhead:
    OGR3 A 0
    OGR3 A 1 A_PlaySound("Ogre/saw")
    OGR3 A 2 A_CustomMeleeAttack(random(1,12)*1)
    OGR3 B 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR3 C 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR3 D 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR3 E 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR3 F 3 A_FaceTarget
    OGR3 GH 3 
    OGR3 I 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR3 J 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR3 K 3 A_FaceTarget
    OGR3 LMN 3 
    Goto see
  Slash:
    OGR4 A 1 A_PlaySound("Ogre/saw")
    OGR4 A 2 A_CustomMeleeAttack(random(1,12)*1)
    OGR4 BC 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR4 D 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR4 E 3 A_FaceTarget
    OGR4 F 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR4 G 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR4 H 3
    OGR4 I 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    OGR4 J 3 A_CustomMeleeAttack(random(1,12)*1)
    OGR4 K 3 A_FaceTarget
    OGR4 LMN 3
    Goto see
  Missile:
    OGR5 A 6 A_FaceTarget
    OGR5 BC 4 A_FaceTarget
    OGR5 C 0 A_PlaySound("Grenade/Fire")
    OGR5 D 3 Bright A_CustomMissile("GrenadeWeak",35,0,0,2,0)
    OGR5 EF 4
    Goto see
  Pain:
    OGR5 A 0 A_Jump(256,"Pain1","Pain2","Pain3","Pain4","Pain5")
  Pain1:
    OGR6 A 0 A_ChangeFlag("NOPAIN", 1)
    OGR6 A 4 A_Pain
    OGR6 BCDE 4
    OGR6 E 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    OGR7 A 0 A_ChangeFlag("NOPAIN", 1)
    OGR7 A 4 A_Pain
    OGR7 BC 4
    OGR7 C 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain3:
    OGR8 A 0 A_ChangeFlag("NOPAIN", 1)
    OGR8 A 4 A_Pain
    OGR8 BCDEF 4
    OGR8 F 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain4:
    OGR9 A 0 A_ChangeFlag("NOPAIN", 1)
    OGR9 A 4 A_Pain
    OGR9 BCDEFGHIJKLMNOP 4
    OGR9 P 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain5:
    OGRA A 0 A_ChangeFlag("NOPAIN", 1)
    OGRA A 4 A_Pain
    OGRA BCDEFGHIJKLMNO 4
    OGRA O 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    OGRA A 0 A_Jump(256,"Death1","Death2")
  Death1:
    OGRB A 4
    TNT1 A 0 A_SpawnItemEx ("RocketPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    OGRB B 4 A_Scream
    OGRB C 4 A_Fall
    OGRB DEFGHIJKLMN 4
    OGRB N -1
    Stop
  Death2:
    OGRC A 0
    TNT1 A 0 A_GiveInventory("DeathB",1)
    OGRC A 4 A_Recoil(-2)
    TNT1 A 0 A_SpawnItemEx ("RocketPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    OGRC B 4 A_Scream
    OGRC C 4 A_Fall
    OGRC DEFGHI 4
    OGRC J -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("OgreHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    OGRB N 0
    OGRB N 0 A_JumpIfInventory("DeathB",1,"Raise2")
    OGRB N 5
    OGRB N 1 A_Die("Cannibal")
    Loop
  Raise2:
    OGRC J 5
    OGRC J 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    OGRB N 0 A_Fall
    OGRB N 0 A_JumpIFInventory("Counter",5,"Eaten")
    OGRB N 0 A_GiveInventory("Counter",1)
    OGRB N 2
    OGRB N -1
    Stop
  Death.Cannibal2:
    OGRC J 0 A_Fall
    OGRC J 0 A_JumpIFInventory("Counter",5,"Eaten")
    OGRC J 0 A_GiveInventory("Counter",1)
    OGRC J 2
    OGRC J -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("OgreHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
   }
}

ACTOR MultiOgre : Ogre
{
  States
  {
  Missile:
    OGR5 A 6 A_FaceTarget
    OGR5 BC 4 A_FaceTarget
    OGR5 C 0 A_PlaySound("Grenade/Fire")
    OGR5 D 3 Bright A_CustomMissile("MultiGrenadeWeak",35,0,0,2,0)
    OGR5 EF 4
    Goto see
  Death1:
    OGRB A 4
    TNT1 A 0 A_SpawnItemEx ("MultiRocketPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    OGRB B 4 A_Scream
    OGRB C 4 A_Fall
    OGRB DEFGHIJKLMN 4
    OGRB N -1
    Stop
  Death2:
    OGRC A 0
    TNT1 A 0 A_GiveInventory("DeathB",1)
    OGRC A 4 A_Recoil(-2)
    TNT1 A 0 A_SpawnItemEx ("MultiRocketPickup", 0, 0, 0, Random(-3,3), Random(-3,3), 8)
    OGRC B 4 A_Scream
    OGRC C 4 A_Fall
    OGRC DEFGHI 4
    OGRC J -1
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("MOgreHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("MOgreHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
   }
}

ACTOR Gremlin
{
  Health 80
  GibHealth 80
  PainChance 256
  Speed 16
  Radius 20
  Height 56
  Scale 0.3
  Damage (Random(11,15)*1)
  Mass 99999999
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  Monster
  +FLOORCLIP
  +NOTARGETSWITCH
  +DONTGIB
  SeeSound "Grem/sight"
  PainSound "Grem/pain"
  DeathSound "Grem/death"
  ActiveSound "Grem/active"
  Obituary "%o was outsmarted by a Gremlin"
  States
  {
  Spawn:
    GRM1 A 0 A_JumpIfInventory("SSG",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("NG",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("SNG",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("GL",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("PL",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("RL",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("LC",1,"SpawnGun")
    GRM1 A 0 A_JumpIfInventory("TB",1,"SpawnGun")
    GRM1 ABCDEFGHIJKLMNOPQ 3 A_Look
    Loop
  Decide:
    GRM2 A 0 A_Jump(40,"Leap0")
  See:
    GRM1 A 0 A_JumpIfInventory("SSG",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("NG",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("SNG",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("GL",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("PL",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("RL",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("LC",1,"SeeGun")
    GRM1 A 0 A_JumpIfInventory("TB",1,"SeeGun")
    GRM2 ABCDEFGHIJKLMNO 3 A_Chase("Melee","",CHF_RESURRECT)
    GRM2 A 0 A_JumpIfCloser(400,"Decide")
    Loop
  Leap0:
    GRM3 A 0 A_CheckFloor("Leap")
    Goto see
  Leap:
    GRM3 A 0
    GRM3 A 0 A_ChangeFlag("NOPAIN", 1)
    GRM3 ABC 2 A_facetarget
    GRM3 CDE 2 A_Skullattack(17)
    GRM3 FGHIJKLM 3
    GRM3 P 0 A_Playsound("Fiend/land")
    GRM3 P 0 A_Stop
    GRM3 NOP 3
    GRM3 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain:
    GRM6 A 0 A_ChangeFlag("NOPAIN", 1)
    GRM6 A 0 A_JumpIfInventory("SSG",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("NG",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("SNG",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("GL",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("PL",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("RL",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("LC",1,"PainGun")
    GRM6 A 0 A_JumpIfInventory("TB",1,"PainGun")
    GRM6 A 4 A_Recoil(2)
    GRM6 A 4 A_Pain
    GRM6 BCD 4
    GRM6 D 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Melee:
    GRM4 A 0 A_Jump(256,"Claw","Claws","Steal")
  Claw:
    GRM4 A 0
    GRM4 A 0 A_PlaySound("Grem/Claw")
    GRM4 ABCDEF 3 A_FaceTarget
    GRM4 G 3 A_CustomMeleeAttack(random(11,15)*1,"Fiend/munch")
    GRM4 HIJK 3
    Goto See
  Claws:
    GRM5 A 0
    GRM5 A 0 A_PlaySound("Grem/Claw")
    GRM5 ABCDEFG 3 A_FaceTarget
    GRM5 H 3 A_CustomMeleeAttack(random(11,15)*1,"Fiend/munch")
    GRM5 HIJK 3
    Goto See
  Steal:
    GRM1 A 0 A_JumpIfInTargetInventory("StealSSG", 1, "StealingBOOMSTICK")
    GRM1 A 0 A_JumpIfInTargetInventory("StealNG", 1, "StealingNG")
    GRM1 A 0 A_JumpIfInTargetInventory("StealSNG", 1, "StealingSuperNG")
    GRM1 A 0 A_JumpIfInTargetInventory("StealGL", 1, "StealingGL")
    GRM1 A 0 A_JumpIfInTargetInventory("StealPL", 1, "StealingPL")
    GRM1 A 0 A_JumpIfInTargetInventory("StealRL", 1, "StealingRL")
    GRM1 A 0 A_JumpIfInTargetInventory("StealLC", 1, "StealingLC")
    GRM1 A 0 A_JumpIfInTargetInventory("StealTB", 1, "StealingTB")
    Goto See
  StealingBOOMSTICK:
    GRM1 A 0 A_GiveInventory("SSG",1)
    GRM1 A 0 A_GiveInventory("SSG1",1)
    GRM1 A 0 A_TakeFromTarget("Double-Barrel Shotgun",1)
    GRM1 A 0 A_TakeFromTarget("ShellAmmo",20)
    GRM1 A 0 A_TakeFromTarget("StealSSG",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingNG:
    GRM1 A 0 A_GiveInventory("NG1",1)
    GRM1 A 0 A_GiveInventory("NG",1)
    GRM1 A 0 A_TakeFromTarget("NailGun",1)
    GRM1 A 0 A_TakeFromTarget("NailAmmo",28)
    GRM1 A 0 A_TakeFromTarget("NailWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealNG",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingSuperNG:
    GRM1 A 0 A_GiveInventory("SNG1",1)
    GRM1 A 0 A_GiveInventory("SNG",1)
    GRM1 A 0 A_TakeFromTarget("SuperNailGun",1)
    GRM1 A 0 A_TakeFromTarget("NailAmmo",28)
    GRM1 A 0 A_TakeFromTarget("NailWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealSNG",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingGL:
    GRM1 A 0 A_GiveInventory("GL1",1)
    GRM1 A 0 A_GiveInventory("GL",1)
    GRM1 A 0 A_TakeFromTarget("Grenade Launcher",1)
    GRM1 A 0 A_TakeFromTarget("ExplosiveAmmo",5)
    GRM1 A 0 A_TakeFromTarget("ExplosiveWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealGL",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingPL:
    GRM1 A 0 A_GiveInventory("PL1",1)
    GRM1 A 0 A_GiveInventory("PL",1)
    GRM1 A 0 A_TakeFromTarget("Proximity Launcher",1)
    GRM1 A 0 A_TakeFromTarget("ExplosiveAmmo",5)
    GRM1 A 0 A_TakeFromTarget("ExplosiveWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealPL",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingRL:
    GRM1 A 0 A_GiveInventory("RL1",1)
    GRM1 A 0 A_GiveInventory("RL",1)
    GRM1 A 0 A_TakeFromTarget("Rocket Launcher",1)
    GRM1 A 0 A_TakeFromTarget("ExplosiveAmmo",5)
    GRM1 A 0 A_TakeFromTarget("ExplosiveWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealRL",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingLC:
    GRM1 A 0 A_GiveInventory("LC1",1)
    GRM1 A 0 A_GiveInventory("LC",1)
    GRM1 A 0 A_TakeFromTarget("Laser Cannon",1)
    GRM1 A 0 A_TakeFromTarget("CellAmmo",24)
    GRM1 A 0 A_TakeFromTarget("PlasmaWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealLC",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("TB1",1)
    Goto SeeGun
  StealingTB:
    GRM1 A 0 A_GiveInventory("TB1",1)
    GRM1 A 0 A_GiveInventory("TB",1)
    GRM1 A 0 A_TakeFromTarget("ThunderBolt",1)
    GRM1 A 0 A_TakeFromTarget("CellAmmo",20)
    GRM1 A 0 A_TakeFromTarget("PlasmaWeaponsChecker",99)
    GRM1 A 0 A_TakeFromTarget("StealTB",1)
    GRM1 A 0 A_TakeInventory("SSG1",1)
    GRM1 A 0 A_TakeInventory("NG1",1)
    GRM1 A 0 A_TakeInventory("SNG1",1)
    GRM1 A 0 A_TakeInventory("GL1",1)
    GRM1 A 0 A_TakeInventory("PL1",1)
    GRM1 A 0 A_TakeInventory("RL1",1)
    GRM1 A 0 A_TakeInventory("LC1",1)
    Goto SeeGun
  SpawnGun:
    GRM7 ABCDEFGHIJKLMNOPQRST 3 A_Look
    Loop
  SeeGun:
    GRM8 ABCDEFGHIJKLMNO 3 A_Chase("","Fire")
    Loop
  PainGun:
    GRM9 A 0 A_ChangeFlag("NOPAIN", 1)
    GRM9 A 4 A_Pain
    GRM9 BC 4
    GRM9 C 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Fire:
    GRMA A 0 A_JumpifInventory("SSG",1,"FireSSG")
    GRMA A 0 A_JumpifInventory("NG",1,"FireNG")
    GRMA A 0 A_JumpifInventory("SNG",1,"FireSNG")
    GRMA A 0 A_JumpifInventory("GL",1,"FireGL")
    GRMA A 0 A_JumpifInventory("PL",1,"FirePL")
    GRMA A 0 A_JumpifInventory("RL",1,"FireRL")
    GRMA A 0 A_JumpifInventory("LC",1,"FireLC")
    GRMA A 0 A_JumpifInventory("TB",1,"FireTB")
  FireSSG:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("SSG/use")
    GRMA C 3 Bright A_CustomBulletAttack(10,7,14,random(1,1)*1,"SSGPuff")
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA EF 4 A_JumpifInventory("Counter",10,"StopSSG")
    GRMA A 1
    Goto see
  FireNG:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("Nailgun/fire")
    GRMA C 4 Bright A_CustomMissile("NailWeak",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Nailgun/fire")
    GRMA C 4 Bright A_CustomMissile("NailWeak",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Nailgun/fire")
    GRMA C 4 Bright A_CustomMissile("NailWeak",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Nailgun/fire")
    GRMA C 4 Bright A_CustomMissile("NailWeak",34)
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA EF 4 A_JumpifInventory("Counter",7,"StopNG")
    GRMA A 1
    Goto see
  FireSNG:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("SNG/Fire")
    GRMA C 4 Bright A_CustomMissile("NailStrong",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("SNG/Fire")
    GRMA C 4 Bright A_CustomMissile("NailStrong",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("SNG/Fire")
    GRMA C 4 Bright A_CustomMissile("NailStrong",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("SNG/Fire")
    GRMA C 4 Bright A_CustomMissile("NailStrong",34)
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA E 4 A_JumpifInventory("Counter",7,"StopSNG")
    GRMA F 4
    Goto see
  FireGL:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("Grenade/Fire")
    GRMA C 3 Bright A_CustomMissile("GrenadeWeak",34)
    GRMA DE 4
    GRMA E 4 A_GiveInventory("Counter",1)
    GRMA F 4 A_JumpifInventory("Counter",5,"StopGL")
    GRMA A 1
    Goto see
  FirePL:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("prox/fire")
    GRMA C 3 Bright A_CustomMissile("ProximityBomb",34)
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA E 4
    GRMA F 4 A_JumpifInventory("Counter",5,"StopPL")
    GRMA A 1
    Goto see
  FireRL:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 3 Bright A_CyberAttack
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA EF 4 A_JumpifInventory("Counter",5,"StopRL")
    GRMA A 1
    Goto see
  FireLC:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("Armagon/Laser")
    GRMA C 4 Bright A_CustomMissile("Laser1",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Armagon/Laser")
    GRMA C 4 Bright A_CustomMissile("Laser1",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Armagon/Laser")
    GRMA C 4 Bright A_CustomMissile("Laser1",34)
    GRMA B 0 A_FaceTarget
    GRMA C 0 A_PlaySound("Armagon/Laser")
    GRMA C 4 Bright A_CustomMissile("Laser1",34)
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA EF 4 A_JumpifInventory("Counter",6,"StopLC")
    GRMA A 1
    Goto see
  FireTB:
    GRMA A 6 A_FaceTarget
    GRMA B 4 A_FaceTarget
    GRMA C 0 A_PlaySound("Light/fire")
    GRMA C 4 Bright A_CustomMissile("ShamblerBolt",34)
    GRMA B 0 A_FaceTarget
    GRMA C 4 Bright A_CustomMissile("ShamblerBolt",34)
    GRMA B 0 A_FaceTarget
    GRMA C 4 Bright A_CustomMissile("ShamblerBolt",34)
    GRMA B 0 A_FaceTarget
    GRMA C 4 Bright A_CustomMissile("ShamblerBolt",34)
    GRMA D 4 A_GiveInventory("Counter",1)
    GRMA EF 4 A_JumpifInventory("Counter",5,"StopTB")
    GRMA A 1
    Goto see
  StopSSG:
    GRM1 A 0 A_TakeInventory("SSG",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopNG:
    GRM1 A 0 A_TakeInventory("NG",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopSNG:
    GRM1 A 0 A_TakeInventory("SNG",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopGL:
    GRM1 A 0 A_TakeInventory("GL",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopPL:
    GRM1 A 0 A_TakeInventory("PL",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopRL:
    GRM1 A 0 A_TakeInventory("RL",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopLC:
    GRM1 A 0 A_TakeInventory("LC",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  StopTB:
    GRM1 A 0 A_TakeInventory("TB",1)
    GRM1 A 0 A_TakeInventory("Counter",10)
    Goto See
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    GRM1 A 0 A_JumpIfInventory("SSG1",1,"SSGDeath")
    GRM1 A 0 A_JumpIfInventory("NG1",1,"NGDeath")
    GRM1 A 0 A_JumpIfInventory("SNG1",1,"SNGDeath")
    GRM1 A 0 A_JumpIfInventory("GL1",1,"GLDeath")
    GRM1 A 0 A_JumpIfInventory("PL1",1,"PLDeath")
    GRM1 A 0 A_JumpIfInventory("RL1",1,"RLDeath")
    GRM1 A 0 A_JumpIfInventory("LC1",1,"LCDeath")
    GRM1 A 0 A_JumpIfInventory("TB1",1,"TBDeath")
  DeathA:
    GRM1 A 0 A_JumpIfCloser(250,"DeathB")
  DeathB:
  Death.Rocket:
  Death.Grenade:
    GRM1 A 0 A_Jump(100,"Death2")
  Death1:
    GRMB A 4
    GRMB B 4 A_Scream
    GRMB C 4 A_Fall
    GRMB DEFGHIJK 4
    GRMB L -1
    Stop
  Death2:
    GRMC A 0 A_Fall
    GRMC A 0 A_FaceTarget
    GRMC A 0 A_ChangeVelocity(0,0,7)
    GRMC A 0 A_Recoil(20)
    GRMC A 4 A_Scream
    TNT1 A 0 A_GiveInventory("DeathB",1)
    GRMC BC 4
    GRMC DEFG 4
    GRMC H -1
    Stop
  SSGDeath:
    GRM1 A 0 A_SpawnItemEx("SSGRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  NGDeath:
    GRM1 A 0 A_SpawnItemEx("NGRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  SNGDeath:
    GRM1 A 0 A_SpawnItemEx("SNGRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  GLDeath:
    GRM1 A 0 A_SpawnItemEx("GLRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  PLDeath:
    GRM1 A 0 A_SpawnItemEx("PLRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  RLDeath:
    GRM1 A 0 A_SpawnItemEx("RLRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  LCDeath:
    GRM1 A 0 A_SpawnItemEx("LCRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  TBDeath:
    GRM1 A 0 A_SpawnItemEx("TBRetrieve",0,0,0,0,0,10)
    GRM1 A 0 A_Jump(256,"DeathA")
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("GremlinHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Heal:
    GRMD A 0 A_ChangeFlag("NOPAIN", 0)
    GRMD ABC 4 HealThing(5)
    GRMD C 0 A_PlaySound("Fiend/munch")
    GRMD DEF 4 A_SpawnItemEx("MeatChunk",20,0,25,Random(-2,2),Random(-2,2),Random(2,3))
    GRMD GHIJKLM 4
    Goto See
  Raise:
    GRMB L 0
    GRMB L 0 A_JumpIfInventory("DeathB",1,"Raise2")
    GRMB L 5
    GRMB L 1 A_Die("Cannibal")
    Loop
  Raise2:
    GRMC H 5
    GRMC H 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    GRMB L 0 A_Fall
    GRMB L 0 A_JumpIFInventory("Counter",5,"Eaten")
    GRMB L 0 A_GiveInventory("Counter",1)
    GRMB L 2
    GRMB L -1
    Stop
  Death.Cannibal2:
    GRMC H 0 A_Fall
    GRMC H 0 A_JumpIFInventory("Counter",5,"Eaten")
    GRMC H 0 A_GiveInventory("Counter",1)
    GRMC H 2
    GRMC H -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx("GremlinHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
   }
}

actor ForceSpawnNewBorn : RandomSpawner
{
    DropItem "NewBornGremlin"
}

ACTOR NewBornGremlin
{
  Radius 19
  Height 56
  Scale 0.3
  +SOLID
  States
  {
  Spawn:
    GRMZ ABCDEFGHIJKLMNOP 4
    GRMZ A 0 A_SpawnItemEx("NewBornGremlinSpawner")
    GRMZ A 0
    Stop
  }
}

ACTOR Gremlin2 : Gremlin
{
  +LOOKALLAROUND
}

actor NewBornGremlinSpawner : RandomSpawner
{
    DropItem "Gremlin2"
}

actor SSG: Ammo 
{
	Inventory.MaxAmount 1
}

actor NG: Ammo 
{
	Inventory.MaxAmount 1
}

actor SNG: Ammo 
{
	Inventory.MaxAmount 1
}

actor GL: Ammo 
{
	Inventory.MaxAmount 1
}

actor PL: Ammo 
{
	Inventory.MaxAmount 1
}

actor RL: Ammo 
{
	Inventory.MaxAmount 1
}

actor LC: Ammo 
{
	Inventory.MaxAmount 1
}

actor TB: Ammo 
{
	Inventory.MaxAmount 1
}

actor Counter: Ammo 
{
	Inventory.MaxAmount 10
}

actor SSG1: Ammo 
{
	Inventory.MaxAmount 1
}

actor NG1: Ammo 
{
	Inventory.MaxAmount 1
}

actor SNG1: Ammo 
{
	Inventory.MaxAmount 1
}

actor GL1: Ammo 
{
	Inventory.MaxAmount 1
}

actor PL1: Ammo 
{
	Inventory.MaxAmount 1
}

actor RL1: Ammo 
{
	Inventory.MaxAmount 1
}

actor LC1: Ammo 
{
	Inventory.MaxAmount 1
}

actor TB1: Ammo 
{
	Inventory.MaxAmount 1
}

ACTOR HKnight
{
  Health 250
  GibHealth 40
  PainChance 70
  Speed 22
  Radius 20
  Height 64
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  Mass 99999999
  Monster
  +FLOORCLIP
  +MISSILEMORE
  +DONTGIB
  SeeSound "HKnight/sight"
  PainSound "HKnight/pain"
  DeathSound "HKnight/death"
  ActiveSound "HKnight/active"
  Obituary "%o was slain by a Death Knight"
  States
  {
  Spawn:
    HKT1 ABCDEFGHI 4 A_Look
    Loop
  See:
    HKT2 A 4 A_Chase
    HKT2 A 0 A_JumpIfCloser(120,"Charge")
    HKT2 B 4 A_Chase
    HKT2 B 0 A_JumpIfCloser(120,"Charge")
    HKT2 C 4 A_Chase
    HKT2 C 0 A_JumpIfCloser(120,"Charge")
    HKT2 D 4 A_Chase
    HKT2 D 0 A_JumpIfCloser(120,"Charge")
    HKT2 E 4 A_Chase
    HKT2 E 0 A_JumpIfCloser(120,"Charge")
    HKT2 F 4 A_Chase
    HKT2 F 0 A_JumpIfCloser(120,"Charge")
    HKT2 G 4 A_Chase
    HKT2 G 0 A_JumpIfCloser(120,"Charge")
    HKT2 H 4 A_Chase
    HKT2 H 0 A_JumpIfCloser(120,"Charge")
    Loop
  Charge:
    HKT3 A 0 A_Jump(256,"Charge1","Charge2")
  Charge1:
    HKT4 H 0 A_FaceTarget
    HKT4 A 1 A_PlaySound("Zthrow")
    HKT4 A 2 A_Recoil(-3)
    HKT4 H 0 A_FaceTarget
    HKT4 B 3 A_FaceTarget
    HKT4 C 3 A_Recoil(-3)
    HKT4 H 0 A_FaceTarget
    HKT4 D 3 A_FaceTarget
    HKT4 E 3 A_Recoil(-3)
    HKT4 H 0 A_FaceTarget
    HKT4 F 3 A_FaceTarget
    HKT4 E 0 A_Recoil(-3)
    HKT4 H 0 A_FaceTarget
    HKT4 G 2 A_CustomMeleeAttack(random(1,7)*1)
    HKT4 E 0 A_Recoil(-3)
    HKT4 H 3 A_FaceTarget
    HKT4 I 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT4 E 0 A_Recoil(-3)
    HKT4 J 3 A_FaceTarget
    HKT4 K 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT4 E 0 A_Recoil(-3)
    HKT4 L 3 A_FaceTarget
    HKT4 M 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT4 E 0 A_Recoil(-3)
    HKT4 N 3 A_FaceTarget
    HKT4 O 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT4 E 0 A_Recoil(-3)
    HKT4 P 3 A_FaceTarget
    Goto see
  Charge2:
    HKT4 E 0 A_Recoil(-4)
    HKT5 A 3 A_PlaySound("Zthrow")
    HKT5 B 3 A_CustomMeleeAttack(random(1,12)*1)
    HKT4 E 0 A_Recoil(-4)
    HKT5 C 3 A_FaceTarget
    HKT5 D 3 A_CustomMeleeAttack(random(1,12)*1)
    HKT4 E 0 A_Recoil(-4)
    HKT5 E 3 A_FaceTarget
    HKT5 F 3 A_CustomMeleeAttack(random(1,12)*1)
    TNT1 A 0 A_Recoil(-4)
    Goto see
  Melee:
    HKT3 A 0 A_Jump(256,"melee1","melee2","melee3")
  Melee1:
    HKT3 A 1 A_PlaySound("Zthrow")
    TNT1 A 0 A_Recoil(-1)
    HKT3 A 2 A_CustomMeleeAttack(random(1,7)*1)
    HKT3 B 3 A_FaceTarget
    HKT3 C 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT3 D 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT3 E 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT3 F 3 A_FaceTarget
    HKT3 G 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT3 H 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT3 I 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT3 J 3 A_FaceTarget
    Goto see
  Melee2:
    HKT7 A 1 A_PlaySound("Zthrow")
    TNT1 A 0 A_Recoil(-1)
    HKT7 A 2 A_CustomMeleeAttack(random(1,7)*1)
    HKT7 B 3 A_FaceTarget
    HKT7 C 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT7 D 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT7 E 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT7 F 3 A_FaceTarget
    HKT7 G 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT7 H 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT7 I 3 A_CustomMeleeAttack(random(1,7)*1)
    HKT7 J 3 A_FaceTarget
    HKT7 K 3 A_FaceTarget
    Goto see
  Melee3:
    HKT8 A 1 A_PlaySound("Zthrow")
    TNT1 A 0 A_Recoil(-1)
    HKT8 A 2 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 B 3 A_FaceTarget
    HKT8 C 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 D 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT8 E 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 F 3 A_FaceTarget
    HKT8 G 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 H 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT8 I 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 J 3 A_FaceTarget
    HKT8 K 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 L 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT8 M 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 N 3 A_FaceTarget
    HKT8 O 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 P 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT8 Q 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 R 3 A_FaceTarget
    HKT8 S 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 T 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-1)
    HKT8 U 3 A_CustomMeleeAttack(random(1,3)*1)
    HKT8 V 3 A_FaceTarget
    Goto see
  Missile:
    HKT9 A 0 A_Jump(256,"Missile1","Missile2","Missile3")
  Missile1:
    HKT9 ABCDEFG 2 A_FaceTarget 
    HKT9 H 4 A_CustomMissile("KnightFireY", 36,0,0,2,15)
    HKT9 I 4 A_CustomMissile("KnightFireY", 36,0,0,2,10)
    HKT9 J 4 A_CustomMissile("KnightFireY", 36,0,0,2,5)
    HKT9 K 4 A_CustomMissile("KnightFireY", 36,0,0,2,-5)
    HKT9 L 4 A_CustomMissile("KnightFireY", 36,0,0,2,-10)
    HKT9 M 4 A_CustomMissile("KnightFireY", 36,0,0,2,-15)
    HKT9 N 4
    Goto See
  Missile2:
    HKTA ABCDEF 2 A_FaceTarget
    HKTA G 2 A_CustomMissile("KnightFireX", 36)
    HKTA H 2 A_FaceTarget
    HKTA H 2 A_CustomMissile("KnightFireX", 36)
    HKTA I 2 A_FaceTarget
    HKTA I 2 A_CustomMissile("KnightFireX", 36)
    HKTA I 2 A_FaceTarget
    HKTA J 2 A_CustomMissile("KnightFireX", 36)
    HKTA J 2 A_FaceTarget
    HKTA J 2 A_CustomMissile("KnightFireX", 36)
    HKTA K 2 A_FaceTarget
    HKTA K 2 A_CustomMissile("KnightFireX", 36)
    HKTA L 2 A_FaceTarget
    HKTA M 2
    Goto See
  Missile3:
    HKTB ABCDE 2 A_FaceTarget
    HKTB F 4 A_CustomMissile("KnightFireX", 36,0,-24)
    HKTB G 4 A_CustomMissile("KnightFireX", 36,0,-16)
    HKTB H 4 A_CustomMissile("KnightFireX", 36,0,-8)
    HKTB I 4 A_CustomMissile("KnightFireX", 36,0,8)
    HKTB J 4 A_CustomMissile("KnightFireX", 36,0,46)
    HKTB K 4 A_CustomMissile("KnightFireX", 36,0,24)
    Goto See
  Pain:
    HKT6 A 0 A_ChangeFlag("NOPAIN", 1)
    HKT6 A 4
    HKT6 B 4 A_Pain
    HKT6 CDE 4
    HKT6 E 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    HKT7 A 0 A_Jump(256,"death1","death2")
  Death1:
    HKTC A 4
    HKTC B 4 A_Scream
    HKTC C 4 A_NoBlocking
    HKTC DEFGHIJK 4 
    HKTC L -1
    Stop
  Death2:
    HKTD A 4
    TNT1 A 0 A_GiveInventory("DeathB",1)
    HKTD B 4 A_Scream
    HKTD C 4 A_NoBlocking
    HKTD DEFGH 4
    HKTD I -1
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SpawnItemEx ("HKnightHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    TNT1 A 1
    Stop
  Raise:
    HKTC L 0
    HKTC L 0 A_JumpIfInventory("DeathB",1,"Raise2")
    HKTC L 5
    HKTC L 1 A_Die("Cannibal")
    Loop
  Raise2:
    HKTD I 5
    HKTD I 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    HKTC L 0 A_Fall
    HKTC L 0 A_JumpIFInventory("Counter",5,"Eaten")
    HKTC L 0 A_GiveInventory("Counter",1)
    HKTC L 2
    HKTC L -1
    Stop
  Death.Cannibal2:
    HKTD I 0 A_Fall
    HKTD I 0 A_JumpIFInventory("Counter",5,"Eaten")
    HKTD I 0 A_GiveInventory("Counter",1)
    HKTD I 2
    HKTD I -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("HKnightHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

ACTOR KnightFireX : WizardAcid
{
  SeeSound "HKnight/Fire"
  DeathSound "HKnight/Hit"
  States
  {
  }
}

ACTOR KnightFireY : WizardAcid
{
  SeeSound "HKnight/Fire"
  DeathSound "HKnight/Hit"
  States
  {
  Spawn:
    BAL7 A 0
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,-1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,1)
    BAL7 A 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,-1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,1)
    BAL7 B 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,-1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,1)
    BAL7 C 1 Bright
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,-1)
    BAL7 A 0 A_SpawnItemEx("FireParticle",0,0,1,0,0,1)
    BAL7 D 1 Bright
    Loop
  }
}

actor HKnightSpawner : RandomSpawner replaces Revenant
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "HKnight"
}

ACTOR Wrath
{
  Health 400
  PainChance 8
  Speed 16
  Radius 31
  Height 56
  Damage 10
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  Species Wrath
  Mass 99999999
  Monster
  +FLOAT
  +NOGRAVITY
  +DONTHURTSPECIES
  SeeSound "wrath/sight"
  PainSound "wrath/pain"
  DeathSound "wrath/death"
  Obituary "%o was disintegrated by a Wrath"
  States
  {
  Spawn:
    WIZ1 A 3 A_Look
    Loop
  See:
    WIZ1 ABCDEFGHIJKL 3 A_Chase
    Loop
  Missile:
    WIZ2 A 0 A_Jump(256,"Missile1","Missile2","Missile3")
  Missile1:
    WIZ2 A 0 A_PLaySound("Wrath/attack")
    WIZ2 ABCDEFGHIJKLM 3 A_FaceTarget
    WIZ2 N 3 A_CustomMissile("WrathBall",50)
    Goto see
  Missile2:
    WIZ3 A 0 A_PLaySound("Wrath/attack")
    WIZ3 ABCDEFGH 3 A_FaceTarget
    WIZ3 I 3 A_CustomMissile("WrathBall",50)
    WIZ3 JKLM 3 A_FaceTarget
    Goto see
  Missile3:
    WIZ4 A 0 A_PLaySound("Wrath/attack")
    WIZ4 ABCDEFGH 3 A_FaceTarget
    WIZ4 I 3 A_CustomMissile("WrathBall",50)
    WIZ4 JKLMNO 3 A_FaceTarget
    Goto see
  Pain:
    WIZ5 A 0 A_Jump(256,"Pain1","Pain2")
  Pain1:
    WIZ5 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ5 A 2 A_pain
    WIZ5 BCDEF 2
    WIZ5 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain2:
    WIZ6 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ6 A 2 A_pain
    WIZ6 BCDEFGHIJK 2
    WIZ6 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain.Pushed:
  Death:
    WIZ7 A 3 A_Gravity
    WIZ7 B 3 A_Scream
    WIZ7 C 3
    WIZ7 D 3 A_NoBlocking
    WIZ7 EFGHIJKLMNO 3
    TNT1 A 0 A_PlaySound("Explode")
    TNT1 A 0 A_SpawnDebris ("WGIB1")
    TNT1 A 0 A_SpawnDebris ("WGIB2")
    TNT1 A 0 A_SpawnDebris ("WGIB3")
    TNT1 A 0 A_SpawnItemEx("SpawnExplosion",0,0,40)
    TNT1 A 1 A_Explode(60)
    TNT1 AAAAA 1 A_SpawnItemEx("EXPparticles",0,0,40)
    TNT1 A 4 A_NoBlocking
    Stop
  }
}

Actor WrathBall
{
  Radius 3
  Height 4
  Speed 15
  Damage (0)
  Projectile
  +SeekerMissile
  Scale 0.7
  DeathSound "Explode"
  Decal RevenantScorch
  States
  {
  Spawn:
    VBAL A 1 Bright A_Tracer
    Loop
  Death:
    MISL BBBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 4 Bright A_Explode(60, 50)
    MISL DEFG 4 Bright
    Stop
  }
}

actor WrathSpawner : RandomSpawner replaces PainElemental
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Wrath"
}

ACTOR Guardian : fatso
{
  Health 600
  PainChance 30
  Speed 10
  Radius 24
  Height 64
  Mass 99999999
  Monster
  DamageFactor "Dodge", 0.0
  PainChance "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  PainChance "Pushed", 256
  PainChance "Mine", 0
  +FLOORCLIP
  +MISSILEMORE
  +MISSILEEVENMORE
  SeeSound "Guardian/sight"
  PainSound "Guardian/pain"
  DeathSound "Guardian/death"
  ActiveSound ""
  Obituary "%o was crushed by a Guardian"
  States
  {
  Spawn:
    KNT1 A 4 A_Look
    Loop
  See:
    KNT1 BCDEFGHIJKL 4 A_Chase
    Loop
  Melee:
    KNT2 A 0 A_Jump(256,"Melee1","Melee2")
  Melee1:
    KNT2 A 0
    KNT2 A 0 A_PlaySound("QKnight/Swing1")
    KNT2 BCDE 3 A_FaceTarget
    KNT2 F 3 A_CustomMeleeAttack(random(10,20)*1)
    KNT2 GHIJKL 3
    Goto See
  Melee2:
    KNT3 A 0
    KNT3 A 0 A_PlaySound("QKnight/Swing1")
    KNT3 BCDE 3 A_FaceTarget
    KNT3 F 3 A_CustomMeleeAttack(random(10,20)*1)
    KNT3 GHIJKL 3
    Goto See
  Missile:
    KNTB A 0 A_Jump(256,"Missile1","Missile2")
  Missile1:
    KNT4 ABC 2 A_FaceTarget
    KNT4 D 0 A_PlaySound("Light/run")
    KNT4 D 0 A_CustomMissile("GuardianBeam", 28,0)
    KNT4 D 0 A_CustomMissile("GuardianBeam", 28,0,-8)
    KNT4 D 0 A_CustomMissile("GuardianBeam", 28,0,8)
    KNT4 DEFGHI 4
    Goto See
  Missile2:
    KNT5 ABCDEFGH 2 A_FaceTarget
    KNT5 I 0 A_PlaySound("Light/run")
    KNT5 I 0 A_CustomMissile("GuardianBeam", 28,0)
    KNT5 I 0 A_CustomMissile("GuardianBeam", 28,0,-8)
    KNT5 I 0 A_CustomMissile("GuardianBeam", 28,0,8)
    KNT5 IJKLMNOP 4
    Goto See
  Pain.Pushed:
    KNT6 A 1 A_FaceTarget
    KNT6 A 0 ThrustThingZ(0,100,0,0)
    KNT6 A 0 ThrustThing(angle*256/360+128, 100, 0, 0)
    KNT6 A 0 A_Jump(256,"Pain1","Pain2")
  Pain:
    KNT6 A 0 A_Jump(256,"Pain1","Pain2")
  Pain1:
    KNT6 A 0 A_ChangeFlag("NOPAIN", 1)
    KNT6 A 4
    KNT6 B 4 A_Pain
    KNT6 CDEFGHIJ 4
    KNT6 J 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    KNT7 A 0 A_ChangeFlag("NOPAIN", 1)
    KNT7 A 4
    KNT7 B 4 A_Pain
    KNT7 CDEFG 4
    KNT7 G 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    KNT8 A 4 A_Scream
    KNT8 B 4 A_NoBlocking
    KNT8 CDEFGHIJKLMNOPQRST 4
    KNT8 U 4 A_BossDeath
    TNT1 A 1
    Stop
  }
}

ACTOR Guardian2 : Guardian
{
  States
  {
  }
}

ACTOR Guardian3 : Guardian
{
  States
  {
  }
}

ACTOR GuardianBeam
{
  Radius 3
  Height 2
  Speed 25
  Damage (random(30,45)*1)
  Projectile
  DeathSound "Enforcer/Hit"
  +NOEXTREMEDEATH
  +SKYEXPLODE
  States
  {
  Spawn:
    BAL7 A 1 Bright
    Loop
  Death:
    ENLZ CBA 3 Bright
    Stop
  }
}

actor GuardianSpawner : RandomSpawner replaces Fatso
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Guardian"
    DropItem "Guardian2"
    DropItem "Guardian3"
}

ACTOR Centroid : Arachnotron
{
  Health 300
  GibHealth 15
  PainChance 100
  Speed 18
  Radius 64
  Height 64
  PainChance "Dodge", 255
  PainChance "Pushed", 256
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Mass 99999999
  MeleeRange 122
  Monster
  +FLOORCLIP
  +MISSILEMORE
  +DONTGIB
  SeeSound "Centroid/sight"
  PainSound "Centroid/pain"
  DeathSound "Centroid/death"
  ActiveSound "Centroid/active"
  Obituary "%o was stung by a Centroid"
  States
  {
  Spawn:
    CEN1 A 0
    CEN1 A 0 A_StopSound(3)
    CEN1 ABCDEFGHIJKL 4 A_Look
    Loop
  See:
    CEN2 A 0
    CEN2 A 0 A_PlaySound("Centroid/walk",3,1.0,1)
    CEN2 ABCDEF 4 A_Chase
    Goto see+3
  Melee:
    CEN3 A 0
    CEN3 A 0 A_StopSound(3)
    CEN3 ABCDE 4 A_FaceTarget
    CEN3 F 0 A_PlaySound("Centroid/sting")
    CEN3 F 4 A_CustomMeleeAttack(random(90,90)*1)
    CEN3 GHIJK 4
    Goto see
  Missile:
    CEN1 A 0
    CEN1 A 0 A_StopSound(3)
    CEN1 A 1 A_FaceTarget
    CEN4 A 0 A_PlaySound("Nailgun/fire")
    CEN4 A 0 A_CustomMissile("NailCent",10,-20)
    CEN4 A 3 A_CustomMissile("NailCent",10,20)
    CEN1 A 0 A_FaceTarget
    CEN4 B 0 A_PlaySound("Nailgun/fire")
    CEN4 B 0 A_CustomMissile("NailCent",10,-45)
    CEN4 B 3 A_CustomMissile("NailCent",10,45)
    CEN1 A 0 A_FaceTarget
    CEN4 A 0 A_PlaySound("Nailgun/fire")
    CEN4 A 0 A_CustomMissile("NailCent",10,-20)
    CEN4 A 3 A_CustomMissile("NailCent",10,20)
    CEN1 A 0 A_FaceTarget
    CEN4 B 0 A_PlaySound("Nailgun/fire")
    CEN4 B 0 A_CustomMissile("NailCent",10,-45)
    CEN4 B 3 A_CustomMissile("NailCent",10,45)
    CEN1 A 0 A_FaceTarget
    CEN4 A 0 A_PlaySound("Nailgun/fire")
    CEN4 A 0 A_CustomMissile("NailCent",10,-20)
    CEN4 A 3 A_CustomMissile("NailCent",10,20)
    CEN1 A 0 A_FaceTarget
    CEN4 B 0 A_PlaySound("Nailgun/fire")
    CEN4 B 0 A_CustomMissile("NailCent",10,-45)
    CEN4 B 3 A_CustomMissile("NailCent",10,45)
    CEN1 A 0 A_FaceTarget
    CEN4 A 0 A_PlaySound("Nailgun/fire")
    CEN4 A 0 A_CustomMissile("NailCent",10,-20)
    CEN4 A 3 A_CustomMissile("NailCent",10,20)
    CEN1 A 0 A_FaceTarget
    CEN4 B 0 A_PlaySound("Nailgun/fire")
    CEN4 B 0 A_CustomMissile("NailWeak",10,-45)
    CEN4 B 3 A_CustomMissile("NailWeak",10,45)
    Goto see
  Pain:
    CEN5 A 0 A_ChangeFlag("NOPAIN", 1)
    CEN5 A 4
    CEN5 B 4 A_Pain
    CEN5 CDE 4
    CEN5 E 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain.Dodge:
    CEN5 A 0 A_Jump(256,"DodgeRight","DodgeLeft")
  DodgeRight:
    CEN2 A 0 A_FaceTarget
    CEN2 A 0 A_PlaySound("Centroid/walk",3,1.0,1)
    CEN2 A 0 HealThing(1)
    CEN2 ABCDEF 4 ThrustThing(angle*256/360+64, 5, 0, 0)
    Goto see+3
  DodgeLeft:
    CEN2 A 0 A_FaceTarget
    CEN2 A 0 A_PlaySound("Centroid/walk",3,1.0,1)
    CEN2 A 0 HealThing(1)
    CEN2 ABCDEF 4 ThrustThing(angle*256/360+192, 5, 0, 0)
    Goto see+3
  Death:
    CEN6 A 0
    CEN6 A 0 A_StopSound(3)
    CEN6 A 4 A_Scream
    CEN6 B 4 A_NoBlocking
    CEN6 CD 4
    CEN6 E -1 A_BossDeath
    Stop
  Pain.Pushed:
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    TNT1 A 0 A_StopSound(3)
    QZUM A 0 A_SpawnItemEx ("ScorpHead", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    TNT1 A 1 A_BossDeath
    Stop
  Raise:
    CEN6 E 5
    CEN6 E 1 A_Die("Cannibal")
    Loop
  Death.Cannibal:
    CEN6 E 0 A_Fall
    CEN6 E 0 A_JumpIFInventory("Counter",5,"Eaten")
    CEN6 E 0 A_GiveInventory("Counter",1)
    CEN6 E 2
    CEN6 E -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("ScorpHead2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor CentroidSpawner : RandomSpawner replaces Arachnotron
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Centroid"
}

ACTOR Armagon : Cyberdemon replaces cyberdemon
{
  Game Doom
  SpawnID 114
  Health 2500
  Radius 40
  Height 110
  Mass 99999999999999999999999999999999999
  PainChance 5
  Speed 35
  MeleeRange 60
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Monster
  +BOSS
  +FLOORCLIP
  +DONTMORPH
  +BOSSDEATH
  +MISSILEMORE
  +MISSILEEVENMORE
  +FULLVOLACTIVE
  +DONTGIB
  +NOTARGETSWITCH
  SeeSound "Armagon/wait"
  PainSound "Armagon/pain"
  DeathSound "Armagon/die"
  ActiveSound "Armagon/act"
  Obituary "%o was outgunned by Armagon"
  States
  {
  Spawn:
    ARM1 ABCDEFGHIJKLMNOPQRSTABCDEFGHIJKLMNOPQRS 3 A_Look
    ARM1 T 3 A_Jump(125,1)
    Loop
    ARM1 T 0 A_Playsound("Armagon/act",2,1,0,0.3)
    Loop
  See:
    ARM2 A 0
    ARM2 A 0 A_Metal
    ARM2 ABCD 5 A_Chase
    ARM2 E 0 A_Hoof
    ARM2 E 5 A_Chase
    ARM2 F 0 A_Metal
    ARM2 FGHIJ 5 A_Chase
    ARM2 K 0 A_Hoof
    ARM2 KL 5 A_Chase
    Loop
  Missile:
    ARM3 A 0 A_Jump(256,"WRockets","WLasers","Lasers","Rage")
  Pain:
    ARM6 A 0 A_ChangeFlag("PAINLESS",1)
    ARM6 A 5 A_Pain
    ARM6 B 5
    ARM6 B 0 A_ChangeFlag("PAINLESS",0)
    Goto see
  Rage:
    ARM4 A 0 A_Jump(256,"Rockets","Lasers")
  Melee:
    ARM3 J 1
    ARM3 J 17 A_Playsound("Armagon/shoo",3,1,0,0.5)
    ARM3 J 45 A_CustomMissile("ArmagonPusher",20)
    Goto see
  Rockets:
    ARM3 ABCDEFGH 3 A_FaceTarget
    ARM3 I 0 A_CustomMissile("QRocket",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("QRocket",85,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_CustomMissile("QRocket",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("QRocket",85,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_CustomMissile("QRocket",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("QRocket",85,-45,0)
    ARM3 JK 3
    Goto See
  Lasers:
    ARM3 ABCDEFGH 3 A_FaceTarget
    ARM3 I 0 A_Playsound("Armagon/Laser",0,2)
    ARM3 I 0 A_CustomMissile("ArmagonLaser",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("ArmagonLaser",75,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_Playsound("Armagon/Laser",0,2)
    ARM3 I 0 A_CustomMissile("ArmagonLaser",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("ArmagonLaser",75,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_Playsound("Armagon/Laser",0,2)
    ARM3 I 0 A_CustomMissile("ArmagonLaser",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("ArmagonLaser",75,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_Playsound("Armagon/Laser",0,2)
    ARM3 I 0 A_CustomMissile("ArmagonLaser",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("ArmagonLaser",75,-45,0)
    ARM3 JK 3
    ARM3 I 0 A_Playsound("Armagon/Laser",0,2)
    ARM3 I 0 A_CustomMissile("ArmagonLaser",75,45,0)
    ARM3 I 3 Bright A_CustomMissile("ArmagonLaser",75,-45,0)
    ARM3 JK 3
    Goto See
  WRockets:
    ARM4 A 0
    ARM4 A 0 A_Metal
    ARM4 A 0 A_CustomMissile("QRocket",75,0,0)
    ARM4 ABCD 5 A_Chase("","")
    ARM4 E 0 A_Hoof
    ARM4 E 5 A_Chase("","")
    ARM4 F 0 A_Metal
    ARM4 A 0 A_CustomMissile("QRocket",75,0,0)
    ARM4 FGHIJ 5 A_Chase("","")
    ARM4 K 0 A_Hoof
    ARM4 KL 5 A_Chase("","")
    Goto See
  WLasers:
    ARM4 A 0
    ARM4 A 0 A_Metal
    ARM4 A 0 A_CustomMissile("ArmagonLaser",75,0,0)
    ARM4 ABCD 5 A_Chase("","")
    ARM4 E 0 A_Hoof
    ARM4 E 5 A_Chase("","")
    ARM4 F 0 A_Metal
    ARM4 A 0 A_CustomMissile("ArmagonLaser",75,0,0)
    ARM4 FGHIJ 5 A_Chase("","")
    ARM4 K 0 A_Hoof
    ARM4 KL 5 A_Chase("","")
    Goto See
  Death:
    ARM5 A 5
    ARM5 B 5 A_Scream
    ARM5 CDE 5
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 F 3
    ARM5 F 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 GHIJK 4
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnDebris("GIB12")
    ARM5 L 0 A_SpawnDebris("GIB2")
    ARM5 L 0 A_SpawnDebris("GIB3")
    ARM5 L 3
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosion",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 L 0 A_SpawnItemEx("ArmagonExplosionS",Random(39,-41)+1,Random(39,-41)+1,Random(1,129)+1)
    ARM5 M 3
    ARM5 M 10 A_NoBlocking
    ARM5 M 10 A_BossDeath
    ARM5 M -1
    Stop
  }
}

ACTOR ArmagonExplosion
{
  Radius 3
  Height 2
  Speed 0
  Damage 0
  Projectile
  Scale 0.8
  +ClientSideOnly
  States
  {
  Spawn:
    MISL B 0
    MISL B 4 Bright A_Playsound("Armagon/Explode",0,0.5)
  Death:
    MISL CDEFG 4 Bright
    Stop
  }
}

ACTOR ArmagonExplosionS
{
  Radius 3
  Height 2
  Speed 0
  Damage 0
  Projectile
  +ClientSideOnly
  Scale 0.8
  States
  {
  Spawn:
    MISL B 0
    MISL B 4 Bright
  Death:
    MISL CDEFG 4 Bright
    Stop
  }
}

ACTOR ArmagonLaser
{
  Radius 3
  Height 2
  Speed 25
  Damage (18)
  Projectile
  BounceType Hexen
  BounceCount 3
  SeeSound "Armagon/ric"
  +DOOMBOUNCE
  +NOEXTREMEDEATH
  +SKYEXPLODE
  States
  {
  Spawn:
    BAL7 A 1 Bright
    Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  }
}

ACTOR ArmagonPusher
{
  Radius 3
  Height 2
  Speed 25
  DamageType Pushed
  Damage (5)
  Projectile
  States
  {
  Spawn:
    TNT1 A 10
    Stop
  }
}

actor OverlordSpawner : RandomSpawner replaces Spidermastermind
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "Overlord"
}

ACTOR Overlord : Spidermastermind
{
  Health 1000
  PainChance 8
  Speed 16
  Radius 80
  Height 90
  Damage 10
  MeleeRange 164
  PainChance "Pushed", 256
  PainChance "Mine", 0
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Mass 99999999
  Species Wrath
  Monster
  Scale 1.8
  +FLOAT
  +NOGRAVITY
  +NORADIUSDMG
  +DONTHURTSPECIES
  +FULLVOLACTIVE
  +DONTGIB
  AttackSound ""
  PainSound ""
  ActiveSound ""
  SeeSound "wrath/sight"
  DeathSound "Explode"
  Obituary "%o was obliterated by an Overlord"
  States
  {
  Spawn:
    WIZ1 A 3 A_Look
    Loop
  See:
    WIZ1 ABCDEFGHIJKLMNO 3 A_Chase
    WIZ1 A 0 A_Jump(128,"Teleport")
    Loop
  Teleport:
    WIZ1 A 0
    WIZ1 A 0 A_ChangeFlag("FRIGHTENED",1)
    WIZ1 A 0 A_HideThing
    WIZ1 A 0 A_UnSetShootable
    WIZ1 A 0 A_SetInvulnerable
    WIZ1 A 0 A_UnSetSolid
    WIZ1 A 0 A_Playsound("Misc/teleport")
    WIZ1 AAAAA 1 A_SpawnItemEx("TELEParticles")
    WIZ1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
    WIZ1 A 0 A_ChangeFlag("FRIGHTENED",0)
    WIZ1 A 0 A_SetShootable
    WIZ1 A 0 A_UnSetInvulnerable
    WIZ1 A 0 A_SetSolid
    WIZ1 A 0 A_UnHideThing
    WIZ1 A 0 A_Playsound("Misc/teleport",3)
    WIZ1 AAAAA 1 A_SpawnItemEx("TELEParticles")
    Goto see
  Missile:
    WIZ2 A 0 A_Jump(256,"Missile1","Missile2")
  Missile1:
    WIZ2 A 0 A_PLaySound("Wrath/attack")
    WIZ2 ABCDEFGH 3 A_FaceTarget
    WIZ2 I 3 A_CustomMissile("LordBall",50)
    WIZ2 JKL 3 A_FaceTarget
    Goto see
  Missile2:
    WIZ3 A 0 A_PLaySound("Wrath/attack")
    WIZ3 ABCDEF 3 A_FaceTarget
    WIZ3 G 3 A_CustomMissile("LordBall",50)
    WIZ3 HIJKLMN 3 A_FaceTarget
    Goto see
  Melee:
    WIZ4 A 0 A_Jump(256,"melee1","melee2","melee3")
  Melee1:
    WIZ4 ABCDE 3 A_FaceTarget
    WIZ4 F 3 A_CustomMeleeAttack(random(21,29)*1,"SWrath/attack")
    WIZ4 G 0 A_Recoil(-2)
    WIZ4 GHIJ 3 A_FaceTarget
    WIZ4 K 3 A_CustomMeleeAttack(random(21,29)*1,"SWrath/attack")
    WIZ4 LMN 3 A_FaceTarget
    Goto see
  Melee2:
    WIZ5 ABCDE 3 A_FaceTarget
    WIZ5 G 3 A_CustomMeleeAttack(random(21,29)*1,"SWrath/attack")
    WIZ5 HIJ 3 A_FaceTarget
    Goto see
  Melee3:
    WIZ6 ABCDEFG 3 A_FaceTarget
    WIZ6 H 3 A_CustomMeleeAttack(random(21,29)*1,"SWrath/attack")
    WIZ6 IJKLMN 3 A_FaceTarget
    Goto see
  Pain.Pushed:
    WIZ7 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ7 A 0 A_Recoil(50)
    WIZ7 ABCDEFGHIJK 2
    WIZ7 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Pain:
    WIZ7 A 0 A_ChangeFlag("NOPAIN", 1)
    WIZ7 ABCDEFGHIJK 2
    WIZ7 A 0 A_ChangeFlag("NOPAIN", 0)
    Goto See
  Death:
    WIZ8 A 3 A_Gravity
    WIZ8 BCDEFGHIJKLMNOP 3
    WIZ8 Q 3 A_NoBlocking
    TNT1 A 0 A_Scream
    TNT1 A 0 A_PlaySound("Explode")
    TNT1 A 0 A_SpawnDebris ("GIB12")
    TNT1 A 0 A_SpawnDebris ("GIB2")
    TNT1 A 0 A_SpawnDebris ("GIB3")
    TNT1 A 0 A_SpawnDebris ("GIB12")
    TNT1 A 0 A_SpawnDebris ("GIB2")
    TNT1 A 0 A_SpawnDebris ("GIB3")
    TNT1 A 0 A_SpawnDebris ("GIB12")
    TNT1 A 0 A_SpawnDebris ("GIB2")
    TNT1 A 0 A_SpawnDebris ("GIB3")
    TNT1 A 0 A_SpawnItemEx("LordExplosion",0,0,45)
    TNT1 A 1 A_Explode(60,350)
    TNT1 AAAAA 1 A_SpawnItemEx("EXPparticles",0,0,45)
    TNT1 A 4 A_BossDeath
    Stop
  }
}

Actor LordExplosion : SpawnExplosion
{
  Scale 2.0
  States
  {
  }
}

Actor LordBall
{
  Radius 3
  Height 4
  Speed 15
  Damage (0)
  Projectile
  +SeekerMissile
  DeathSound "Explode"
  Decal RevenantScorch
  States
  {
  Spawn:
    VBAL A 1 Bright A_Tracer
    Loop
  Death:
    MISL BBBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 4 Bright A_Explode(Random(6,9)*1)
    MISL DEFG 4 Bright
    Stop
  }
}


actor HECUSpawner : RandomSpawner replaces Wolfensteinss
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "HECUsoldier"
}

ACTOR HECUsoldier
{
  Speed 20
  Health 80
  GibHealth 90
  Radius 16
  Height 56
  Mass 999999999
  Gravity 0.8
  Scale 0.25
  MONSTER
  PainChance 90
  +NOTARGETSWITCH
  +DONTGIB
  PainChance "HalfDamage", 0
  DamageFactor "HalfDamage", 0
  DamageFactor "Dodge", 0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  DeathSound "hecu/Die"
  PainSound "hecu/pain"
  SeeSound "hecu/see"
  ActiveSound "hecu/taunt"
  DropItem "HECUDrop"
  Obituary "%o was neutralized by the HECU"
  States
  {
  Spawn:
    HLA1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 3 A_Look
    HLA1 "[\" 3 A_Look
    HLA1 "]" 3 A_Playsound("hecu/idle")
    HLA2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 3 A_Look
    HLA2 "[\]" 3 A_Look
    HLA3 ABC 3 A_Look
    Loop
  See:
    HLA4 A 0 A_AlertMonsters
    HLA4 ABCDEFGHI 4 A_Chase
    Goto see+2
  Reload:
    HLA5 ABCDEFGHIJKL 2
  Reload2:
    HLA5 MNOPQRSTUV 2
    HLA5 W 2 A_Playsound("hecu/reload")
    HLA5 XYZ 2
    HLA5 "[\]" 2
    HLA6 A 0 A_TakeInventory("HECUMagChecker",17)
    HLA6 ABCDEFG 2
    Goto see
  Missile:
    HLA6 C 0 A_JumpIfCloser(700,"Shoot")
    HLA6 C 0 A_JumpIfCloser(2000,"Decide")
  Shoot:
    HLA6 CBA 3 A_FaceTarget
    HLA5 "]" 3 A_FaceTarget 
    HLA7 A 0 A_JumpIfInventory("HECUMagChecker",17,"Reload")
    HLA7 A 0 A_GiveInventory("HECUMagChecker",1)
    HLA7 A 0 A_PlaySound("hecu/mgun")
    HLA7 ABC 4 BRIGHT A_CustomBulletAttack(10, 7, 1, random(2,2)*1, "HECUPuff")
    HLA7 D 0 A_Jump(150,8)
    HLA7 D 15 A_FaceTarget
    HLA7 A 0 A_JumpIfInventory("HECUMagChecker",17,"Reload2")
    HLA7 A 0 A_GiveInventory("HECUMagChecker",1)
    HLA7 A 0 A_PlaySound("hecu/mgun")
    HLA7 ABC 4 BRIGHT A_CustomBulletAttack(10, 7, 1, random(2,2)*1, "HECUPuff")
    HLA7 D 3 A_FaceTarget
    HLA6 ABC 4 A_FaceTarget 
    Goto See
  Decide:
    HLA7 D 0 A_Jump(210,"Shoot")
  Grenade:
    HLA8 ABCDEFGHIJKLMNO 3 A_FaceTarget
    HLA8 O 0 A_Playsound("HECU/grenade")
    HLA8 PQRS 3 A_FaceTarget
    HLA8 S 0 A_CustomMissile("HandGrenade",35)
    HLA8 TUVWXYZ 3
    HLA8 "[\" 3 
    Goto see
  Pain:
    HLA9 A 0 A_Jump(256,"pain1","pain2")
  Pain1:
    HLA9 A 0
    HLA9 A 0 A_ChangeFlag("NOPAIN",1)
    HLA9 A 1 A_Pain
    HLA9 BCDEFGHIJKLM 1
    HLA9 M 0 A_ChangeFlag("NOPAIN",0)
    Goto See
  Pain2:
    HLAA A 0
    HLAA A 0 A_ChangeFlag("NOPAIN",1)
    HLAA A 1 A_Pain
    HLAA BCDEFGHIJKLM 1
    HLAA M 0 A_ChangeFlag("NOPAIN",0)
    Goto See
  Death:
    HLA6 A 0 A_Jump(256,"death1","death2","death3")
  Death1:
    HLAB A 3
    HLAB B 3 A_Scream
    HLAB C 3 A_NoBlocking
    HLAB DEFGHIJKLM 3
    HLAB N -1
    Stop
  Death2:
    HLAC A 3
    HLAC B 3 A_Scream
    HLAC C 3 A_NoBlocking
    HLAC DEFGHIJKLMN 3
    HLAC O -1
    Stop
  Death3:
    HLAD A 3
    HLAD B 3 A_Scream
    HLAD C 3 A_NoBlocking
    HLAD DEFGHIJKLMNOP 3
    HLAD Q -1
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("GIB12")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor HECUMagChecker: Ammo 
{
	Inventory.MaxAmount 17
}

ACTOR HECUPuff : BulletPuff
{
  DamageType HalfDamage
  States
  {
  }
}

actor HECUDrop : CustomInventory
{
  inventory.pickupmessage "You got some ammo"
  inventory.pickupsound AMMO
  states
  {
  Spawn:
    BPAK A -1
    stop
  Pickup:
    TNT1 A 0 A_GiveInventory ("NailAmmo", 10)
    TNT1 A 0 A_GiveInventory ("ExplosiveAmmo", 1)
    TNT1 A 0 A_GiveInventory ("Shellammo", 5)
    stop
  }
}

ACTOR HandGrenade
{
  Radius 8
  Height 8
  Speed 25
  Damage (100)
  Projectile
  -NOGRAVITY
  +RANDOMIZE
  +GRENADETRAIL
  +DOOMBOUNCE
  Gravity 0.50
  BounceFactor 0.5
  SeeSound "HECU/bounce"
  DeathSound "HLExplode"
  DamageType Grenade
  States
  {
  Spawn:
    HGRN A 1
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("HGrenFloor")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR HGrenFloor
{
  Radius 8
  Height 5
  Speed 0
  Damage (1)
  Health 20
  DamageType Grenade
  Projectile
  +NOBLOOD
  -SHOOTABLE
  +MISSILE
  +THRUACTORS
  -NOGRAVITY
  States
  {
  Spawn:
    HGRN A 35 Bright
    HGRN A 0 A_Playsound("HLExplode")
    Goto death
  Death:
    MISL B 0
    MISL B 1 Bright A_Explode
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR PhantomSwordsman
{
  Health 150
  PainChance 255
  Speed 20
  Radius 18
  Height 35
  Mass 99999999
  DamageFactor "Dodge", 0.0
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  PainChance "Dodge", 0
  PainChance "Pushed", 256
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  Monster
  Scale 0.5
  +FLOORCLIP
  +NOTARGETSWITCH
  +DONTGIB
  +NOBLOOD
  +LOOKALLAROUND
  DeathSound "Axe/miss"
  Obituary "%o was slit open by a Phantom Swordsman"
  States
  {
  Spawn:
    SWD1 A 4 A_Look
    Loop
  See:
    SWD1 BCDEFGHI 4 A_Chase
    Loop
  Melee:
    SWD1 J 1 A_PlaySound("QKnight/Swing1")
    SWD1 J 2 A_CustomMeleeAttack(random(4,9)*1)
    SWD1 J 0 A_Recoil(-1)
    SWD1 K 3 A_FaceTarget
    SWD1 L 3 A_CustomMeleeAttack(random(4,9)*1)
    SWD1 M 3 A_FaceTarget
    SWD1 N 3 A_CustomMeleeAttack(random(4,9)*1)
    SWD1 O 0 A_Recoil(-1)
    SWD1 P 3 A_FaceTarget
    SWD1 Q 3 A_CustomMeleeAttack(random(4,9)*1)
    SWD1 R 3 A_FaceTarget
    SWD1 S 3 A_CustomMeleeAttack(random(4,9)*1)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    SWD1 U 0 A_Jump(256,"death1","death2")
  Death1:
    SWD2 AB 4
    SWD2 C 4 A_NoBlocking
    SWD2 DEFGH 4
    SWD2 I 4 A_Scream
    SWD2 J -1
    Stop
  Death2:
    SWD2 KL 4
    SWD2 M 4 A_NoBlocking
    SWD2 NOPQRS 4
    SWD2 T 4 A_Scream
    SWD2 U -1
    Stop
  }
}

actor SwordSpawner : RandomSpawner replaces Spectre
{
    +ISMONSTER
    +FIXMAPTHINGPOS
    DropItem "PhantomSwordsman"
}

actor Statue1x : RandomSpawner replaces ShortGreenColumn
{
    DropItem "Statue1-0"
    DropItem "Statue1-0"
    DropItem "Statue1-1"
}

ACTOR Statue1-0 : ShortGreenColumn
{
  Radius 16
  Height 52
  Scale 0.3
  ProjectilePassHeight -16
  +SOLID
  States
  {
  Spawn:
    STN9 A -1
    Stop
  }
}

ACTOR Statue1-1 : ShortGreenColumn
{
  +LOOKALLAROUND
  +AMBUSH
  +QUICKTORETALIATE
  Scale 0.3
  States
  {
  Spawn:
    STN9 A 1
    STN9 A 6 A_LookEx(LOF_NOSOUNDCHECK)
  See:
    STN9 A 6 A_JumpIfCloser(127, "Activate")
    Goto Spawn
  Activate:
    STN9 A 0 A_SpawnItemEx("Statue1Spawner")
    Stop
  }
}

actor Statue1Spawner : RandomSpawner
{
    DropItem "Statue1"
}

ACTOR Statue1 : QKnight
{
  Seesound "Statue/see"
  Painsound "Statue/pain"
  Deathsound "Statue/die"
  Activesound "Statue/active"
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  DamageFactor "Rocketdamage", 0.8
  DamageFactor "grenade", 0.8
  Radius 16
  +Lookallaround
  +NoBlood
  States
  {
  Spawn:
    STN1 ABCDEFGHI 4 A_Look
    Loop
  See:
    STN2 A 4 A_Chase
    STN2 A 0 A_JumpIfCloser(80,"slash")
    STN2 B 4 A_Chase
    STN2 B 0 A_JumpIfCloser(80,"slash")
    STN2 C 4 A_Chase
    STN2 C 0 A_JumpIfCloser(80,"slash")
    STN2 D 4 A_Chase
    STN2 D 0 A_JumpIfCloser(80,"slash")
    STN2 E 4 A_Chase
    STN2 E 0 A_JumpIfCloser(80,"slash")
    STN2 F 4 A_Chase
    STN2 F 0 A_JumpIfCloser(80,"slash")
    STN2 G 4 A_Chase
    STN2 G 0 A_JumpIfCloser(80,"slash")
    STN2 H 4 A_Chase
    STN2 H 0 A_JumpIfCloser(80,"slash")
    Loop
  Slash:
    STN3 A 0
    STN3 A 1 A_PlaySound("QKnight/Swing1")
    STN3 A 2 A_CustomMeleeAttack(random(1, 8)*1)
    STN3 B 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    STN3 C 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN3 D 3 A_FaceTarget
    STN3 E 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN3 F 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    STN3 G 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN3 H 3 A_FaceTarget
    STN3 I 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN3 J 3 A_FaceTarget
    TNT1 A 0 A_Recoil(-2)
    STN3 K 3 A_CustomMeleeAttack(random(1, 10)*1)
    STN3 K 0 A_GiveInventory("KnightSlashChecker",1)
    Goto see
  Melee:
    STN4 A 1 A_PlaySound("QKnight/Swing2")
    STN4 A 2 A_CustomMeleeAttack(random(1, 8)*1)
    TNT1 A 0 A_Recoil(-1)
    STN4 B 3 A_FaceTarget
    STN4 C 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN4 D 3 A_FaceTarget
    STN4 E 3 A_CustomMeleeAttack(random(1, 8)*1)
    TNT1 A 0 A_Recoil(-1)
    STN4 F 3 A_FaceTarget
    STN4 G 3 A_CustomMeleeAttack(random(1, 8)*1)
    STN4 H 3 A_FaceTarget
    STN4 I 3 A_CustomMeleeAttack(random(1, 8)*1)
    TNT1 A 0 A_Recoil(-1)
    STN4 J 3 A_FaceTarget
    STN4 K 3 A_CustomMeleeAttack(random(1, 8)*1)
    Goto see
  Pain:
    STN5 A 0 A_Jump(200,"pain1","pain2")
  Pain1:
    STN5 A 0 A_ChangeFlag("NOPAIN", 1)
    STN5 A 4
    STN5 B 4 A_Pain
    STN5 C 4
    STN5 C 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Pain2:
    STN6 A 0 A_ChangeFlag("NOPAIN", 1)
    STN6 A 4 A_Recoil(-2)
    STN6 B 4 A_Pain
    STN6 CDEFGHIJK 4
    STN6 K 0 A_ChangeFlag("NOPAIN", 0)
    Goto see
  Death:
    TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
    STN7 A 0 A_Jump(256,"death1","death2")
  Death1:
    STN7 A 4
    STN7 B 4 A_Scream
    STN7 C 4 A_NoBlocking
    STN7 DEFGHI 4
    STN7 J -1
    Stop
  Death2:
    STN8 A 4
    TNT1 A 0 A_GiveInventory("DeathB",1)
    STN8 B 4 A_Scream
    STN8 C 4 A_NoBlocking
    STN8 DEFGHIJ 4
    STN8 K -1
    Stop
  XDeath:
    QZUM A 0 A_SpawnDebris ("STGIB1")
    QZUM A 0 A_SpawnDebris ("STGIB2")
    QZUM A 0 A_SpawnDebris ("STGIB3")
    QZUM A 0 A_SpawnItemEx ("ST1Head", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Raise:
    STN7 J 0
    STN7 J 0 A_JumpIfInventory("DeathB",1,"Raise2")
    STN7 J 5
    STN7 J 1 A_Die("Cannibal")
    Loop
  Raise2:
    STN8 K 5
    STN8 K 1 A_Die("Cannibal2")
    Loop
  Death.Cannibal:
    STN7 J 0 A_Fall
    STN7 J 0 A_JumpIFInventory("Counter",5,"Eaten")
    STN7 J 0 A_GiveInventory("Counter",1)
    STN7 J 2
    STN7 J -1
    Stop
  Death.Cannibal2:
    STN8 K 0 A_Fall
    STN8 K 0 A_JumpIFInventory("Counter",5,"Eaten")
    STN8 K 0 A_GiveInventory("Counter",1)
    STN8 K 2
    STN8 K -1
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("ST1Head2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}

actor Statue2x : RandomSpawner replaces TallGreenColumn
{
    DropItem "Statue2-0"
    DropItem "Statue2-0"
    DropItem "Statue2-0"
    DropItem "Statue2-1"
}

ACTOR Statue2-0 : TallGreenColumn
{
  Radius 16
  Height 52
  ProjectilePassHeight -16
  +SOLID
  States
  {
  Spawn:
    COL1 A -1
    Stop
  }
}

ACTOR Statue2-1 : TallGreenColumn
{
  +LOOKALLAROUND
  +AMBUSH
  +QUICKTORETALIATE
  States
  {
  Spawn:
    COL1 A 1
    COL1 A 6 A_LookEx(LOF_NOSOUNDCHECK)
  See:
    COL1 A 6 A_JumpIfCloser(127, "Activate")
    Goto Spawn
  Activate:
    COL1 A 0 A_SpawnItemEx("Statue2Spawner")
    Stop
  }
}

actor Statue2Spawner : RandomSpawner
{
    DropItem "Statue2"
}

ACTOR Statue2 : HKnight
{
  Seesound "Statue/see"
  Painsound "Statue/pain"
  Deathsound "Statue/die"
  Activesound "Statue/active"
  DamageFactor "Rocketdamage", 0.5
  DamageFactor "grenade", 0.5
  DamageFactor "lavanails", 1.3
  DamageFactor "lavashells", 1.3
  +Lookallaround
  Radius 16
  +NoBlood
  States
  {
  XDeath:
    QZUM A 0 A_SpawnDebris ("STGIB1")
    QZUM A 0 A_SpawnDebris ("STGIB2")
    QZUM A 0 A_SpawnDebris ("STGIB3")
    QZUM A 0 A_SpawnItemEx ("ST2Head", 0, 0, 0, 0, 0, 10)
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Eaten:
    QZUM A 0 A_SpawnItemEx ("ST2Head2", 1)
    TNT1 A 0 A_SpawnItemEx("ForceSpawnNewBorn")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  }
}