ACTOR GHellionSmoke
{
+MISSILE
+DONTSPLASH
+NOBLOCKMAP
+NOGRAVITY
+NOTELEPORT
+FORCEXYBILLBOARD
+THRUACTORS
+NOTIMEFREEZE
Scale 0.4
RenderStyle Normal
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    GMKE ABCDEFGHIJKL 2 Bright A_FadeOut
    Stop
Toaster:
    TNT1 A 0
    Stop
}
}

ACTOR GHellionSmoke2 : GHellionSmoke
{
Scale 0.6
}

ACTOR GSoulSmoke : GHellionSmoke
{
Scale 0.12
}

ACTOR GHellionSmokeSpawner : LegendaryRedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 AAA 0 A_SpawnItemEx("GHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,128,0)
    TNT1 A 1
    Stop
  }
}
ACTOR Velocirator : Archvile 7013
{
  Health 1450
  Speed 16
  DropItem "InvulnerabilitySphere" 55
  DropItem "BossLifeEssence" 210
  DropItem "BossArmorBonusMax" 210
  DropItem "HellionRegen" 200 1
  DropItem "DemonAmmoBox" 255 
  DropItem "Advanced Necronomicon" 180 1
  BloodColor "green"
  Species "Viles"
  DamageFactor "VileFires", 0.0
  DamageFactor "PoP15K", 0.0
  RadiusDamageFactor 0.6
  Obituary "%o was atomized by a Velocirator Vile."
  Monster
  PainChance 5
  +FLOORCLIP
  +NOTARGET
  +MISSILEMORE
  +MISSILEEVENMORE
  +QUICKTORETALIATE
  +NOINFIGHTING
  +BRIGHT
  SeeSound "monster/velsit" 
  PainSound "monster/velpai"
  ActiveSound "monster/velact" 
  DeathSound "monster/veldie"
  var int user_amount;
  States 
  { 
  Spawn: 
    HIAB A 10 Bright A_Look 	
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	Loop 
See:
	TNT1 A 0 A_Jump(82,"Rush")
    HIAB A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB AABBCC 2 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 Bright A_SpawnItem("HumanishStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB DDEEFF 2 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 HealThing(1)
	TNT1 A 0 A_Jump(16,"Teleport")
	Loop
Rush:
    TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB A 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB A 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB B 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB B 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB C 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB C 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB D 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB D 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB E 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB E 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB F 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB F 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB A 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB A 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB B 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB B 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB C 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB C 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB D 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB D 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB E 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB E 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB F 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("HInfernoFX",0,0)
    HIAB F 1 Bright A_VileChase
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(12,"Teleport")
	TNT1 A 0 A_Jump(128,"See")
    Loop
  Teleport:
    HIA2 A 1 Bright A_UnSetShootable
	HIA2 AAAAAA 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIA2 AAAAAAAAAA 1 A_FadeOut(0.1,0)
	HIA2 A 2
	HIA2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	HIA2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
    HIA2 A 1 A_PlayWeaponSound("boss/teleport")
	HIA2 AAAAAA 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIA2 AAAAAAAAAA 1 A_FadeIn(0.1)
    HIA2 A 1 Bright A_SetShootable
    Goto See	
  Missile:
    TNT1 A 0 A_SetShootable
    TNT1 A 0 A_UnsetInvulnerable
    TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_Jump(168,"Floor","SuperFloor","Ghost","Summon")
  Normal:
	TNT1 A 0 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB G 10 Bright A_VileStart
    HIAB H 8 Bright A_VileTarget("VeloMagicAttack")
    HIAB IJKLMN 8 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB O 8 Bright A_VileAttack
    HIAB P 20 A_Jump(140,"Floor")
    Goto See
  Floor:
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    HIA2 AAAA 4 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("velocirator/spell2")
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIA2 B 0 A_CustomMissile("VeloFloorTracer",0,32,0)
    HIA2 B 6 Bright A_CustomMissile("VeloFloorTracer",0,-32,0)
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    HIA2 CC 4 Bright A_FaceTarget	
	TNT1 A 0 A_Jump(140,"Ghost")
    Goto See
  SuperFloor:
    HIA2 AAAA 4 Bright A_FaceTarget
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_PlaySound("monster/velsit")
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_FaceTarget
	HIA2 AAAAAA 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	HIA2 A 4  Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("brain/spit")
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIA2 BBBBB 0 Bright A_CustomMissile("VeloFireSpawner",0,32,random(0,359))
	HIA2 B 0 A_CustomMissile("VeloFireSpawner",0,32,random(-3,3))
	HIA2 B 0 A_CustomMissile("VeloFireSpawner",0,32,0)
	HIA2 B 0 A_CustomMissile("VeloFireSpawner",0,-32,random(-3,3))
    HIA2 B 6 Bright A_CustomMissile("VeloFireSpawner",0,-32,0)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    HIA2 CC 4 Bright A_FaceTarget	
	HIA2 C 0 Bright HealThing(150)
	TNT1 A 0 A_Jump(140,"Summon")
    Goto See
  Summon:
    TNT1 A 0 A_JumpIf(user_amount > 3,"Missile")
    HIAB GGGGGGG 2 Bright A_FaceTarget
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_PlaySound("monster/velsit")
	HIAB HIHIHIHIHIHIHIHI 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("VeloSpawners",0,0,0,0,0,0,0,32,64)
	HIAB HIHIHIHIHIHIHIHI 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
  	TNT1 AAAAAAAA 0 A_CustomMissile("VelociratorResRadius",8,0,random(0,359),0)
	TNT1 A 0 A_SetUserVar("user_amount",user_amount+1)
	HIAB HIHIHI 2 Bright A_SpawnItem("DukeHealFlameSpawner",0,0,0,0)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 Bright HealThing(220)
    Goto See
  Ghost:
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_PlaySound("velocirator/spell1")
	HIAB O 5 A_CustomMissile("VeloGhost",38,0,0)
    HIAB P 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB P 5 A_CustomMissile("VeloGhost",38,0,random(-4,4))
    HIAB N 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB N 5 A_CustomMissile("VeloGhost",38,0,random(-4,4))
    HIAB O 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB O 5 A_CustomMissile("VeloGhost",38,0,random(-4,4))
    HIAB P 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB N 5 A_CustomMissile("VeloGhost",38,0,random(-4,4))
    HIAB O 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB O 5 A_CustomMissile("VeloGhost",38,0,random(-4,4))
    HIAB P 3 Bright A_FaceTarget
    TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIAB P 5 A_CustomMissile("VeloGhost")
    HIAB N 3 Bright A_FaceTarget
	HIAB P 5 Bright
    Goto See
  Pain: 
	HIAB Q 2 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    TNT1 A 0 A_Jump(21,"Teleport")	
	HIAB Q 2 Bright A_Pain 
	Goto See	
  Heal:
	TNT1 A 0 A_PlaySound("brain/spit")
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,0,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,20,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,40,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,60,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,80,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,100,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,120,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,140,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,160,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,180,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,200,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,220,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,240,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,260,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,280,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,300,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,320,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,340,0)
	TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,360,0)
	TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
    HIA2 AAAABBBBCCCC 4 Bright A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
	HIA2 C 0 Bright HealThing(100)
    Goto See	
  Death:
    TNT1 A 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
	HIAD R 6 A_Scream
    HIAD S 6 A_Fall
    HIAD TUVW 6 
	TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
    HIAD XY 4 
    HIAD Z -1 
    Stop   
    }
}

ACTOR HInfernoFX : ExileFX
{   
   States
   {
   Spawn: 
      TNT1 A 0
      TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
   Fade:
      TNT1 A 1
      HIAB ABCDEF 2 Bright A_FadeOut(0.10)
      Goto Fade+1
   Toaster:
      TNT1 A 0
      Stop
   }
}

ACTOR VeloMagicAttack : IFire
{
  Scale 1.15
  RenderStyle Translucent
  Alpha 0.75
  DamageType "VileFires"
  +FORCERADIUSDMG
  Obituary "%o was atomized by a Velocirator Vile."
  States
  {
  Spawn:
    TNT1 A 0
    HFIR A 1 Bright A_PlaySoundEx("necghost/active","Voice",1) 
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
    HFIR A 1 Bright A_Explode(Random(1,3)*2,62)
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR C 2 Bright A_Fire	
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
    HFIR A 2 Bright A_Explode(Random(1,3)*2,62)
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR C 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR C 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)	
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR C 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)	
    HFIR C 2 Bright A_Explode(Random(1,3)*2,62)
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
    HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR C 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR C 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3),62)
	HFIR A 2 Bright A_Fire
	TNT1 A 0 A_SpawnItem("VeloSmokeAttackSpawner",0,0,0,0)
	TNT1 A 0 Bright A_Explode(Random(1,3)*2,62)
	HFIR B 2 Bright A_Fire	
	TNT1 A 1 A_StopSoundEx("Voice")
	TNT1 A 1 A_PlaySound("exile/voidend")
    Stop
  }
}

ACTOR VeloSmokeAttackSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 0 A_SpawnItemEx("GHellionSmoke2",random(12,-12),random(12,-12),random(12,20),0,0,random(8,12),0,128,0)
	TNT1 A 0 A_SpawnItemEx("GHellionSmoke2",random(24,-24),random(24,-24),random(2,10),0,0,random(2,6),0,128,0)
    TNT1 A 1
    Stop
  }
}

ACTOR VeloFloorTracer : DukeFireSpawner
{
  Speed 25
  FastSpeed 30
  Damage 10
  DamageType "VileFires"
  Species "Vile"
  Obituary "%o was atomized by a Velocirator Vile."
  ReactionTime 255
  +SEEKERMISSILE
  States
  {
  Spawn: 
    TNT1 A 0 A_PlaySoundEx("monster/ambientfire2","Voice",1)
	TNT1 A 0 A_CStaffMissileSlither
	TNT1 A 0 A_CountDown
	TNT1 A 0 A_SpawnItemEx("DarkCyberFire")
	TNT1 A 2 Bright A_SeekerMissile(15,15)
    Loop  
  Death:
    TNT1 A 0
    TNT1 A 0 A_StopSoundEx("Voice")
    TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAAA 0 A_CustomMissile("Kaboom4", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
    FTRD K 4 Bright
    FTRD L 4 Bright A_Explode(32,86)
    FTRD MNO 3 Bright
    Stop
    }
}

ACTOR VeloFloorFire : DukeFire
{
  DamageType "VileFires"
  Obituary "%o was atomized by a Velocirator Vile."
}

ACTOR VeloFire : PyroFire
{
  Damage 12
  Obituary "%o was atomized by a Velocirator Vile."
  DamageType "VileFires"
  States
  {
  Spawn:
    XBF2 AB 2 Bright
    XBF2 C 2 Bright A_Explode(34,106,0)
    XBF2 DEFGHIJKLMNOPQRST 2 Bright
    Stop       
   }
}

ACTOR VeloFireSpawner : PyroFireSpawner
{
  Species "Vile"
  DamageType "VileFires"
  Obituary "%o was atomized by a Velocirator Vile."
  Projectile
  MissileType VeloFire
  Missileheight 0
}

ACTOR VeloSpawners
{
Radius 12
Height 8
Speed 17
Monster
-SHOOTABLE
-COUNTKILL
-SOLID
var int user_limit;
States
{
   Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetAngle(random(0,359))
	TNT1 A 1 A_Recoil(-40)
	TNT1 A 0 A_JumpIf(user_limit > 3,"Death")
	TNT1 A 0 A_SetUserVar("user_limit",user_limit+1)
	TNT1 A 1 A_Recoil(-4)
	TNT1 A 2 A_Jump(48,"Death")
    Goto Spawn+3
   Death:
    TNT1 A 0 A_SpawnItemEx("TeleportFog")
    TNT1 A 5 A_SpawnItemEx("VeloMinions")
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR VeloMinions : ArachReplacer
{
States
{
  Spawn:
    TNT1 A 1
	TNT1 A 0 A_Jump(64,"Demon")
	TNT1 A 0 A_Jump(24,"StrongSpawn")
    TNT1 A 0 A_Jump(48,"MediumSpawn")
  WeakSpawn:
	TNT1 A 0 A_SpawnItemEx("Imp")
    Goto Nothing	
  MediumSpawn:
    TNT1 A 0 A_SpawnItemEx("VoidImp")
    Goto Nothing	
  StrongSpawn:
	TNT1 A 0 A_SpawnItemEx("Devil")
    Goto Nothing
  Demon:
    TNT1 A 1
    TNT1 A 0 A_Jump(48,"DemonMediumSpawn")
  DemonWeakSpawn:
	TNT1 A 0 A_SpawnItemEx("BullFiend")
    Goto Nothing	
  DemonMediumSpawn:
    TNT1 A 0 A_SpawnItemEx("CyberFiend")
    Goto Nothing		
    }
}

ACTOR VeloGhost
{
Speed 45
Radius 6
Height 6
Damage 15
RenderStyle "Translucent"
Alpha 0.75
SeeSound "weapons/spirit1"
DeathSound "veloghost/death"
DamageType "VileFires"
PROJECTILE
States
{
Spawn:
	SPI2 ABABABABAB 2 Bright A_SpawnItemEx("GHellionSmoke")
	Loop
Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(16,48,0)
    TNT1 A 0 A_SpawnItemEx("GreenParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom7", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
	SPI2 EFGHIJ 3 Bright 
	Stop
	}
}

ACTOR VelociratorResRadius
{
Radius 8
Height 4
Speed 25
PROJECTILE
+NORADIUSDMG
+ISMONSTER
+INVULNERABLE
+THRUACTORS
+FLOORHUGGER
+NOCLIP
-COUNTKILL
States
{
Spawn:
	TNT1 AAAAAAAAAA 2 A_VileChase
	Stop
Heal:
	TNT1 A 1
	Stop
	}
}