ACTOR Illusionist 30334
{
Monster
Health 2600
Height 56
Radius 20
Mass 500
Speed 7
BloodColor "Black"
Painchance "Mine", 256
Painchance "Explosion", 256
Painchance 8
MaxTargetRange 896
+FLOORCLIP
+NOFEAR
+NOTARGET
+NOINFIGHTING
+QUICKTORETALIATE
+THRUSPECIES
+DONTHARMCLASS
Species "Viles"
Species "Illusionist"
DamageFactor "Fire", 0.0
Damagefactor "Acid", 0.5
Damagefactor "Poison", 0.1
Damagefactor "PoisonCloud", 0.1
DamageFactor "Legendary", 0.5
DamageFactor "Legendary1", 0.5
//No Infighting
DamageFactor "Illusionist", 0.0
DamageFactor "VileFires", 0.0
Damagefactor "HellionFire", 0.0
Damagefactor "AdvancedImp", 0.0
Damagefactor "Shadow", 0.0
Damagefactor "Nightshade", 0.0
DamageFactor "PoP15K", 0.0
RadiusDamageFactor 0.5
DropItem "BossLifeEssence", 256, 100
DropItem "NemesisArmorBonusMax", 196, 25
DropItem "UltraSphere", 130
DropItem "ElusiveSphere", 180
DropItem "RingOfRegenerationLow", 96
DropItem "HadesCrystal", 32, 5
SeeSound "Illusionist/See"
ActiveSound "Illusionist/Active"
PainSound "Illusionist/Pain"
DeathSound "Illusionist/death"
MeleeSound "vile/stop"
Obituary "%o was mindraped by an Illusionist."
Tag "\c[s9]Illusionist\c-"
States
	{
	Spawn:
		ILLU A 10 A_Look
		TNT1 A 0 A_JumpIfHealthLower(2600,"Idle")
    	Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_UnSetInvulnerable
	Seeloop:
		TNT1 A 0 HEALTHING(1)
		ILLU A 0 A_SpawnItemEx("HumanishStep2",0,0,0,0,0,-20,0,128)
		ILLU AAAABBBBCCCC 1 A_VileChase
		TNT1 A 0 HEALTHING(1)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,0,0,0,-20,0,128)
		ILLU DDDDEEEEFFFF 1 A_VileChase
		TNT1 A 0 A_Jump(82,"Rush")
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_UnSetInvulnerable
	Idleloop:
		TNT1 A 0 HEALTHING(3)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,0,0,0,-20,0,128)
		ILLU AAAA 1 A_Wander
		TNT1 A 0 A_Look
		ILLU BBBB 1 A_Wander
		TNT1 A 0 A_Look
		ILLU CCCC 1 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 HEALTHING(3)
		TNT1 A 0 A_SpawnItemEx("HumanishStep2",0,0,0,0,0,-20,0,128)
		ILLU DDDD 1 A_Wander
		TNT1 A 0 A_Look
		ILLU EEEE 1 A_Wander
		TNT1 A 0 A_Look
		ILLU FFFF 1 A_Wander
		TNT1 A 0 A_Look
		Loop
	Rush:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		TNT1 A 0 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX2",0,0)
		ILLU F 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 HEALTHING(1)
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX2",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX2",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_VileChase
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_VileChase
		TNT1 A 0 A_Jump(182,"See")
		TNT1 A 0 HEALTHING(1)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_Jump(128,"VileGhosts","Banish","Tracers")
		TNT1 A 0 A_Jump(30,"SummonVile")
	VileAttack:
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,0)
		TNT1 A 0 A_ChangeFlag(NOTARGETSWITCH,1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		ILLU G 1 A_PlaySound("exile/voidstart")
		ILLU GGGG 1 A_FaceTarget
		TNT1 A 0 A_GiveToTarget("AlreadyTargeted")
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		ILLU G 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		ILLU G 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		ILLU G 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		ILLU G 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
		ILLU G 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION)
	VileChargeLoop:
		TNT1 A 0 A_JumpIfInventory("Tic",105,"VileChargeEnd")
		ILLU H 1 Bright A_FaceTarget
		TNT1 A 0 HEALTHING(2)
		TNT1 A 0 A_VileTarget("DShadowHadesAttack")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	VileChargeEnd:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,1)
		TNT1 A 0 A_ChangeFlag(NOTARGETSWITCH,0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 0 A_TakeInventory("Tic",999)
		TNT1 A 0 A_JumpIfTargetInLos("VileExplode",360)
		ILLU IJKLMN 4 BRight
		GoTo See
	VileExplode:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_PlaySound("exile/voidend")
		TNT1 A 0 A_Jump(190,"AmmoBanishment","ArmorBreak")
		ILLU O 3 BRight A_VileTarget("IllusoHadesExplode")
		ILLU P 4 BRight A_FaceTarget
		GoTo See
	AmmoBanishment:
		TNT1 A 0
		ILLU O 3 Bright A_VileTarget("IllusoHadesExplode2")
		TNT1 A 0 A_TakeFromTarget("BulletMag",100)
		TNT1 A 0 A_TakeFromTarget("NewShell",25)
		TNT1 A 0 A_TakeFromTarget("SSGShell",2)
		TNT1 A 0 A_TakeFromTarget("QuadShell",4)
		TNT1 A 0 A_TakeFromTarget("HexaShell",6)
		TNT1 A 0 A_TakeFromTarget("PistolMagazine",16)
		TNT1 A 0 A_TakeFromTarget("ShotgunMagazine",8)
		TNT1 A 0 A_TakeFromTarget("ShotgunDrum",12)
		TNT1 A 0 A_TakeFromTarget("ShotgunDrum2",12)
		TNT1 A 0 A_TakeFromTarget("ARMagazine",40)
		TNT1 A 0 A_TakeFromTarget("Missile",40)
		TNT1 A 0 A_TakeFromTarget("RocketDrum",7)
		TNT1 A 0 A_TakeFromTarget("NewCell",150)
		TNT1 A 0 A_TakeFromTarget("PlasmaCell",50)
		TNT1 A 0 A_TakeFromTarget("GrenadeDrum",7)
		TNT1 A 0 A_TakeFromTarget("CellCharge",50)
		TNT1 A 0 A_TakeFromTarget("DemonMagazine",60)
		TNT1 A 0 A_TakeFromTarget("DemonAmmo",150)
		TNT1 A 0 A_TakeFromTarget("LAK47Magazine",31)
		TNT1 A 0 A_TakeFromTarget("LEGENDARYRevolverSpinner",6)
		TNT1 A 0 A_TakeFromTarget("LegendaryShotgunDrum",16)
		TNT1 A 0 A_TakeFromTarget("LDemonMagazine",60)
		TNT1 A 0 A_TakeFromTarget("LegendaryBulletMag",75)
		TNT1 A 0 A_TakeFromTarget("LDemonAmmo",150)
		TNT1 A 0 A_TakeFromTarget("LegendaryShell",25)
		TNT1 A 0 A_TakeFromTarget("Gas",150)
		TNT1 A 0 A_TakeFromTarget("MP40Mag",33)
		TNT1 A 0 A_TakeFromTarget("HadesCrystal",50)
		TNT1 A 0 A_TakeFromTarget("AcidAmmo",75)
		TNT1 A 0 A_TakeFromTarget("AMCell",50)
		TNT1 A 0 A_TakeFromTarget("NuclearMissileCharge",2)
		TNT1 A 0 A_TakeFromTarget("NuclearMissile",1)
		ILLU P 4 BRight A_FaceTarget
		GoTo See
	ArmorBreak:
		TNT1 A 0
		ILLU O 3 Bright A_VileTarget("IllusoHadesExplode2")
		TNT1 A 0 A_TakeFromTarget("Armor",200)
		ILLU P 4 BRight A_FaceTarget
		GoTo See
	Tracers:
		TNT1 A 0
		ILLU GGG 2 A_FaceTarget
		ILLU HHH 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HadesTracer",68,20,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HadesTracer",68,-20,0,CMF_TRACKOWNER)
		ILLU G 6
		GoTo See
	VileGhosts:
		TNT1 A 0
		ILL2 GG 1 A_FaceTarget
		TNT1 A 0 A_CustomMissile("PhantasmSpawner",20,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_CustomMissile("PhantasmSpawner",20,0,-90,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		ILL2 GGGHII 1 Bright A_FaceTarget
		GoTo See
	SummonVile:
		TNT1 A 0 
		TNT1 A 0 A_JumpIfInventory("IllusionistSpawnAmmount",10,"Banish")
		TNT1 A 0 A_GiveInventory("IllusionistSpawnAmmount",1)
		TNT1 A 0 A_Jump(50,"DarkHellion","Diabolist")
		TNT1 A 0 A_Jump(15,"Velocirator")
	Exile:
		ILLU GGG 2 A_FaceTarget
		ILLU HHHII 2 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ExileCaster",20,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		ILLU HIHGG 2 Bright
		GoTo See
	Diabolist:
		ILLU GGG 2 A_FaceTarget
		ILLU HHHII 2 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("DiabloCaster",20,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		ILLU HIHGG 2 Bright
		GoTo See
	DarkHellion:
		ILLU GGG 2 A_FaceTarget
		ILLU HHHII 2 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("DHellnaCaster",20,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		ILLU HIHGG 2 Bright
		GoTo See
	Velocirator:
		ILL2 GGGG 2 A_FaceTarget
		ILL2 HHHII 2 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("VeloCaster",20,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		ILL2 HIHGG 2 Bright
		GoTo See
	Heal:
		TNT1 A 0
		ILLU GH 5 Bright
		TNT1 A 0 HEALTHING(50)
		TNT1 A 0 A_PlaySound("brain/spit")
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,140,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,260,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,320,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("IllusionistResRadius",10,0,360,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("IlluGhostFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		ILLU "[[[[^^^^]]]]" 4 Bright A_SpawnItemEx("IlluGhostFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		ILLU "]" 0 Bright HealThing(100)
		TNT1 A 0 A_Jump(120,"Trails")
		Goto See
	Pain.Mine:
	Pain.Explosion:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("IllusionistSpawnAmmount",1)
	Banish:
		TNT1 A 0
		TNT1 A 0 A_HideThing
		TNT1 A 0 A_SetInvulnerable
		TNT1 AAAA 0 A_CustomMissile("Kaboom10",45,0,random(0,360),2,random(0,360))
		ILLU HHH 1 Bright A_CustomMissile("Kaboom12",45,0,random(0,360),2,random(0,360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAA 0 A_CustomMissile("Kaboom10",45,0,random(0,360),2,random(0,360))
		ILLU HHH 1 Bright A_CustomMissile("Kaboom12",45,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_UnHideThing
		TNT1 A 0 A_UnSetInvulnerable
		ILLU G 5
		TNT1 A 0 A_Jump(128,"ATrails")
		Goto See
	Trails:
		ILLU "[[[[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail",0,random(-30,30),random(-90,90),CMF_AIMDIRECTION,0)
		ILLU "[" 2 A_FaceTarget
		ILLU "]" 8
		GoTo See
	ATrails:
		ILLU "[[[[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "^" 2 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HadesTrail2",random(1,56),random(-30,30),random(-90,90),CMF_AIMDIRECTION,random(-1,1))
		ILLU "[" 2 A_FaceTarget
		ILLU "]" 8
		GoTo See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_TakeInventory("IllusionistSpawnAmmount",1)
		ILLU Q 10 A_Pain
		Goto See
	Death:
		TNT1 A 0
		ILLU Q 6 A_RemoveChildren
		TNT1 A 0 A_TakeInventory("IllusionistSpawnAmmount",10)
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		ILLU R 6 A_Scream
		TNT1 A 0 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 A 0 A_SpawnItemEx("BlackGibbedGenerator",0,0,0,0,0,0,0,128,0)
		ILLU S 6 A_Fall
		ILLU TUVW 6
		TNT1 A 0 A_SpawnItem("BodyCrash",0,0,0,0)
		ILLU XY 4
		TNT1 A 0 A_KillChildren
		ILLU Z 63000 CanRaise
		Stop 
	}
}

ACTOR IllusionistFX
{   
Height 56
Radius 20
RENDERSTYLE Translucent
ALPHA 0.5
+CLIENTSIDEONLY
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 1
		ILLU ABCDEF 2 A_FadeOut(0.1,1)
		Goto Spawn+1
   }
}

Actor IllusionistFX2
{
Health 5
Height 56
Radius 20
Speed 15
+ISMONSTER
+NOTARGET
-COUNTKILL
+NOBLOCKMAP
+ThruSpecies
+NoRadiusDMG
+NOBLOODDECALS
+FloorClip
Species "Illusionist"
Tag "\c[s9]Illusionist\c-"
States
	{
	Spawn:
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU A 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU B 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU C 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU D 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU E 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_SpawnItem("IllusionistFX",0,0)
		ILLU F 1 A_Wander
		TNT1 A 0 A_Die
		Goto Death
	Death:
		ILLU Q 5
		TNT1 AAAAA 0 A_CustomMissile("SmokeFX2",45,0,random(0,360),2,random(0,360))
		TNT1 AAAAA 0 A_CustomMissile("Kaboom21",45,0,random(0,360),2,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom20",45,0,random(0,360),2,random(0,360))
		ILLU Q 1 A_FadeOut(0.1,1)
		Wait
	}
}

Actor IllusoHadesExplode : DShadowHadesExplode
{
Obituary "%o was consumed into the Hades."
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SoulRazeLaugh2",0,1.0,0)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",0,1.0,0)
		TNT1 A 0 A_Explode(140,500,0,0,20)
		TNT1 AAAAA 0 A_SpawnItemEx("Kaboom12Spawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesFireSpawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawniTEMeX("SoulRazeSprite",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor IllusoHadesExplode2 : DShadowHadesExplode
{
Obituary "%o was consumed into the Hades."
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SoulRazeLaugh2",0,1.0,0)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",0,1.0,0)
		TNT1 A 0 A_Explode(70,500,0,0,10)
		TNT1 AAAAA 0 A_SpawnItemEx("Kaboom12Spawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesFireSpawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawniTEMeX("SoulRazeSprite",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor IlluGhostFire : ExileFireFX
{
Scale 1
+NOGRAVITY
+SEEKERMISSILE
+NOTARGET
+NODAMAGETHRUST
+THRUACTORS
DamageType "VileFires"
Obituary "%o was fooled by a Phantasm."
States
	{
	Spawn:
		TNT1 A 2 Bright A_StartFire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_FireCrackle
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire 
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 0 Bright A_FireCrackle
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 0 Bright A_SpawnItemEx("IlluGhostFireSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 Bright A_Explode(Random(1,2),38,0)
		TNT1 A 2 Bright A_Fire
		TNT1 A 2 Bright
		Stop
	}
}

ACTOR IllusoFire
{
Renderstyle Add
Scale 0.35
+NONETID
+CLIENTSIDEONLY
+MISSILE
+THRUACTORS
+NOBLOCKMAP
+NONSHOOTABLE
+DROPOFF
+NOGRAVITY
+DONTSPLASH
+FORCEXYBILLBOARD
States
	{
	Spawn:
		FIW1 ABCDEFGHIJKL 2 A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR IlluGhostFireSpawner : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("Kaboom22",random(16,-16),random(16,-16),random(6,12),0,0,random(2,4),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright A_SpawnItemEx("IllusoFire",random(16,-16),random(16,-16),random(6,12),0,0,random(4,6),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	}
}

Actor PhantasmSpawner : ExileCaster
{
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 2 A_SpawnItemEx("IlluGhostFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawnItemEx("Phantasm",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

ACTOR Phantasm : Illusionist
{
Health 1080
Speed 15
Bloodcolor White
+ThruSpecies
DropItem ""
DropItem "LifeEssence", 180, 8
DropItem "HEMArmorBonusMax8", 180
DeathSound "avile/death"
Obituary "%o was fooled by a Phantasm."
States
	{
	Missile:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		ILL2 G 10 Bright A_PlaySound("exile/voidstart")
		ILL2 H 8 Bright A_VileTarget("IlluGhostFire")
		ILL2 IIIIIIIIJJJJJJJJKKKKKKKKLLLLLLLLMMMMMMMMNNNNNNNN 1 Bright A_FaceTarget
		TNT1 A 0 Bright A_PlaySound("exile/voidend")
		ILL2 O 8 Bright A_VileAttack
		ILL2 P 20 Bright
		Goto See	
	Heal:
		TNT1 A 0
		ILL2 "[^]" 10 Bright
		Goto See
	Pain:
		TNT1 A 0
		ILL2 Q 10 A_Pain
		Goto See
	XDeath:
	Death:
		TNT1 A 0
		ILLU Q 5 A_Noblocking
		TNT1 AAAA 0 A_CustomMissile("SmokeFX2",45,0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("Kaboom21",45,0,random(0,360),2,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom22",45,0,random(0,360),2,random(0,360))
		ILLU Q 1 A_FadeOut(0.1,1)
		Wait
	}
}

ACTOR IllusionistRailgunSlug : PlayerDTBFGRailgunSlug
{
Damage 3
+StrifeDamage
-RIPPER
Species ""
Species "Illusionist"
DamageType ""
DamageType "Illusionist"
}

Actor HadesTrail : ShadeMissile
{
Projectile
Speed 45
Scale 1.5
Alpha 1.0
BounceCount 15
Bouncefactor 1.1
WallBouncefactor 1.1
MissileType "IllusionistRailgunSlug"
Damage (0)
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+THRUACTORS
+NoExplodeFLoor
+FloorHugger
+DoomBounce
-SeekerMissile
+FORCEXYBILLBOARD
Species ""
Species "Illusionist"
Damagetype ""
Damagetype "Illusionist"
States
	{
	Spawn:
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		Loop
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Stop
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_MissileAttack
		NBAL H 1 Bright A_CustomRailgun(-1,0,NONE,"Red",1,1,2)
		Goto Death
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		NBAL HIJKL 3 Bright A_FadeOut(0.1,0)
		NBAL M 3 Bright A_FadeOut(0.2,1)
		Wait
	}
}

Actor HadesTrail2 : HadesTrail
{
-FloorHugger
+SeekerMissile
States
	{
	Spawn:
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL A 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		NBAL B 1 Bright A_SpawnItemEx("ShadePuff4",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Seekermissile(5,7,SMF_LOOK)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,100,0,360,"Attack")
		Loop	
	}
}

ACTOR ShadePuff4
{   
Radius 3
Height 3
RENDERSTYLE ADD
Alpha 1.0
Scale 1.5
+ClientSideOnly
+NOINTERACTION
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		NBAL CDEFG 3 Bright A_FadeOut(0.1,1)
		Stop 
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor IllusoCorpseRandomizer
{
Height 56
Radius 20
Health 0
Mass 100
Speed 8
+ISMONSTER
-COUNTKILL
+FLOORCLIP
-NOGRAVITY
+NOTARGET
+NODROPOFF
+DONTSPLASH
+NOTELEPORT
+LOOKALLAROUND
+NOBLOCKMAP
+NONSHOOTABLE
+NODAMAGE
+CORPSE
SeeSound ""
DeathSound ""
ActiveSound ""
PainSound ""
States
	{
	Spawn:
		TNT1 A 1
		TNT1 AAAAAAAAAA 1 A_Wander
		Goto Idle
	Idle:
		ILLU Z 10 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,500,0,360,"WakeUp")
		TNT1 A 0 A_JumpIfInventory("Tic",6300,"WakeUp")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	WakeUp:
		ILLU ZYXWVUTSRQ 3
		ILLU Q 5 A_FaceTarget
		TNT1 A 0 A_UnsetSolid
		TNT1 A 1 A_SpawnItemEx("Illusionist",0,0,0,0,0,0,0,SXF_TELEFRAG|SXF_TRANSFERPOINTERS)
		Stop
	}
}
 
Actor HadesTracer : CacodemonBall
{
Projectile
Damage (8*random(4,8))
Speed 24
FastSpeed 30
Alpha 0.80
-Randomize
+SeekerMissile
+ThruSpecies
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "Illusionist"
Damagetype ""
Damagetype "Illusionist"
SeeSound "Monster/hadtel"
DeathSound "Monster/hadsit"
States
	{
	Spawn:
		HEFX AAAABBBB 1 Bright A_SpawnItemEx("HadesBallTrailSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(20,30)
		Loop
	Death:
		HEFX CDEEFGH 3 Bright
		Stop
	XDeath:
		TNT1 AAA 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAA 0 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 AAAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		HEFX CDEEFGH 3 Bright
		Stop
	}
}

Actor DiabloCaster : ExileCaster
{
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 2 A_SpawnItemEx("IFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Diabolist",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor DHellnaCaster : ExileCaster
{
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 2 A_SpawnItemEx("HellionSmokeAttack",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("DarkHellion",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor VeloCaster : ExileCaster
{
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 2 A_SpawnItemEx("GHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Velocirator",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

ACTOR IllusionistResRadius : VelociratorResRadius { Radius 16 }

Actor FakeMarine : DoomPlayer
{
Monster
Health 100
Height 56
Radius 16
Speed 6
Damage (random(1,10))
Renderstyle Fuzzy
+NOBLOCKMONST
+NOFEAR
+FRIENDLY
-COUNTKILL
-INVULNERABLE
+NOBLOOD
+QUICKTORETALIATE
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
DamageFactor 0.001
Species "Player"
Tag "Illusory marine"
var int user_lcounter;
var int user_lifetime;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_SetUserVar("user_lifetime",48+random(0,10))
	Spawnloop:
		PLAY A 5 A_Look
		Loop
	Idle:
		PLAY ABCD 4 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter + 1)
		TNT1 A 0 A_JumpIf(user_lcounter < user_lifetime,"Death")
		Loop
	See:
		PLAY ABCD 4 A_Chase
		TNT1 A 0 A_Jump(64,"Rush")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter + 1)
		TNT1 A 0 A_JumpIf(user_lcounter > user_lifetime,"Death")
		Loop
	Rush:
		PLAY AABB 2 A_FastChase
		PLAY CCDD 2 A_FastChase
		TNT1 A 0 A_Jump(16,"See")
		Loop
	Melee:
		PLAY E 12 A_FaceTarget
		TNT1 A 0 A_PlaySound("weapons/pistol",CHAN_WEAPON,1.0,0)
		PLAY F 4 A_CustomBulletAttack(3.6,2.3,1,Random(8,10)*random(1,3),"ModdedBulletPuff",0,CBAF_NORANDOM)
		PLAY E 12
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter + 1)
		TNT1 A 0 A_JumpIf(user_lcounter > user_lifetime,"Death")
		Goto See
	Missile:
		PLAY E 12 A_FaceTarget
		TNT1 A 0 A_PlaySound("weapons/pistol",CHAN_WEAPON,1.0,0)
		PLAY F 4 A_CustomBulletAttack(3.6,2.3,1,Random(8,10)*random(1,3),"ModdedBulletPuff",0,CBAF_NORANDOM)
		PLAY E 12
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter + 1)
		TNT1 A 0 A_JumpIf(user_lcounter > user_lifetime,"Death")
		Goto See
	Pain:
		PLAY G 4
		PLAY G 4 A_PlaySound("*pain100",CHAN_VOICE,1.0,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter + (random(0,10) * 0.1))
		Goto See
	Death:
		TNT1 A 0
		TNT1 A 0 A_Noblocking
		PLAY G 4 A_PlaySound("*xdeath",CHAN_VOICE,1.0,0)
		TNT1 AAAAA 0 A_CustomMissile("SmokeFX2",45,0,random(0,360),2,random(0,360))
		TNT1 AAAAA 0 A_CustomMissile("Kaboom21",45,0,random(0,360),2,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom20",45,0,random(0,360),2,random(0,360))
		PLAY G 1 A_FadeOut(0.1,1)
		Wait
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_Noblocking
		PLAY G 4 A_PlaySound("*xdeath",CHAN_VOICE,1.0,0)
		PLAY G 1 A_FadeOut(0.1,1)
		Wait
	}
}

Actor FakeMarine2 : FakeMarine { Speed 7 }
Actor FakeMarine3 : FakeMarine { Speed 8 }
Actor FakeMarine4 : FakeMarine { Speed 9 }

Actor FakeMarineSpawner
{
Projectile
Height 56
Radius 16
+Ripper
+BloodlessImpact
Damage (0)
Speed 20
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("FakeMarine",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
   }
}

Actor FakeMarineSpawner2 : FakeMarineSpawner
{
States
	{
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("FakeMarine2",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor FakeMarineSpawner3 : FakeMarineSpawner
{
States
	{
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("FakeMarine3",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor FakeMarineSpawner4 : FakeMarineSpawner
{
States
	{
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("FakeMarine4",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor IllusionistSpawnAmmount : Inventory { Inventory.MaxAmount 10 }