ACTOR LegendaryPhaseImp 17501
{
//$Category Monsters/DUST
//$Sprite LPHAA1C1
//$Title "Legendary Phase Imp"
  Health 999
  Radius 20
  Height 56
  Mass 100
  Speed 15
  PainChance 50
  Scale 1.1
  Monster
  MeleeDamage 15
  DamageFactor "Legendary1", 0.0
  DamageFactor 0.75
  DamageFactor "Legendary", 0.0
  DamageFactor "LegendaryPlayer", 0.3
  DamageFactor "LegendaryGuru", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.3
  DamageFactor "PDTBFG", 0.25
  DamageFactor "PDTBFGTracer", 0.25
  DamageFactor "PlayerDevBall", 0.125
  DamageFactor "PlayerDevBall2", 0.125
  DamageFactor "PlayerDTBFGRailgunSlug", 0.125
  DamageFactor "PlayerDevTracer", 0.125
  DamageFactor "DBFG10K2", 0.65
  DamageFactor "PlayerDBFG10K2", 0.65
  DamageFactor "DBFG2", 0.65
  DamageFactor "PlayerDBFG2", 0.65
  DropItem "LegendarySphere" 80 1
  DropItem "LegendaryPowerSphere" 85 1
  DropItem "LDemonAmmoBox" 250
  DropItem "LDemonAmmo" 250
  DropItem "BossLifeEssence" 256
  DropItem "BossArmorBonusMax" 256
  DropItem "Legendary Plasmatic Rifle" 45 1
  DropItem "LegendaryRune" 15 1
  Species "Imps"
  +NOTARGET
  +BOSS
  +BOSSDEATH
  +AVOIDMELEE
  +NOTIMEFREEZE
  +FLOORCLIP
  +QUICKTORETALIATE
  +MISSILEMORE
  +MISSILEEVENMORE
  +DONTHARMSPECIES
  +NOICEDEATH
  +DONTGIB
  +NORADIUSDMG
  SeeSound "LPhaseImp/sight"
  PainSound "LPhaseImp/pain"
  DeathSound "LPhaseImp/death"
  ActiveSound "LPhaseImp/active"
  Obituary "%o's blood was curdled by the Legendary Phase Imp."
  HitObituary "%o received a spine through %h heart by the Legendary Phase Imp."
  BloodColor "Blue"
  MeleeSound "imp/melee"
  var int user_music;
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DisableLegPhase") == 1, "Remove")
  Idle:
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA A 10 A_Look
	Loop
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("DoomImp",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,301)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_Jump(46,"Evade","Rush")
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA AA 3 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA BB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA CC 3 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA DD 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_Jump(46,"Phase")	
    Loop
  Rush:
	LPHA A 1 A_Chase
	LPHA A 0 A_Chase
	LPHA A 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA B 1 A_Chase
	LPHA A 0 A_Chase
	LPHA B 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA C 1 A_Chase
	LPHA A 0 A_Chase
	LPHA C 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA D 1 A_Chase
	LPHA A 0 A_Chase
	LPHA D 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA A 1 A_Chase
	LPHA A 0 A_Chase
	LPHA A 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA B 1 A_Chase
	LPHA A 0 A_Chase
	LPHA B 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA C 1 A_Chase
	LPHA A 0 A_Chase
	LPHA C 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA D 1 A_Chase
	LPHA A 0 A_Chase
	LPHA D 1 A_Chase
	LPHA A 0 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(48,"See")
	Loop
	Evade:
	TNT1 A 0 A_Jump(128,7)
	TNT1 A 0 ThrustThing(Angle*256/360+64,16,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA AA 3 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA AA 3 A_Chase
	TNT1 A 0 A_Stop
	Goto See
	TNT1 A 0 ThrustThing(Angle*256/360+192,16,0,0)
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA AA 3 A_Chase
	TNT1 A 0 A_SpawnItem("LHellionSmokeSpawner",0,0,0,0)
	LPHA AA 3 A_Chase
	TNT1 A 0 A_Stop
	Goto See
  Phased:
	LPHA AABBCCDDAABBCCDD 1 A_ExtChase(0,0)
	LPHA AABBCCDDAABBCCDDAABBCCDDAABBCCDD 1 A_Chase
	TNT1 A 0 A_Jump(24,"UnPhase","PhasedRun")
	Goto Phased+32
	Melee:
	LPHA EF 5 A_FaceTarget
	LPHA G 5 A_MeleeAttack
	LPHA FE 5 A_FaceTarget	
    Goto See
	Missile:
	TNT1 A 0 A_Jump(128,"FastMissile")
	TNT1 A 0 A_Jump(64,"Surprise","Laser")
	TNT1 A 0 Bright A_PlaySound("LPhaseImp/attack",7)
	LPHA EF 6 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 4
	LPHA F 4 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	TNT1 A 0 ThrustThing(Angle*256/360+random(64,192),16,0,0)
	LPHA FEF 4
	TNT1 A 0 A_Stop
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 4
	LPHA F 4 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	TNT1 A 0 ThrustThing(Angle*256/360+random(64,192),16,0,0)
	LPHA FEF 4
	TNT1 A 0 A_Stop
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 4
	LPHA F 4 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FEF 3
	TNT1 A 0 A_Stop
	Goto See
  FastMissile:
	TNT1 A 0 Bright A_PlaySound("LPhaseImp/attack",7)
	LPHA EF 4 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 2
	LPHA F 2 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	TNT1 A 0 ThrustThing(Angle*256/360+random(64,192),32,0,0)
	LPHA FEF 2
	TNT1 A 0 A_Stop
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 2
	LPHA F 2 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	TNT1 A 0 ThrustThing(Angle*256/360+random(64,192),32,0,0)
	LPHA FEF 2
	TNT1 A 0 A_Stop
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 2
	LPHA F 2 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 3 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FEF 3
	TNT1 A 0 A_Stop
	Goto See
  Laser:
	TNT1 A 0 Bright A_PlaySound("LPhaseImp/attack",7)
	LPHA EF 6 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	LPHA G 4 Bright A_CustomMissile("LegPhaseLaser", 32, 0, 0)
	TNT1 A 0 A_Facetarget
	TNT1 A 0 ThrustThing(Angle*256/360+random(64,192),32,0,0)
	LPHA F 6
	TNT1 A 0 A_MonsterRefire(64,"See")
	TNT1 A 0 A_Jump(100,"See")
	Goto Laser+1
  Surprise:
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	LPHA E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.55)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.35)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.15)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Goto SurprisePhased
  SurprisePhased:
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	TNT1 A 0 A_JumpIfCloser(200,"SurpriseUnphase")
	TNT1 A 0 A_Jump(8,"Unphase")
	Loop
  SurpriseUnphase:
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 Bright A_PlaySound("LPhaseImp/Sight",7)
	LPHA EF 6 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	LPHA FE 4
	LPHA F 4 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("imp/attack")
	LPHA G 5 Bright A_CustomMissile("LegImpSeekBall", 32, 0, 0)
	TNT1 A 0 A_Jump(128,"PhaseRun")
	Goto See
  Phase:
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	LPHA E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.55)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.35)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.15)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	//TNT1 AA 0 A_SpawnItemEx("FakeLegendaryPhaseImp",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERPOINTERS)
	Goto Phased
  UnPhase:
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.15)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.35)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.55)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SetTranslucent(1)
	LPHA E 2 A_FaceTarget	
    Goto See
  Pain:
	TNT1 A 0 A_Jump(32,"PhaseRun")
	LPHA H 2
	LPHA H 2 A_Pain
	Goto See
  PhaseRun:
	TNT1 A 0 A_UnSetShootable
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	LPHA E 2 A_FaceTarget
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.55)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.35)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.15)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Goto PhasedRun
  PhasedRun:
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA A 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA B 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA C 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	LPHA D 1 A_ExtChase(0,0)
	LPHA A 0 A_ExtChase(0,0)
	TNT1 A 0 A_Jump(64,"UnPhaseRun")
	Loop
  UnPhaseRun:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.15)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.35)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.55)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LPHA E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SetTranslucent(1)
	LPHA E 2 A_FaceTarget	
    Goto See
  Death:
	LPHA I 8 A_SetTranslucent(1)
	LPHA J 8 A_Scream
	LPHA K 6
	LPHA L 6 A_Fall
	LPHA M -1
	Stop
  XDeath:
	TNT1 A 0 A_SetTranslucent(1)
	LPHA N 3 
	LPHA O 3 A_XScream
	LPHA P 3 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
	LPHA Q 3 A_Fall
	LPHA RST 3
	LPHA U -1
	Stop
	}
}


Actor LegPhaseLaser : LegRedLaser
{
Damage 4
}


Actor FakeLegendaryPhaseImp : LegendaryPhaseImp
{
+NOTARGET
-COUNTKILL
+THRUSPECIES
-BOSS
Health 150
Renderstyle Translucent
Alpha 0.15
SeeSound " "
DeathSound " "
Tag "\c[z3]Legendary Phase Imp\c-"
States
  {
  Spawn:
  LPHA AABBCCDDAABBCCDD 1 A_Wander
  LPHA AABBCCDDAABBCCDDAABBCCDDAABBCCDD 1 A_ExtChase(0,0)
  TNT1 A 0 A_Die
  Goto Death
  Death:
  LPHA H 5
  TNT1 AAA 0 A_CustomMissile("SmokeFX3",Random(10,60),0,random(0,360),2,random(0,360))  
  TNT1 AAA 0 A_CustomMissile("BlueKaboom3",random(10,60),random(10,-10),random(0,360),2,random(0,360))
  LPHA H 1 A_FadeOut(0.1,1)
  Wait
  }
}