ACTOR SolarisCyBelphegor : BaronOfHell 30887
{
//Creator: Titanium
//Origin: Nexus Infinity
//Sprite: SOCY
//Title: "Solaris CyBelphegor" 
Health 3000
Mass 3500
Speed 10
Scale 1.15
Bloodcolor "Yellow"
Painchance "Mine", 128
Painchance "SatanGuard", 0
PainChance 5
MeleeRange 50
Meleedamage 150
Species "Nobles"
Damagefactor "Acid", 0.1
DamageFactor "Ice", 0.25
DamageFactor "FreezerBurn", 0.25
Damagefactor "Fire", 0.0
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.1
DamageFactor "Explosion", 0.45
DamageFactor "AllyExplosion", 0.25
DamageFactor "PlayerDTRG", 0.4
DamageFactor "AllyDTRG", 0.2
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.15
DamageFactor "PlayerDevBall2", 0.15
DamageFactor "PlayerDevTracer", 0.15
DamageFactor "Legendary", 0.75
DamageFactor "LegendaryPlayer", 0.75
//No Infighting
Damagefactor "UBDTR", 0.0
Damagefactor "DarkbruiserBFG10K", 0.0
Damagefactor "DarkBruiserRailgunSlug", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DamageFactor "NobleComet", 0.0
Damagefactor "CurseComet", 0.0
DamageFactor "AfritComet", 0.0
DamageFactor 0.50
DropItem "NemesisHealthBonusMax", 200, 25
DropItem "NemesisArmorBonusMax", 200
DropItem "NemesisArmorBonusMax", 200
DropItem "NemesisArmorBonusMax", 200
DropItem "NemesisArmorBonusMax", 200
DropItem "CannongunSphere" 120
DropItem "BerserkSphere" 80
DropItem "SuperArmorSphere", 48, 1
SeeSound "cbaron/sight" 
ActiveSound "cbaron/active"
MeleeSound "baron/melee"
PainSound "blooddemon/pain"
DeathSound "monster/UBRdth"
Obituary "%o was gamma radiated by a Solaris CyBelphegor."
HitObituary "%o was sliced off %p body by a Solaris CyBelphegor's irradiated hand."
Tag "\c[l4]Solaris \c[u0]Cy\c[a4]Belphegor\c-"
+NOTARGET
+DONTMORPH
+FASTMELEE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
+NOICEDEATH
var int user_missile;
var int user_rageloop;
States
	{
	Spawn:
		SOCY AA 7 A_Look
		Loop 
	See:
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		SOCY A 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY A 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY B 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY B 3 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("BruiserStep2",0,0,2,0,0,-20)
		SOCY C 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY C 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY D 3 A_Chase
		TNT1 A 0 HealThing(2)
		SOCY D 3 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("BruiserStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(62,"Boost")
		Loop
	Boost:
		SOCY A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY A 1 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY B 1 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BruiserStep2",0,0,2,0,0,-20)
		SOCY C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY C 1 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		SOCY D 1 A_Chase
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SpawnItemEx("SolarisCyBelphGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("BruiserStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_Jump(50,"See")
		Loop
	Pause:
		TNT1 A 0
		SOCY E 10
		SOCY E 20 A_PlaySound("weapons/12gsgcock")
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		TNT1 A 0 A_Jump(128,"Lazer","CometRain")
		Goto Lazer
	Missile2:
		TNT1 A 0
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		TNT1 A 0 A_Jump(128,"Lazer2","CometRain")
		Goto Lazer2
	Normal:
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		SOCY UVW 4 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_missile",0)
	NormalLoop:
		TNT1 A 0 A_JumpIf(user_missile >= 22,"NormalEnd")	 
		TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
		TNT1 A 0 A_Playsound("remishot",0)
		TNT1 A 0 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		TNT1 A 0 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		SOCY W 4 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		Loop
	NormalEnd:
		SOCY IH 5
		Goto See
	Lazer:
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		SOCY EE 10 A_FaceTarget 
		TNT1 A 0 A_PlaySound("Plamexis/Ding",1)
		SOCY F 10 Bright A_CustomMissile("SolCyBelpheLaser",45,20,0,CMF_TRACKOWNER)
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
	LazerStill:
		SOCY E 20 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		TNT1 A 0 A_PlaySound("Plamexis/Ding",1)
		SOCY F 10 Bright A_CustomMissile("SolCyBelpheLaser",45,20,0,CMF_TRACKOWNER)
		SOCY E 20 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		TNT1 A 0 A_PlaySound("Plamexis/Ding",1)
		SOCY F 10 Bright A_CustomMissile("SolCyBelpheLaser",45,20,0,CMF_TRACKOWNER)
		SOCY E 20 A_FaceTarget
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		TNT1 A 0 A_PlaySound("Plamexis/Ding",1)
		SOCY F 10 Bright A_CustomMissile("SolCyBelpheLaser",45,20,0,CMF_TRACKOWNER)
		SOCY E 10
		TNT1 A 0 A_JumpIfCloser(500,"Normal")
		SOCY E 5
		Goto See
	Lazer2:
		SOCY EE 10 A_FaceTarget 
		TNT1 A 0 A_PlaySound("Plamexis/Ding",1)
		SOCY F 10 Bright A_CustomMissile("SolCyBelpheLaser",45,20,0,CMF_TRACKOWNER)
		Goto LazerStill
	CometRain:
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		SOCY GH 10 A_FaceTarget 
		TNT1 A 0 A_CustomMissile("SolarisCyBelpheSpawner2",46,0,-20)
		TNT1 A 0 A_CustomMissile("SolarisCyBelpheSpawner2",46,0,20)
		SOCY I 20 A_CustomMissile("SolarisCyBelpheSpawner2",46,0,0)
		Goto See
	Melee:
		TNT1 A 0
		SOCY GH 4 A_FaceTarget
		TNT1 A 0 A_Playsound("remishot",0)
		TNT1 A 0 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		TNT1 A 0 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		TNT1 A 0 A_CustomMissile("SolCyBelpheOrb",32,0,random(-20,20))
		SOCY I 4 A_MeleeAttack
		SOCY HG 4 A_FaceTarget
		Goto See
	Pain:
		TNT1 A 0 A_Jump(56,"PainRage")
		TNT1 A 0 A_Jump(107,"PainMissile")
		SOCY J 8 A_Pain
		Goto See
	PainMissile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		SOCY J 8 A_Pain
		Goto Missile2
	PainRage:
		TNT1 A 0 A_JumpIfCloser(1200,1)
		Goto Pain+1
		TNT1 A 0 A_JumpIfInventory("SolarisCyBelpheToken",3,"PainMissile")
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		SOCY J 20 A_Pain
		TNT1 A 0 A_GiveInventory("SolarisCyBelpheToken",1)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 Radius_Quake(6,60,0,18,0)
		TNT1 A 0 A_GiveInventory("Health",250)
		TNT1 A 0 A_PlaySound("LesserCardinal/Laugh")
		TNT1 A 0 A_SetUserVar("user_rageloop",0)
	PainRageLoop:
		TNT1 A 0 A_JumpIf(user_rageloop >= 15,"PainRageEnd")	 
		TNT1 A 0 A_SetUserVar("user_rageloop",user_rageloop+1)
		TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
		SOCY J 2 Bright A_SpawnItemEx("SolarisCyBelpheSpawner",Random(-800,800),Random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
		Loop
	PainRageEnd:
		TNT1 A 0 A_UnSetInvulnerable
		SOCY J 6
		Goto See
	Death:
	XDeath:
		TNT1 A 0 A_Jump(64,"Surprise")
		SOCY K 7 A_Scream
		SOCY LLLLMMMMNNNNO 2 Bright A_CustomMissile ("PainfulDeathKaboom", Random(10,50), 0, random(0,360), 2, random(0,360))
		TNT1 A 0 A_SpawnItem("MiniDeathBall")
		TNT1 AA 0 A_SpawnItemEx("YellowGibbedGenerator",0,0,0,0,0,0,0,128)
		TNT1 AAAA 0 A_CustomMissile("LegendarySmokeFX", Random(30,60), 0, random(0,360), 2, random(0,360))	
		SOCY OOO 2
		SOCY P 3 A_NoBlocking
		SOCY Q 3 A_SpawnItem("BodyCrash",0,0,0,0)
		TNT1 A 0 A_BossDeath
		SOCY R -1 A_KillMaster
		Stop
	Surprise:
		SOCY K 1 A_Scream
		TNT1 KKKKKK 1 Bright A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 Radius_Quake(6,60,0,18,0)
		SOCY LLLLMMMMNNNNO 2 Bright A_CustomMissile ("PainfulDeathKaboom", Random(10,50), 0, random(0,360), 2, random(0,360))
		TNT1 A 0 A_SpawnItem("MiniDeathBall")
		TNT1 AA 0 A_SpawnItemEx("YellowGibbedGenerator",0,0,0,0,0,0,0,128)
		TNT1 AAAA 0 A_CustomMissile("LegendarySmokeFX", Random(30,60), 0, random(0,360), 2, random(0,360))	
		SOCY OOO 2
		SOCY P 3 A_NoBlocking
		SOCY Q 3 A_SpawnItem("BodyCrash",0,0,0,0) 
		SOCY R 120 A_BossDeath
		SOCY RRRRR 2 Bright A_SpawnItemEx("SolarisCyBelpheSpawner",Random(-800,800),Random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
		SOCY RRRRR 2 Bright A_SpawnItemEx("SolarisCyBelpheSpawner",Random(-800,800),Random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
		SOCY RRRRR 2 Bright A_SpawnItemEx("SolarisCyBelpheSpawner",Random(-800,800),Random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
		SOCY R -1 A_KillMaster
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		SOCY RQPONMLK 5
		GoTo See
	}
}

ACTOR SolarisCyBelpheToken : Inventory
{
Inventory.Amount 1
Inventory.MaxAmount 3
}

ACTOR SolarisCyBelphGhostA
{
Radius 2
Height 64
RENDERSTYLE Translucent
Alpha 0.7
Scale 1.15
+NOINTERACTION
+CLIENTSIDEONLY
+NOTIMEFREEZE
+NONETID
States
	{
	Spawn:
		TNT1 A 1 Bright
		SOCY A 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor SolarisCyBelphGhostB : SolarisCyBelphGhostA
{
States
	{
	Spawn:
		TNT1 A 1 Bright
		SOCY B 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor SolarisCyBelphGhostC : SolarisCyBelphGhostA
{
States
	{
	Spawn:
		TNT1 A 1 Bright
		SOCY C 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor SolarisCyBelphGhostD : SolarisCyBelphGhostA
{
States
	{
	Spawn:
		TNT1 A 1 Bright
		SOCY D 2 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

ACTOR SolarisCyBelpheSpawner : RainCometSpawner
{
//+NOTIMEFREEZE
Speed 20
States
{
Spawn:
	TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_Wander
	CMRA ABCDEFGHIJABCDEFGHIJ 2 Bright A_Wander
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA HHHIIIJJJ 1 Bright A_Wander
	TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
FadeOut:
	CMRA ABCDEFGHIJ 2 Bright A_FadeOut(0.06)
    Goto FadeOut
	}
}

ACTOR SolCyBelpheFireRain : PlamexisFireRain
{
  DamageType "NobleComet"
  Species "Nobles"
  States 
  {
  Spawn:
    CLBB F 1 Bright A_SpawnItemEx("PlamexisFireRainTrail",0,0,0,frandom(-4,4),frandom(-4,4),frandom(0,10))
    Loop
  Death:
	TNT1 A 0 A_PlaySound("Plamexis/Laser",7)
    PLAL AB 3 Bright
	PLAL CDEF 3 Bright A_Explode(60,200)
	PLAL GHIJ 3 Bright A_Explode(60,120)
	PLAL KL 3 Bright
    Stop
	}
}

Actor SolarisCyBelpheSpawner2 : RainCometSpawner
{
  Speed 30
  FastSpeed 20
  ReactionTime 200
  States
  {
  Spawn:
	TNT1 A 0 A_Countdown
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("SolCyBelpheFireRain",-18,random(0,20),random(0,360),2)
	CMRA HHHIIIJJJ 1 Bright A_Wander
	Loop
  Death:
	CMRA ABCDEFGHIJ 2 Bright A_FadeOut(0.06)
	Loop
  }
}

ACTOR SolCyBelpheOrb : StrongUtsuhoOrb
{
  DamageType "NobleComet"
  Species "Nobles"
}

ACTOR SolCyBelpheLaser : FastProjectile
{
  Radius 8
  Speed 100
  Height 8
  Damage 5
  Scale 0.6
  +RIPPER
  +FORCERADIUSDMG
  SeeSound "Plamexis/LaserFire"
  MissileType "PlamexisLaserTrail"
  MissileHeight 8
  Damagetype "NobleComet"
  States
  {
  Spawn:
	//TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("YellowProjParticleSuperLarge2",0,0,0,frandom(0,6),frandom(-6,6),frandom(-6,6))
	TNT1 A 0 NoDelay A_SpawnItemEx("GuruChunkSpark",0,0,0,3)
  SpawnLoop:
    TNT1 A 1 A_Explode(30,200)
    Loop
  Death:
	TNT1 A 0 A_Explode(450,200)
    TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItemEx("GuruChunkSpark",0,0,0,frandom(-6,6),frandom(-6,6),frandom(-6,6))
    Stop
  }
}