Actor Satanic_BaronOfHell : BaronOfHell Replaces HellKnight 5018
{  
	Height 48
	BloodType "SRGreyBlood"
	BloodColor "45 45 45"
	DamageFactor NoDamage,	 		0
	PainChance "Turn", 255
	PainChance "Fire", 				0
	PainChance "Posession", 		255
	-FRIENDLY
	+MISSILEMORE
	+MISSILEEVENMORE
	States
	{
	Spawn:
		BOSS A 0 Thing_Hate(0,669,3)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget10",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS A 10 A_Look
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget10",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS B 10 A_Look
		Goto Spawn+1
	See:
		BOSS I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto StandardSee
		BOSS A 0
		Goto PosessedMove
	PosessedMove:
		BOSS A 0 A_JumpIfInventory("Satanic_PosessedFire",1,1)
		Goto PosessedStandardMove
		BOSS A 0
		Goto PosessedFire
	PosessedFire:
		BOSS E 0 ACS_ExecuteAlways(805,0,1,0,0)
		BOSS E 3 
		BOSS E 0 ACS_ExecuteAlways(805,0,2,0,0)
		BOSS F 3 
		BOSS E 0 ACS_ExecuteAlways(805,0,3,0,0)
		BOSS G 3 A_CustomMissile("Satanic_BaronBall",52.0,12,0.0,2,-pitch)
		BOSS E 0 ACS_ExecuteAlways(805,0,2,0,0)
		BOSS E 3 
		BOSS E 0 ACS_ExecuteAlways(805,0,0,0,0)
		BOSS E 0 A_TakeInventory("Satanic_PosessedFire",1)
		Goto See
	PosessedStandardMove:
		BOSS AAAAAABBBBBBCCCCCCDDDDDD 1 ACS_Execute(803,0,60,40,11)
		BOSS A 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto Spawn+1
		BOSS A 0
		Goto See
	StandardSee:
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS A 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS A 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS B 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS B 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS C 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS C 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS D 3 A_Chase
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,"Wander",AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS D 3 A_Chase
		Goto See
	Wander:
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS A 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS A 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS B 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS B 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS C 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS C 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS D 3 A_Wander
		TNT1 A 0 A_JumpIfInventory("PowerNecShroud",1,1,AAPTR_PLAYER1)
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS D 3 A_Wander
		Goto See
	Melee:
	Missile:
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget10",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS E 8 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget10",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS F 8 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget10",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS G 8 A_BruisAttack
		Goto See
	Pain.Turn:
		TNT1 A 0 ACS_Execute(824,0,20,0,0)
		BOSS H 2
		TNT1 A 0 A_ChangeFlag("Friendly",1)
		BOSS H 2 A_Pain
		Goto See
	Pain:
		BOSS H 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto Pain+2
		BOSS H 0
		Goto See
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS H 2
		TNT1 A 0 A_SpawnItemEx("BaronHeadTarget",0,0,48,velx,vely,velz,0,SXF_SETMASTER)
		BOSS H 2 A_Pain
		Goto See
	Pain.Posession:
		BOSS H 0
		BOSS H 0 ACS_ExecuteAlways(791,0,40,0,0)
		BOSS H 0 A_GiveInventory("Satanic_IsPosessed",1)
		BOSS H 0 Thing_ChangeTID(0,669)
		BOSS H 0 ACS_ExecuteAlways(802,0,60,0,0)
		Goto See
	Pain.DrainHealthEver:
		BOSS H 2
		BOSS H 0 ACS_ExecuteAlways(772,0,6,0,0)
    	BOSS H 2 A_Pain
    	Goto See
	Death:
		BOSS I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeath
		BOSS I 0 ACS_ExecuteAlways(801,0,0,0,0)
		BOSS I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeath
	Death.DrainMana:
		BOSS I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeathDrainMana
		BOSS I 0 ACS_ExecuteAlways(801,0,0,0,0)
		BOSS I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeathDrainMana
	Death.DrainHealthEver:
	Death.DrainHealth:
		BOSS I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualDeathDrainHealth
		BOSS I 0 ACS_ExecuteAlways(801,0,0,0,0)
		BOSS I 0 ChangeCamera(0, 0, 0) 
		Goto ActualDeathDrainHealth
	Death.DemonFire:
	Burn:
		BOSS I 0 A_JumpIfInventory("Satanic_IsPosessed",1,1)
		Goto ActualBurn
		BOSS I 0 ACS_ExecuteAlways(801,0,0,0,0)
		BOSS I 0 ChangeCamera(0, 0, 0) 
		Goto ActualBurn
	ActualDeath:
		BOSS I 8
		BOSS J 8 A_Scream
		BOSS K 8
		BOSS L 8 A_NoBlocking
		BOSS M 8
		BOSS N 0 A_BossDeath
		BOSS N -1
		Stop
	Death.BoomHeadshot:
		TNT1 AAAAAAAA 0 A_GiveToTarget("DrainedHealth",1)
		TNT1 A 0 A_XScream
		BARH A 12 A_SpawnItemEx("SRGreyBloodFountain",0,0,48,velx,vely,velz,0)
		BARH A 12 A_SpawnItemEx("SRGreyBloodFountain",0,0,48,velx,vely,velz,0)
		BARH A 12 A_SpawnItemEx("SRGreyBloodFountain",0,0,48,velx,vely,velz,0)
		BARH B 8
		BARH C 8
		BOSS L 8 A_NoBlocking
		BOSS M 8
		BOSS N 0 A_BossDeath
		BOSS N -1
		Stop
	ActualDeathDrainMana:
		BOSS I 0 A_Scream
		BOSS I 0 A_Fall
		BOSS I 0 ACS_ExecuteAlways(779,0,18,0,0)
		BOSS IJKLM 5
		BOSS N 0 A_BossDeath
		BOSS N -1        
		Stop
	ActualDeathDrainHealth:
		BOSS I 0 A_Scream
		BOSS I 0 A_Fall
		BOSS I 0 ACS_ExecuteAlways(772,0,30,0,0)
		BOSS IJKLM 5
		BOSS N 0 A_BossDeath
		BOSS N -1        
		Stop
	ActualBurn:
		BOSB I 0 A_Scream
		BOSB I 0 A_Fall
		BOSB I 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		BOSB I 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		BOSB I 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		BOSB I 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		BOSB I 0 A_CustomMissile("Satanic_HellfireDeviceBoltSecondary",Random(0,64),0,Random(-360,360),0,0)
		BOSB I 0 A_CustomMissile("Satanic_FireStarter",6,Random(-20,20),Random(-360,360),0)         
		BOSB I 0 A_CustomMissile("Satanic_FireStarter",6,Random(-20,20),Random(-360,360),0)
		BOSB IJKL 5
		BOSB MMMMMMMMM 4 A_SpawnItem("Satanic_SmokeSpawner")
		BOSB M 0 A_BossDeath
		BOSB M 0 A_SpawnItem("Satanic_BaronOfHellBurnedCorpse")
		Stop
	Raise:
		BOSS N 1
		BOSS N 1 A_SetInvulnerable
		BOSS N 1 A_UnsetSolid
		BOSS N 1 A_UnsetShootable
		BOSS N 1 ACS_ExecuteAlways(788,0,0,0,0)
		BOSS N 1
		Stop
	Raise_Spirit:
		BOSS NMLK 6
		BOSS J 0 A_SpawnItem("Satanic_RaisedImp")
		Stop
	Raise_ManaRitual:
		BOSS NMLKJ 4
		BOSS I 4 A_SpawnItem("Satanic_HealthSpirit")
		BARB A 4 ACS_ExecuteAlways(779,0,18,0,0)
		BARB B 4 A_SpawnItem("Satanic_HealthSpiritExplosion")
		BARB CDEFGHI 4
		BARB J 0 A_SpawnItem("Satanic_BaronOfHellBurnedCorpse")
		Stop
	}
}

Actor Satanic_BaronBall : BaronBall Replaces BaronBall
{
	Decal BaronScorch
	Speed 20
	DamageType DemonFire
}

Actor Satanic_BaronOfHellBurnedCorpse
{
	Radius 20
	Height 4
	States
	{
	Spawn:
		BARB J -1
		Stop
	}
}

ACTOR Runner_BaronOfHell : Satanic_BaronOfHell
{
	DropItem "LargeHeartHealth" 16
}