ACTOR GGRMorpher : PowerupGiver 
{
Scale 2
radius 48
height 128
powerup.type GGR
inventory.pickupmessage ""
powerup.duration 99999999999999
states
{
Spawn:
TNT1 A 6
loop
 }
 }

actor PowerGGR : PowerMorph
{
powerup.duration 99999999999999
PowerMorph.PlayerClass "GGRPlayer"
}

Actor GGRActCount : Inventory
{
	inventory.maxamount 100
	+IGNORESKILL
}

actor GGRNoMoreSkulls : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

Actor GGRAntiTarget : Inventory
{
	inventory.maxamount 1
	+IGNORESKILL
}

ACTOR GGRPlayer : PlayerPawn
{
  Health 1200
	Radius 26
    Height 64
	Mass 1000
	PainChance 20
  Player.forwardmove 0.8
  Player.sidemove 0.6
  gravity 0.0
  Scale 0.58
  Player.ViewHeight 58
  Player.DisplayName "Great Grim Reaper"
  Player.MorphWeapon "GGRWeapon0"
  Player.SoundClass "GGR"
  Player.StartItem "Mana", 100
  Player.StartItem "GGRAntiTarget", 1
  DamageFactor "Boss", 0
  limitedtoteam 1
    SEESOUND "GGR/See"
    DEATHSOUND "GGR/Death1"
	+NOSKIN
	+NOGRAVITY
  -PICKUP
  bloodcolor black
  states
{
	Spawn:
		GGRP A 0 
	    TNT1 A 0 SetPlayerProperty (0, 1, 3)
		TNT1 A 0 SetPlayerProperty(0, 1, 1)
		GGRP A 1 A_JumpIfInventory("GGRNoMoreSkulls", 1, "Spawn2")
	    TNT1 AAAA 0 A_CustomMissile("ApocalipsisSkull1",200,0,0,2,0)
        TNT1 AAAA 0 A_CustomMissile("ApocalipsisSkull2",200,0,180,2,0)
	    TNT1 AAAA 0 A_CustomMissile("ApocalipsisSkull3",200,0,0,2,0)
        TNT1 AAAA 0 A_CustomMissile("ApocalipsisSkull4",200,0,180,2,0)
		GGRP A 0 A_GiveInventory("GGRNoMoreSkulls",1)
		GGRP A 0 A_PlaySoundEx("GGR/Fly","Body",1)
		GGRP A 0 SetPlayerProperty (0, 1, 3)
		Goto Spawn2
	Spawn2:
	    TNT1 A 0 SetPlayerProperty (0, 1, 3)
		TNT1 A 0 SetPlayerProperty(0, 1, 1)
		GGRP AAA 1 A_SpawnItemEx("TrailGGRA", 0, 0, 0, 0, 0, 5, 0)
		GGRP BBB 1 A_SpawnItemEx("TrailGGRB", 0, 0, 0, 0, 0, 5, 0)
		GGRP CCC 1 A_SpawnItemEx("TrailGGRC", 0, 0, 0, 0, 0, 5, 0)
		GGRP DDD 1 A_SpawnItemEx("TrailGGRD", 0, 0, 0, 0, 0, 5, 0)
		GGRP EEE 1 A_SpawnItemEx("TrailGGRE", 0, 0, 0, 0, 0, 5, 0)
		Loop
	See:
		GGRP A 0 A_PlaySoundEx("GGR/Fly","Body",1)
	    TNT1 A 0 SetPlayerProperty (0, 1, 3)
		TNT1 A 0 SetPlayerProperty(0, 1, 1)
		GGRP AAA 1 A_SpawnItemEx("TrailGGRA", 0, 0, 0, 0, 0, 5, 0)
		GGRP BBB 1 A_SpawnItemEx("TrailGGRB", 0, 0, 0, 0, 0, 5, 0)
		GGRP CCC 1 A_SpawnItemEx("TrailGGRC", 0, 0, 0, 0, 0, 5, 0)
		GGRP DDD 1 A_SpawnItemEx("TrailGGRD", 0, 0, 0, 0, 0, 5, 0)
		GGRP EEE 1 A_SpawnItemEx("TrailGGRE", 0, 0, 0, 0, 0, 5, 0)
		Loop
	Missile:
		GGRP FFFFF 1 A_SpawnItemEx("TrailGGRF", 0, 0, 0, 0, 0, 5, 0)
		GGRP GGGGG 1 A_SpawnItemEx("TrailGGRG", 0, 0, 0, 0, 0, 5, 0)
		GGRP HHHHH 1 A_SpawnItemEx("TrailGGRH", 0, 0, 0, 0, 0, 5, 0)
		GGRP IIIII 1 A_SpawnItemEx("TrailGGRI", 0, 0, 0, 0, 0, 5, 0)
		GGRP JJJJJ 1 A_SpawnItemEx("TrailGGRJ", 0, 0, 0, 0, 0, 5, 0)
		Goto Spawn
	Pain:
	    GGRP K 10 A_Pain
		Goto Spawn
	Death:
		TNT1 A 0 
		TNT1 A 0 A_SpawnItem("GGRDeath")
		TNT1 A 0 A_Stop
        TNT1 A 0 A_Nogravity
        TNT1 A 0 
		TNT1 A 0 a_givetotarget("BOSSKILLEDSTAT", 1)
		TNT1 A 1 a_givetotarget("reward", 1)
		BLAN A -1
		stop
    }
}

Actor GGRDeath
{
     Scale 0.58
	+NOINTERACTION
	+NOGRAVITY	
	States
	{
	spawn:
	    GGRP L 1 A_PlaySound("GGR/Death1",5)
        GGRP LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)		
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)	
		GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)	
		GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)	
		GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)	
		GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)			
        GGRP L 0 A_SpawnItemEx ("GGRSpirit", 0, 0, 32, 8, 0, 0, Random(0, 360), 128, 0)
		GGRP L 1 A_SpawnItemEx ("BoomGGR", 0, 0,Random(12,32),random(-9,9),random(-9,9),random(5,9), 48, 128)	
		GGRP L 20 
		GGRP M 4 A_PlaySound("GGR/Death2",5)
		GGRP NOPQRS 4
		TNT1 A -1
		Stop
	}
}

ACTOR BoomGGR
{
   Radius 1
   Height 1
   Speed 5
   RenderStyle Add
   Projectile
   +CLIENTSIDEONLY
   +NOCLIP
   States
   {
   Spawn:
    GGA4 GH 2 BRIGHT
    GGA4 I 4 BRIGHT
    GGA4 J 6 BRIGHT A_PlaySound ("GGR/DeathBoom")
    GGA4 K 4 BRIGHT
	GGA4 L 2 BRIGHT
    Stop
   }
}

ACTOR GGRSpirit : KoraxSpirit
{
  Speed 8
  Projectile
  +NOCLIP
  +CLIENTSIDEONLY
  -ACTIVATEPCROSS
  -ACTIVATEIMPACT
  RenderStyle Translucent
  Scale 0.85
  Alpha 0.4
  States
  {
  Spawn:
    SPIR ABABABAB 5 A_KSpiritRoam
  Death:
    SPIR DEFGHI 5
    Stop
  }
}

Actor SkullReflective
{
	Radius 20
	Height 20
	Health 100
	Mass 0x7FFFFFFF
	+NOBLOOD
	+NOPAIN
	+GHOST
	+NOGRAVITY
	+SHOOTABLE
    +NODAMAGE
    +GHOST
	+REFLECTIVE
	+NOTIMEFREEZE
	States
	{
	Spawn:
	    TNT1 A 0 
		TNT1 A 2 A_SetReflective
		Goto Death
	Death:
	    TNT1 A 1 A_UnSetReflective
		Stop
	    }
}

Actor ApocalipsisSkull1
{
	Speed 10
    Alpha 0.50   
	Scale 0.95
	RenderStyle Add
	Projectile
	+NOCLIP
	+NOINTERACTION
	+NOTIMEFREEZE
    States
    {
    Spawn:
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK A 2 Bright A_Spawnitem("ApocalipsisSkullA")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK B 2 Bright A_Spawnitem("ApocalipsisSkullB")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK C 2 Bright A_Spawnitem("ApocalipsisSkullC")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK D 2 Bright A_Spawnitem("ApocalipsisSkullD")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK E 2 Bright A_Spawnitem("ApocalipsisSkullE")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK F 2 Bright A_Spawnitem("ApocalipsisSkullF")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK G 2 Bright A_Spawnitem("ApocalipsisSkullG")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK H 2 Bright A_Spawnitem("ApocalipsisSkullH")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK I 2 Bright A_Spawnitem("ApocalipsisSkullI")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK J 2 Bright A_Spawnitem("ApocalipsisSkullJ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK K 2 Bright A_Spawnitem("ApocalipsisSkullK")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK L 2 Bright A_Spawnitem("ApocalipsisSkullL")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK M 2 Bright A_Spawnitem("ApocalipsisSkullM")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK N 2 Bright A_Spawnitem("ApocalipsisSkullN")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK O 2 Bright A_Spawnitem("ApocalipsisSkullO")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK P 2 Bright A_Spawnitem("ApocalipsisSkullP")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK Q 2 Bright A_Spawnitem("ApocalipsisSkullQ")
		TNT1 A 0 A_CustomMissile("ApocalipsisSkull1", 0, 0, -10)
		TNT1 A 0 A_MissileAttack
		Stop
	Death:
	    TNT1 A 1
		Stop
    }
}

Actor ApocalipsisSkull2 
{
	Speed 10
    Alpha 0.50        
	Scale 0.95
	RenderStyle Add
	Projectile
	+NOCLIP
	+NOINTERACTION
	+NOTIMEFREEZE
    States
    {
    Spawn:
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK Q 2 Bright A_Spawnitem("ApocalipsisSkullQ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK P 2 Bright A_Spawnitem("ApocalipsisSkullP")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK O 2 Bright A_Spawnitem("ApocalipsisSkullO")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK N 2 Bright A_Spawnitem("ApocalipsisSkullN")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK M 2 Bright A_Spawnitem("ApocalipsisSkullM")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK L 2 Bright A_Spawnitem("ApocalipsisSkullL")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK K 2 Bright A_Spawnitem("ApocalipsisSkullK")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK J 2 Bright A_Spawnitem("ApocalipsisSkullJ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK I 2 Bright A_Spawnitem("ApocalipsisSkullI")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK H 2 Bright A_Spawnitem("ApocalipsisSkullH")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK G 2 Bright A_Spawnitem("ApocalipsisSkullG")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK F 2 Bright A_Spawnitem("ApocalipsisSkullF")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK E 2 Bright A_Spawnitem("ApocalipsisSkullE")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK D 2 Bright A_Spawnitem("ApocalipsisSkullD")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK C 2 Bright A_Spawnitem("ApocalipsisSkullC")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK B 2 Bright A_Spawnitem("ApocalipsisSkullB")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK A 2 Bright A_Spawnitem("ApocalipsisSkullA")
		TNT1 A 0 A_CustomMissile("ApocalipsisSkull2", 0, 0, 0)
		TNT1 A 0 A_MissileAttack
		Stop
	Death:
	    TNT1 A 1
		Stop
    }
}

Actor ApocalipsisSkull3 
{
	Speed 10
    Alpha 0.50        
	Scale 0.95
	RenderStyle Add
	Projectile
	+NOCLIP
	+NOINTERACTION
	+NOTIMEFREEZE
    States
    {
    Spawn:
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK Q 2 Bright A_Spawnitem("ApocalipsisSkullQ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK P 2 Bright A_Spawnitem("ApocalipsisSkullP")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK O 2 Bright A_Spawnitem("ApocalipsisSkullO")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK N 2 Bright A_Spawnitem("ApocalipsisSkullN")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK M 2 Bright A_Spawnitem("ApocalipsisSkullM")		
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK L 2 Bright A_Spawnitem("ApocalipsisSkullL")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK K 2 Bright A_Spawnitem("ApocalipsisSkullK")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK J 2 Bright A_Spawnitem("ApocalipsisSkullJ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK I 2 Bright A_Spawnitem("ApocalipsisSkullI")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK H 2 Bright A_Spawnitem("ApocalipsisSkullH")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK G 2 Bright A_Spawnitem("ApocalipsisSkullG")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK F 2 Bright A_Spawnitem("ApocalipsisSkullF")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK E 2 Bright A_Spawnitem("ApocalipsisSkullE")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK D 2 Bright A_Spawnitem("ApocalipsisSkullD")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK C 2 Bright A_Spawnitem("ApocalipsisSkullC")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK B 2 Bright A_Spawnitem("ApocalipsisSkullB")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK A 2 Bright A_Spawnitem("ApocalipsisSkullA")
		TNT1 A 0 A_CustomMissile("ApocalipsisSkull3", 0, 0, 10)
		TNT1 A 0 A_MissileAttack
		Stop
	Death:
	    TNT1 A 1
		Stop
    }
}

Actor ApocalipsisSkull4
{
	Speed 10
    Alpha 0.50        
	Scale 0.95
	RenderStyle Add
	Projectile
	+NOCLIP
	+NOINTERACTION
	+NOTIMEFREEZE
    States
    {
    Spawn:
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK A 2 Bright A_Spawnitem("ApocalipsisSkullA")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK B 2 Bright A_Spawnitem("ApocalipsisSkullB")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK C 2 Bright A_Spawnitem("ApocalipsisSkullC")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK D 2 Bright A_Spawnitem("ApocalipsisSkullD")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK E 2 Bright A_Spawnitem("ApocalipsisSkullE")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK F 2 Bright A_Spawnitem("ApocalipsisSkullF")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK G 2 Bright A_Spawnitem("ApocalipsisSkullG")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK H 2 Bright A_Spawnitem("ApocalipsisSkullH")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK I 2 Bright A_Spawnitem("ApocalipsisSkullI")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK J 2 Bright A_Spawnitem("ApocalipsisSkullJ")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK K 2 Bright A_Spawnitem("ApocalipsisSkullK")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK L 2 Bright A_Spawnitem("ApocalipsisSkullL")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK M 2 Bright A_Spawnitem("ApocalipsisSkullM")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK N 2 Bright A_Spawnitem("ApocalipsisSkullN")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK O 2 Bright A_Spawnitem("ApocalipsisSkullO")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK P 2 Bright A_Spawnitem("ApocalipsisSkullP")
		TNT1 A 0 A_SpawnItem("SkullReflective")
		APSK Q 2 Bright A_Spawnitem("ApocalipsisSkullQ")
		TNT1 A 0 A_CustomMissile("ApocalipsisSkull4", 0, 0, -20)
		TNT1 A 0 A_MissileAttack
		Stop
	Death:
	    TNT1 A 1
		Stop
    }
}

Actor ApocalipsisSkullA
{
    +NOCLIP
    +NOINTERACTION
    +NOGRAVITY
	+NOTIMEFREEZE
    RenderStyle Add   
	Scale 0.95
	Alpha 0.6
    VSpeed 5
    States
    {
    Spawn:
        NULL A 1
		APSK A 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullB : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK B 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullC : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK C 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullD : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK D 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullE : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK E 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullF : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK F 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullG : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK G 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullH : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK H 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullI : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK I 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullJ : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK J 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullK : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK K 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullL : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK L 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullM : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK M 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullN : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK N 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullO : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK O 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullP : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK P 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor ApocalipsisSkullQ : ApocalipsisSkullA
{
    States
    {
    Spawn:
        NULL A 1
		APSK Q 2 Bright A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRA
{
    Radius 2
    Height 2
    +NOCLIP
    +NOINTERACTION
    +NOGRAVITY
	+NOTIMEFREEZE
	RenderStyle Translucent
	VisibleToPlayerClass Marine, Renegade, Avenger, Android, Huntsman 
	Alpha 0.65
    Scale 0.58
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP A 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRB : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP B 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRC : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP C 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRD : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP D 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRE : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP E 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRF : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP F 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRG : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP G 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRH : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP H 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRI : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP I 2 A_Fadeout
        Goto Spawn+1
        }
}

Actor TrailGGRJ : TrailGGRA
{
    States
    {
    Spawn:
	    TNT1 A 1
		GGRP J 2 A_Fadeout
        Goto Spawn+1
        }
}

ACTOR GGRWeapon0 : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       TNT1 A 1 A_WeaponReady
       goto AltFire
  Fire:
  TNT1 A 1
  goto AltFire
  Deselect:
       TNT1 A 1 A_Lower
       Loop
  Select:
       TNT1 A 0 A_Raise
       Loop
  AltFire:
       TNT1 A 0 A_GiveInventory("GGRWeapon")
       TNT1 A 0 A_SelectWeapon("GGRWeapon")
       TNT1 A 0 
       goto deselect
  Flash:
       SNIF F 3 Bright A_Light2
       SNIF F 3 Bright A_Light1
       SNIF F 0 Bright A_Light0
       Goto LightDone     
       }
}

actor GGRattackmode1 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor GGRattackmode2 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor GGRattackmode3 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

actor GGRattackmode4 : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}

ACTOR GGRWeapon : Weapon 
{
 Weapon.SelectionOrder 800
 Obituary "%o was raped by %k"
 Inventory.PickupMessage ""
 Inventory.PickupSound "misc/pk_up"
 Weapon.AmmoUse 0
 Weapon.AmmoGive 0
 Weapon.AmmoType "Mana"
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
  States
 {
  Spawn:
       TNT1 A -1
       Loop
  Ready:
       CLA3 A 0
	   CLA3 A 0 A_JumpIfInventory("GGRActCount", 80, "MakeNoise")
	   CLA3 AAAAAAAA 1 A_WeaponReady
	   CLA3 A 0 A_GiveInventory("GGRActCount", 3)
	   Loop
  MakeNoise:
	   CLA3 A 0 A_TakeInventory("GGRActCount", 999)
	   CLA3 A 0 A_PlaySound("GGR/Active", 3)
	   CLA3 A 1 
	   Goto Ready
  Deselect:
       CLA3 A 1 A_Lower
       Loop
  Select:
       CLA3 A 0 A_Raise
       Loop
  Nofire:
       CLA3 AAAA 2
	   Goto Ready
  Fire:
       TNT1 A 0 A_jumpIfinventory("GGRattackmode1", 1, "GGR1check")
       TNT1 A 0 A_jumpIfinventory("GGRattackmode2", 1, "GGR2check")
       TNT1 A 0 A_jumpIfinventory("GGRattackmode3", 1, "GGR3check")
       TNT1 A 0 A_jumpIfinventory("GGRattackmode4", 1, "GGR4check")
	   Goto ready
  AltFire:
  	   CLA3 A 1 ACS_execute(812)
       CLA3 A 2
       CLA3 A 15
       goto ready
  GGR1:
       TNT1 A 0 A_Takeinventory("mana", 25)
	   CLA3 A 1 A_PlaySound("GGR/Fire1",5)
       CLA3 B 2 bright A_FireCustomMissile("GGR1Projectile",random(-2,2),0,0,5)
       CLA3 A 2 
       CLA3 B 2 bright A_FireCustomMissile("GGR1Projectile",random(-2,2),0,0,5)
       CLA3 A 2 
       CLA3 B 2 bright A_FireCustomMissile("GGR1Projectile",random(-2,2),0,0,5)
       CLA3 A 5
       goto ready
  GGR2:
       TNT1 A 0 A_Takeinventory("mana", 30)
	   CLA3 A 1 A_PlaySound("GGR/Fire2",5)
       CLA3 B 3 bright A_FireCustomMissile("GGR2Projectile", 0, 0, 0, 5, 0, 0)
       CLA3 A 3 
       CLA3 B 3 bright A_FireCustomMissile("GGR2Projectile", 0, 0, 0, 5, 0, 0)
       CLA3 A 3 
       CLA3 B 3 bright A_FireCustomMissile("GGR2Projectile", 0, 0, 0, 5, 0, 0)
       CLA3 A 6
       goto ready
  GGR3:	   
       TNT1 A 0 A_Takeinventory("mana", 60)	
	   CLA3 A 1 A_PlaySound("GGR/Active",5)  
	   CLA3 A 0 A_Stop
	   TNT1 A 0 SetPlayerProperty(0, 1, 0) 
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 B 0 A_Recoil(-11)
	   CLA3 B 1 Bright A_SpawnItemEx("GGR3Trail",0,0,0,0,0,0,0,128,0)
       CLA3 BB 0 A_SpawnItemEx("GGR3Hands", random(-156,156), random(-156,156), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	   CLA3 B 0 A_FireCustomMissile("GGR3DashAttack")
	   CLA3 A 0 A_Stop
	   CLA3 A 1 A_Recoil(-35)
	   CLA3 A 20 SetPlayerProperty(0, 0, 0) 
	   goto ready
  GGR4:
       TNT1 A 0 A_JumpIfInventory("GGRDarknessCooldown",1,"Nofire")
       TNT1 A 0 A_Takeinventory("mana", 40)
	   CLA3 A 0 A_GiveInventory("GGRDarknessCooldown", 1) 
       CLA3 B 5 Bright A_PlaySound("Projectile/Hole",5) 
	   CLA3 B 10 Bright A_FireCustomMissile("GGR4Hole",0,0,0,5)
       CLA3 A 15
       goto ready
  GGR1check:
       TNT1 A 0 A_jumpIfinventory("mana", 25, "GGR1")
       goto ready
  GGR2check:
       TNT1 A 0 A_jumpIfinventory("mana", 30, "GGR2")  
       goto ready
  GGR3check:
       TNT1 A 0 A_jumpIfinventory("mana", 60, "GGR3")  
       goto ready 
  GGR4check:
       TNT1 A 0 A_jumpIfinventory("mana", 40, "GGR4")  
       goto ready
       }
}

Actor GGRDarknessCooldown : PowerDamage
{
	DamageFactor "Nothing", 1.0
	PowerUp.Duration -30
}

Actor GGR1Projectile
{
    Radius 15
    Height 8
    Speed 56
    Damage 6
    BounceCount 3
    RenderStyle ADD
    DamageType "Boss"
    Scale 0.90
    Projectile
    SeeSound ""
    DeathSound ""
    +HEXENBOUNCE
    +THRUGHOST
    +NOGRAVITY
    +RIPPER
    +DONTSPLASH
    DeathSound "GGR/Missile1b"   
   States
  {
  Spawn:
	GGA1 A 0
	GGA1 A 0 A_PlaySound("GGR/Missile1a")
	GGA1 ABCD 2 Bright A_SpawnItemEx("GGR1ProjectileTrail")
	GGA1 A 0 A_PlaySound("GGR/Missile1a")
	GGA1 EFGH 2 Bright A_SpawnItemEx("GGR1ProjectileTrail")
	Loop
  Death:
	GGA1 IJK 4 Bright A_FadeOut(0.10)
	Stop
  }
}

Actor GGR1ProjectileTrail
{	  
  +NOINTERACTION
  +CLIENTSIDEONLY
  Renderstyle Add
  Alpha 0.6
  Scale 0.8
  States
  {  
  Spawn:
	TNT1 A 0
	GGA1 ABCDEFGH 1 Bright A_FadeOut(0.05)
	Stop
	}
}

ACTOR GGR2Projectile
{
   Radius 8
   Height 8
   Speed 19
   Scale 0.68
   Damage (8*Random(1,4))
   PROJECTILE
   +SEEKERMISSILE
   +LOOKALLAROUND
   +THRUGHOST
   RENDERSTYLE ADD
   MissileType HolyMissileTrail
   DeathSound "GGR/Missile2b"  
   damagetype "boss"
   States
   {
   Spawn:
        TNT1 A 0
        TNT1 A 0 A_RearrangePointers(AAPTR_NULL,AAPTR_TARGET,AAPTR_TRACER)
        TNT1 A 0 A_LookEx(0,0,0,0,0,"Acquired")
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TRACER)
        Goto Idle
    Acquired:
        TNT1 A 0 A_RearrangePointers(AAPTR_MASTER,AAPTR_MASTER,AAPTR_TARGET)
        Goto Idle
   Idle:
	  GGA2 A 0 
	  GGA2 A 0 A_PlaySound("GGR/Missile2a")
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave	  
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave	  
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
	  GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave	  
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)	
	  GGA2 A 0 A_BishopMissileWeave  
      GGA2 A 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      GGA2 B 1 Bright A_CustomMissile("HolyMissileTrail",0,0,0,0)
	  GGA2 A 0 Bright A_SeekerMissile(10,10)
	  GGA2 A 0 A_BishopMissileWeave
      Loop
   Death:
      GGA3 A 0 A_SetScale(0.43,0.43)
	  GGA3 A 0 A_SpawnItemEx("GGR2ShockWave1",0,0,0,0,0,0,0,128)
      GGA3 ABCDEFGHIJL 2 Bright
      Stop
   }
}

ACTOR GGR2ShockWave1
{
    Radius 1
	Height 1
	RenderStyle Translucent
	Scale 0.50
	Speed 0
	+NOINTERACTION
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	    GGA9 ABCDEFGHIJKLMNOP 1 Bright 
		Stop
	}
}

ACTOR GGR3Hands
{
     Radius 1
     Height 8
     Speed 0
     Projectile
     +SKYEXPLODE
     -SOLID
     +NOGRAVITY
	 +DONTREFLECT
     +THRUGHOST
     +CEILINGHUGGER
     States
     {
     Spawn:
     Death:
          TNT1 A 0 
          TNT1 A 1 A_SpawnItemEx("GGR3Attack",1,0,-1,0,0,-22)
          Stop
          }
}

ACTOR GGR3Attack
{
     Height 6
     Radius 6
     BounceFactor 0.3
     DamageType "Boss"
     Renderstyle Add
	 Decal ""
     BounceCount 4
	 Reactiontime 30
	 Damage 0
     Speed 800
     Projectile
	 Obituary "%k's erased %o from existence."   
     -NOGRAVITY
	 +BLOODLESSIMPACT
	 +FORCERADIUSDMG
	 +DONTREFLECT
	 States
     {
     Spawn:
		  TNT1 A 1 
          Loop
     Death:
          TNT1 A 0 
		  TNT1 A 0 A_Explode(8,64,0)
		  TNT1 A 0 Radius_Quake(6,24,0,24,0)
		  TNT1 A 0 A_SpawnItemEx("GGR3Hand")
		  TNT1 A 0 A_PlaySound("GGR/Hands")  
		  TNT1 AAAAA 1 A_SpawnItemEx("GGR3Effect",0,0,2,Random(-3,3),Random(-3,3),Random(-3,3)) 
		  TNT1 A 0 A_Explode(24,128,0)
		  TNT1 AAAAAAAAAA 1 A_SpawnItemEx("GGR3Effect",0,0,2,Random(-3,3),Random(-3,3),Random(-3,3)) 
          Stop
          }
}

Actor GGR3DashAttack
{
	PROJECTILE
	+FORCERADIUSDMG
	+DONTREFLECT
	Speed 30
	Radius 2
	Height 2
	damagetype "Boss"
	damage 8
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Explode(24, 200, 0)
		TNT1 A 1
		Stop
	}
}

ACTOR GGR3Effect
{
     Alpha 0.3
     Scale .75
     RenderStyle Translucent
     +NOCLIP
     +NOGRAVITY
     +NOINTERACTION
    +CLIENTSIDEONLY
     States
     {
     Spawn:
          GGA6 ABCDEFGHIJKLMNOPQR 1
          Stop
          }
}

actor GGR3Hand
{
    Scale 0.68
     RenderStyle Translucent
	 Alpha 0.8
    +CLIENTSIDEONLY
    +NOINTERACTION
    +FLOORHUGGER
    States
    {
    Spawn:
        GGA5 ABCD 1
        GGA5 A 0 A_Jump(255,"Spawn1","Spawn2","Spawn3","Spawn4","Spawn5","Spawn6","Spawn7","Spawn8")
        loop
    Spawn1:
        GGA5 EFGHI 2
        goto SpawnEnd
    Spawn2:
        GGA5 IHGFE 2
        goto SpawnEnd
    Spawn3:
        GGA5 GFEIH 2
        goto SpawnEnd
    Spawn4:
        GGA5 HIEFG 2
        goto SpawnEnd
    Spawn5:
        GGA5 EHGFI 2
        goto SpawnEnd
    Spawn6:
        GGA5 IFGHE 2
        goto SpawnEnd
    Spawn7:
        GGA5 FIGEH 2
        goto SpawnEnd
    Spawn8:
        GGA5 HEGIF 2
        goto SpawnEnd
    SpawnEnd:
        GGA5 DCBA 2
        stop
    }
}

ACTOR GGR3Trail
{
	Radius 1
	Height 1
	Speed 5
	Damage 0
    Scale 0.58
	RenderStyle Translucent
	Alpha 0.7
	PROJECTILE
	states
	{
	Spawn:
        GGRP T 32
		GGRP T 2 A_FadeOut(0.05)
		goto Spawn+1
	}
}

ACTOR GGR4Hole
{
    Radius 14
    Speed 25
    Height 14
    Damage 100
	DamageType "Boss"
    Projectile
    Bouncecount 3
    Bouncefactor 1.0
    Reactiontime 80
    WallBounceFactor 1.0
	Obituary "%o was eradicated by a Hole Monster."
    +DOOMBOUNCE
	+DONTREFLECT
	+THRUGHOST
    States
    {
    Spawn:
        TNT1 A 0 A_CountDown
        TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
		TNT1 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        TNT1 A 1
	Death:
	    TNT1 A 0
		TNT1 A 0 A_PlaySound("HoleMonster/See")  
		TNT1 A 0 A_CustomMissile("GGR4SmokeHole",0,0,0) 
		Stop
        }
}

ACTOR GGR4MonsterHole
{
    Alpha 0.3
    Scale .75
	Renderstyle Translucent
	+NOCLIP
    +NOGRAVITY
    +NOINTERACTION
    States
    {
    Spawn:
        TNT1 A 2
        GGA6 ABCDEFGHIJKLMNOPQR 2
        Stop
        }
}

ACTOR GGR4SmokeHole 
{
    Health 0x7FFFFFFF
    Radius 12
    Height 12
    Mass 0x7FFFFFFF
    Speed 2
    SeeSound ""
    ActiveSound "HoleMonster/Active"
    DeathSound "HoleMonster/Death"
    Renderstyle None
	DamageFactor "Boss", 0.0
	Obituary "%o was eradicated by a Hole Monster."
	Monster
	+LOOKALLAROUND
	+DONTREFLECT
	+GHOST
    +FLOAT 
	+FLOATBOB
    +NOGRAVITY 
	+NOTELEPORT
    +DONTFALL 
    +NOICEDEATH 
    +MISSILEMORE
    +NOBLOOD 
    +LONGMELEERANGE 
	+SPECTRAL
    States
    {
    Spawn:
	    GGA6 A 0
	    GGA6 A 0 A_PlaySoundEx("HoleMonster/Loop","Body",1)
	    GGA6 A 1 A_Look
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    Loop
    See:
        GGA6 A 0 
        GGA6 A 0 A_Jump(20, "Giveup")
        GGA6 A 0 A_jumpIfinventory("FireGGRHoleCount", 10, "See2")
	    GGA6 A 1 A_Chase
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		Loop
	See2:
	    GGA6 A 1 A_Chase
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))		
		GGA6 A 0 A_Jump(1,"Death")
        GGA6 A 0 A_Jump(20, "Giveup")
		Loop
	Giveup:
        GGA6 A 0 A_ClearTarget
		GGA6 A 1 A_Wander
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        Goto See+1
    Idle:
        GGA6 A 0 
        GGA6 A 0 A_Jump(20, "Giveup2")
        GGA6 A 0 A_jumpIfinventory("FireGGRHoleCount", 10, "Idle2")
	    GGA6 A 1 A_Chase
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		Loop	
	Idle2:
	    GGA6 A 1 A_Chase
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))		
		GGA6 A 0 A_Jump(1,"Death")
        GGA6 A 0 A_Jump(20, "Giveup2")
		Loop
	Giveup2:
        GGA6 A 0 A_ClearTarget
		GGA6 A 1 A_Wander
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
        Goto Idle+1
	Missile:	    
        GGA6 A 0
        GGA6 A 0 A_jumpIfinventory("FireGGRHoleCount", 10, "Missile2")
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_GiveInventory("FireGGRHoleCount",1)
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_CustomMissile("MonsterHoleMissile",0,0,0)
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))		
	    Goto See
	Missile2:
		TNT1 A 0 
		TNT1 A 0 A_PlaySound("HoleMonster/Charge")  
	    GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		GGA6 A 1 A_SkullAttack
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 0 A_Jump(24,"Death","See")
	    Goto Death
	Melee:
        GGA6 A 0 A_jumpIfinventory("FireGGRHoleCount", 10, "Death")
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_CustomMissile("MonsterHoleMissile",0,0,0)
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
	    GGA6 A 1 A_FaceTarget
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))		
	    Goto See
    Death:
	    GGA6 A 0 A_FaceTarget 
	    GGA6 A 1 A_StopSoundEx("Body")
		GGA6 A 0 A_Scream
		GGA6 A 0 A_SpawnItemEx("GGR4DarkShockWave",0,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,0)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,10)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,20)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,30)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,40)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,50)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,60)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,70)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,80)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,90)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,100)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,110)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,120)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,130)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,140)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,150)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,160)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,170)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,180)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,190)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,200)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,210)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,220)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,230)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,240)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,250)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,260)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,270)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,280)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,290)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,300)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,310)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,320)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,330)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,340)
		BONE A 0 BRIGHT	A_CustomMissile("ThamuzCurse",1,0,350)
		GGA6 AAAAAA 0 A_SpawnItemEx("GGR4MonsterHole",0,0,8,Random(-1,1),Random(-1,1),Random(-1,1),Random(1,360))
		Stop
	    }
}

ACTOR GGR4DarkShockWave
{
    Radius 1
	Height 1
	RenderStyle Translucent
	Speed 0
	+NOINTERACTION
	+NOBLOCKMAP
	States
	{
	Spawn:
	    GGA7 ABCDEFGHIJKLMNOPQR 1 
		Stop
	    }
}

ACTOR MonsterHoleMissile
{
  Speed 20
  Height 7
  Radius 7
  DamageType "Boss"
  Damage 9
  Projectile
  +SEEKERMISSILE  
  +THRUGHOST
  +DONTREFLECT
  SeeSound "GGR/Missile4a"
  DeathSound "GGR/Missile4b"
  Decal Scorch
  States
  {
  Spawn:   
    GGA8 A 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 A 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 B 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 B 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 C 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 C 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 D 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
	GGA8 D 1 bright a_spawnitemEX("GGRfireballsmoke",0,0,-5)
    TNT1 A 0 A_SeekerMissile (3, 4)
    loop
  Death:
    GGA8 E 4 Bright
    GGA8 FGH 5 Bright
    GGA8 I 4 Bright
    Stop
  }
}

ACTOR GGRfireballsmoke
{   
   Radius 0
   Height 1
   Speed 0
   Projectile
   scale 1.0
	Alpha 0.35
   RenderStyle Translucent
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      TNT1 A 2
      SMK2 ABCDE 2 Bright
      Stop 
   }
}

actor FireGGRHoleCount : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 10
  States
  {
  Spawn:
    TNT1 A -1
    Stop
  }
}