Actor D4Ifrit : D4AbstractBoss
{	
	Health 50000
	Speed 6
	Radius 72
	Height 168
	PainChance 0
	Mass 50000
	SeeSound "Baron/Sight"
	PainSound "Baron/Pain"
	DeathSound "Baron/Death"
	ActiveSound "Baron/Active"
	Monster
	+NoGravity
	+NoBlood
	+Float
	+DontHurtSpecies
	+NoIceDeath
	+Boss
	+NoDamage
	-SpawnCeiling
	-NoRadiusDmg
	+NoTarget
	+MissileMore
	/*+NODAMAGETHRUST*/
	+QUICKTORETALIATE
	DropItem "BFGModDropper", 7
	DropItem "GaussCannonModDropper", 56
	DropItem "CyberGrenadeDrop", 5
	PainChance "PlayerDemonSpamDamage", 0
	PainChance "GloryKill", 255
	Obituary "%o was scorched by an Afrit"
	HitObituary "%o found the Afrit too hot to handle."
	Tag "Afrit"
	States
	{
	Spawn:
		KEEN A 0 NODELAY A_SetUserVar(user_bigmonstersound,1)
		Goto Super::Spawn
	Idle:
		
	Idle:
		KEEN ABCD 4 Bright A_Look
		Loop
	See:
		KEEN A 0 A_ChangeFlag("NoDamage",0)
		KEEN AABBCCDD 2 Bright A_Chase
		Loop
  Missile:
		TNT1 A 0 A_Jump(64, "Missile3")
		TNT1 A 0 A_Jump(128, "Missile2")
		KEEN EF 6 Bright A_FaceTarget
		KEEN G 0 Bright A_CustomMissile("AfritBall", 132, 0, 5)
		KEEN G 0 Bright A_CustomMissile("AfritBall", 132, 0, -5)
		KEEN G 0 Bright A_CustomMissile("AfritBall", 132, 0, 10)
		KEEN G 0 Bright A_CustomMissile("AfritBall", 132, 0, -10)
		KEEN G 6 Bright A_CustomMissile("AfritBall", 132)
		Goto See
  Missile2:
		KEEN EF 6 Bright A_FaceTarget
		KEEN G 0 Bright A_CustomMissile("Comet", 132, 0, 8)
		KEEN G 0 Bright A_CustomMissile("Comet", 132, 0, -8)
		KEEN G 6 Bright A_CustomMissile("Comet", 132)
		Goto See
  Missile3:
		KEEN E 6 Bright A_FaceTarget
		KEEN F 6 Bright A_CustomMissile("Hellfire", 132)
		KEEN G 6 Bright A_FaceTarget
		Goto See
  Pain:
		KEEN H 4 Bright
		KEEN H 4 Bright A_Pain
		Goto See
  Death:
		"####" "#" 0  A_SpawnItemEx("SituationalPinata",0,0,32,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		TNT1 A 0 A_NoGravity
		KEEN I 6 Bright A_Scream
		KEEN J 5 Bright A_NoBlocking
		KEEN KLMNOPQR 4 Bright
    Stop
  }
}
Actor AfritBall
{
  Radius 18
  Height 24
  Speed 35
  Damage (FRandom(26,46))
  /*+NODAMAGETHRUST*/
  Projectile
  RenderStyle Add
  Alpha 0.8
  Scale 3
  SeeSound "Imp/Attack"
  DeathSound "Imp/ShotX"
  Decal BaronScorch
  Damagetype "Fire"
  States
  {
  Spawn:
    FRTM AB 5 Bright
    Loop
  Death:
    FRTM CDE 6 Bright
    Stop
  }
}

Actor Comet
{
  Radius 18
  Height 24
  Speed 30
  Damage (FRandom(35,55))
  /*+NODAMAGETHRUST*/
  SpawnID 250
  Scale 1.65
  Projectile
  SeeSound "Afrit/CometFire"
  DeathSound "Afrit/CometHit"
  Decal Scorch
  Damagetype "Fire"
  States
  {
  Spawn:
    COMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("CometTail", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    COMT D 3 Bright A_SpawnItemEx("CometDeathGlow", 0, 0, 0, 0, 0, 0, 0, 128)
    COMT E 3 Bright A_Explode(240, 0)
    TNT1 A 0 A_SpawnItemEx("CometDeath", 0, 0, 0, 0, 0, 0, 0, 128)
    Stop
  }
}

Actor CometTail
{
  Projectile
  +NoClip
  RenderStyle Add
  Alpha 0.4
  Scale 3
  States
  {
  Spawn:
    FRTB ABCDEFGHI 1 Bright
    Stop
  }
}

Actor CometDeathGlow : CometTail
{
  Scale 4.0
  Alpha 0.6
  States
  {
  Spawn:
    FRTB ABCDEFGHI 3 Bright
    Stop
  }
}

Actor CometDeath
{
  Projectile
  RenderStyle Add
  +NoClip
  Alpha 0.7
  Scale 3
  States
  {
  Spawn:
    COMT FGHI 3 Bright
    Stop
  }
}

Actor OrbitComet : Comet
{
  SeeSound ""
  +NoClip
  Scale 0.85
  Speed 15
  States
  {
  Spawn:
    COMT AABBCC 1 Bright A_SpawnItemEx("OrbitCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_CustomMissile("OrbitComet", 0, 0, 75)
    TNT1 A 0 A_SpawnItemEx("OrbitCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
    Stop
  }
}

Actor OrbitComet2 : OrbitComet
{
  States
  {
  Spawn:
    COMT AABBCC 1 Bright A_SpawnItemEx("OrbitCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 A 0 A_CustomMissile("OrbitComet2", 0, 0, -75)
    TNT1 A 0 A_SpawnItemEx("OrbitCometTail", 0, 0, 0, 0, 0, 0, 0, 128)
    Stop
  }
}

Actor OrbitCometTail : CometTail
{
  Scale 1.5
}

Actor HellFire : FastProjectile
{
  +NoBlockMap
  +Painless
  +BloodlessImpact
  +Missile
  +DropOff
  Scale 3
  Speed 210
  States
  {
  Spawn:
    TNT1 A 1
    Loop
  Death:
    TNT1 A 0 Bright A_CustomMissile("HellFire1", 0, 0, -180, 4)
    TNT1 A 0 Bright A_CustomMissile("HellFire1", 0, 16, -175, 4)
    TNT1 A 0 Bright A_CustomMissile("HellFire1", 0, 32, -170, 4)
    TNT1 A 0 Bright A_CustomMissile("HellFire1", 0, -16, -185, 4)
    TNT1 A 0 Bright A_CustomMissile("HellFire1", 0, -32, -190, 4)
    TNT1 B 203 Bright A_PlaySound("Afrit/Hellfire")
    Stop
  }
}

Actor HellFire1
{
  +Ripper
  +NoExplodeFloor
  +Painless
  +BloodlessImpact
  +Missile
  +DropOff
  Speed 2
  Scale 3
  States
  {
  Spawn:
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 0, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, -16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 0, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, -16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 0, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, -16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 0, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, -16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 0, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, 16, 0, 4)
     TNT1 A 10 A_CustomMissile("HellFire2", 0, -16, 0, 4)
     Stop
  }
}

Actor HellFire2
{
  +Ripper
  +NoExplodeFloor
  +BloodlessImpact
  +DropOff
  +Randomize
  /*+NODAMAGETHRUST*/
  Scale 4.0
  Speed 1
  RenderStyle Add
  Alpha 0.67
  Damagetype "Fire"
  Obituary "%o was scorched by an Afrit"
  States
  {
  Spawn:
    TNT1 A 8
    FRTF A 3 Bright
    FRTF BC 3 Bright A_Explode(192)
    TNT1 A 0 A_Explode(192)
    TNT1 A 0 A_Jump(191, 4)
    TNT1 A 0 A_CustomMissile("HellFire2", 0, 24, 0, 4)
    TNT1 A 0 A_CustomMissile("HellFire2", 0, 0, 0, 4)
    TNT1 A 0 A_CustomMissile("HellFire2", 0, -24, 0, 4)
    FRTF DEFGHIJKLMNO 3 Bright
    Stop
  }
}
