Actor LegendaryLieutenant : LegendaryAssaultCaptain
{
  Health 1150
  Speed 12
  PainChance 20
  +BRIGHT
  DropItem "LegendaryBossLifeEssence" 256
  DropItem "LegendaryBossArmorBonusMax" 256
  DropItem "LegendaryCoachgun" 202
  DropItem "LegendaryShell" 256 4
  DropItem "LegendaryShellBox" 130
  DropItem "LegendaryPowerShard" 30 1
  DropItem "LegendaryArmor" 92 1
  DropItem "LegAmmoSphere" 95 1
  DropItem "HandGrenadeAmmo" 237 2
  DropItem "MineAmmo" 242 2
  DropItem "Backpack" 202 1
  DropItem "Armorplate" 212 1
  DropItem "Portablemedkit" 217 1
  DropItem "StimKit" 222 3
  DropItem "HealthFlask" 227 5
  DropItem "LegendaryRune" 27 1
  SeeSound "Lieutenant/sight"
  AttackSound " "
  PainSound "Lieutenant/pain"
  DeathSound "Lieutenant/death"
  Obituary "%o was outmatched by a Legendary Lieutenant."
  var int user_reload;
  Tag "\c[z3]Legendary Lieutenant\c-"
  States
  {
  Spawn:
	LSSZ A 10 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	Loop
  Idle:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ AA 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ BB 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ CC 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ DD 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	Loop
  See:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
    TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,752)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ AA 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ BB 3 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ CC 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ DD 3 A_Chase
	TNT1 A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_Jump(64,"Dodge")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	Loop
  Rush:
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ B 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ D 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("LegLieutenantGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	LSSZ D 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_Jump(64,"Dodge")
	Loop
  Strafing:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ AA 3 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ BB 3 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ CC 3 A_GiveInventory("LegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ DD 3 A_GiveInventory("LegZombieStrafing",1)
	Goto See
  Dodge:
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ A 1 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	LSSZ E 0 ThrustThingZ(0,20,0,0)
	LSSZ A 0 A_Jump(256,"DodgeRight","DodgeLeft")
  DodgeLeft:
	LSSZ E 0 ThrustThing(angle*256/360+192, 15, 0, 0)
	Goto See
  DodgeRight:
	LSSZ E 0 ThrustThing(angle*256/360+64, 15, 0, 0)
	Goto See
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_JumpIf(user_reload == 2,"Reload")
	TNT1 A 0 A_Jump(40,"Grenade")
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIfCloser(300,"Double")
  Normal:
	LSSZ EE 4 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("Coachgun/Fire2",CHAN_WEAPON)
	TNT1 AAAA 0 A_CustomMissile("LegendaryBlueTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,1)
	LSSZ F 4 A_CustomBulletAttack(18,10,10,Random(20,28),"LegModdedBulletPuff")
	LSSZ EE 4 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_JumpIf(user_reload == 2,"Reload")
	TNT1 A 0 A_PlaySound("Coachgun/Fire2",CHAN_WEAPON)
	TNT1 AAAA 0 A_CustomMissile("LegendaryBlueTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,2)
	LSSZ F 4 A_CustomBulletAttack(18,10,10,Random(20,28),"LegModdedBulletPuff")
	LSSZ EE 4 A_GiveInventory("LegZombieStrafing",1)
	Goto Reload
  Double:
	TNT1 A 0 A_JumpIf(user_reload == 1,"Normal")
	TNT1 A 0 A_FaceTarget(45)
	LSSZ E 5 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget(45)
	LSSZ E 5 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget(45)
	LSSZ E 5 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("Coachgun/Fire1",CHAN_WEAPON)
	TNT1 AAAAAAAA 0 A_CustomMissile("LegendaryBlueTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,2)
	LSSZ F 5 A_CustomBulletAttack(30,20,24,Random(20,28),"LegModdedBulletPuff") 
	LSSZ EEE 5 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_Jump(64,"Grenade")
	Goto Reload
  Grenade:
	TNT1 A 0 A_PlaySound("weapons/hgrenadepin",0,1.0,0)
	LSSZ CE 4 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",0,1.0,0)
	LSSZ E 1 Bright A_CustomMissile("LieutenantGrenade",32,0,0,2,4)
	TNT1 A 0 A_JumpIf(user_reload == 2,"Reload")
	Goto Dodge
  Reload:
	LSSZ E 3 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	LSSZ A 6 A_PlaySound("Coachgun/Open")
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItemEx("BlueShellCasing",-8,6,36,Random(2,6),0,random(1,3),random(-80,-90),128)
	LSSZ B 1 A_SpawnItemEx("BlueShellCasing",-10,6,36,Random(2,6),0,random(1,3),random(-80,-90),128)
	LSSZ B 6 A_PlaySound("Coachgun/Load")
	TNT1 A 0 A_SetUserVar(user_reload,0)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	LSSZ C 6 A_PlaySound("Coachgun/Close")
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	LSSZ D 6
	Goto See
  Pain:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_Jump(10,"Protection")
	TNT1 A 0 A_Jump(20,"Dodge")
	LSSZ G 3
	LSSZ G 3 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
	LSSZ E 2 ACS_NamedExecuteAlways("LegendaryProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner")
	Goto See	
  Death:
	TNT1 A 0 A_Jump(36,"LegendarySoul")
	LSSZ H 6 A_Scream
	LSSZ I 6 A_ChangeFlag("BRIGHT",0)
	LSSZ J 6 A_Fall
	LSSZ K 6 A_SpawnItem("BodyCrash",0,0,0,0)
	LSSZ L -1
	Stop
  LegendarySoul:
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LSSZ H 6
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LSSZ I 6 A_Scream
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LegSSGGuyGib",0,0,12,frandom(0.1,1.0),frandom(0.1,1.0),frandom(0.1,1.0),random(0,360),SXF_CLIENTSIDE)
	LSSZ J 6 A_Fall
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LSSZ K 6 A_SpawnItem("BodyCrash",0,0,0,0)			
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LSSZ L 6
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	LSSZ L 140
	TNT1 A 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	LSSZ LLLLLLLLLLLLLLLLL 2 A_GiveInventory("LegSoulEvent",1)
	LSSZ LLLLLLLLLLLLLLLLL 2 A_GiveInventory("LegSoulEvent",1)
	LSSZ LLLLLLLLLLLLLLLLL 2 A_GiveInventory("LegSoulEvent",1)
	TNT1 A 0 A_ChangeFlag("BRIGHT",0)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx("LegendarySoul",0,0,16,0,0,0,0,SXF_NOCHECKPOSITION,0)
	LSSZ L 525
	LSSZ L 5 A_FadeOut(0.1,1)
	Wait
  XDeath:
	TNT1 A 0 A_ChangeFlag("BRIGHT",0)
	LSSZ M 5 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	LSSZ N 5 A_XScream
	LSSZ O 5 A_Fall
	LSSZ PQRST 5
	LSSZ U -1
	Stop
	}
}

ACTOR LegLieutenantGhostA
{
  Alpha 0.7
  Renderstyle Translucent
  +NOTIMEFREEZE
  +NOINTERACTION
  +CLIENTSIDEONLY
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 1 Bright
	Goto Fade
  Fade:
	LSSZ A 2 A_FadeOut(0.1,1)
	Goto Spawn+3
  Toaster:
	TNT1 A 1 Bright
	Stop
	}
}

ACTOR LegLieutenantGhostB : LegLieutenantGhostA
{   
States
	{
	Fade:
	LSSZ B 2 A_FadeOut(0.1,1)
	Loop
    }
}

ACTOR LegLieutenantGhostC : LegLieutenantGhostA
{   
States
	{
	Fade:
	LSSZ C 2 A_FadeOut(0.1,1)
	Loop
    }
}

ACTOR LegLieutenantGhostD : LegLieutenantGhostA
{   
States
	{
	Fade:
	LSSZ D 2 A_FadeOut(0.1,1)
	Loop
    }
}

ACTOR LegLieutenantGhostE : LegLieutenantGhostA
{   
States
	{
	Fade:
	LSSZ E 2 A_FadeOut(0.1,1)
	Loop
	}
}

Actor LieutenantGrenade : LegThrownGrenade
{
Obituary "%o was surprised by the grenade of a Legendary Lieutenant."
}