Actor Styx : HellKnight~ 27907
{
  Health 1600
  Speed 12
  Mass 1000
  Painchance 30
  Scale 1.15
  BloodColor "Red"
  +FLOORCLIP
  +MISSILEMORE
  +MISSILEEVENMORE
  +FASTMELEE
  +QUICKTORETALIATE
  +NOTARGET
  +DONTBLAST
  +DONTHARMSPECIES
  +BRIGHT
  Species "Nobles"
  DamageFactor 0.7
  DamageFactor "NobleComet", 0.0
  DropItem "NemesisHealthBonusMax", 200, 16
  DropItem "NemesisArmorBonus16", 200
  DropItem "DemonAmmoBox", 180, 200
  DropItem "HEMDroppedSoulSphere", 140
  DropItem "HemSpeedRune", 48, 1
  SeeSound "Styx/Sight" 
  ActiveSound "Styx/Active"
  PainSound "Styx/Pain"
  DeathSound "Styx/Death"
  Obituary "%o was obliterated by a Styx."
  HitObituary "%o was teared by a Styx."
  Tag "\c[x1]Styx\c-"
  var int user_currenthp;
  var int user_missile;
  States
	{
  Spawn:
	TNT1 A 0 A_JumpIfHealthLower(1600,"Idle")
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX A 10 A_Look
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYI A 10 A_Look
	Loop
  Idle:
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX AA 4 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	STYX BB 4 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX CC 4 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	STYX DD 4 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
	Loop
  See:
	TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX AA 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	STYX BB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
	STYX CC 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	STYX DD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire")
	TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
	TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
	Loop
  Melee:
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX EF 4 A_FaceTarget
	STYX G 4 A_CustomMissile("StyxMeleeAttack",32)
	Goto See
  Missile:
	TNT1 A 0 A_Jump(128,"BruiserBalls","BruiserComets","PyroComets","PyroFloorshits","HellfireTracers")
	TNT1 A 0 A_Jump(32,"SuperCombo","Shield")
  Normal:
	STYX EF 4 A_FaceTarget
	STYX G 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX G 2 A_CustomMissile("HFBall",32,0,5)
	STYX IJ 4 A_FaceTarget
	STYX K 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX K 2 A_CustomMissile("HFBall",32,0,5)
	TNT1 A 0 A_Jump(64,"Normal","BruiserBalls")
	Goto See
  BruiserBalls:
	STYX EF 4 A_FaceTarget
	STYX G 1 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall",32,0,-5)
	STYX G 1 A_CustomMissile("BBall",32,0,5)
	TNT1 A 0 A_CustomMissile("BBall",32,0,-10)
	STYX G 2 A_CustomMissile("BBall",32,0,10)
	STYX IJ 4 A_FaceTarget
	STYX K 1 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall",32,0,-5)
	STYX K 1 A_CustomMissile("BBall",32,0,5)
	TNT1 A 0 A_CustomMissile("BBall",32,0,-10)
	STYX K 2 A_CustomMissile("BBall",32,0,10)
	TNT1 A 0 A_Jump(64,"Normal","BruiserBalls")
	Goto See
  BruiserComets:
	STYX EF 5 A_FaceTarget
	STYX G 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX G 3 A_CustomMissile("Comet",32,0,5)
	STYX IJ 5 A_FaceTarget
	STYX K 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX K 3 A_CustomMissile("Comet",32,0,5)
	TNT1 A 0 A_Jump(128,"PyroComets")
	TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
	Goto See
  PyroComets:
	STYX MN 6 A_FaceTarget
	STYX O 1 A_CustomMissile("PyroComet",32,0,0)
	TNT1 A 0 A_CustomMissile("PyroComet",32,0,-7)
	STYX O 1 A_CustomMissile("PyroComet",32,0,7)
	TNT1 A 0 A_CustomMissile("PyroComet",32,0,-14)
	STYX O 4 A_CustomMissile("PyroComet",32,0,14)
	TNT1 A 0 A_Jump(64,"PyroFloorshits","HellfireTracers")
	TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
	Goto See
  PyroFloorshits:
	STYX MN 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("PyroFireSpawner",32,0,5)
	TNT1 A 0 A_CustomMissile("PyroFireSpawner",32,0,-5)
	STYX O 6 A_CustomMissile("PyroFireSpawner",32,0,0)
	Goto See
  HellfireTracers:
	STYX MN 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,5)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,-5)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,10)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,-10)
	STYX O 6 A_CustomMissile("HFBaronTracer",32,0,0)
	Goto See
  SuperCombo:
	TNT1 A 0 A_PlaySound("Styx/Sight",2)
	STYX MMMMM 4 A_SpawnItemEx("HellFireBaronFlameSpawner")
	STYX EF 4 A_FaceTarget
	STYX G 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX G 2 A_CustomMissile("HFBall",32,0,5)
	STYX IJ 4 A_FaceTarget
	STYX K 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX K 2 A_CustomMissile("HFBall",32,0,5)
	STYX EF 4 A_FaceTarget
	STYX G 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX G 2 A_CustomMissile("HFBall",32,0,5)
	STYX IJ 4 A_FaceTarget
	STYX K 2 A_CustomMissile("HFBall",32,0,0)
	TNT1 A 0 A_CustomMissile("HFBall",32,0,-5)
	STYX K 2 A_CustomMissile("HFBall",32,0,5)
	STYX EF 3 A_FaceTarget
	STYX G 2 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall2",32,0,-5)
	STYX G 1 A_CustomMissile("BBall2",32,0,5)
	STYX IJ 3 A_FaceTarget
	STYX K 2 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall2",32,0,-5)
	STYX K 1 A_CustomMissile("BBall2",32,0,5)
	STYX EF 3 A_FaceTarget
	STYX G 2 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall2",32,0,-5)
	STYX G 1 A_CustomMissile("BBall2",32,0,5)
	STYX IJ 3 A_FaceTarget
	STYX K 2 A_CustomMissile("BBall2",32,0,0)
	TNT1 A 0 A_CustomMissile("BBall2",32,0,-5)
	STYX K 1 A_CustomMissile("BBall2",32,0,5)
	STYX EF 5 A_FaceTarget
	STYX G 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX G 3 A_CustomMissile("Comet",32,0,5)
	STYX IJ 5 A_FaceTarget
	STYX K 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX K 3 A_CustomMissile("Comet",32,0,5)
	STYX EF 5 A_FaceTarget
	STYX G 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX G 3 A_CustomMissile("Comet",32,0,5)
	STYX IJ 5 A_FaceTarget
	STYX K 2 A_CustomMissile("Comet",32,0,0)
	TNT1 A 0 A_CustomMissile("Comet",32,0,-5)
	STYX K 3 A_CustomMissile("Comet",32,0,5)
	STYX MN 6 A_FaceTarget
	STYX O 1 A_CustomMissile("PyroComet",32,0,0)
	TNT1 A 0 A_CustomMissile("PyroComet",32,0,-7)
	STYX O 1 A_CustomMissile("PyroComet",32,0,7)
	TNT1 A 0 A_CustomMissile("PyroComet",32,0,-14)
	STYX O 4 A_CustomMissile("PyroComet",32,0,14)
	STYX MN 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,5)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,-5)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,10)
	TNT1 A 0 A_CustomMissile("HFBaronTracer",32,0,-10)
	STYX O 6 A_CustomMissile("HFBaronTracer",32,0,0)
	TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
	Goto See
  Pain:
	STYX Q 4 A_Pain
	TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 1000,"Shield")
	TNT1 A 0 A_Jump(20,"Shield")
	Goto See
  Shield:
	TNT1 A 0 A_PlaySound("Styx/Sight",2)
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",25,-25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",-25,-25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",-25,25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",25,25,10)
	STYX MMMNN 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	TNT1 A 0 A_SetUserVar(user_missile,0)
  ShieldLoop:
    TNT1 A 0 A_JumpIf(user_missile >= 5,"ShieldEnd")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",25,-25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",-25,-25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",-25,25,10)
	TNT1 A 0 A_SpawnItemEx("StyxShieldHitbox",25,25,10)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("StyxTracer",32,0,random(-90,90))
	STYX O 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("StyxTracer",32,0,random(-90,90))
	STYX O 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("StyxTracer",32,0,random(-90,90))
	STYX O 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("StyxTracer",32,0,random(-90,90))
	STYX O 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("StyxTracer",32,0,random(-90,90))
	STYX O 4 A_SpawnItemEx("StyxShieldEffectSpawner")
	Loop
  ShieldEnd:
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	STYX OONNMM 4 A_SpawnItemEx("HellFireBaronFlameSpawner")
	Goto See
  XDeath:
  Death: 
	STYX R 10 A_Scream
	STYX RRRRRRSSSSSSTTTTTTUUUUUUVVVVVV 2 A_SpawnItemEx("StyxDeathEffectSpawner")
	TNT1 A 0 A_ChangeFlag("BRIGHT",0)
	TNT1 AAAA 0 A_CustomMissile("SmokeFX",random(40,80),0,random(0,360),2,random(0,360))
	STYX W 8 A_Fall
	STYX XY 6
	STYX Z -1
	Stop
  Raise:
	TNT1 A 0 A_ChangeFlag("BRIGHT",1)
	STYX ZYXWVUTSR 3
	Goto See
	}
}

ACTOR StyxTracer : HFBaronTracer
{
  +THRUSPECIES
  Species "HellGuardianShield"
  Obituary "%o was obliterated by a Styx." 
}

Actor StyxMeleeAttack
{
  Projectile
  Height 6
  Radius 3
  Speed 35
  Renderstyle Add
  Damage (8*random(6,8))
  +THRUSPECIES
  +DONTHARMSPECIES
  Species "Nobles"
  Damagetype "NobleComet"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 2
	Stop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(30,100,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner")
	TNT1 AA 0 A_CustomMissile("Kaboom9",0,0,random(0,360),2,random(0,360))
	TNT1 AA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
	BRBA A 1 Bright A_PlaySound("monster/psodeath",0,1.0,0)
	BRBA DEFGGG 3 Bright A_FadeOut(0.1,1)
	Stop
	}
}

Actor StyxShieldHitbox : HellGuardianShieldHitbox
{
  States
  {
  Spawn:
	TNT1 A 20 NoDelay
	Stop
	}
}

ACTOR StyxDeathEffectSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 AA 0 A_SpawnItemEx("CardinalFire",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
	TNT1 A 0 A_SpawnItemEx("Kaboom9",random(12,-12),random(12,-12),random(12,64),frandom(-2,2),frandom(-2,2),frandom(-2,2))
	TNT1 A 0 A_SpawnItemEx("SmokeFX4",random(12,-12),random(12,-12),random(12,64),frandom(-2,2),frandom(-2,2),frandom(-2,2))
	TNT1 A 0 A_SpawnItemEx("HFBaronWalkFire",random(-20,20),random(-20,20),0,frandom(-1,1),frandom(-1,1))
    TNT1 A 1
    Stop
	}
}

ACTOR StyxShieldEffectSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 0 A_SpawnItemEx("HellFireBaronFlameSpawner")
	TNT1 AA 0 A_SpawnItemEx("StyxShieldEffect",random(-25,25),random(-25,25),random(12,70),0,0,random(1,3),0,128,0)
    TNT1 A 1
    Stop
	}
}

Actor StyxShieldEffect
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  Renderstyle Add
  Scale 1.25
  States
  {
  Spawn:
	SYFX ABCDEFGH 4 Bright
	Stop
	}
}