ACTOR TrueLegendaryAdmiral : LegendaryAdmiral
{
//Creator: Dr. Sticky
//Origin: Nexus Infinity
//Sprite: TPO0
//Title: "True Legendary Admiral"
Obituary "%o was assassinated by a True Legendary Former Admiral."
Health 3500
Speed 21
DropItem "PortableMedkit" 200
DropItem "LegendaryArmor" 87 1
DropItem "LegendaryRune" 70 1
DropItem "LegAmmoSphere" 90 1
DropItem "ArmorPlate" 200
DropItem "HandGrenadeAmmo" 225 1
DropItem "MineAmmo" 125 1
DropItem "AmmoPack" 125
DropItem "BulletMag" 256 10
DropItem "BulletBox" 128
DropItem "LegendaryBFG10K" 180 1
DropItem "TrueLegendaryRune" 5 1
DropItem "TrueLegAmmoSphere" 128 1
DropItem "TrueLegendaryArmor" 120 1
DropItem "TrueLegUpgradeSpawnerWeak" 150 1
DropItem "LegendaryFusionCell" 55 1
DropItem "Beacon" 128 1
DamageFactor 0.5
DamageFactor "PlayerNemesisPlasma", 0.3
DamageFactor "LegMind", 0.0
DamageFactor "VileFires", 0.0
DamageFactor "Baby15K", 0.0
DamageFactor "SoulToxic", 0.0
DamageFactor "BombBreath", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "Hell", 0.0
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "LACGrenade", 0.0
DamageFactor "UltimateLegendary", 0.0
DamageFactor "TrueLegendaryDamage", 0.0
DamageFactor "TrueLegendaryPlayer", 0.0
Scale 1.25
Species "UltimateLegendary"
Tag "\c[l5]True\c- \c[z3]Legendary Admiral\c-"
var int user_missile;
States
{
  Spawn:
    TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TPO0 A 10 Bright A_Look
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Loop
  See:
    TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,2142)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_StopSound(7)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TPO0 AABB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep")
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TPO0 CCDD 3 Bright A_Chase
	TNT1 A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep")
	Loop
  Rush:
	TPO0 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("TrueLegAdmiralGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TPO0 D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Loop
  Strafing:
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TPO0 AA 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TPO0 BB 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TPO0 CC 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TPO0 DD 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	Goto See
  Missile:
	TNT1 A 0 A_Jump(150,"Rockets","HomingRockets","LegCannon","CannonBall","BlueStar")
	TNT1 A 0 A_Jump(70,"Beacon")
	TNT1 A 0 A_Jump(200,"Chaingun")
    TNT1 A 0 A_Playsound("FormerAdmiral/Attack")
  Chaingun:
	TPO0 HKHKH 2 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TNT1 A 0 A_JumpIfTargetinLOS("ContinueShooting")
	TPO0 H 2 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TNT1 A 0 A_JumpIfTargetinLOS("ContinueShooting")
	TPO0 K 2 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TNT1 A 0 A_JumpIfTargetinLOS("ContinueShooting")
	TNT1 A 0 A_MonsterRefire(200,"See")
	Goto Chaingun+7
  ContinueShooting:
	TNT1 A 0 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TNT1 A 0 A_PlaySound("sentient/fire")
	TPO0 F 3 Bright A_CustomMissile("TrueLegendaryExplosiveTracer",Random(30,34),0,Random(5,-5),0)
	TNT1 A 0 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TNT1 A 0 A_PlaySound("sentient/fire")
	TPO0 E 3 Bright A_CustomMissile("TrueLegendaryExplosiveTracer",Random(30,34),0,Random(5,-5),0)
	TNT1 A 0 A_Jump(24,"Missile","Pause")
	TNT1 A 0 A_MonsterRefire(150,"See")
	Loop
  Pause:
	TPO0 HKHKH 3 Bright A_GiveInventory("LegZombieStrafing2",1)
	Goto See
  Rockets:
	TNT1 A 0 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryRocket",40,16,0,0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryRocket",40,16,random(-5,5),0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryRocket",40,16,0,0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryRocket",40,16,random(-5,5),0)
	TPO0 H 2 A_CPosRefire
	Goto See
  HomingRockets:
    TNT1 A 0 A_Playsound("FormerAdmiral/Attack")
	TPO0 HJ 4 Bright A_FaceTarget
	TNT1 A 0 A_GiveInventory("TrueLegendaryAdmiralStrafing",1)
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryHomingRocket",40,16,0,0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryHomingRocket",40,16,0,0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryHomingRocket",40,16,random(6,-6),0)
	TPO0 HJ 4 Bright A_FaceTarget
	TPO0 I 2 Bright A_CustomMissile("TrueLegendaryHomingRocket",40,16,random(6,-6),0)
	Goto See
  LegCannon:
	TNT1 A 0 A_PlaySound("legendarycannon/up",7,1.0,0,0.5)
	TPO0 E 15 A_FaceTarget
	TNT1 A 0 A_PlaySound("legendarycannon/charge",6,1.0,0,0.5)
	TPO0 E 10 A_FaceTarget
	TPO0 EEE 7 Bright A_GiveInventory("TLegZombieStrafing2",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire2",1)
	TNT1 AAA 0 A_CustomMissile("LegCommanderProj",40,16,random(-13,13),CMF_OFFSETPITCH,frandom(-5,5))
	TPO0 F 6 Bright A_GiveInventory("TLegZombieStrafing2",1)
	TPO0 EEE 7 Bright A_GiveInventory("TLegZombieStrafing2",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire2",1)
	TNT1 AAA 0 A_CustomMissile("LegCommanderProj",40,16,random(-13,13),CMF_OFFSETPITCH,frandom(-5,5))
	TPO0 F 6 Bright A_GiveInventory("TLegZombieStrafing2",1)
	TPO0 EEE 7 Bright A_GiveInventory("TLegZombieStrafing2",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire2",1)
	TNT1 AAA 0 A_CustomMissile("LegCommanderProj",40,16,random(-13,13),CMF_OFFSETPITCH,frandom(-5,5))
	TPO0 F 6 Bright A_GiveInventory("TLegZombieStrafing2",1)
	Goto See
  CannonBall:
	TPO0 EEE 5 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire",1)
	TPO0 F 5 Bright A_CustomMissile("LegDoomguyCannonBall",40,16,random(-4,4))
	TPO0 EEE 5 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire",1)
	TPO0 F 5 Bright A_CustomMissile("LegDoomguyCannonBall",40,16)
	TPO0 EEE 5 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire",1)
	TPO0 F 5 Bright A_CustomMissile("LegDoomguyCannonBall",40,16,random(-8,8))
	TPO0 EEE 5 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("LegCannon/Fire",1)
	TPO0 F 5 Bright A_CustomMissile("LegDoomguyCannonBall",40,16)
	Goto See
  BlueStar:
	TNT1 A 0 A_SetInvulnerable
    TNT1 A 0 A_Playsound("FormerAdmiral/Attack")
	TPO0 E 1 Bright A_FaceTarget
	TPO0 EEEE 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlayWeaponSound("star/load3")
	TPO0 EEEE 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlayWeaponSound("star/fire")
	TPO0 F 7 Bright A_CustomMissile("LegCommandoBlueStar",40,16,0)
	TPO0 E 8 Bright A_FaceTarget
	TPO0 E 1 Bright A_FaceTarget
	TPO0 EEEE 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_PlayWeaponSound("star/load3")
	TPO0 EEEE 3 Bright A_GiveInventory("TLegZombieStrafing",1)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_PlayWeaponSound("star/fire")
	TPO0 F 7 Bright A_CustomMissile("LegCommandoBlueStar",40,16,0)
	TPO0 E 8 Bright A_FaceTarget
	Goto See
  Beacon:
	TPO0 H 20 Bright A_SpawnItem("ActiveTrueLegendaryFormerBeacon")
	Goto See
  Pain:
	TNT1 A 0 A_Jump(20,"Protection")
	TPO0 G 3 Bright
	TPO0 G 3 Bright A_Pain
	TNT1 A 0 A_Jump(192,"Missile")
	Goto See
  Protection:
	TNT1 A 0 A_JumpIf(user_protection >= 3,"Pain")
	TNT1 A 0 A_JumpIf(user_protected == 1,"Pain")
	TNT1 A 0 A_PlaySound("legendary/defense")
	TNT1 A 0 A_FaceTarget
	TPO0 E 2 Bright ACS_NamedExecuteAlways("LegendaryProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	Goto See
  Death:
	TPO0 G 4   
	TNT1 A 0 A_Scream    
	TPOX ABCDE 7 
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,128,0)
	TPOX FFGG 4 BRIGHT A_CustomMissile("BlueKaboom3", Random(10,50), 0, random(0,360), 2, random(0,360))
	TPOX H 6 BRIGHT
	TPOX I -1
	Stop
 }
}

ACTOR TrueLegAdmiralGhost
{
Scale 1.25
Radius 20
Height 56
Speed 0
Alpha 0.7
PROJECTILE
RENDERSTYLE Translucent
+CLIENTSIDEONLY
+NOINTERACTION
+NOTIMEFREEZE
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	TPO0 A 2 A_FadeOut(0.10)
	Wait
	}
}

actor ActiveTrueLegendaryFormerBeacon
{
-SOLID
-SHOOTABLE
States
{
  Spawn:
    TBEA A 105
    TBEA A 0 A_SpawnItemEx("TeleportFog")
    TBEA A 0 A_SpawnItemEx ("TrueLegendarySpecOpsMachinegunner", 0, 0, 8, 0, 0, 0, 0, 1)
    TBEA A 105
    TBEA A 0 A_SpawnItemEx("TeleportFog")
    TBEA A 0 A_SpawnItemEx ("TrueLegendaryZombie", 0, 0, 8, 0, 0, 0, 0, 1)
    TBEA A 105
    TBEA A 0 A_SpawnItemEx("TeleportFog")
    TBEA A 0 A_SpawnItemEx ("TrueLegendaryPyroZombie", 0, 0, 8, 0, 0, 0, 0, 1)
    TBEA A 105
    goto Death
  Death:
    TNT1 A 1 A_SpawnItemEx("TeleportFog")
    stop
  }
}

Actor TrueLegendaryAdmiralStrafing : CustomInventory
{
-COUNTITEM
+NOTIMEFREEZE
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
  {
  Pickup:
	NULL A 1 
	NULL A 1 A_SpawnItemEx("BHellionSmokeSpawner")
	NULL A 1 A_Jump(188,2)
	NULL A 1 A_GiveInventory("LegZombieJumping",1)
	NULL A 1 A_JumpIf(velx != 0 || vely != 0,2)
	NULL A 1 A_Jump(256,2)
	NULL A 1 A_Jump(235,5)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 A_GiveInventory("LegZombieStrafeSens",1)
	NULL A 1 A_Jump(256,2)  
	NULL A 1 A_TakeInventory("LegZombieStrafeSens",1)
	NULL A 1 A_JumpIfInventory("LegZombieStrafeSens",1,3)
	NULL A 1 ThrustThing(angle*256/360+40.7,3,0,0)
	NULL A 1 A_Jump(256,2)  
	NULL A 1 ThrustThing(angle*256/360+40.7,-3,0,0)
	NULL A 1 A_FaceTarget
	NULL A 1 A_Jump(24,2)
	NULL A 1 A_JumpIfCloser(300,2)
	NULL A 1 A_Recoil(-1)
	Stop
	NULL A 1 A_Recoil(1)
	Stop  
  }
}