Actor GuardianOfHell	6667
{
	//$Category Monsters
	//$Title Guardian of Hell
	Health 5000
	Radius 63//80
	Height 80//100
	Mass 1000
	Speed 12
	PainChance 40
	Monster
	MinMissileChance 160
	MeleeRange 198
	DamageFactor Fire, 0
	scale 0.79
	+BOSS
	+MISSILEMORE
	+FLOORCLIP
	+NORADIUSDMG
	+DONTMORPH
	+BOSSDEATH
	+NOTARGET
	+NOINFIGHTING
	SeeSound "d3guardian/sight"
	AttackSound "d3guardian/attack"
	PainSound "d3guardian/pain"
	DeathSound "d3guardian/death"
	ActiveSound "d3guardian/active"
	Obituary "%o could not stand up to the Guardian of Hell."
	damagefactor "RedPaint", 0
damagefactor "OrangePaint", 0
damagefactor "YellowPaint", 0
damagefactor "GreenPaint", 0
damagefactor "BluePaint", 0
damagefactor "PurplePaint", 0
damagefactor "WhitePaint", 0
damagefactor "BlackPaint", 0
  PainChance "ShotgunWeak", 5
	States
	{
    Crush:
	TNT1 A 0 A_SpawnItemEx ("Gibs", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION|SXF_USEBLOODCOLOR|SXF_CLIENTSIDE)
	TNT1 AAAAAAAA 0 A_SpawnItemEx ("SuperDuperClientsideBloodSpotSpawner", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION|SXF_USEBLOODCOLOR|SXF_CLIENTSIDE)
    TNT1 AAAAAAAA 1 A_SpawnItemEx ("Bloodsquirt3", 0,0,0, 0,0,0, random(-180,180), SXF_USEBLOODCOLOR|SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
    TNT1 A -1
    Stop
		Spawn:
			GRDH B 10 A_Look
			Loop
		See:
            GRDH A 3 A_Chase
            TNT1 A 0 A_PlaySound("d3guardian/step", CHAN_BODY)
            GRDH AABBB 3 A_Chase
            GRDH C 3 A_Chase
            TNT1 A 0 A_PlaySound("d3guardian/step", CHAN_BODY)
            GRDH CCDDD 3 A_Chase
            TNT1 A 0 A_Jump(96, "Dash")
            Loop
        Dash:
            GRDH A 1 A_Chase
            TNT1 A 0 A_PlaySound("d3guardian/step", CHAN_BODY)
            GRDH AAAABBBBB 1 A_Chase
            GRDH C 1 A_Chase
            TNT1 A 0 A_PlaySound("d3guardian/step", CHAN_BODY)
            GRDH CCCCDDDDD 1 A_Chase
            TNT1 A 0 A_Jump(64, "See")
            Loop	
		Missile:
			GRDH B 0 A_JumpIfCloser(Radius+500,"Missile2")
			GRDH B 4 A_ChangeFlag("NOPAIN", true)
			GRDH B 4 A_FaceTarget
			GRDH G 4 Bright A_FaceTarget
			GRDH H 0 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-8,8))
			GRDH HHHHHHHH 1 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-32,32))
			GRDH G 2 A_FaceTarget
			GRDH H 0 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-16,16))
			GRDH HH 4 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-180,180))
			GRDH G 2 A_FaceTarget
			GRDH H 0 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-24,24))
			GRDH HH 4 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-270,270))
			GRDH G 2 A_FaceTarget
			GRDH H 0 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-90,90))
			GRDH HH 4 Bright A_CustomMissile("GuardianMeteor",fRandom(64,80),fRandom(-10,10),fRandom(-360,360))	
			GRDH GB 4
			GRDH B 4 A_ChangeFlag("NOPAIN", false)
			Goto See
		Missile2:
			GRDH EFG 2 A_FaceTarget
			GRDH G 0 A_PlaySound("d3guardian/melee", chan_body)
			GRDH G 0 A_Quake(6,9,0,800)
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(20,30))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(40,50))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(80,100))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(120,140))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(170,190))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(220,240))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(260,280))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(310,320))
			GRDH H 0 A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(330,350))
			GRDH H 4 Bright A_CustomMissile("GuardianMeteor",fRandom(8,16),fRandom(-10,10),fRandom(0,5))
			GRDH GF 4
			Goto See	
		Melee:
			GRDH EF 4 Fast A_FaceTarget
			GRDH G 0 Fast A_Recoil(-15)
			GRDH G 0 A_Quake(6,9,0,400)
			HECT G 0 A_PlaySoundEx("Hectebus/Stomp", "SoundSlot5", 0)
			HECT G 0 A_PlaySoundEx("Hectebus/Stomp", "SoundSlot7", 0)
			HECT G 0 A_CustomMissile("HectQuake",8,0,0,1)
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(20,30))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(40,50))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(80,100))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(120,140))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(170,190))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(220,240))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(260,280))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(310,320))
			GRDH G 0 A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(330,350))
			GRDH H 4 Bright A_CustomMissile("GuardianSmoke",fRandom(8,16),fRandom(-10,10),fRandom(0,5))
			GRDH G 6 Fast A_CustomMeleeAttack(random(3, 30) * 6, "d3guardian/melee", "skeleton/swing")
			GRDH FE 4 Fast
			Goto See
		Pain:
			GRDH I 2 
			GRDH I 2 A_Pain
			Goto See
		Death:
			GRDH J 10 
			GRDH K 10 A_Scream
			GRDH LMN 10 
			GRDH N 10 A_NoBlocking 
			GRDH OPQR 10
			GRDH S 10
			GRDH T 30
			GRDH T -1 A_BossDeath
			Stop
	}
}

ACTOR GuardianMeteor
{
	Radius 8
	Height 12
	Speed 20
	Damage 10
	Scale 0.5
	Projectile
	+ThruGhost
	SeeSound "d3guardian/attack"
	DeathSound "d3guardian/attackx"
	DontHurtShooter
	DamageType Fire
	States
	{
		Spawn:
			MALB AAAABBBBCCCC 1 Bright A_SpawnItemEx("GuardianMeteorTrail",0,0,0,0,0,0,0,160)
			Loop
		Death:
			MALB J 0 Bright A_SetTranslucent (0.67,1)
			MALB J 3 Bright
	NULL A 0 A_SpawnItemEx ("PowEffectSpawner", 0, 0, 0, 0, 0, 0, 0, 160) 
    NULL A 0 A_SpawnItemEx ("RocketEcho", 0,0,0, 0,0,0, 0, 160)
    MISL B 6 bright A_SpawnItemEx("rocketflare", 0,0,0, 0,0,0, 0, 160)
			MALB K 3 Bright A_Explode(64,64,0)
			MALB LMN 3 Bright
			Stop
	}
}

Actor GuardianMeteorTrail
{
	Radius 3
	Height 3
	Scale 0.4
	Speed 0
	Projectile
	RenderStyle Add
	Alpha 0.67
	States
	{
		Spawn:
    	TNT1 A 0
    	TNT1 A 0 Thing_ChangeTID (0, 1330) 
			TNT1 A 3 Bright
			MALB DEFGHI 3 Bright
			Stop
	}
}

ACTOR GuardianSmoke
{
	Speed 8
	Damage 0
	Radius 0
	Height 0
	RenderStyle Translucent
	Alpha 0.2
	PROJECTILE
	+DROPOFF
	-NOGRAVITY
	+BLOODLESSIMPACT
	+FloorHugger
	+RIPPER
	States
	{
		Spawn:
	    	3PUF AABBCCC 10 
		Death:
			3PUF C 1 A_FadeOut
	    	Loop
	}
}