ACTOR Velocirator : Archvile 16564
{
//$Category Monsters/LCA
//$Sprite HIABA1D1
//$Title "Velocirator Vile"
Monster
Health 1450
Speed 16
BloodColor "green"
PainChance 5
+FLOORCLIP
+NOTARGET
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NOINFIGHTING
+DONTHURTSPECIES
+DONTHARMSPECIES
+BRIGHT
Species "Viles"
DamageFactor "VileFires", 0.0
DamageFactor "PoP15K", 0.0
RadiusDamageFactor 0.6
DropItem "BossLifeEssence", 210
DropItem "BossArmorBonusMax", 210
DropItem "InvulnerabilitySphere", 55
DropItem "HellionRegen", 200, 1
DropItem "DemonAmmoBox", 255
DropItem "Advanced Necronomicon", 16, 1
SeeSound "monster/velsit" 
PainSound "monster/velpai"
ActiveSound "monster/velact" 
DeathSound "monster/veldie"
Obituary "%o was atomized by a Velocirator Vile."
var int user_amount;
States 
	{ 
	Spawn: 
		HIAB A 10 Bright A_Look 	
		TNT1 A 0 A_SpawnItemEx("GHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		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
		TNT1 AAAAAA 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
		HIA2 AAAAAAAAAA 1 A_FadeOut(0.1,0)
		HIA2 A 2
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		HIA2 A 1 A_PlayWeaponSound("boss/teleport")
		TNT1 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,CMF_TRACKOWNER)
		HIA2 B 6 Bright A_CustomMissile("VeloFloorTracer",0,-32,0,CMF_TRACKOWNER)
		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),CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VeloFireSpawner",0,32,random(-3,3),CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VeloFireSpawner",0,32,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VeloFireSpawner",0,-32,random(-3,3),CMF_TRACKOWNER)
		HIA2 B 6 Bright A_CustomMissile("VeloFireSpawner",0,-32,0,CMF_TRACKOWNER)
		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,SXF_NOCHECKPOSITION|SXF_SETMASTER,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 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,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,140,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,260,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,320,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("VelociratorResRadius",10,0,360,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
		HIA2 AAAABBBBCCCC 4 Bright A_SpawnItem("GHellionSmokeSpawner",0,0,0,0)
		TNT1 A 0 HealThing(100)
		Goto See
	Death:
		TNT1 A 0
		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
		TNT1 A 0 A_ChangeFlag("BRIGHT",0)
		HIAD TUVW 6 
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		HIAD XY 4 
		HIAD Z 63000 CanRaise
		Stop   
	}
}

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

ACTOR VeloMagicAttack : IFire
{
Scale 1.15
RenderStyle Translucent
Alpha 0.75
DamageType "VileFires"
+NOBLOCKMAP
+THRUACTORS
+FORCERADIUSDMG
+NODAMAGETHRUST
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,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("GHellionSmoke2",random(24,-24),random(24,-24),random(2,10),0,0,random(2,6),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1
		Stop
	}
}

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

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

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

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

ACTOR VeloSpawners
{
Monster
Height 8
Radius 12
Speed 17
-SHOOTABLE
-COUNTKILL
-SOLID
var int user_limit;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CopyFriendliness(AAPTR_MASTER)
		TNT1 A 0 A_SetAngle(random(0,359))
		TNT1 A 1 A_Recoil(-40)
	SpawnLoop:
		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")
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 5
		TNT1 A 0 A_SpawnItemEx("VeloMinions",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		TNT1 A 1 A_Fall
		Stop
	}
}

ACTOR VeloMinions
{
+ISMONSTER
-COUNTKILL
-BOSSDEATH
+NOSECTOR
+NOGRAVITY
+NOBLOCKMAP
+SHOOTABLE
+NORADIUSDMG
+NOINTERACTION
+SERVERSIDEONLY
HEALTH 0x7FFFFFFF
Radius 0
Height 0
Mass 0x7FFFFFFF
States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_CopyFriendliness(AAPTR_MASTER)
		TNT1 A 0 A_Jump(64,"Demon")
		TNT1 A 0 A_Jump(24,"StrongSpawn")
		TNT1 A 0 A_Jump(48,"MediumSpawn")
		Goto WeakSpawn
	WeakSpawn:
		TNT1 A 0 A_SpawnItemEx("Imp",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Goto Nothing	
	MediumSpawn:
		TNT1 A 0 A_SpawnItemEx("VoidImp",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Goto Nothing	
	StrongSpawn:
		TNT1 A 0 A_SpawnItemEx("Devil",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Goto Nothing
	Demon:
		TNT1 A 1
		TNT1 A 0 A_Jump(48,"DemonMediumSpawn")
		Goto DemonWeakSpawn
	DemonWeakSpawn:
		TNT1 A 0 A_SpawnItemEx("BullFiend",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Goto Nothing	
	DemonMediumSpawn:
		TNT1 A 0 A_SpawnItemEx("CyberFiend",0,0,0,0,0,0,0,SXF_SETMASTER,0)
		Goto Nothing
	Nothing:
		TNT1 A 1 A_Die
		Goto Death
	Death:
		TNT1 A 1
		Stop
	}
}

ACTOR VeloGhost
{
PROJECTILE
Height 6
Radius 6
Speed 38
RenderStyle "Translucent"
Alpha 0.75
Damage 13
DamageType "VileFires"
SeeSound "weapons/spirit1"
DeathSound "veloghost/death"
States
	{
	Spawn:
		SPI2 ABABABABAB 2 Bright A_SpawnItemEx("GHellionSmoke",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		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,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		SPI2 EFGHIJ 3 Bright 
		Stop
	}
}

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