ACTOR PhaseMoon 23452
{
 Health 1200
 Radius 20
 Height 56
 Speed 12
 Mass 100
 PainChance 20
 PainChance "ZombieDemonTech", 0
 DamageFactor 0.7
 DamageFactor "LegendaryZombie", 0.0
 DamageFactor "LACGrenade", 0.0
 DamageFactor "GeneralTracer", 0.0
 DamageFactor "ZombieCannon", 0.0
 DamageFactor "ZombieRocket", 0.0
 DamageFactor "Hell", 0.0
 DamageFactor "EMGEx", 0.0
 Damagefactor "RedZombieDemonTech", 0
 DamageFactor "RedZDemonTechProjectile", 0.0
 Damagefactor "ZombieRocket", 0
 DamageFactor "RST", 0.0
 DamageFactor "SoulToxic", 0.0
 DamageFactor "BeheComet", 0.0
 DamageFactor "FatFlamer", 0.0
 Damagefactor "HTZombie", 0.0
 DamageFactor "MiniRocket", 0.0
 DamageFactor "ZombieCannon", 0.0
 Damagefactor "ZExplosiveBullets", 0.0
 Damagefactor "ZGrenade", 0.0
 BloodColor "cf 00 b0"
 Species "EliteZombies"
 DropItem "NewShell" 256
 DropItem "NewShellBox", 128
 DropItem "HandGrenadeAmmo" 230 2
 DropItem "MineAmmo" 240 2
 DropItem "MineAmmo" 120 2
 DropItem "Backpack" 200 1
 DropItem "Armorplate" 240 1
 DropItem "ArmorBooster" 240 3
 DropItem "ArmorCharge" 240 5
 DropItem "PortableMedCellPack" 100 1
 DropItem "PortableMedCell", 200 1
 DropItem "Portablemedkit" 240 1
 DropItem "StimKit" 240 3
 DropItem "HealthFlask" 240 5
 DropItem "PhaseArmor" 120 1
 DropItem "PhaseSphere" 100 1
 DropItem "MarineSquadBeacon" 64 1
 DropItem "SphereOfPower" 200
 MONSTER 
 +BOSS
 +BOSSDEATH
 +FLOORCLIP
 +MISSILEMORE
 +MISSILEEVENMORE
 +QUICKTORETALIATE
 +NOICEDEATH
 +NODROPOFF
 +DONTGIB
 +NOTARGET
 +NORADIUSDMG
 +FORCERADIUSDMG
 +NOFEAR
 AttackSound ""
 SeeSound "PhaseMoon/sight"
 PainSound "PhaseMoon/pain"
 DeathSound "PhaseMoon/death"
 ActiveSound "PhaseMoon/active"
 Obituary "%o was annihilated by Phase Moon's chaotic judgment."
 Tag "$NEPhMoon"
 var int user_attack;
 var int user_lowlag;
 var int user_fading;
 States
 {
  Spawn:
	PHMO A 0 NoDelay ACS_NamedExecuteAlways("ModifyMonster",0,1)
	Goto Idle
  Idle:
    PHMO A 10 A_Look
	PHMO Z 10 A_Look
    Loop
  See:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	PHMO ABCD 2 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
    PHMO AABB 3 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    PHMO CCDD 3 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
    Loop
  Chase:
	PHMO AA 1 A_FastChase
	PHMO A 0 A_JumpIfCloser(130,"Dodge")
	PHMO AA 1 A_Chase
	PHMO A 0 A_JumpIfCloser(130,"Dodge")
	PHMO BB 1 A_Chase
	PHMO A 0 A_JumpIfCloser(130,"Dodge")
	PHMO BB 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO A 0 A_JumpIfCloser(150,"Dodge")
	PHMO CC 1 A_Chase
	PHMO A 0 A_JumpIfCloser(150,"Dodge")
	PHMO CC 1 A_FastChase
	PHMO A 0 A_JumpIfCloser(130,"Dodge")
	PHMO DD 1 A_FastChase
	PHMO A 0 A_JumpIfCloser(130,"Dodge")
	PHMO DD 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO A 0 A_Jump(64,"Dodge")
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
	Loop
  Strafing:
	PHMO A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	PHMO AABB 3 A_GiveInventory("CommandoStrafing",1)
	PHMO C 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
    PHMO CCDD 3 A_GiveInventory("CommandoStrafing",1)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
	Goto See	
  SeeNoDodge:
	PHMO AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	PHMO CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
	Goto Chase
  Dodge:
	PHMO A 1 A_FaceTarget
	PHMO E 0 ThrustThingZ(0, 20, 0, 0)
	PHMO A 0 A_Jump(256, "DodgeRight", "DodgeLeft")
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
  DodgeLeft:
	PHMO E 0 ThrustThing(angle*256/360+192, 25, 0, 0)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
	Goto SeeNoDodge
  DodgeRight:
	PHMO E 0 ThrustThing(angle*256/360+64, 25, 0, 0)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(20,"Teleport")
	Goto SeeNoDodge
  Missile:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_attack",1)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Sart",CHAN_WEAPON,1.0,0)
	PHMO EEEEEEEEEE 1 A_FaceTarget(45)
	TNT1 A 0 A_Jump(98,"Refire2")
  Refire:
	TNT1 A 0 A_SetUserVar("user_attack",1)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",CHAN_WEAPON,1.0,1)
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	PHMO E 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 A 0 A_FaceTarget
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	PHMO F 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 A 0 A_FaceTarget
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	PHMO F 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 A 0 A_Jump(30,"Pause","Pause","Refire2")
	TNT1 A 0 A_SpidRefire
	Loop
  Refire2:
	TNT1 A 0 A_SetUserVar("user_attack",1)
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",CHAN_WEAPON,1.0,1)
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	TNT1 A 0 A_GiveInventory("CFZombieStrafing",1)
	PHMO E 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	TNT1 A 0 A_GiveInventory("CFZombieStrafing",1)
	PHMO E 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	TNT1 A 0 A_GiveInventory("CFZombieStrafing",1)
	PHMO F 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 AAAAA 0 Bright A_CustomMissile("MinigunnerExplosiveTracer",random(28,34),0,Random(8,-8),0)
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",12,-6,36,random(2,6),0,random(1,3),random(-80,-90),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	TNT1 A 0 A_PlaySound("weapons/12gaugefire",6)
	TNT1 A 0 A_GiveInventory("CFZombieStrafing",1)
	PHMO F 4 Bright A_CustomBulletAttack(22.5,0,5,Random(1,5)*3)
	TNT1 A 0 A_Jump(30,"Pause","Pause","Refire")
	TNT1 A 0 A_SpidRefire
	Loop
  MoonBlast:
	TNT1 A 0 A_SetUserVar("user_attack",0)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Down",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetTranslucent(1)
  MoonBlastLoop:
	PHMO E 4 A_GiveInventory("CFZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("CFZombieStrafing",1)
	TNT1 A 0 Radius_Quake(8,2,0,1,0)
	PHMO F 4 Bright A_CustomMissile("PhaseMoonBlast",random(28,34),0,random(-8,8),0)
	TNT1 A 0 A_PlaySound("TechRipper/altfire",6)
	TNT1 A 0 A_Jump(30,"Refire2")
	TNT1 A 0 A_SpidRefire
	Loop
  MissileEnd:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_attack",0)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Down",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(81,"Teleport")
	Goto See
  Pause:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_attack",0)
	TNT1 A 0 A_PlaySound("HeavyChaingun/Down",CHAN_WEAPON,1.0,0)
	PHMO A 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInTargetLOS("Dodge",360,JLOSF_DEADNOJUMP,1000)
	SGCH A 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInTargetLOS("Dodge",360,JLOSF_DEADNOJUMP,1000)
	PHMO A 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInTargetLOS("Dodge",360,JLOSF_DEADNOJUMP,1000)
	PHMO A 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInTargetLOS("Dodge",360,JLOSF_DEADNOJUMP,1000)
	PHMO A 3 A_FaceTarget
	TNT1 A 0 A_JumpIfInTargetLOS("Dodge",360,JLOSF_DEADNOJUMP,1000)
	TNT1 A 0 A_Jump(46,"Phase")
	TNT1 A 0 A_Jump(81,"Teleport")
	Goto See
  Phase:
    TNT1 A 0 A_PlaySound("phaseimp/teleport")
    PHMO D 2 A_FaceTarget
    PHMO D 1 A_SetTranslucent(0.75)
    PHMO D 1 A_SetTranslucent(0.55)
    PHMO D 1 A_SetTranslucent(0.35)
	PHMO D 1 A_SetTranslucent(0.15)
	PHMO D 1 A_SetTranslucent(0)
    Goto Phased
  Phased:
    PHMO AABBCCDDAABBCCDDAABBCCDDAABBCCDD 1 A_ExtChase(0,0)
    PHMO AABBCCDDAABBCCDD 1 A_Chase
	TNT1 A 0 A_Jump(12,"UnPhase")
    Goto Phased+32
  UnPhase:
    TNT1 A 0 A_PlaySound("phaseimp/teleport")
	PHMO D 1 A_SetTranslucent(0)
    PHMO D 1 A_SetTranslucent(0.15)
    PHMO D 1 A_SetTranslucent(0.35)
    PHMO D 1 A_SetTranslucent(0.55)
    PHMO D 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SetTranslucent(1)
    PHMO D 2 A_FaceTarget		
    Goto See
  Teleport:
	PHMO A 1 ACS_NamedExecuteWithResult("ttk_fader",10,3)
	PHMO A 0 A_Settics(user_fading)
	PHMO A 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	PHMO A 1 A_PlayWeaponSound("boss/teleport")
	PHMO A 0 A_Settics(user_fading)
	PHMO A 1 
	Goto See
  Pain:
	TNT1 A 0 A_Jump(98,"PainMissile")
	TNT1 A 0 A_Jump(30,"Teleport")
	TNT1 A 0 A_SetTranslucent(1)
    PHMO G 6 A_Pain
    Goto See
  PainMissile:
	TNT1 A 0 A_SetTranslucent(1)
    PHMO G 6 A_Pain
    Goto Missile
  Death:
	TNT1 A 0 A_PlaySound("HeavyChaingun/Down",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SetTranslucent(1)
    PHMO H 5
    PHMO I 5 A_Scream 
    PHMO J 5 A_Fall 
    PHMO K 5 A_SpawnItem("BodyCrash",0,0,0,0)
    PHMO LMNO 5
	PHMO P -1
    Stop
  Raise:
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    PHMO PONMLKJIH 5
    Goto See
  }
}

Actor PhaseMoonBlast
{
  PROJECTILE
  Radius 8
  Height 8
  Speed 28
  Damage 50
  Deathsound "PlasmaRazorAlt/explosion"
  +FORCERADIUSDMG
  +FORCEXYBILLBOARD
  +BLOODSPLATTER
  +SKYEXPLODE
  +DONTSPLASH
  DamageType "LegendaryZombie"
  Scale 0.2
  Reactiontime 66
  states
  {
  Spawn:
    PBLL A 1 Bright A_Countdown
    PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	TNT1 A 0 Bright A_Jump(128,"Spawn2")
	PBLL A 1 Bright A_Recoil(-2)
  Normal:
	TNT1 A 0 Bright A_Jump(128,"NormalFX")
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	Loop
  NormalFX:
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	Goto Normal
  Spawn2:
	TNT1 A 0 Bright A_Jump(128,"Spawn2FX")
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail2",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	PBLL A 1 Bright A_Recoil(-2)
	Loop
  Spawn2FX:
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	PBLL A 1 Bright A_SpawnItemEx("PhaseSentryDemonTechTrail",Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-1,1),Random(-20,20),128)
	Goto Spawn2
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("PurpleBFGShockwave", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 A 0 Bright A_SpawnItemEx("PhaseSentryDemonTechEx",0,0,0,0,0,0,0,128,0)
	TNT1 AAA 0 A_CustomMissile("PurpleKaboom13", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 Radius_Quake(15,7,0,12,0)
    TNT1 A 0 A_RadiusThrust(256,96)
    TNT1 A 0 A_Explode(100,128)
	TNT1 A 0 A_SetTranslucent(0.75,1)
    TNT1 A 0 Bright
	PBLL B 6 Bright A_Scream
	PBLL C 5 Bright
	PBLL D 4 Bright
	PBLL E 3 Bright
	PBLL F 2 Bright
	PBLL F 1 Bright
    Stop
  }
}