ACTOR Afrit : BaronOfHell~ 31049
{ 
Monster
Health 1200
Height 64
Radius 24
Mass 1000
Speed 8
Meleedamage 8
PainChance 30
PainChance "SoulToxic", 20
PainChance "FatFlamer", 20
PainChance "FiendFire", 20
Bloodcolor "ff 50 00"
+BOSSDEATH
+FLOAT
+NOGRAVITY
+FastMelee
+MISSILEMORE
+QUICKTORETALIATE
-FLOORCLIP
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species "Nobles"
DamageFactor "NobleComet", 0.0
DamageFactor "Fire", 0.0
DropItem "BossLifeEssence", 100
DropItem "ArmorBonusMax", 100
SeeSound "baron/sight"
ActiveSound "baron/active"
MeleeSound "baron/melee"
PainSound "monsters/baronpain"
DeathSound "baron/death"
Obituary "%o was deep fried by an Afrit." 
HitObituary "%o couldnt take an Afrits heat."
Tag "Afrit"
States 
	{
	Spawn:
		AFRT A 4 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		AFRT B 4 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		AFRT C 4 Bright A_Look
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		AFRT D 4 Bright A_Look	  
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		Loop
	See:
		AFRT A 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT B 3 Bright A_Chase	 
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT C 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT D 3 Bright A_Chase	
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop      
	Melee:
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT ST 5 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 4 Bright A_MeleeAttack
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT TS 4 Bright A_FaceTarget  
		Goto See
	Missile:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(127,"Missile2","Missile3")
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT S 6 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT T 6 Bright A_FaceTarget	  
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 3 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 1 Bright A_CustomMissile("AfritBall",44,0,0)
		AFRT U 0 Bright A_CustomMissile("AfritBall",44,0,3)
		AFRT U 1 Bright A_CustomMissile("AfritBall",44,0,-3)
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT T 5 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT S 5 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)  
		AFRT T 6 Bright A_FaceTarget	  
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 3 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 1 Bright A_CustomMissile("AfritBall",44,0,0)
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 0 Bright A_CustomMissile("AfritBall",44,0,3)
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT U 1 Bright A_CustomMissile("AfritBall",44,0,-3) 
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Jump(87,"Missile2")
		Goto See
	Missile2:
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT E 8 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT F 8 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT G 1 Bright A_CustomMissile("Comet",44,0,0)
		AFRT G 0 Bright A_CustomMissile("Comet",44,0,6)
		AFRT G 4 Bright A_CustomMissile("Comet",44,0,-6)
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT G 6 Bright A_FaceTarget
		TNT1 A 0 A_Jump(87,"Missile3")
		Goto See
	Missile3:
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT G 8 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT F 8 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT E 8 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_CustomMissile("AfritTracer",0,40,0)
		AFRT E 1 Bright A_CustomMissile("AfritTracer",0,-40,0)
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		AFRT E 4 Bright A_FaceTarget	
		Goto See	  
	Pain:
		TNT1 A 0 Bright A_Jump(87,"PainMissile")
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		AFRT H 8 Bright A_Pain
		Goto See
	PainMissile:
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		AFRT H 8 Bright A_Pain
		TNT1 A 0 Bright A_SpawnItemEx("AfritFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		AFRT HHHHH 1 Bright A_FaceTarget(45)
		AFRT H 1 Bright A_JumpIfTargetInLos("Missile",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
		Goto See
	Death:
	XDeath:
		AFRT I 0 Bright
		AFRT I 6 Bright A_Scream
		AFRT J 4 Bright A_Fall
		AFRT KLMNOPQ 3 Bright
		AFRT R 3 Bright
		TNT1 A 0 A_KillMaster
		TNT1 A 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		AFRT RQPONMLKJI 3 Bright
		Goto See
	}
}

ACTOR AfritFire
{
RenderStyle Add
Scale 0.3
+MISSILE
+NOGRAVITY
+NOTELEPORT
+DONTSPLASH
+NOBLOCKMAP
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		FIR1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR AfritFireSpawner : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_PlaySound("monster/ambientfire")
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 AAAAAA 0 Bright A_SpawnItemEx("AfritFire",random(12,-12),random(12,-12),random(25,50),0,0,random(0,-5),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR AfritBall
{
PROJECTILE
Height 10
Radius 8
Speed 18
FastSpeed 22
RENDERSTYLE ADD
Damage 8
SeeSound "imp/attack"
DeathSound "imp/shotx"
States
	{
	Spawn:
		FRTM AB 1 Bright A_SpawnItemEx("AfritTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0 Bright
		FRTM CDE 3 Bright
		Stop
	Crash:
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom9",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		FRTM CDE 3 Bright
		Stop
	}
}

ACTOR AfritTrail : BFG9500Trail
{
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		FRTM AB 1 A_FadeOut(0.25,1)
		Goto Spawn+3
	}
}

ACTOR AfritTracer
{
Projectile
Height 5
Radius 5
Speed 20
FastSpeed 25
RenderStyle Add
Alpha 0.65
Damage 6
+SeekerMissile
+FloorHugger
+DontSplash
-NoGravity
DamageType Fire
DamageType "NobleComet"
Seesound "weapons/diasht"
DeathSound "weapons/firex3"   
Obituary "%o was deep fried by an Afrit."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("monster/ambientfire2")
		TNT1 A 0 Bright A_SeekerMissile(0,2)
		TNT1 A 1 Bright A_SpawnItemEx("ATracerPuff",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(0,2)
		TNT1 A 1 Bright A_SpawnItemEx("ATracerPuff",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(0,2)
		TNT1 A 1 Bright A_SpawnItemEx("ATracerPuff",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(0,2)
		TNT1 A 1 Bright A_SpawnItemEx("ATracerPuff",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Loop
	Death:
		TNT1 A 0 Bright
		FTRA K 4 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom9",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		FTRA L 4 Bright A_Explode(32,64,0)
		FTRA MNO 3 Bright
		Stop
	}
}

ACTOR ATracerPuff
{
Projectile
Height 1
Radius 1
Speed 0
Scale 1.25
RenderStyle Add
Alpha 0.6
-NoGravity
+FloorHugger
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		FTRA ABCDEFGHIJ 2 Bright
		Stop
	}
}

Actor Afrit2 : Afrit
{
+NOTARGET
+NOINFIGHTING
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
+THRUSPECIES
Species "Cybers"
DamageFactor "HFCyber", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "VileFires", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "CadaverRocket", 0.0
DropItem ""
Tag "Afrit"
States
	{
	Death:
	XDeath:
		TNT1 A 0 Bright
		AFRT I 6 Bright A_Scream
		AFRT J 4 Bright A_Fall
		AFRT KLMNOPQ 3 Bright
		AFRT R 3 Bright
		TNT1 A 0 Bright A_RemoveChildren
		TNT1 A 5 Bright A_FadeOut(0.1,1)
		Wait
	}
}