ACTOR PhaseLich
{
//Creator: High Councilor
//Origin: Nexus Infinity
//Sprite: PLCH
//Title: "Phase Lich"
  Health 1500
  Radius 31
  Height 56
  Mass 600
  Speed 15
  Monster
  PainChance 20
  Alpha 0.8
  RadiusDamageFactor 0.5
  Species "Cacos"
  Damagefactor 0.5
  RenderStyle Translucent
  DamageFactor "CacoComet", 0.0
  Damagefactor "Normal", 0.65
  Damagefactor "Explosion", 0.65
  DropItem "BossLifeEssence" 128
  DropItem "BossArmorBonusMax" 128
  DropItem "DustMana" 256
  DropItem "BigDustMana" 128
  DropItem "DemonAmmoBox" 128 200
  DropItem "PhaseSphere" 32
  DropItem "PainLordSoul" 32
  DropItem "Demon Tech Rifle" 64
  +FLOAT
  +NOGRAVITY
  +NOBLOOD
  +DONTMORPH
  +DONTSQUASH
  SeeSound "monster/sensit"
  PainSound "monster/senpai"
  DeathSound "monster/sendth"
  ActiveSound "monster/senact"
  Obituary "%o was pierced by a Phase Lich."
  Tag "\ctPhase Lich\c-" 
  var int user_phased;
  States
  {
  Spawn:
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 2 A_Look
	Loop
  See:
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
    PLCH AA 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
    PLCH AA 2 A_Chase
	TNT1 A 0 A_Jump(10,"Evade")
	TNT1 A 0 A_Jump(12,"Phase")
    Loop
  Evade:
	TNT1 A 0 A_Jump(128,3)
	TNT1 A 0 ThrustThing(Angle*256/360+64,25,0,0)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 ThrustThing(Angle*256/360+192,25,0,0)
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH AA 1 A_Chase
	TNT1 A 0 A_Stop
	Goto See
  Phased:
	PLCH AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_ExtChase(0,0)
	PLCH A 1 A_Chase
	TNT1 A 0 A_Jump(4,"UnPhase")
	Goto Phased+32
  Phase:
	TNT1 A 0 A_JumpIf(user_phased == 1,"UnPhase")
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	TNT1 A 0 A_SetUserVar("user_phased",1)
	PLCH B 2 A_FaceTarget
	PLCH B 1 A_SetTranslucent(0.75)
	PLCH B 1 A_SetTranslucent(0.55)
	PLCH B 1 A_SetTranslucent(0.35)
	PLCH B 1 A_SetTranslucent(0.15)
	Goto Phased
  UnPhase:
	TNT1 A 0 A_PlaySound("phaseimp/teleport")
	TNT1 A 0 A_SetUserVar("user_phased",0)
	PLCH B 1 A_SetTranslucent(0.15)
	PLCH B 1 A_SetTranslucent(0.35)
	PLCH B 1 A_SetTranslucent(0.55)
	PLCH B 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SetTranslucent(1)
	PLCH B 2 A_FaceTarget		
	Goto See
  Missile:
    TNT1 A 0 A_SetTranslucent(0.8)
	TNT1 A 0 A_Jump(96,"MiniDarkMatter")
	TNT1 A 0 A_Jump(128,"DemonTech","SlowSeekers")
  Normal:
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("PLichPurpleCardball",38,-18)
	PLCH B 2 Bright A_CustomMissile("PLichPurpleCardball",38,18)
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_CustomMissile("PLichPurpleCardball",38,-18)
	PLCH B 2 Bright A_CustomMissile("PLichPurpleCardball",38,18)
	PLCH AA 5 A_SpawnItemEx("PhaseLichAspawner")
	Goto See
  DemonTech:
    PLCH AA 3 A_FaceTarget
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("PLichDemonTech",38,18,frandom(-2,2),0)
    PLCH B 4 Bright A_PlaySoundEx("weapons/demontechfire","Weapon")
    TNT1 A 0 A_FaceTarget
    TNT1 A 0 A_CustomMissile("PLichDemonTech",38,-18,frandom(-2,2),0)
    PLCH B 4 Bright A_PlaySoundEx("weapons/demontechfire","Weapon")
	TNT1 A 0 A_Jump(24,"DemonTechPause")
	TNT1 A 0 A_SpidRefire
	Goto DemonTech+2
  DemonTechPause:
	PLCH A 10
	Goto See
  MiniDarkMatter:
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("monsters/newfireshoot")
	TNT1 A 0 A_CustomMissile("PLichDarkMatterBallmini",38,-18,-2)
	PLCH B 3 Bright A_CustomMissile("PLichDarkMatterBallmini",38,18,2)
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 3 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("monsters/newfireshoot")
	TNT1 A 0 A_CustomMissile("PLichDarkMatterBallmini",38,-18,-4)
	PLCH B 3 Bright A_CustomMissile("PLichDarkMatterBallmini",38,18,4)
	PLCH AA 4 A_SpawnItemEx("PhaseLichAspawner")
	Goto See
  SlowSeekers:
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 4 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PhaseLichAspawner")
	PLCH A 4 A_FaceTarget
	TNT1 A 0 A_FaceTarget
	PLCH BB 2 Bright A_CustomMissile("PLichSlowball",20,0,Random(4,-4))
	TNT1 A 0 A_FaceTarget
	PLCH BB 2 Bright A_CustomMissile("PLichSlowball",20,0,Random(4,-4))
	TNT1 A 0 A_FaceTarget
	PLCH BB 2 Bright A_CustomMissile("PLichSlowball",20,0,Random(4,-4))
	PLCH AA 4 A_SpawnItemEx("PhaseLichAspawner")
	Goto See
  Pain:
	TNT1 A 0 A_PlaySound("Saber/WallHit")
	TNT1 A 0 A_RadiusGive("PhaseMindfuck",200,RGF_PLAYERS)
	PLCH A 6 A_Pain
	PLCH A 6
	Goto See
  Death:
  XDeath:
	TNT1 A 0 A_PlaySound("Saber/WallHit",3)
	PLCH C 3 A_Scream
	TNT1 A 0 A_RadiusGive("PhaseMindfuck",300,RGF_PLAYERS)
	TNT1 AAA 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,random(20,40),0,0,0,0,128)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX",random(20,40),0,random(0,360),2,random(0,360))
	TNT1 AAAAA 0 A_CustomMissile("PurpleKaboom",random(20,40),0,random(0,360),2,random(0,360))	
	PLCH D 3 
	TNT1 A 0 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
	PLCH E 3 A_NoBlocking
	PLCH F 3 
	PLCH G -1
	Stop
  Raise:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    PLCH GFEDCA 4
	Goto See
	}
}

Actor PLichDemonTech : PhaseCubeShot
{
  Damage 3
  DamageType "CacoComet"
  Species "Cacos"
  //+SEEKERMISSILE
}

actor PLichSlowball : PhaseImpball
{
  Damagetype "CacoComet"
  states
  {
  Spawn:
    TNT1 A 0 A_SeekerMissile(5,5)
	TNT1 A 0 A_Weave(1.0,1.0,5.0,1.0)
	PFRT A 1 Bright A_SpawnItemEx("phaseballtrail2")
	TNT1 A 0 A_Weave(1.0,1.0,5.0,1.0)
	PFRT A 1 Bright A_SpawnItemEx("phaseballtrail2")
	TNT1 A 0 A_Weave(1.0,1.0,5.0,1.0)
	PFRT B 1 Bright A_SpawnItemEx("phaseballtrail2")
	TNT1 A 0 A_Weave(1.0,1.0,5.0,1.0)
	PFRT B 1 Bright A_SpawnItemEx("phaseballtrail2")
	loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
	TNT1 A 0 A_RadiusGive("phasemindfuck",96,RGF_PLAYERS)
    PFRT CDEFG 2 Bright
    Stop
  }
}

ACTOR PLichPurpleCardball : BlueCardBall
{
  Damage 10
  DamageType "CacoComet"
  Obituary "%k got hit by %o's Purple ball!"
  States
  {
  Spawn:
	C3PP ABCDEFG 1 Bright A_SpawnItemEx("PurpleCardballTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(96,128,0)
	TNT1 A 0 A_PlaySound("weapons/t2fbx1",0,0.75,0,ATTN_NORM)
	TNT1 A 0 A_RadiusGive("phasemindfuck",128,RGF_PLAYERS)
	TNT1 A 1 A_SpawnItemEx("PurpleCardballExp")
	Stop
	}
}

actor PLichDarkMatterBallmini : DarkMatterBallmini
{
  DamageType "CacoComet"
  States
  {
  Death:
	TNT1 A 0 A_SpawnItemEx("DShockWave1",0,0,15,0,0,0,0,128)
	TNT1 A 0 A_SpawnItemEx("ShadowVaporSpawnerRM",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(30,60,0)
	TNT1 A 0 A_RadiusGive("phasemindfuck",80,RGF_PLAYERS)
	TNT1 A 15 Radius_Quake(5,5,0,20,0)
	Stop
	}
}

ACTOR PhaseLichASpawner : PhaseNightmareASpawner
{
  Scale 1
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("PhaseLichA",0,0,-20,random(3,-3)*0.5,random(3,-3)*0.5,random(6,13)*0.5)
	stop
  }
}

ACTOR PhaseLichA : PhaseLichASpawner
{
  States
  {
  Spawn:
	TNT1 A 8
	PLCH A 1 a_fadeout(0.1)
	goto spawn+1
  }
}