Actor Hellspawn : BruiserDemon 27908
{
  Health 1500
  Radius 24
  Height 64
  Mass 2000
  Speed 8
  Scale 1.1
  PainChance 40
  DamageFactor 0.8
  DropItem "NemesisHealthBonusMax", 200, 16
  DropItem "NemesisArmorBonus16", 200
  DropItem "NemesisHealthBonusMax", 200, 16
  DropItem "NemesisArmorBonus16", 200
  DropItem "PainLordSoul" 200
  DropItem "BigCFMana" 128 100
  DropItem "CFMana" 256 30
  DropItem "BrimstoneItem" 80 1
  Species "Nobles"
  DamageFactor "NobleComet", 0.0
  DamageType "NobleComet"
  MeleeDamage 25
  BloodColor "Red"
  SeeSound "Hellspawn/Sight"
  PainSound "Painlord/Pain"
  DeathSound "Hellspawn/Death"
  ActiveSound "Hellspawn/Idle"
  +MISSILEMORE
  +MISSILEEVENMORE
  +DONTHURTSPECIES
  +QUICKTORETALIATE
  +DONTHARMSPECIES
  +BRIGHT
  Obituary "%o wasn't turned into the demon by an Hellspawn"
  HitObituary "%o was burned by an Hellspawn"
  Tag "$NEHellSpawn"
  var int user_lowlag;
  States
  {
	Spawn:
	TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ModifyMonster",0,1)
	Goto Idle
  Idle:
	HSWN A 10 A_Look
	Loop
  See:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	HSWN ABCD 6 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN AA 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN BB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN CC 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN DD 3 A_Chase
	Loop
    Idle:
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN AA 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN BB 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItem("HoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN CC 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("HellspawnWalkFire",0,0,0,0,0,0,0,128)
	HSWN DD 3 A_Wander
	TNT1 A 0 A_Look
	Loop
    Melee:
	HSWN E 0 A_Jump(128,"Melee2")
	HSWN EF 6 A_FaceTarget
	HSWN G 6 A_ComboAttack
	Goto See
    Melee2:
	HSWN HI 6 A_FaceTarget
	HSWN J 6 A_ComboAttack
	Goto See
	
  Missile:
	HSWN E 0 A_JumpIfCloser(900, "MaybeGroundPound")
	HSWN E 0 A_Jump(127,"BothMissile","DarkMatter","Homing")
	HSWN E 0 A_Jump(64,"DarkMatterBarrage")
  LeftMissile:
	HSWN E 0 A_Jump(128,"RightMissile")
	HSWN EF 6 A_FaceTarget
	HSWN G 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	TNT1 A 0 A_Jump(160,"Homing","DarkMatter","BothMissile")
	Goto See
  RightMissile:
	HSWN HI 6 A_FaceTarget
	HSWN J 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	TNT1 A 0 A_Jump(160,"Homing","DarkMatter","BothMissile")
	Goto See
  BothMissile:
	HSWN E 0 A_Jump(128,"BothMissileAlt")
	HSWN EF 6 A_FaceTarget
	HSWN G 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN HI 6 A_FaceTarget
	HSWN J 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	TNT1 A 0 A_Jump(160,"DarkMatter")
	Goto See
  BothMissileAlt:
	HSWN HI 6 A_FaceTarget
	HSWN J 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN EF 6 A_FaceTarget
	HSWN G 6 A_CustomMissile("HellspawnSuperBall",40,0,0)
	TNT1 A 0 A_Jump(160,"DarkMatter")
	Goto See
  DarkMatter:
	HSWN E 0 A_Jump(128,"DarkMatterAlt")
	HSWN EF 8 A_FaceTarget 	
	HSWN G 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)
	TNT1 A 0 A_Jump(64,"See")
	HSWN HI 8 A_FaceTarget 	
	HSWN J 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)	
	TNT1 A 0 A_Jump(64,"LeftMissile","Homing","BothMissile","DarkMatterBarrage")	
	Goto See
  DarkMatterAlt:
	HSWN HI 8 A_FaceTarget 	
	HSWN J 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)
	TNT1 A 0 A_Jump(64,"See")
	HSWN EF 8 A_FaceTarget 	
	HSWN G 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)	
	TNT1 A 0 A_Jump(64,"LeftMissile","Homing","BothMissile","DarkMatterBarrage")	
	Goto See
  DarkMatterBarrage:
	HSWN E 0 A_Jump(64,"GreatDarkMatterBarrage")
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	HSWN K 1 A_Playsound("Painlord/Attack",4)
	HSWN KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 1 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN KL 12 A_FaceTarget 	
	HSWN M 3 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)
	HSWN M 0 A_Custommissile("HellspawnDarkMatter", 32, 0, -8)
	HSWN M 6 A_Custommissile("HellspawnDarkMatter", 32, 0, 8)	
	TNT1 A 0 A_Jump(128,"See")	
	Goto See
  GreatDarkMatterBarrage:
	HSWN K 1 A_Playsound("Painlord/Attack",4)
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	HSWN KKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 1 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN KKKKKKKKKKKKKKK 1 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN KL 12 A_FaceTarget 	
	HSWN M 3 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)
	HSWN M 0 A_Custommissile("HellspawnDarkMatter", 32, 0, -8)
	HSWN M 0 A_Custommissile("HellspawnDarkMatter", 32, 0, -16)
	HSWN M 0 A_Custommissile("HellspawnDarkMatter", 32, 0, 16)
	HSWN M 6 A_Custommissile("HellspawnDarkMatter", 32, 0, 8)	
	TNT1 A 0 A_Jump(128,"See")	
	Goto See
	
	Homing:
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	HSWN KKKK 5 A_FaceTarget
	HSWN L 3
	HSWN M 4 A_CustomMissile("HellspawnHomingSuperBall",36,0,0)
	TNT1 A 0 A_Jump(32,"See")
	HSWN KK 5 A_FaceTarget
	HSWN L 3
	HSWN M 4 A_CustomMissile("HellspawnHomingSuperBall",36,0,0)
	Goto See
	
    Rage:
	TNT1 A 0 A_ChangeFlag("NORADIUSDMG",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	HSWN EF 6 A_FaceTarget
	HSWN G 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN HI 4 A_FaceTarget
	HSWN J 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN EF 4 A_FaceTarget
	HSWN G 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN HI 4 A_FaceTarget
	HSWN J 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN EF 4 A_FaceTarget
	HSWN G 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN HI 4 A_FaceTarget
	HSWN J 3 A_CustomMissile("HellspawnSuperBall",40,0,0)
	HSWN EF 4 A_FaceTarget
	TNT1 A 0 A_Jump(64,"DarkMatter2")
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	HSWN KKKK 5 A_FaceTarget
	HSWN L 3
	HSWN M 4 A_CustomMissile("HellspawnHomingSuperBall",36,0,0)
	HSWN KK 5 A_FaceTarget
	HSWN L 3
	HSWN M 4 A_CustomMissile("HellspawnHomingSuperBall",36,0,0)
	Goto See
	
	DarkMatter2:
	HSWN EF 8 A_FaceTarget 	
	HSWN G 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)
	HSWN HI 8 A_FaceTarget 	
	HSWN J 7 A_Custommissile("HellspawnDarkMatter", 32, 0, 0)	
	Goto See
	
  MaybeGroundPound:
	HSWN E 0 A_Jump(160,"Homing","DarkMatter","BothMissile")
  GroundPound:
	HSWN A 0 A_PlaySound("Hellspawn/Sight", 1)
	HSWN M 0 A_FaceTarget
	HSWN MMMM 2 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN A 0 A_Playsound ("Hellspawn/Attack", 2)
	HSWN L 0 A_FaceTarget
	HSWN LLLL 2 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN K 0 A_FaceTarget
	HSWN KKKK 2 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN L 0 A_FaceTarget
	HSWN LLLL 2 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN M 0 A_FaceTarget
	HSWN MMMM 2 A_SpawnItem("HellspawnSmokeSpawner")
	HSWN M 0 A_FaceTarget
	    EXPL A 0 Radius_Quake (2, 24, 0, 15, 0)
	    TNT1 A 0 A_PlaySound("superbaron/smash", 3)
	//TNT1 A 0 A_Explode(20,128,0,0,0,0,0,0,"NobleComet")
	TNT1 A 0 A_Explode(20,128)
	    TNT1 A 0 A_PlaySound("ground/hoofslam", 4)
	TNT1 A 0 A_Custommissile("HellspawnSpikeSpawner",16,0,-15,0)
	TNT1 A 0 A_Custommissile("HellspawnSpikeSpawner",16,0,0,0)
	TNT1 A 0 A_Custommissile("HellspawnSpikeSpawner",16,0,15,0)
	HSWN M 12
	Goto See
	
	
	Pain:
	TNT1 A 0 A_Jump(158,"PainMissile")
	HSWN N 5 A_Pain
	Goto See
	PainMissile:
	HSWN N 5 A_Pain
	TNT1 A 0 A_Jump(88,"Rage")
	Goto Missile
  Death:
  XDeath:
	TNT1 A 0 A_BossDeath
	BT03 A 5 A_ChangeFlag("BRIGHT",0)
	BT03 B 5 A_Scream
	BT03 C 5 A_Fall
	BT03 D 5 A_SpawnItem("BodyCrash",0,0,0,0) 
	BT03 E 5
	BT03 F 0 A_KillMaster
	BT03 F -1
	Stop
	
  Raise:
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("BRIGHT",1)
	BT03 FEDCBA 2
	Goto See
	}
}

ACTOR HellspawnHomingSuperBall : MReimuHomingSuperBall
{
  Damagetype "NobleComet"
}

ACTOR HellspawnSuperBall : MReimuSuperBall
{
  Damagetype "NobleComet"
}

ACTOR HellspawnDarkMatter : MainyuRedDarkMatter
{
  Damagetype "NobleComet"
  -NOTIMEFREEZE
}

Actor HellspawnSpikeSpawner
{
  Radius 8
  Height 8
  Speed 12
  Damage 0
  +Ripper
  +FloorHugger
  +BloodlessImpact
  Projectile
  MissileType HellspawnSpike
  Missileheight 0
  States
  {
  Spawn:
    
    TNT1 A 1 Bright A_MissileAttack
    TNT1 A 5
    TNT1 A 5 A_SpawnItemEx("HSRedFireEffect",0,0,0,1,0,0,0,128)
    Loop
  Death:  
    TNT1 A 6
    Stop
  }
}


ACTOR HellspawnSpike
{
	Scale 0.8
	Radius 6
	Height 8
	Projectile
	Renderstyle Translucent
	DamageType "NobleComet"
	+FLOORHUGGER
	+NOCLIP
	States
	{
	Spawn:
	HPIK A 0
	TNT1 A 0 A_Explode(64,128,0)
	HPIK A 1 A_PlaySoundEx("superbaron/spike", "Auto")
	    EXPL A 0 Radius_Quake (2, 24, 0, 15, 0)        
	    TNT1 AAAAAA 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge",0,0,0,frandom(-7,7),frandom(-7,7),frandom(-7,7),random(0,359))
	    TNT1 AAAAAA 0 A_SpawnItemEx("BlackProjParticleSuperLarge",0,0,0,frandom(-7,7),frandom(-7,7),frandom(-7,7),random(0,359))
	HPIK BC 1
	HPIK D 1 Radius_Quake(2,5,0,2,0)
	HPIK EF 1
	HPIK G 0 A_Explode(200,200,0)
	HPIK G 1 
	HPIK GFEDCB 2 
	HPIK A 50
	HPIK AAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.05)
	Stop
	Death:
	TNT1 A 1
	Stop
	}
}

ACTOR HSRedFireEffect
{
    +NOCLIP
    +MISSILE
    +DROPOFF
    +RANDOMIZE
    Scale 0.8
    Speed 1
    Renderstyle Subtract
    //ALPHA 0.67
    States
    {
    Spawn:
        NULL A 8
        H1RF A 3 Bright
	H1RF A 0 
	H1RF B 3 Bright
	    H1RF B 0 
	    H1RF C 3 Bright
	    H1RF C 0 
        H1RF C 0
        H1RF DEFGHIJKLMNO 3 Bright
        Stop
    }
}

Actor HellspawnWalkFire : DukeWalkFire
{
  Renderstyle Subtract
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    TNT1 A 10
    H1RF ABC 3 Bright
    TNT1 A 0 A_Jump(191,3)
    TNT1 A 0 A_CustomMissile("HellspawnWalkFire", 0, 24, 0)
    TNT1 A 0 A_CustomMissile("HellspawnWalkFire", 0, -24, 0)
    H1RF DEFGHIJKLMNO 3 Bright
    Stop
  }
}

ACTOR HellspawnSmokeSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    TNT1 A 0 A_SpawnItemEx("HellspawnBallTrail",random(-30,30),random(-30,30),random(5,45),0,0,1)
    TNT1 A 1
    Stop
  }
}

ACTOR HellspawnBallTrail : ImpBallTrail
{
  RenderStyle Subtract
  Scale 0.25
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    FIC1 A 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 B 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 C 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 D 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 E 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 F 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 G 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 H 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 I 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 J 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 K 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
	FIC1 L 1 Bright A_ChangeVelocity(0,0,0.7)
	TNT1 A 0 A_FadeOut
    Stop
  }
}