ACTOR LegendaryNecromancer
{ 
Health 1400 
PainChance 40
Speed 24
Scale 1.15
Radius 20 
Height 56 
Mass 200 
Bloodcolor Blue
MONSTER
+FLOAT
+NOGRAVITY
+NOTARGET
+BOSS
+AVOIDMELEE
+NOTIMEFREEZE
+MISSILEMORE
+MISSILEEVENMORE
+NOICEDEATH
+DONTGIB
+NOTELEFRAG
+QUICKTORETALIATE
+DONTHARMSPECIES
+NORADIUSDMG
Species "LegMage"
Obituary "%o submitted to the Legendary Necromancer's storm."
DamageFactor 0.6
DamageFactor "CacoComet", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "PDTBFG", 0.10
DamageFactor "PDTBFGTracer", 0.10
DamageFactor "PlayerDevBall", 0.110
DamageFactor "PlayerDevBall2", 0.110
DamageFactor "PlayerDTBFGRailgunSlug", 0.110
DamageFactor "PlayerDevTracer", 0.110
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DropItem "BossLifeEssence" 256
DropItem "BossArmorBonusMax" 256
DropItem "LDemonAmmo" 256
DropItem "LDemonAmmoBox" 256
DropItem "LegendaryPowerSphere" 65 1
DropItem "LegTimeFreezeSphere" 80 1
DropItem "LegendarySphere" 150 1
DropItem "Legendary Plasmatic Rifle" 190 1
DropItem "LegendaryRune" 56 1
DropItem "OccultSpellbook" 256
SeeSound "LegMage/Sight" 
PainSound "LegMage/Pain" 
DeathSound "LegMage/Death" 
ActiveSound "LegMage/Active" 
var int user_music;
States 
   { 
   Spawn: 
	   TNT1 A 0
	   TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(804) == 1, "Remove")
   Idle:
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 10 Bright A_Look 
       Loop 
   Remove:
	   TNT1 A 1
	   TNT1 A 0 A_SpawnItemEx("Cacodemon~",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	   TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	   TNT1 A 0
	   Stop
   See: 
       TNT1 A 0 A_JumpIf(user_music == 1,3)
       TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,33)
	   TNT1 A 0 A_SetUserVar("user_music",1)
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE AA 3 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	   LMGE AB 3 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	   LMGE BB 3 Bright A_Chase
       LMGE A 0 A_Jump(30,"Teleport")
       LMGE A 0 A_Jump(96,"Rush")
       LMGE A 0 A_Jump(60,"Dodge")
       Loop
    Teleport:
       LMGE A 1 Bright A_UnSetShootable
	   LMGE AAAA 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	   LMGE AAAAAAAAAA 1  A_FadeOut(0.1,0)
	   LMGE A 2 
	   LMGE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	   LMGE AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
       LMGE A 1 A_PlayWeaponSound("boss/teleport")
	   LMGE AAAA 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	   LMGE AAAAAAAAAA 1 A_FadeIn(0.1)
       LMGE A 1 Bright A_SetShootable
       Goto See	
    Dodge:
	   LMGE A 0
	   LMGE A 0 ThrustThing(angle*256/360+random(0,360),30,0,0)
	   LMGE A 5 Bright 
	   Goto See
   Rush:
       LMGE A 0 A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 1 Bright A_Playsound("monster/blur")
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE A 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE A 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
	   TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 1 Bright A_Chase
       LMGE B 0 Bright A_SpawnItem("LegNecromancerFX",0,0)
       LMGE B 0 A_Jump(96,1)
       Goto See+8
       LMGE B 0
       Goto See
   Missile:
	   TNT1 A 0 A_Jump(120,"Laser","Souls","SpreadShots")
	   TNT1 A 0 A_Jump(50,"VoidLightning","MeteorStorm")
	   TNT1 A 0 A_Jump(30,"SuperStorm")
   Normal:
       LMGE D 8 Bright A_FaceTarget
       LMGE E 5 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       TNT1 A 0 Bright A_FaceTarget
       TNT1 A 0 Bright A_CustomMissile("LegNecromancerShot2",65,35,0,0)
       LMGE F 8 Bright A_CustomMissile("LegNecromancerShot",65,-35,0,0)
       LMGE F 0 Bright A_FaceTarget
       Goto See
   SpreadShots:
       LMGE D 8 Bright A_FaceTarget
       LMGE E 5 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 0 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       LMGE F 5 Bright A_CustomMissile("LegSoulBall",41,0,random(-24,24))
       TNT1 A 0 Bright A_FaceTarget
       Goto See
   Souls:
       LMGE D 8 Bright A_FaceTarget
       LMGE E 5 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegNecromancerSoul",41,0,random(-6,6))
       TNT1 A 0 Bright A_FaceTarget
       Goto See
   Laser:
       LMGE D 8 Bright A_FaceTarget
       LMGE E 5 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       LMGE F 3 Bright A_CustomMissile("LegRedLaser",41,0,0,0)
       TNT1 A 0 Bright A_FaceTarget
       Goto See
   VoidLightning:
	   TNT1 A 0 A_ChangeFlag("NOPAIN",1)
       LMGE DE 5
       LMGE F 10 A_PlaySound("exile/voidstart")
       LMGE F 8 A_VileTarget("LegNecromancerVileFire")
       LMGE FFFFFFFFFFFFFF 8 A_FaceTarget
	   TNT1 A 0 A_PlaySound("exile/voidend")
       LMGE D 8
       LMGE E 20
	   TNT1 A 0 A_ChangeFlag("NOPAIN",0)
       Goto See
   MeteorStorm:
	   TNT1 A 0 A_ChangeFlag("NOPAIN",1)
       LMGE D 2 Bright A_FaceTarget
       LMGE DEEEFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,180)
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,90)
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,-90)
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,45)	
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,-45)
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,135)	
       LMGE F 0 A_CustomMissile("BlueRainCometNull",32,0,-135)
       LMGE F 8 Bright A_CustomMissile("BlueRainCometNull",32,0,0)
       TNT1 A 0 A_SetInvulnerable
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       TNT1 A 0 A_UnSetInvulnerable
	   TNT1 A 0 A_ChangeFlag("NOPAIN",0)
       Goto See
   SuperStorm:
       LMGE E 0 A_SetInvulnerable
	   LMGE E 0 A_FaceTarget
	   TNT1 A 0 A_PlaySound("Legmage/Attack")
	   TNT1 A 0 Radius_Quake(8,60,0,20,0)
       LMGE D 2 Bright A_FaceTarget
       LMGE DEEEFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 3 Bright A_FaceTarget
	   LMGE AAA 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   TNT1 A 0 A_GiveToTarget("LegRedStormBoltAttack",1)
	   TNT1 AA 0 A_SpawnItemEx("LegRedStormBoltSpawner",Random(512,-512),Random(512,-51),0,0,0,0,SXF_NOCHECKPOSITION,64)
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
       LMGE F 2 Bright A_FaceTarget
       LMGE FFFFFFFF 2 Bright A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	   LMGE F 1 A_UnSetInvulnerable
	   LMGE F 0 A_Jump(127,"Dodge","Teleport")
	   Goto See
   Pain: 
       TNT1 A 0 A_Jump(35,"Teleport")
       LMGE C 2 Bright 
       LMGE C 2 Bright A_Pain 
	   TNT1 A 0 A_Jump(128,"Missile")
       Goto See 
   Death: 
	   LMGE C 2 Bright
	   LMGE C 2 Bright A_Scream 
	   LMGE CCCCCCCCCCCCCCCCCCCCCC 6 A_SpawnItemEx("BlueKaboom",random(-32,32),random(-40,40),random(16,48),random(-4,4),random(-4,4),random(0,4),0,SXF_TRANSFERPOINTERS)
	   TNT1 A 0 A_SpawnItem("LegRedThunder")
	   TNT1 A 0 A_Explode(100,200,1)
	   TNT1 A 0 Radius_Quake(5,15,0,20,0)
	   TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
       LMGE G 8 Bright A_PlaySound("LegMage/Death2",7,1.0,0,ATTN_NONE) 
       LMGE H 5 Bright
       LMGE I 5 Bright
       LMGE J 5 Bright A_NoBlocking 
       LMGE KLM 5 Bright
       LMGE N 5 A_CustomMissile("AcolFX1",54,0,0,0)
       LMGE O 5  
       LMGE P -1 
       Stop 
   } 
}

Actor LegNecromancerSoul
{
	Speed 70
	damage 8
	scale 0.35
	radius 6
	height 12
	RENDERSTYLE ADD
	Alpha 0.75
	Bouncetype Doom
	Bouncecount 8
	PROJECTILE
	+STRIFEDAMAGE
	+SEEKERMISSILE
	+PIERCEARMOR
	+NOTIMEFREEZE
	seesound "Soul/Fire"
	deathsound "Soul/Hit"
	states
	{
	Spawn:
		IMSO A 1 Bright
		TNT1 A 0 A_CustomMissile("LegNecromancerSoulTrail",0,0,0)
		IMSO A 1 Bright
		TNT1 A 0 A_CustomMissile("LegNecromancerSoulTrail",0,0,0)
		IMSO B 1 Bright
		TNT1 A 0 A_CustomMissile("LegNecromancerSoulTrail",0,0,0)
		IMSO B 1 Bright
		TNT1 A 0 A_CustomMissile("LegNecromancerSoulTrail",0,0,0)
		Loop
	Death:
		IMSO CCDDEEFFGGHHIIJJKKLL 2 Bright A_FadeOut(0.05)
		stop
	}
}
Actor LegNecromancerSoulTrail
{
	Projectile
	+CLIENTSIDEONLY
	+NOINTERACTION
	+NOTIMEFREEZE
	Damage 0
	RenderStyle Add
	Alpha 0.45
	Scale 0.9
	States
	{
	Spawn:
		TNT1 A 2
		PUF6 BDFHJLNPRTVXZ 1
		PUF7 B 1 A_FadeOut(0.2)
		Wait
	}
}

ACTOR LegNecromancerShot
{
   Radius 8
   Height 16
   Speed 45
   Damage 7
   RENDERSTYLE ADD
   ALPHA 0.67
   PROJECTILE
   +SEEKERMISSILE
   +NOTIMEFREEZE
   +EXTREMEDEATH
   SeeSound "DBish/Atk1"
   DeathSound "monster/acohit"
   Decal "DoomImpScorch"
   States
   {
   Spawn:
      LMF0 A 1 Bright A_Weave(3, 3, 2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 A 1 Bright A_Weave(3, 3, 2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 B 1 Bright A_Weave(3, 3, 2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 B 1 Bright A_Weave(3, 3, 2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      loop
   Death:
	  TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	  TNT1 AA 0 A_CustomMissile("Kaboom6", 0, 0, random(0,360), 2, random(0,360))
	  TNT1 AA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
      LMF0 CDEFGH 3 Bright
      stop
   }
}

ACTOR LegNecromancerShot2 : LegNecromancerShot
{
   States
   {
   Spawn:
      LMF0 A 1 Bright A_Weave(3, 3, -2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 A 1 Bright A_Weave(3, 3, -2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 B 1 Bright A_Weave(3, 3, -2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      LMF0 B 1 Bright A_Weave(3, 3, -2.0, 1.0)
      LMF0 A 0 Bright A_CustomMissile("LegNecromancerShotFX",0,0,0,0)
      LMF0 B 0 Bright A_SeekerMissile(1,3)
      loop
   }
}

ACTOR LegNecromancerShotFX : ImpBallTrail
{   
   Radius 2
   Height 2
   Speed 0
   PROJECTILE
   RENDERSTYLE ADD
   ALPHA 0.67
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 0
      TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
      TNT1 A 2 Bright
      LMF0 AABB 1 Bright A_FadeOut(0.08)
      Goto Spawn+3
   }
}

ACTOR LegNecromancerVileFire : ArchvileFire
{
  RenderStyle Add
  Scale 0.5
  Alpha 1
  +DONTSPLASH
  +NOTIMEFREEZE
  States
  {
  Spawn:
    TNT1 A 0
    LMVI A 1 Bright A_PlaySoundEx("BFlan/Vile","Voice",1)
    LMVI ABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ 1 Bright A_Fire
    LMV0 AABBCCDD 1 Bright A_Fire
    LMVI ABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ 1 Bright A_Fire
    LMV0 AABBCCDD 1 Bright A_Fire
	LMVI A 1 Bright A_StopSoundEx("Voice")
	LMVI A 1 Bright A_PlaySoundEx("exile/voidend","Voice")
	TNT1 A 0 A_SpawnItem("LegRedThunder")
	TNT1 A 0 A_Explode(100,200,1)
	TNT1 A 0 Radius_Quake(5,15,0,20,0)
    TNT1 AAAAAAAAAAA 0 A_SpawnItemEx ("LegNecromancerBlueFlame1", 0, 0, 0, random(-3,3), random(-3,3), random(-3,3), random (0, 360))
	TNT1 AAAAAAAAAAA 0 A_CustomMissile("LegNecromancerBlueFlame3", random(5, 55), 0, random(0,360), CMF_AIMDIRECTION, frandom(-40, 70))
	LMVI BBCCDDEE 1 Bright
	TNT1 A 20
	TNT1 A 0 A_StopSoundEx("Voice")
    Stop
	}
}

ACTOR LegNecromancerBlueFlame1
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 2
      BMKE ABCDEFGHIJKL 1 Bright A_SpawnItemEx ("LegNecromancerBlueFlame2", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
      stop
   }
}

ACTOR LegNecromancerBlueFlame2
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 2
      BMKE ABCDEFGHIJKL 1 Bright A_ChangeVelocity(0,0,1)
      stop
   }
}

ACTOR LegNecromancerBlueFlame3
{
   Radius 2
   Height 4
   Speed 15
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   Scale 0.35
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 2
      BMKE ABCDEFGHIJKL 1 Bright A_SpawnItemEx ("LegNecromancerBlueFlame4", 0, 0, 0, random(0, -2), random(-1, 1), random(-1, 1), 0, 0, 0)
      stop
   }
}

ACTOR LegNecromancerBlueFlame4
{
   Radius 2
   Height 4
   Speed 2
   PROJECTILE
   RenderStyle Translucent
   Alpha 0.3
   Scale 0.35
   +NOBLOCKMAP
   +NOGRAVITY
   +FORCEXYBILLBOARD
   +CLIENTSIDEONLY
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 2
      BMKE ABCDEFGHIJKL 1 Bright A_ChangeVelocity(0,0,1)
      stop
   }
}














ACTOR LegNecromancerFX : ImpballTrail
{   
   Radius 2
   Height 2
   Speed 0
   Scale 1.2
   RENDERSTYLE Translucent
   ALPHA 0.90
   +NOTIMEFREEZE
   States
   {
   Spawn:
      TNT1 A 0
      TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
      TNT1 A 3
      LGMG A 5 A_FadeOut(0.10)
      goto Spawn+3
   }
}