ACTOR Blaze : ArchVile 21584 
{ 
  Health 2000
  GibHealth 90
  DropItem "LifeEssence" 160
  DropItem "ArmorBonusMax" 160
  DropItem "HellionRegen" 166 1
  Obituary "A Blaze cast %o into the eternal fire."
  Scale 1.1
  Species "Viles"
  DamageFactor "VileFires", 0.0
  PainChance "Mine", 128
  PainChance "SoulToxic", 1
  PainChance "FatFlamer", 1
  PainChance "FiendFire", 1  
  SeeSound "monster/hlnsit" 
  ActiveSound "monster/hlnact" 
  PainSound "monster/hlnpai"
  DeathSound "monster/hlndeth"
  BloodColor "Red"
  States 
  { 
  Spawn: 
  	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN A 4 A_Look 
  	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN A 4 A_Look 
    Loop 
  See:
	TNT1 A 0 A_Jump(64,"Rush")
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    H2LN A 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN A 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN C 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN C 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    H2LN A 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN A 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN C 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN C 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN B 2 A_VileChase
    Loop
  Rush:
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN A 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN A 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN B 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN B 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN C 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN C 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN D 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN D 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN E 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN E 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN F 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN F 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN A 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN A 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN B 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN B 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN C 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN C 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN D 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN D 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN E 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN E 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN F 1 A_VileChase
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HellionFX",0,0)
    H2LN F 1 A_VileChase
	TNT1 A 0 A_Jump(128,"SmokeAttack","Immolate","SoulOnslaught")
    TNT1 A 0 A_Jump(164,"See")
    Loop
   Missile:
	TNT1 A 0 A_Jump(128,"SmokeAttack","Immolate","SoulOnslaught")
	GoTo See
   SmokeAttack:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("hellion/smokestart")	
    TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN G 5 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN H 5 A_VileTarget("HellionSmokeAttack")
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN H 5 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN H 5 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN I 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN I 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN J 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)	
	H2LN K 4 A_FaceTarget
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	TNT1 A 0 A_PlaySound("exile/voidend")
	H2LN K 4 A_VileAttack
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)	
	H2LN L 4
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN L 4
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)	
	H2LN L 4
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
	H2LN L 4 
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)	
	H2LN L 4 A_Jump(128,"Immolate")
	TNT1 A 0 A_Jump(256,"SoulOnslaught")
    Goto See
  SoulOnslaught:
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",75,-75,25)
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",75,0,25)
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",0,-75,25)
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",0,75,25)
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",-75,0,25)
	H2LN A 2 Bright A_SpawnItemEX("OSoulSpawner",0,75,25)
	TNT1 A 0 A_Jump(128,"SoulOnslaught")
	GoTo "Immolate"
  Immolate:
	H2LN G 2 A_SetInvulnerable	
	H2LN H 2 	
	H2LN I 2 	
	H2LN J 2 	
	H2LN K 4  	
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,0,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,20,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,-20,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,45,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,-45,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,60,Random(-3,3),0,2)
	TNT1 A 0 A_CustomMissile("AvaFireBall",42,-60,Random(-3,3),0,2)
	H2LN L 2 A_UnsetInvulnerable	
	Goto See
  Pain: 
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN M 10 A_Pain 
	TNT1 A 0 A_Jump(128,"Immolate")
	Goto See
  Heal:
	TNT1 A 0 A_PlaySound("brain/spit")
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,0,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,20,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,40,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,60,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,80,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,100,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,120,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,140,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,160,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,180,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,200,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,220,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,240,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,260,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,280,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,300,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,320,0)
	TNT1 A 0 A_CustomMissile("HellionResRadius",10,0,340,0)
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN L 4 Bright
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN K 4 Bright
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN J 4 Bright
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN I 4 Bright
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN H 4 Bright
	TNT1 A 0 A_SpawnItem("FPESmokeSpawner",0,0,0,0)
    H2LN G 4 Bright		
    Goto See	
  Death:
    H2LN N 6 A_Scream
    H2LN O 5 A_Fall
    H2LN PQ 5
    H2LN R 4 A_SpawnItemEx("BlackGibbedGenerator",0,0,0,0,0,0,0,128,0)
	H2LN S 4 A_SpawnItem("BodyCrash",0,0,0,0)
    H2LN T -1
    Stop
XDeath:
	H2LN U 4
	H2LN V 3 A_XScream
	H2LN W 2 A_SpawnItemEx("BlackGibbedGenerator",0,0,0,0,0,0,0,128,0)
	H2LN X 2 A_Fall
	H2LN Y 2 A_SpawnItem("BodyCrash",0,0,0,0)
	H2LN Z 2
	H2L2 A 2
	H2L2 B 2
	H2L2 C -1
	Stop
    }
}

ACTOR OSoulSpawner : SoulSpawner
{
+Invisible
States
	{
	Spawn:
		TNT1 A 0 A_SpawnItemEX("SoulSpawner",0,0,0,0,0,0)
		Stop
	}
}