Actor PhaseNightmare 13337
{
Monster
Health 700
Height 48
Radius 24
Mass 20
Speed 15
Bloodcolor "51 07 94"
Scale 1.15
Renderstyle subtract
PainChance "SoulToxic", 5
PainChance "FatFlamer", 5
Painchance "legendaryplayer", 128
Painchance "legendaryguruplayer", 128
Painchance 15
Maxtargetrange 1250
MeleeDamage 12
+SHADOW
+NOFEAR
+NOICEDEATH
+AVOIDMELEE
+MISSILEMORE
+QUICKTORETALIATE
+THRUSPECIES
Species "Fiends"
Damagefactor 0.75
DamageFactor "PlayerDTRG", 0.8
Damagefactor "legendary", 0.25
Damagefactor "NobleComet", 0.0
Damagefactor "legendaryplayer", 0.25
Damagefactor "legendaryguru", 0.25
Damagefactor "legendaryguruplayer", 0.25
Damagefactor "ice", 0.4
Damagefactor "freezerburn", 0.4
DamageFactor "FiendFire", 0.0
DamageFactor "DTFiendEx", 0.0
DropItem "BossLifeEssence", 104
DropItem "BossArmorBonusMax", 104
DropItem "DemonAmmo", 196, 60
DropItem "PhaseSphere", 64
SeeSound "LegFiend/Sight"
ActiveSound "LegFiend/Active"
AttackSound "LegFiend/Melee"
PainSound "LegFiend/Pain"
DeathSound "LegFiend/Death"
Obituary "%o became easy prey for a phase nightmare."
HitObituary "%o is too salty to the refined tastes of the Phase Nightmare."
Tag "\ctPhase \cmNightmare"
States
	{
	Spawn:
		NMDE A 0
		TNT1 A 0 A_TakeInventory("PhaseIdleToken",11)
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareASpawner")
		TNT1 A 0 A_Look
		TNT1 A 0 A_GiveInventory("PhaseIdleToken",1)
		TNT1 A 0 A_JumpIfInventory("PhaseIdleToken",11,"Spawn2")
		Goto Spawn+2
	Spawn2:
		TNT1 A 0 A_TakeInventory("PhaseIdletoken",11)
		TNT1 A 1 A_spawnitemex("PhaseNightmareQspawner")
		TNT1 A 0 A_Look
		TNT1 A 0 A_GiveInventory("PhaseIdletoken",1)
		TNT1 A 0 A_JumpIfInventory("PhaseIdletoken",11,"Spawn2")
		Goto Spawn+1
	See:
		//A
		TNT1 A 0 A_JumpIfInventory("PhaseNightmareRageToken",1,"SeeRage")
		TNT1 A 1 A_SpawnItemEx("PhasenightmareAspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareAspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareAspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareAspawner")
		TNT1 A 0 A_Chase
		//B
		TNT1 A 1 A_SpawnItemEx("PhasenightmareBspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareBspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareBspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhasenightmareBspawner")
		TNT1 A 0 A_Chase
		//C
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareCSpawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareCSpawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareCSpawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareCSpawner")
		TNT1 A 0 A_Chase
		//D
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareDspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareDspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareDspawner")
		TNT1 A 0 A_Chase
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareDspawner")
		TNT1 A 0 A_Chase
		Loop
	SeeRage:
		NMDE A 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE A 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE B 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE B 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE C 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE C 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE D 1 A_Chase("","")
		TNT1 A 0 Thrustthing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		NMDE D 1 A_Chase("","")
		TNT1 A 0 ThrustThing(random(0,359),random(1,3))
		TNT1 AA 0 A_Wander
		TNT1 A 0 A_TakeInventory("PhaseNightmareRageToken",1)
		Goto See
	Melee:
		TNT1 EEEE 1 a_spawnitemex("PhaseNightmareESpawner")
		TNT1 A 0 A_facetarget
		NMDE EEEE 1 a_spawnitemex("PhaseNightmareESpawner")
		TNT1 A 0 A_FaceTarget
		NMDE FFF 1 a_spawnitemex("PhaseNightmareFSpawner")
		TNT1 A 0 A_MeleeAttack
		TNT1 A 0 a_radiusgive("PhaseMindFuck",96,RGF_PLAYERS)
		NMDE FFFF 1 a_spawnitemex("PhaseNightmareFSpawner")
		TNT1 GG 1 a_spawnitemex("PhaseNightmareGSpawner")
		TNT1 AAAAAAAAAAAAA 0 A_Wander
		Goto Missile
	Missile:
		TNT1 A 0 a_jumpifcloser(250,"PhaseLunge")
		TNT1 A 0 a_jumpifcloser(500,"MissileMedium")
		TNT1 A 0 a_jumpifcloser(750,"PhaseAttack")
		TNT1 A 0 a_jumpifcloser(1100,"PhaseAttack2")
		Goto PhaseLunge
	MissileMedium:
		TNT1 A 0 A_Jump(96,"PhaseLunge")
		Goto PhaseAttack
	PhaseLunge:
		TNT1 A 0 A_JumpIfCloser(250,"PhaseLunge2")
		Goto See
	Phaselunge2:
		TNT1 EEEE 1 a_spawnitemex("phasenightmareEspawner")
		TNT1 A 0 A_facetarget
		NMDE EEEE 1 a_spawnitemex("phasenightmareEspawner")
		TNT1 A 0 A_facetarget
		TNT1 A 0 a_playsound("LegFiend/Melee")
		TNT1 A 0 a_facetarget
		TNT1 A 0 ThrustThingZ(0,25,0,1)
		NMDE FF 1 a_spawnitemex("phasenightmareFspawner")
		TNT1 A 0 A_Recoil(-30)
		NMDE FFF 1 a_spawnitemex("phasenightmareFspawner")
		TNT1 A 0 A_CustomMissile("PhasePinkyLunge",18,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_GiveInventory("Health",10)
		TNT1 A 0 a_radiusgive("phasemindfuck", 96, RGF_PLAYERS)
		NMDE FFFF 1 a_spawnitemex("phasenightmareFspawner")
		TNT1 GG 1 a_spawnitemex("phasenightmareGspawner")
		TNT1 AAAAAAAAAAAAA 0 A_Wander
		Goto See
	PhaseAttack:
		TNT1 AAAAAAAAAAA 0 A_Wander
		TNT1 AAAA 1 a_spawnitemex("phasenightmareEspawner")
		TNT1 A 0 A_Facetarget
		TNT1 A 0 A_Wander
		TNT1 AAAA 1 A_spawnitemex("phasenightmareFspawner")
		TNT1 A 0 A_Facetarget
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Playsound("monsters/newfireshoot")
		TNT1 A 0 A_Jump(96,"PhaseAttack2")
		TNT1 A 0 A_Jump(55,"PhaseAttack3")
		TNT1 A 0 A_Jump(256,0,1,2,3,4)
		TNT1 AAAAA 0 A_CustomMissile("PhaseNightmareBall",32,0,random(-24,24)*0.25,CMF_OFFSETPITCH,random(-24,24)*0.25)
		TNT1 AAAAAAAA 1 A_SpawnItemEx("phasenightmareGspawner")
		TNT1 AAAA 0 A_Wander
		Goto See
	PhaseAttack2:
		TNT1 A 0 A_CustomMissile("PhaseNightmareBall2",32,0,-10)
		TNT1 A 0 A_CustomMissile("PhaseNightmareBall2",32,0,10)
		TNT1 A 0 A_CustomMissile("PhaseNightmareBall2",32,0,0)
		TNT1 AAAAAAAA 1 A_SpawnItemEx("phasenightmareGspawner")
		TNT1 AAAA 0 A_Wander
		Goto See
	Phaseattack3:
		TNT1 AAAAAAAAAAA 0 A_Wander
		TNT1 AAAA 1 A_SpawnItemex("phasenightmareEspawner")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_Wander
		TNT1 AAAA 1 A_SpawnItemex("phasenightmareFspawner")
		TNT1 A 0 A_Facetarget
		TNT1 A 0 A_Wander
		TNT1 A 0 A_Playsound("monsters/newfireshoot")
		TNT1 A 0 A_Jump(256,1,2,3,4)
		TNT1 AAAAA 0 A_CustomMissile("DarkmatterBallMini",32,0,random(-24,24)*0.25,CMF_OFFSETPITCH,random(-24,24)*0.25)
		TNT1 AAAAAAAA 1 A_Spawnitemex("PhaseNightmareGspawner")
		TNT1 AAAA 0 A_Wander
		Goto See
	Pain:
		TNT1 A 0 A_TakeInventory("PhaseNightmareLungeToken",4)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_GiveInventory("PhaseNightmareRageToken",random(2,4))
		TNT1 A 10 A_SpawnItemEx("PhaseNightmarePain")
		Goto Seerage
	Pain.Legendary:
	Pain.LegendaryGuru:
		TNT1 A 0 A_TakeInventory("PhaseNightmareLungeToken",4)
		TNT1 A 0 A_Pain
		TNT1 A 0 A_GiveInventory("PhaseNightmareRageToken",random(3,5))
		TNT1 A 1 A_SpawnItemEx("PhaseNightmarePain")
		Goto SeeRage
	XDeath:
	Death:
		TNT1 AAAA 0 A_SpawnItemEx("PhaseNightmareBall3",0,0,16,random(-5,5)*0.5,random(-5,5)*0.5,random(23,31)*0.333)
		TNT1 A 0 A_Settranslucent(0.333,0)
		NMDE I 8 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		NMDE J 8 A_Scream
		NMDE K 4
		NMDE L 4 A_Noblocking
		NMDE M 4
		NMDE N 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		NMDE MLKJJII 4
		Goto see
	}
}

Actor PhaseNightmareBall : PhaseImpBall
{
Damagetype "FiendFire"
States
	{
	Spawn:
		TNT1 A 0 A_SeekerMissile(4,2)
		TNT1 A 0 A_Weave(random(-2,2),random(-2,2),random(-2,2),random(-2,2))
		DIMB A 1 Bright A_SpawnItemEx("PhaseBallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_Weave(random(-2,2),random(-2,2),random(-2,2),random(-2,2))
		DIMB B 1 Bright A_SpawnItemEx("PhaseBallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Loop
	}
}

Actor PhaseNightmareBall2 : PhaseNightmareBall
{
Speed 8
Damage(5)
States
	{
	Spawn:
		TNT1 A 0 Bright A_SeekerMissile(4,4)
		TNT1 A 0 Bright A_Weave(1.0,1.0,5.0,1.0)
		PFRT A 1 Bright A_SpawnItemEx("PhaseBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Weave(1.0,1.0,5.0,1.0)
		PFRT A 1 Bright A_SpawnItemEx("PhaseBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Weave(1.0,1.0,5.0,1.0)
		PFRT B 1 Bright A_SpawnItemEx("PhaseBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Weave(1.0,1.0,5.0,1.0)
		PFRT B 1 Bright A_SpawnItemEx("PhaseBallTrail2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		PFRT CDEFG 2 Bright
		Stop
	}
}

Actor PhaseNightmareBall3 : PhaseNightmareBall2 
{ 
Gravity 0.666
-nogravity 
States
	{
	Spawn:
		TNT1 A 0 Bright
		PRFT AABB 1 Bright A_SpawnItemEx("PhaseBallTrail2")
		Loop
	}
}

Actor PhaseBallTrail2 : PhaseBallTrail
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		PFRT AABBAABB 1 A_FadeOut(0.1,1)
		Stop
	}
}

Actor PhasePinkyLunge
{
PROJECTILE
Height 16
Radius 16
Speed 30
Damage (random(36,64))
Species "Fiends"
SeeSound ""  
DeathSound ""
States
	{
	Spawn:
		TNT1 A 4
		Stop
	}
}

Actor PhaseMindFuck : custominventory
{
-COUNTITEM
+NOTIMEFREEZE
+INVENTORY.QUIET
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.UNDROPPABLE
inventory.maxamount 1
States
	{
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_SetBlend("790FCB",0.75,50)
		TNT1 A 0 A_SetAngle(angle+random(-30,30))
		TNT1 A 1 A_SetPitch(pitch+random(-15,15))
		Stop
	}
} 

Actor PhaseNightmareASpawner
{
Scale 1.15
Renderstyle translucent
Alpha 0.5
+NOINTERACTION
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareA",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareBSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareB",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareCSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareC",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareDspawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareD",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareESpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("PhaseNightmareE",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareFSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("phasenightmareF", 0, 0, -20, random(3, -3)*0.5, random(3, -3)*0.5, random(6, 13)*0.5)
		Stop
	}
}

Actor PhaseNightmareGSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("phasenightmareG", 0, 0, -20, random(3, -3)*0.5, random(3, -3)*0.5, random(6, 13)*0.5)
		Stop
	}
}

Actor PhaseNightmareHSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("phasenightmareH", 0, 0, -20, random(3, -3)*0.5, random(3, -3)*0.5, random(6, 13)*0.5)
		Stop
	}
}

Actor PhaseNightmareQSpawner : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("phasenightmareQ",0,0,-20,random(-3,3)*0.5,random(-3,3)*0.5,random(6,13)*0.5)
		Stop
	}
}

Actor PhaseNightmareA : PhaseNightmareASpawner
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE A 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareB : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE B 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareC : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE C 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareD : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE D 1 A_FadeOut(0.1,1)
		Goto Spawn+1
  }
}

Actor PhaseNightmareE : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE E 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareF : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE F 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareG : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE G 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareH : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE H 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmareQ : PhaseNightmareA
{
States
	{
	Spawn:
		TNT1 A 8
		NMDE Q 1 A_FadeOut(0.1,1)
		Goto Spawn+1
	}
}

Actor PhaseNightmarePain : PhaseNightmareASpawner
{
Alpha 1.0
States
	{
	Spawn:
		TNT1 A 0
		NMDE H 1 A_SetScale(ScaleX+0.02,ScaleY+0.02)
		TNT1 A 0 A_FadeOut(0.025,1)
		Goto Spawn+1
	}
}
	
Actor PhaseIdleToken : inventory { inventory.maxamount 11 } 
Actor PhaseNightmareRageToken : inventory { inventory.maxamount 10 }
Actor PhaseNightmareLungeToken : inventory { inventory.maxamount 4 }
Actor PhaseDecoylife : inventory { inventory.maxamount 5 }
Actor DecoySpawned : inventory { inventory.maxamount 3 }

Actor DarkMatterBallMini : DarkMatterBall
{
Scale 0.25
Damage 10
-EXTREMEDEATH
}

Actor PhaseNightmare2 : PhaseNightmare
{
+DontHurtSpecies
+DONTHARMSPECIES
Species "Nobles"
DamageFactor "NobleComet", 0.0
}