ACTOR TrueLegendaryNightmare : LegendaryNightmare
{
//Creator: Naturalx
//Origin: Naturalx CF Addon
//Sprite: TNIT
//Title: "True Legendary Nightmare"
Health 1500
PainChance 50
MeleeRange 84
MeleeDamage 60
Speed 32
DropItem "LegendaryBossLifeEssence" 256
DropItem "LegendaryBossArmorBonusMax" 256
DropItem "LegTimeFreezeSphere", 35
DropItem "LegendaryInvisibilitySphere", 45
DropItem "LegendaryRune", 25, 1
DropItem "LegendaryArmor", 90, 1
DropItem "LegDemonicEnergy", 256
DropItem "TrueLegUpgradeSpawnerWeak" 50 1
Obituary "%o was haunted by a True Legendary Nightmare."
Tag "\c[l5]True\c- \c[z3]Legendary Nightmare\c-"
States
{
  Spawn:
	TNT1 A 0
	TNIT A 1 Bright A_PlaySound("boss/teleport",CHAN_AUTO,1.0,0)
	TNIT AAAAA 2 Bright A_SetTranslucent(alpha-0.2,1)
  StealthSpawnLoop:
	TNT1 A 10 A_LookEx(0,0,0,0,180,"StealthAttack")
	Loop
  StealthAttack:
	TNT1 A 1 Bright A_UnSetShootable
	TNT1 A 2 A_PlaySound("LNightmare/sight",CHAN_AUTO,1.0,0,ATTN_NONE)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 2 A_PlaySound("boss/teleport",CHAN_AUTO,1.0,0)
	TNT1 A 0 A_FaceTarget
	TNIT AAAAA 2 A_SetTranslucent(alpha+0.2,1)
	TNIT A 1 Bright A_SetShootable
	Goto Missile
  See:
	TNT1 A 0 A_SetTranslucent(1.0,1)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,9016)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Chase
	TNIT A 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT A 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT B 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT B 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Chase
	TNIT C 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT C 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT D 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Chase
	TNIT D 1 Bright A_SpawnItemEx("TLNightmareGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Jump(15,"Teleport")
	Loop
  Teleport:
	TNIT A 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNIT AAAAA 2 A_SetTranslucent(alpha-0.2,1)
	TNIT A 2 
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_Wander
	TNT1 A 0 A_FaceTarget
	TNIT A 2 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNIT AAAAA 2 A_SetTranslucent(alpha+0.2,1)
	TNIT A 1 Bright A_SetShootable
	Goto See
  Missile:
	TNT1 A 0
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_UnsetInvulnerable
	TNT1 A 0 A_Jump(96,"WarpToTarget")
	TNT1 A 0 A_SetTranslucent(0.2)
	TNT1 A 0 A_Jump(48,"Balls")
	TNT1 A 0 A_JumpIfCloser(250,"Lunge")
	GoTo Normal
  WarpToTarget:
	TNIT E 1 Bright A_UnSetShootable
	TNT1 A 0 A_ChangeFlag("THRUACTORS",1)
	TNT1 A 0 A_PlaySound("boss/teleport",CHAN_AUTO,1.0,0)
	TNT1 AAAA 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNIT EEEEE 2 A_SetTranslucent(alpha-0.2,1)
	TNIT E 2
	//TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_NOCHECKPOSITION)
	TNT1 A 0 A_FaceTarget
	TNIT E 2 A_PlaySound("boss/teleport",CHAN_AUTO,1.0,0)
	TNT1 AAAA 0 A_SpawnItem("TLLurkerSmokeSpawner",0,0,0,0)
	TNIT EEEEE 2 A_SetTranslucent(alpha+0.2,1)
	TNIT E 1 Bright A_SetShootable
	TNT1 A 0 A_ChangeFlag("THRUACTORS",0)
	TNT1 A 0 A_Jump(192,2)
	TNT1 A 0 A_Jump(48,"Balls")
	TNT1 A 0 A_JumpIfCloser(250,"Lunge")
	Goto Normal
  Normal:
	TNIT EF 6 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("imp/attack")
	TNIT GGGG 4 Bright A_CustomMissile("TruePhaseImpBall",32,0,0)
	TNIT FE 2 Bright A_FaceTarget
	Goto See
  Balls:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("LNightmare/sight",CHAN_AUTO,1.0,0,0.5)
	TNIT E 2 Bright A_FaceTarget
	TNT1 A 0 A_SetInvulnerable
	TNIT EEEEEEEEE 2 Bright A_SpawnItem("LLurkerFlameSpawner",0,0,0,0)
	TNIT E 2 Bright A_FaceTarget
	TNIT FFFFFFFFF 2 Bright A_SpawnItem("LLurkerFlameSpawner",0,0,0,0)
	TNIT F 2 Bright A_FaceTarget
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_playSound("legimp/fiyabetch")
	TNIT G 8 Bright A_CustomMissile("TrueImpCommotionBall",32,0,0)
	GoTo See
  Lunge:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("LNightmare/Attack",2,1.0,0,0.5)
	TNIT EEEEEEEFFFFFFF 1 Bright A_FaceTarget
	TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",1)
	TNT1 A 0 ThrustThingZ(0,20,0,1)
	TNIT F 2 Bright A_Recoil(-26)
	TNIT F 3 Bright A_CustomMissile("LFLunge",18,0,0,CMF_AIMDIRECTION)
	TNIT G 6 Bright
	TNIT G 2 Bright A_ScaleVelocity(0.2)
	TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",0)
	TNIT G 1 Bright A_ScaleVelocity(0)
	Goto See
  Melee:
	TNIT EEFF 1 Bright A_FaceTarget
	TNIT G 2 Bright A_MeleeAttack
	TNIT E 2 Bright A_FaceTarget
	Goto See
  Pain:
	TNT1 A 0
	TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",0)
	TNT1 A 0 A_Jump(35,"Teleport")
	TNT1 A 0 A_Jump(88,"PainMissile")
	TNIT H 2 Bright
	TNIT H 2 Bright A_Pain
	Goto See
  PainMissile:
	TNIT H 2 Bright
	TNIT H 2 Bright A_Pain
	Goto Missile
  Death:
	TNT1 A 0
	TNT1 A 0 A_ChangeFlag("SLIDESONWALLS",0)
	TNT1 A 0 A_SetTranslucent(0.2)
	TNIT IIIIIIII 1 A_SetScale(ScaleX+0.01)
	TNT1 A 0 A_Scream
	TNIT JJJJJJJJKKKKKKKKLLLLLLLLMMMMMMMMNNNNNNNNOOOOOOOO 1 A_SetScale(ScaleX+0.01)
	TNT1 A 1 A_NoBlocking
	Stop
	}
}

ACTOR TLLurkerSmokeSpawner : LHellionSmokeSpawner
{
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"Toaster")
		TNT1 AAA 0 A_SpawnItemEx("TLLurkerSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop		
	}
}

ACTOR TLLurkerSmoke : AHellionSmoke
{
Alpha 0.2
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BMKE ABCDEFGHIJKL 2 Bright A_FadeOut(0.02,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor TLNightmareGhost : LNightmareGhost
{
States
	{
	Spawn:
		TNT1 A 0 
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		Goto Fade
	Fade:
		TNIT A 2 A_FadeOut(0.1,1)
		Loop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}