ACTOR SacrosanctObserver 27906
{
  Monster
  Health 2000
  PainChance 20
  Scale 1.5
  Speed 16
  FloatSpeed 16
  Mass 2000
  Height 57
  Radius 52
  DamageFactor 0.55
  BloodColor "Green"
  SeeSound "SObserver/Sight"
  ActiveSound "SObserver/Active"
  PainSound "SObserver/Pain"
  DeathSound "SObserver/Death"
  DamageFactor "Cyber10K", 0.0
  DamageFactor "DemolisherEx", 0.0
  DamageFactor "DarkDemoEx", 0.0
  DamageFactor "LegendaryPlayer", 0.01
  DamageFactor "Legendary", 0.01
  DamageFactor "LegendaryGuru", 0.01
  DamageFactor "LegendaryGuruPlayer", 0.01
  DamageFactor "PlayerDevBall", 0.020
  DamageFactor "PlayerDevBall2", 0.020
  DamageFactor "PlayerDTBFGRailgunSlug", 0.020
  DamageFactor "PlayerDevTracer", 0.020
  DamageFactor "Baby15K", 0.0
  DamageFactor "Railg", 0.5
  DamageFactor "BFGSplash", 0.1
  DamageFactor "BFGSpray", 0.1
  DamageFactor "PDTBFG", 0.1
  DamageFactor "PDTBFGTracer", 0.1
  DamageFactor "PlayerDevBall", 0.1
  DamageFactor "PlayerDevBall2", 0.1
  DamageFactor "PlayerDTBFGRailgunSlug", 0.1
  DamageFactor "PlayerDevTracer", 0.1
  DamageFactor "PlayerNemesisPlasma", 0.1
  DamageFactor "PyroShot", 0.0
  DamageFactor "PlayerPyro", 0.0
  Species "Masterminds"
  Obituary "%o's atoms were stripped apart by a Sacrosanct Observer."
  +QUICKTORETALIATE
  +MISSILEMORE
  +FLOAT
  +BOSS
  +NOGRAVITY  
  +DONTHARMSPECIES
  +NORADIUSDMG
  +NOICEDEATH
  +NOTARGET
  +NOTIMEFREEZE
  +DONTRIP
  +THRUSPECIES
  Tag "\c[n4]Sacrosanct Observer\c-"
  var int user_missile;
  var int user_script;
  var int user_summons;
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_script == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("SacrosanctObserverFire",0)
	TNT1 A 0 A_SetUserVar("user_script",1)
	TNT1 A 0 A_Playsound("SObserver/Loop",7,1,1)
	SACW AB 2 Bright A_Look
	Loop
  See:
	TNT1 A 0 A_UnSetInvulnerable
	SACW AB 2 Bright A_Chase
	TNT1 A 0 A_Jump(35,"Evade")
	TNT1 A 0 A_Jump(20,"Teleport")
	Loop
  Evade:
	TNT1 A 0 A_Jump(128,19)
	TNT1 A 0 ThrustThing(Angle*256/360+64,20,0,0)
	SACW ABABABAB 2 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto See
	TNT1 A 0 ThrustThing(Angle*256/360+192,20,0,0)
	SACW ABABABAB 2 Bright A_Chase
	TNT1 A 0 A_Stop
	Goto See
  Teleport:
    SACW A 1 A_UnSetShootable
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeOut(0.2,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    TNT1 A 0 A_PlayWeaponSound("boss/teleport")
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    TNT1 AA 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"OverseerRailPuff",frandom(-70,70),frandom(-70,70),random(80,220),0,2.0,0,"OverseerRailParticle",10)
	SACW A 1 A_FadeIn(0.2)
    SACW A 1 A_SetShootable
    Goto See
  Pause:
	SACW ABAB 2 Bright
	Goto See
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_Jump(130,"BFG10K","BFG9K","ChaosLightning","ThunderCannon")
  Normal:
	SACW ABABABAB 2 Bright
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("BabyOverseerPlasma",7,0,frandom(-6,6),0)
	TNT1 A 0 A_CustomMissile("BabyOverseerPlasma",7,16,frandom(-6,6),0)
    SACW K 6 Bright A_CustomMissile("BabyOverseerPlasma",7,-16,frandom(-6,6),0)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("BabyOverseerPlasma",7,0,frandom(-6,6),0)
	TNT1 A 0 A_CustomMissile("BabyOverseerPlasma",7,16,frandom(-6,6),0)
    SACW L 6 Bright A_CustomMissile("BabyOverseerPlasma",7,-16,frandom(-6,6),0)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	TNT1 A 0 A_Jump(3,"Pause","BFG10K")
	TNT1 A 0 A_SpidRefire
	Goto Normal+8
  BFG10K:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_missile",0)
  BFG10KLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 20,"BFG10KEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
    SACW D 2 Bright A_CustomMissile("DarkDemo10K",18,0,Random(4,-4)) 
	SACW D 2 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
    BOVS CC 2 Bright A_FaceTarget
	Loop
  BFG10KEnd:
	SACW C 20 Bright A_PlaySound("weapons/bfg15kcooldown",CHAN_AUTO)
	TNT1 A 0 A_Jump(80,"ChaosLightning")
	Goto See
  BFG9K:
	TNT1 A 0 A_PlaySound("weapons/bfgf")
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW D 3 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
    SACW D 20 Bright A_CustomMissile("SpiderBFG9500Ball",18,0,Random(4,-4)) 
	Goto See
  ChaosLightning:
	SACW AAAA 3
	TNT1 A 0 A_PlaySound("SObserver/Attack",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  ChaosLightningCharge:
	TNT1 A 0 A_JumpIf(user_missile >= 10,"ChaosLightningFire")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ChaosSuperLightningFX",40,0,60)
	SACW V 4 A_SpawnItemEx("OverseerBrainSFX")
	Loop
  ChaosLightningFire:
	SACW V 4 A_SpawnItemEx("OverseerBrainSFX")
	SACW V 30 A_CustomMissile("SacroOverseerLightningBall",60,0,0)
	Goto See
  ThunderCannon:
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_SetUserVar("user_missile",0)
  ThunderCannonLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 2,"See")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_PlaySound("ThunderCannon/Fire",1)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW DDDD 1 A_CustomRailgun(random(2,4)*5,0,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,30,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",-10)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW DDDD 1 A_CustomRailgun(random(2,4)*5,0,NONE,NONE,RGF_SILENT|RGF_NOPIERCING,1,30,"OverseerRailPuff",0,0,0,0,2.0,0,"OverseerRailParticle",-10)
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("OverseerStrafe",1)
	SACW C 4 Bright A_FaceTarget
	Loop
  Pain:
	SACW A 3 Bright A_Pain
	SACW A 3 Bright
	TNT1 A 0 A_Jump(120,"Missile")
	Goto See
  Death:
	SACW A 20 Bright A_Scream
	SACW E 6 Bright A_Fall
	SACW F 6 Bright
	TNT1 AAA 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	SACW GGGGG 2 Bright A_CustomMissile("Kaboom5", random(20,40), random(10,-10), random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", random(20,40), 0, random(0,360), 2, random(0,360))
	SACW H 6 Bright
	SACW I 4
	SACW J 2
	TNT1 A -1 A_KillMaster
	Stop
  }
}