ACTOR HEMLegendaryStealthTrooper : LegendaryStealthTrooper //HEM-Custom-Custom
{
//Creator: Complex Doom CF 3.0 Team
//Origin: Hem Custom 3.0
//Sprite: HLST
//Title: "HEM Legendary Stealth Trooper"
Health 1200
FastSpeed 20
MinMissileChance 32
Species "Legendary"
DamageFactor "PlayerDBFGSplash2", 0.65
//No infighting
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LACGrenade", 0.0
DropItem "Portablemedkit", 210, 1
DropItem "Armorplate", 205, 1
DropItem "LegendaryArmor", 85, 1
DropItem "LegAmmoSphere", 88, 1
DropItem "ShieldSphere", 32, 1
DropItem "LegendaryRune", 60, 1
DropItem "HandGrenadeAmmo", 235, 1
DropItem "MineAmmo", 235, 1
DropItem "SpringMine", 50, 1
DropItem "ModdedBackPack", 198, 1
DropItem "LegendaryLMGBulletMag", 250, 20
DropItem "LegendaryBulletBox", 200 
DropItem "Legendary AK-47", 202, 1
AttackSound ""
Obituary "%o was immediately gunned down with an AK-47 by a Legendary Stealth Trooper."
Tag "\c[z3]Legendary Stealth Trooper\c-"
+DONTHARMSPECIES
States 
{
  Spawn:
	HLST A 10 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
	HLST "Z" 10 Bright A_Look
	TNT1 AA 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
	TNT1 A 0 A_JumpIfHealthLower(1100,"Idle")
	Loop
  Idle:
	TNT1 A 0 A_SetUserVar("user_music",0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST AA 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST BB 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	HLST CC 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST DD 3 Bright A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 HealThing(1) //HEM custom btw
	Loop
  See:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,19)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_JumpIfInTargetLOS("Phase",360,JLOSF_DEADNOJUMP,1000)
	HLST AA 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInTargetLOS("Phase",360,JLOSF_DEADNOJUMP,1000)
	HLST BB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_JumpIfInTargetLOS("Phase",360,JLOSF_DEADNOJUMP,1000)
	HLST CC 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_JumpIfInTargetLOS("Phase",360,JLOSF_DEADNOJUMP,1000)
	HLST DD 3 Bright A_Chase
	TNT1 A 0 A_Jump(8,"Phase")
	TNT1 A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)	
	Loop
  Rush:
	HLST A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST B 1 Bright A_Chase
	TNT1 A 0 A_Jump(80,"Phase")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HEMLegCommandoGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Loop
  Strafing:
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	HLST AA 3 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	HLST BB 3 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	HLST CC 3 Bright A_GiveInventory("LegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	HLST DD 3 Bright A_GiveInventory("LegZombieStrafing",1)
	Goto See
  Phase:
	TNT1 A 0 A_PlaySound("phaseimp/teleport",6)
	HLST E 2 A_FaceTarget
	HLST E 1 A_SetTranslucent(0.75)
	HLST E 1 A_SetTranslucent(0.55)
	HLST E 1 A_SetTranslucent(0.35)
	HLST E 1 A_SetTranslucent(0.20)
	Goto Phased
  UnPhase:
	TNT1 A 0 A_PlaySound("phaseimp/teleport",7)
	HLST E 1 A_SetTranslucent(0.15)
	HLST E 1 A_SetTranslucent(0.35)
	HLST E 1 A_SetTranslucent(0.55)
	HLST E 1 A_SetTranslucent(0.75)
	TNT1 A 0 A_SetTranslucent(1)
	HLST E 2 A_FaceTarget
	TNT1 A 0 A_JumpIfTargetInLos("Missile",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS)
	Goto See
  Phased:
	TNT1 A 0 A_TakeInventory("LegAK47AmmoHEM",31)
	TNT1 A 0 A_LookEx(LOF_NOJUMP|LOF_NOSEESOUND,0,1250,0,360,1)
	HLST AABBCCDDAABBCCDDAABBCCDDAABBCCDD 1 A_Chase("","",CHF_NOPLAYACTIVE|CHF_NIGHTMAREFAST)
  PhasedLoop:
	TNT1 A 0 A_LookEx(LOF_NOJUMP|LOF_NOSEESOUND,0,1250,0,360,1)
	HLST AABBCCDDAABBCCDD 1 A_Chase("Missile","Missile",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_Jump(24,"UnPhase")
	Loop
  Pause:
	HLST EEEEE 3 Bright A_GiveInventory("LegZombieStrafing",1)
	Goto See
  Teleport:
	HLST A 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST AAAAAAAAAA 1 Bright A_FadeOut(0.1,0)
	TNT1 A 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 1 A_PlaySound("boss/teleport",6)
	TNT1 AAAA 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_LookEx(LOF_NOJUMP|LOF_NOSEESOUND,0,1250,0,360,1)
	TNT1 A 0 A_FaceTarget
	HLST AAAAAAAAAA 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_SetTranslucent(1)
	HLST A 1 Bright A_SetShootable
	Goto See
  Missile:
	HLST E 1 Bright A_FaceTarget
	TNT1 A 0 A_Jump(40,"Grenade")
	HLST EEEEEEEEEE 1 Bright A_FaceTarget(45)
  Refire:
	TNT1 A 0 A_JumpIfInventory("LegAK47AmmoHEM",31,"Reload")
	TNT1 A 0 A_CustomMissile("LegendaryBlueTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_GiveInventory("LegAK47AmmoHEM",1)
	TNT1 A 0 A_SpawnItemEx("LegRifleCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),128)
	TNT1 A 0 A_CustomBulletAttack(15.4,7,1,Random(5,15)*3,"LegModdedBulletPuff",0,CBAF_NORANDOM)
	TNT1 A 0 A_PlaySound("weapons/LegAK47Fire",CHAN_WEAPON)
	HLST E 1 Bright A_GiveInventory("LegZombieStrafing",1)	
	HLST E 3 Bright A_CustomBulletAttack(22.5,0,1,random(1,5)*3,"LegModdedBulletPuff",0,CBAF_NORANDOM)
	TNT1 A 0 A_CustomMissile("LegendaryBlueTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_GiveInventory ("LegAK47AmmoHEM",1)
	TNT1 A 0 A_SpawnItemEx("LegRifleCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),128)
	TNT1 A 0 A_CustomBulletAttack(15.4,7,1,Random(5,15)*3,"LegModdedBulletPuff",0,CBAF_NORANDOM)
	TNT1 A 0 A_PlaySound("weapons/LegAK47Fire",CHAN_WEAPON)
	HLST E 1 Bright A_GiveInventory("LegZombieStrafing",1)	
	HLST F 4 Bright A_CustomBulletAttack(22.5,0,1,random(1,5)*3,"LegModdedBulletPuff",0,CBAF_NORANDOM)
	TNT1 A 0 A_CPosRefire
	TNT1 A 0 A_Jump(18,"Pause")
	Loop
  Grenade:
	HLST E 1 Bright A_JumpIfCloser(1000,1)
	Goto Missile
	TNT1 A 0 A_JumpIfCloser(280,"Missile")
	HLST E 6 Bright A_GiveInventory("LegZombieStrafing",1)
	HLST EEE 4 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("LegZombieStrafing",1)
	HLST E 6 Bright A_CustomMissile("HEMStealthGrenade",32,0,0,2,10)
	HLST E 1 Bright
	Goto See
  Pain:
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_Jump(45,"Protection")
  Pain2:
	TNT1 A 0 A_Jump(80,"Phase")
	TNT1 A 0 A_Jump(25,"Teleport")
	HLST G 3 Bright A_GiveInventory("LegZombieStrafing",1)
	TNT1 A 0 A_Pain
	HLST G 3 Bright A_GiveInventory("LegZombieStrafing",1)
	Goto See
  Protection:
	TNT1 A 0 A_JumpIf(user_protection >= 3,"Pain2")
	TNT1 A 0 A_JumpIf(user_protected == 1,"Pain2")
	TNT1 A 0 A_PlaySound("legendary/defense")
	TNT1 A 0 A_FaceTarget
	HLST E 2 Bright ACS_NamedExecuteAlways("LegendaryProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Goto See	
  Reload:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_JumpIf(user_protected == 1,2)
	TNT1 A 0 A_GiveInventory("ZombieShieldSphere",1)
	TNT1 A 0 A_PlaySound("weapons/legAK47Reload1")
	TNT1 A 0 A_SpawnItemEx("LegAK47EmptyMagSpawner",-8,7,30,4,0,(0.1)*Random(30,40),Random(-80,-90),128)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST E 50 Bright A_TakeInventory ("LegAK47AmmoHEM", 31)
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HLST E 8 Bright A_PlaySound("weapons/legAK47Reload2") 
	HLST E 20 Bright A_PlaySound("weapons/legAK47Reload3")
	TNT1 A 0 A_SpawnItemEx("LHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_ChangeFlag("NoPain",0)
	Goto See
  Death:
	TNT1 A 0 A_Jump(36,"LegendarySoul") 
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_StopSound(6)
	HLST H 5 A_Scream
	HLST I 5 A_Fall
	HLST J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	HLST K 5
	TNT1 A 0 A_Jump(64,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("SignetAvaliableTokensCheck") == 2,2)
	TNT1 A 0 A_JumpIfInTargetInventory("SignetActiveToken",1,"SignetResurrect")
	HLST L 63000 CanRaise
	Stop
  SignetResurrect:
    TNT1 A 0 A_GiveToTarget("ResurrectedMonsters",1)
	TNT1 A 0 Thing_ChangeTID(0,ACS_NamedExecuteWithResult("SignetTargetID")+699)
    HLST L 100 A_ChangeFlag(FRIENDLY,1)
	HLST L 200 A_SpawnItem("SignetRessurectionFire")
	HLST L 40 Bright A_SpawnItem("SignetRessurectionFlame")
	TNT1 A 0 A_PlaySoundEx("TLegZomb/Resurrect",7,0,0.4)
    HLST LKJIH 15 Bright
	TNT1 A 1 A_SpawnItemEx("FriendlyHEMLegendaryStealthTrooper",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,tid-2-699)
	Stop
  LegendarySoul:
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	HLST H 5 A_Scream
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	HLST I 5 A_Fall
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	HLST J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	HLST K 5 
	TNT1 A 0 A_SpawnItem("BHellionSmokeSpawner",0,0,0,0)
	HLST L 140
	HLST L 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	HLST LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	HLST LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	HLST LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("LegSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("LegendarySoul",0,0,16,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,32)
	HLST L 525
	HLST L 5 A_FadeOut(0.1,1)
	Wait
  XDeath:
	TNT1 A 0 A_StopSound(6)
	HLST O 3 A_SpawnItemEx("BlueGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	HLST P 3 A_XScream
	HLST R 3 A_Fall
	HLST STUV 3 
	HLST W 63000 CanRaise
	Stop
	}
}

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

ACTOR HEMLegCommandoGhostB : HEMLegCommandoGhostA 
{   
States 
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	HLST B 2 A_FadeOut(0.1,1)
	Wait
    }
}

ACTOR HEMLegCommandoGhostC : HEMLegCommandoGhostA 
{   
States 
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	HLST C 2 A_FadeOut(0.1,1)
	Wait
    }
}

ACTOR HEMLegCommandoGhostD : HEMLegCommandoGhostA 
{   
States 
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	HLST D 2 A_FadeOut(0.1,1)
	Wait
    }
}
	
ACTOR LegAK47AmmoHEM : Ammo
{
+IGNORESKILL
Inventory.MaxAmount 31
}

Actor HEMStealthGrenade : LegThrownGrenade
{
Obituary "%o was surprised by the grenade of a Legendary Stealth Trooper."
}