ACTOR OverseerGuardian : Guardian //Agony
{
//Creator: Vast Unliking
//Origin: Nexus Infinity
//Sprite: OVEK
//Title: "Overseer Guardian"
Health 2500
PainChance 20
Radius 22
Height 60
Speed 18
Mass 100
DropItem "BossLifeEssence" 204 25
DropItem "BossArmorBonusMax" 204 1
DropItem "GreaterDemonicEnergy" 128 200
DropItem "PlasmaRepeater" 100, 1
DamageFactor "Player",0.8
DamageFactor "LegendaryPlayer",0.8
DamageFactor "DarkDemoEx",0.0
BloodColor "Green"
Species "Skeletons"
SeeSound "widowmaker/sight"
ActiveSound "widowmaker/act"
PainSound "widowmaker/pain"
DeathSound "widowmaker/death"
Obituary "%o was annihilated by the power of the Overseer Guardian."
Tag "\c[a6]Overseer Guardian\c-"
+AVOIDMELEE
+DONTHARMSPECIES
+BOSS
+DONTGIB
+NOPAIN
States
{
  Spawn:
	OVEK A 10 A_Look
	Loop
  See:
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK AAABBB 2 A_Chase
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK CCCDDD 2 A_Chase 
	Loop
  Melee:
	TNT1 A 0 A_Jump(256,"Teleport")
	Goto See
  Teleport:
	OVEK A 1 Bright A_UnSetShootable
	OVEK AAAAAAA 1 A_Fadeout(0.1,0)
	OVEK A 1
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	OVEK A 1 A_Playsound("boss/teleport")
	OVEK A 1 A_Fadein(1)
	TNT1 A 0 A_SetShootable
	Goto See
  Missile:
	TNT1 A 0 A_Jump(190,"Plasma","Grenade","Rush")
	TNT1 A 0 A_Jump(64,"BFG","3Grenade")
  Normal:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	OVEK E 4 A_Facetarget
	OVEK F 4 Bright A_CustomMissile("OverGuardianRail",34,0,random(-5,5))
	OVEK E 4 A_Facetarget
	OVEK F 4 Bright A_CustomMissile("OverGuardianRail",34,0,random(-5,5))
	OVEK E 4 A_Facetarget
	OVEK F 4 Bright A_CustomMissile("OverGuardianRail",34,0,random(-5,5))
	TNT1 A 0 A_SpidRefire
	Goto Normal+5
  Plasma:
	OVEK E 4 A_FaceTarget
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-3,3))
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-2,2))
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-1,1))
	OVEK E 4 A_FaceTarget
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-3,3))
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-2,2))
	OVEK F 2 Bright A_CustomMissile("OGuardianPlasma",32,0,random(-1,1))
	Goto Missile
  Rush:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK A 1 A_Wander
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK A 1 A_Wander
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK B 1 A_Wander
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK B 1 A_Wander
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK C 1 A_Chase
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK C 1 A_Chase
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK D 1 A_Chase
	TNT1 A 0 A_SpawnitemEx("OGghost")
	TNT1 A 0 A_SpawnItem("BonyStep",0,0,0,0)
	OVEK D 1 A_Chase
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_SetShootable
	Goto See
  Grenade:
	OVEK G 4 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	OVEK H 4 A_CustomMissile("OGuardianNade",55,40)
	OVEK G 3 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	OVEK H 3 A_CustomMissile("OGuardianNade",55,40)
	OVEK G 2 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	OVEK H 2 A_CustomMissile("OGuardianNade",55,40)
	OVEK G 1 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	OVEK H 1 A_CustomMissile("OGuardianNade",55,40)
	Goto See
  BFG:
	TNT1 A 0 A_PlaySound("weapons/bfgf")
	OVEK GG 10 A_FaceTarget 
	OVEK F 4 Bright A_CustomMissile("OGuardianBFGBall",32,0)
	TNT1 A 0 A_Jump(185,"See")
	Goto BFG+1
  3Grenade:
	OVEK G 4 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,1)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,3)
	OVEK H 4 A_CustomMissile("OGuardianNade",55,40,6)
	OVEK G 3 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,1)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,3)
	OVEK H 3 A_CustomMissile("OGuardianNade",55,40,6)
	OVEK G 2 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,1)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,3)
	OVEK H 2 A_CustomMissile("OGuardianNade",55,40,6)
	OVEK G 1 A_Facetarget
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_PlaySound("weapons/carbinelaunch",0,1.0,0)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,1)
	TNT1 A 0 A_CustomMissile("OGuardianNade",55,40,3)
	OVEK H 1 A_CustomMissile("OGuardianNade",55,40,6)
	Goto See
  Death:
  XDeath:
	OVEK I 7 A_Scream 
	OVEK I 2 Bright 
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	OVEK IIJJJ 1 Bright A_CustomMissile("Kaboom5", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	OVEK JJJKK 1 Bright A_CustomMissile("Kaboom5", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	OVEK KKLLL 1 Bright A_CustomMissile("Kaboom5", Random(10,50), 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	OVEK M 6 A_NoBlocking
	OVEK N -1
	Stop
	}
}

ACTOR OGuardianNade : RifleGrenade
{
  Radius 6
  Height 6
  Speed 30
  Damage 40
  Species "Skeletons"
  Scale 0.75
  Projectile
  +THRUSPECIES
  +DOOMBOUNCE
  -NOGRAVITY
  -GRENADETRAIL
  -ROCKETTRAIL
  Gravity 0.2
  WallBounceFactor 0.25
  BounceFactor 0.36
  ExplosionDamage 128
  ExplosionRadius 128
  Obituary "%o successfully played catch with %k's Grenade."
  SeeSound "Weapons/GrenadeBounce"
  DeathSound "Weapons/RockLX"
  DamageType "DarkDemoEx"
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_StopSound
  SpawnLoop:
    OGRN A 1 A_CustomMissile("GrenadeTrail",Random(-1,1),Random(-1,1))     	
    Loop
  Death:
  	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
    TNT1 AAA 0 A_CustomMissile("Kaboom5", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_Explode
    TNT1 A 1 A_SpawnItem("RocketEx")
    Stop	
    }
}

ACTOR OGuardianPlasma : OverSeerPlasma
{
Projectile
Radius 13
Height 8
Speed 80
FastSpeed 85
Damage 8
Scale 1  
+FORCERADIUSDMG
DamageType "DarkDemoEx"
Renderstyle Add
SeeSound "OverseerPlasma/fire"
DeathSound "OverseerPlasma/explode"
States
{
  Spawn:
	OGRN AB 1 Bright A_SpawnItemEx("OverseerPlasmaTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(10,80,0)
	TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 AAA 0 A_CustomMissile("Kaboom7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	OGRN HIJ 3 Bright
	Stop
	}
}

ACTOR OGuardianBFGBall : OverseerDTBFG10KBall { DamageType "DarkDemoEx" }

ACTOR OverGuardianRail : OverseerLaser { DamageType "DarkDemoEx" Damage 5 }

ACTOR OGghost
{
Renderstyle Translucent
Alpha 0.75
Scale 0.85
+CLIENTSIDEONLY
+NOINTERACTION
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
    OVEK A 2 A_FadeOut(0.18)
    Wait
    }
}