actor phasenightmare 13337
{
  Height 48
  Radius 24
  health 700
  painchance 15
  speed 15
  mass 20 //kek
  species "fiends"
  renderstyle subtract
  +shadow
  +missilemore
  +quicktoretaliate
  +noicedeath //prevents cheesy freezer rifle from making him un-ressable
  +avoidmelee
  +nofear
  monster
  bloodcolor "51 07 94"
  scale 1.15
  maxtargetrange 1250
  MeleeDamage 12
  
  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
  
  PainChance "SoulToxic", 5
  PainChance "FatFlamer", 5
  painchance "legendaryplayer", 128
  painchance "legendaryguruplayer", 128
  
  DropItem "BossLifeEssence" 104 25
  DropItem "BossArmorBonusMax" 104 1
  DropItem "DemonAmmo" 256 60
  DropItem "PhaseSphere" 
  
  SeeSound "LegFiend/Sight"
  PainSound "LegFiend/Pain"
  DeathSound "LegFiend/Death"
  ActiveSound "LegFiend/Active"
  AttackSound "LegFiend/Melee"
  
  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:
    TNT1 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:
    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
	
	TNT1 B 1 a_spawnitemex("phasenightmareBspawner")
	TNT1 B 0 a_chase
	TNT1 B 1 a_spawnitemex("phasenightmareBspawner")
	TNT1 B 0 a_chase
	TNT1 B 1 a_spawnitemex("phasenightmareBspawner")
	TNT1 B 0 a_chase
	TNT1 B 1 a_spawnitemex("phasenightmareBspawner")
	TNT1 B 0 a_chase
	
	TNT1 C 1 a_spawnitemex("phasenightmareCspawner")
	TNT1 C 0 a_chase
	TNT1 C 1 a_spawnitemex("phasenightmareCspawner")
	TNT1 C 0 a_chase
	TNT1 C 1 a_spawnitemex("phasenightmareCspawner")
	TNT1 C 0 a_chase
	TNT1 C 1 a_spawnitemex("phasenightmareCspawner")
	TNT1 C 0 a_chase
	
	TNT1 D 1 a_spawnitemex("phasenightmareDspawner")
	TNT1 D 0 a_chase
	TNT1 D 1 a_spawnitemex("phasenightmareDspawner")
	TNT1 D 0 a_chase
	TNT1 D 1 a_spawnitemex("phasenightmareDspawner")
	TNT1 D 0 a_chase
	TNT1 D 1 a_spawnitemex("phasenightmareDspawner")
	TNT1 D 0 a_chase
	loop
  seerage:
    PSPC A 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	PSPC A 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	
	PSPC B 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	PSPC B 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	
	PSPC C 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	PSPC C 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	
	PSPC D 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	PSPC D 1 a_chase("", "")
	PSPC A 0 thrustthing(random(0, 359), random(1, 3))
	PSPC AA 0 a_wander
	TNT1 A 0 a_takeinventory("phasenightmareragetoken", 1)
	goto see
  Melee:
    TNT1 EEEE 1 a_spawnitemex("phasenightmareEspawner")
    TNT1 E 0 A_facetarget
	PSPC EEEE 1 a_spawnitemex("phasenightmareEspawner")
    PSPC E 0 A_FaceTarget
	PSPC FFF 1 a_spawnitemex("phasenightmareFspawner")
	PSPC F 0 A_MeleeAttack
	TNT1 A 0 a_radiusgive("phasemindfuck", 96, RGF_PLAYERS)
	PSPC FFFF 1 a_spawnitemex("phasenightmareFspawner")
	TNT1 GG 1 a_spawnitemex("phasenightmareGspawner")
	TNT1 AAAAAAAAAAAAA 0  a_wander
  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:
    PSPC A 0 a_jumpifcloser(250, "phaselunge2")
	goto see
  phaselunge2:
    TNT1 EEEE 1 a_spawnitemex("phasenightmareEspawner")
    TNT1 E 0 A_facetarget
	PSPC EEEE 1 a_spawnitemex("phasenightmareEspawner")
    TNT1 E 0 A_facetarget
	TNT1 A 0 a_playsound("LegFiend/Melee")
    TNT1 A 0 a_facetarget
    TNT1 A 0 ThrustThingZ(0,25,0,1)
	PSPC FF 1 a_spawnitemex("phasenightmareFspawner")
    TNT1 F 0 A_Recoil(-30)
	PSPC FFF 1 a_spawnitemex("phasenightmareFspawner")
	TNT1 F 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)
	PSPC 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 EEEE 1 a_spawnitemex("phasenightmareEspawner")
	TNT1 E 0 a_facetarget
	TNT1 E 0 a_wander
	TNT1 FFFF 1 a_spawnitemex("phasenightmareFspawner")
	TNT1 F 0 a_facetarget
	TNT1 F 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 GGGGGGGG 1 a_spawnitemex("phasenightmareGspawner")
	TNT1 GGGG 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 GGGGGGGG 1 a_spawnitemex("phasenightmareGspawner")
	TNT1 GGGG 0 a_wander
	goto see
   phaseattack3:
    TNT1 AAAAAAAAAAA 0 a_wander
	TNT1 EEEE 1 a_spawnitemex("phasenightmareEspawner")
	TNT1 E 0 a_facetarget
	TNT1 E 0 a_wander
	TNT1 FFFF 1 a_spawnitemex("phasenightmareFspawner")
	TNT1 F 0 a_facetarget
	TNT1 F 0 a_wander
	TNT1 A 0 a_playsound("monsters/newfireshoot")
	TNT1 A 0 a_jump(256, 0,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 GGGGGGGG 1 a_spawnitemex("phasenightmareGspawner")
	TNT1 GGGG 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
  death:
    PSPC AAAA 0 a_spawnitemex("phasenightmareball3", 0, 0, 16, random(5, -5)*0.5, random(5, -5)*0.5, random(23, 31)*0.333)
    PSPC A 0 a_settranslucent(0.333, 0)
	PSPC I 8 A_SpawnItemEx("MutantGibbedGenerator",0,0,0,0,0,0,0,128,0)
	PSPC J 8 a_scream
	PSPC K 4
	PSPC L 4 a_noblocking
	PSPC M 4
    PSPC N -1
	stop
  raise:
    TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	PSPC 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,128,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,128,0)
    Loop
  }
}

actor phasenightmareball2 : phasenightmareball
{
  damage(5)
  speed 8
  states
  {
  spawn:
    TNT1 A 0 a_seekermissile(4, 4)
    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))	
    PFRT CDEFG 2 Bright
    Stop
  }
}

actor phasenightmareball3 : phasenightmareball2 
{ 
  -nogravity 
  gravity 0.666
  states
  {
  spawn:
    TNT1 A 0
	PRFT AABB 1 bright a_spawnitemex("phaseballtrail2")
	loop
  }
}

actor phaseballtrail2 : phaseballtrail
{
  states
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    PFRT AABBAABB 1 A_FadeOut(0.1)
	Stop
    }
}

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

actor phasemindfuck : custominventory
{
  inventory.maxamount 1
  +inventory.autoactivate
  +inventory.alwayspickup
  +inventory.quiet
  +inventory.undroppable
  +notimefreeze
  states
  {
  pickup:
    TNT1 A 0 a_setblend("790FCB", 0.75, 50)
	TNT1 A 0 a_setangle(angle+random(-30, 30))
	TNT1 A 0 a_setpitch(pitch+random(-15, 15))
	stop
  }
} 

actor phasenightmareAspawner
{
  +nointeraction
  +clientsideonly
  scale 1.15
  renderstyle translucent
  alpha 0.5
  states
  {
  spawn:
    TNT1 A 0
	TNT1 A 0 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 0 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 0 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
	TNT1 A 0 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 0 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 0 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 0 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 0 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 0 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
	PSPC A 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareB : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC B 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareC : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC C 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareD : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC D 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareE : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC E 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareF : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC F 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareG : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC G 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareH : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC H 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmareQ : phasenightmareA
{
  states
  {
  spawn:
    TNT1 A 8
	PSPC Q 1 a_fadeout(0.1)
	goto spawn+1
  }
}

actor phasenightmarepain : phasenightmareAspawner
{
  alpha 1.0
  states
  {
  spawn:
    TNT1 A 0
	PSPC H 1 a_setscale(scalex+0.02, scaley+0.02)
	PSPC H 0 a_fadeout(0.025)
	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 : darkmatterballRM
{
Damage 10
Scale 0.25
-EXTREMEDEATH
}

Actor phasenightmare2 : phasenightmare
{
Species "Nobles"
DamageFactor "NobleComet", 0.0
+DontHurtSpecies
}