Actor NemesisLieutenant : LegendaryZombie
{
Health 1750
Speed 20
PainChance 20
BloodColor "Black"
DamageFactor 0.6
DamageFactor "PDTBFG", 0.20
DamageFactor "PDTBFGTracer", 0.20
DamageFactor "PlayerDevBall", 0.120
DamageFactor "PlayerDevBall2", 0.120
DamageFactor "PlayerDTBFGRailgunSlug", 0.120
DamageFactor "PlayerDevTracer", 0.120
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "LACGrenade", 0.0
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "PlayerDTRG", 0.5
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "Explosion", 0.2
DamageFactor "PlayerDTRG", 0.4
DamageFactor "DTRailgun", 0.4
DamageFactor "PDTPuff", 0.4
DamageFactor "RailG", 0.3
DamageFactor "PlayerPyro", 0.2
DamageFactor "VileFires", 0.0
Species "Zombie"
DropItem "NemesisHealthBonusMax", 256, 32
DropItem "NemesisArmorBonus32", 256
DropItem "NemesisHealthBonusMax", 256, 32
DropItem "NemesisArmorBonus32", 256
DropItem "StimKit", 222, 3
DropItem "HealthFlask", 227, 5
DropItem "Armorplate", 212, 1
DropItem "LegAmmoSphere", 95, 3
DropItem "Portablemedkit", 217, 1
DropItem "NemesisRuneSpawnerTier1", 70, 1
DropItem "SemiNemesisArmor", 92, 1
DropItem "NemesisPowerShard", 35, 1
DropItem "HandGrenadeAmmo", 237, 2
DropItem "MineAmmo", 242, 2
DropItem "ModdedBackPack", 202, 1
DropItem "NemesisShell", 256
DropItem "NemesisShellBox", 130
DropItem "Nemesis Sawed-Off Shotgun", 128, 1
SeeSound "enragedleglie/sight"
AttackSound " "
PainSound "enragedleglie/pain"
DeathSound "enragedleglie/death"
Obituary "%o could not handle another fucking legendary shotgun variant, the Nemesis Lieutenant!"
Tag "\c[g3]Nemesis Lieutenant\c-"
+BRIGHT
var int user_reload;
var int user_deathtimer;
var int user_deathtimeractive;
States
{
  Spawn:
    NSZX A 10 A_Look
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX A 10 A_Look
	TNT1 AA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	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("NemesisHellionSmokeSpawner")
	NSZX AA 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX BB 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX CC 3 A_Wander
	TNT1 A 0 A_Look
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX 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_deathtimeractive == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("NemesisDeathTimerForVexed",0)
	TNT1 A 0 A_SetUserVar("user_deathtimeractive",1)
    TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,2138)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX AA 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX 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("NemesisHellionSmokeSpawner")
	NSZX CC 3 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX 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("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostA",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostB",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX B 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostC",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX D 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemLieutenantGhostD",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
	NSZX 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("NemesisHellionSmokeSpawner")
	NSZX AA 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX BB 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX CC 3 A_GiveInventory("NemesisLegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX DD 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	Goto See
  Dodge:
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX A 1 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZX E 0 ThrustThingZ(0,20,0,0)
	NSZX A 0 A_Jump(256,"DodgeRight","DodgeLeft")
  DodgeLeft:
	NSZX E 0 ThrustThing(angle*256/360+192, 15, 0, 0)
	Goto See
  DodgeRight:
	NSZX 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:
	NSZX EE 4 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("Coachgun/Fire2",CHAN_WEAPON)
	TNT1 AAAA 0 A_CustomMissile("PlayerNemDragonTracer",Random(32,38),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,1)
	NSZX F 4 A_CustomBulletAttack(18,10,10,Random(20,28),"NemesisASGBulletPuff")
	NSZX EE 4 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_JumpIf(user_reload == 2,"Reload")
	TNT1 A 0 A_PlaySound("Coachgun/Fire2",CHAN_WEAPON)
	TNT1 AAAA 0 A_CustomMissile("PlayerNemDragonTracer",Random(32,38),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,2)
	NSZX F 4 A_CustomBulletAttack(18,10,10,Random(20,28),"NemesisASGBulletPuff")
	NSZX EE 4 A_GiveInventory("NemesisLegZombieStrafing",1)
	Goto Reload
  Double:
	TNT1 A 0 A_JumpIf(user_reload == 1,"Normal")
	TNT1 A 0 A_FaceTarget(45)
	NSZX E 5 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget(45)
	NSZX E 5 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget(45)
	NSZX E 5 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("Coachgun/Fire1",CHAN_WEAPON)
	TNT1 AAAAAAAA 0 A_CustomMissile("PlayerNemDragonTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 AAAAAAAA 0 A_CustomMissile("NemesisTracer",Random(28,34),0,Random(6,-6),0)
	TNT1 A 0 A_SetUserVar(user_reload,2)
	NSZX F 5 A_CustomBulletAttack(30,20,24,Random(20,28),"NemesisASGBulletPuff") 
	NSZX EEE 5 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Jump(64,"Grenade")
	Goto Reload
  Grenade:
	TNT1 A 0 A_PlaySound("weapons/hgrenadepin",0,1.0,0)
	NSZX CE 4 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",0,1.0,0)
	NSZX E 1 Bright A_CustomMissile("NemThrownGrenade",32,0,0,2,4)
	TNT1 A 0 A_JumpIf(user_reload == 2,"Reload")
	Goto Dodge
  Reload:
	NSZX E 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZX A 6 A_PlaySound("Coachgun/Open")
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItemEx("NemesisShellCasing",-8,6,36,Random(2,6),0,random(1,3),random(-80,-90),128)
	NSZX B 1 A_SpawnItemEx("NemesisShellCasing",-10,6,36,Random(2,6),0,random(1,3),random(-80,-90),128)
	NSZX B 6 A_PlaySound("Coachgun/Load")
	TNT1 A 0 A_SetUserVar(user_reload,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZX C 6 A_PlaySound("Coachgun/Close")
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZX 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")
	NSZX G 3
	NSZX 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
	NSZX E 2 ACS_NamedExecuteAlways("NemesisZombieProtection",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	Goto See	
  Death:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NoVexedBoys") == 1,4)
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem",1,"VexedSpawn")
	TNT1 A 0 A_JumpIfInTargetInventory("TrueLegendaryRuneItem2",1,"VexedSpawn")
	TNT1 A 0 A_JumpIf(user_deathtimer <= 10,"VexedSpawn")
	TNT1 A 0 A_Jump(36,"LegendarySoul")
	NSZX H 6 A_Scream
	NSZX I 6 A_ChangeFlag(BRIGHT,0)
	NSZX J 6 A_Fall
	NSZX K 6 A_SpawnItem("BodyCrash",0,0,0,0)
	NSZX L -1
	Stop
  LegendarySoul:
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NSZX H 5 A_Scream
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_ChangeFlag(BRIGHT,0)
    NSZX I 5 A_Fall
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZX J 5 A_SpawnItem("BodyCrash",0,0,0,0)
    NSZX K 5 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZX LL 5 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NSZX L 140 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	NSZX LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZX LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZX LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("NemesisSoul",0,0,16,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,32)
	NSZX L -1
    Stop
  VexedSpawn:
	NSZX G 3 Bright A_Pain
	NSZX G 0 A_PlaySoundEx("brain/spit",7,0,2)
	NSZX GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZX GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZX GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	NSZX GGGGGGGGGGGG 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_SpawnItemEx("VexedNemesisLieutenant",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG)
	TNT1 A 1
	Stop	
  XDeath:
	TNT1 A 0 A_ChangeFlag(BRIGHT,0)
	NSZX M 5 A_SpawnItemEx("NemesisGibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	NSZX N 5 A_XScream
	NSZX O 5 A_Fall
	NSZX PQRST 5
	NSZX U -1
	Stop
	}
}

ACTOR PlayerNemDragonTracer : PlayerExplosiveTracer
{
   DamageType "PlayerNemesisPlasma"
   Damage 35
   +NOTIMEFREEZE
   Scale 0.7
   States
   {
  Spawn:
	N3A3 A 1 Bright
	Loop
  Death:
	TNT1 A 0 A_SpawnItemEx("VexedNemesisLieutenantFireFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
	TNT1 A 0 A_SpawnItemEx("NemesisKaboom7ASG")
	TNT1 A 1 Bright A_CustomMissile("NemesisASGShotExplosion",0,0,0,2)
	Stop
   }
}

Actor VexedNemesisLieutenantFireFlare
{
  Projectile
  Height 4
  Radius 2
  Gravity 0.52
  Bouncetype DoomCompat
  BounceFactor 0.01
  WallBounceFactor 0.01
  Scale 1.8
  Renderstyle Add
  +DONTFALL
  -Nogravity
  +NODAMAGETHRUST
  -EXTREMEDEATH
  +DONTHARMSPECIES
  +NOTIMEFREEZE
  +FORCERADIUSDMG
  Damagetype "Legendary"
  var int user_fireloop;
  States
  {
  Spawn:
  Death:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "FuckOffHEMCustom")
	TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
	TNT1 A 0 A_SetUserVar("user_fireloop",random(0,8))
	TNT1 A 0 A_PlaySound("monster/ambientfire",7,1.0,1)
  DeathLoop:
	TNT1 A 0 A_JumpIf(user_fireloop >= 40,"Death2")	 
	TNT1 A 0 A_SetUserVar("user_fireloop",user_fireloop+1)
	WFCF AABBCC 1 Bright A_spawnItemEx("VexedNemesisImpBallTrail",random(-6,6),random(-6,6),random(0,3),random(-2,2),random(-2,2),random(2,7),random(0,360))
	TNT1 A 0 A_Explode(20,60)
	TNT1 A 0 A_JumpIf(user_fireloop >= 40,"Death2")	 
	TNT1 A 0 A_SetUserVar("user_fireloop",user_fireloop+1)
	WFCF DDEEFF 1 Bright A_spawnItemEx("VexedNemesisImpBallTrail",random(-6,6),random(-6,6),random(0,3),random(-2,2),random(-2,2),random(2,7),random(0,360))
	TNT1 A 0 A_Explode(20,60)
	TNT1 A 0 A_JumpIf(user_fireloop >= 40,"Death2")	 
	TNT1 A 0 A_SetUserVar("user_fireloop",user_fireloop+1)
	WFCF GGHHII 1 Bright A_spawnItemEx("VexedNemesisImpBallTrail",random(-6,6),random(-6,6),random(0,3),random(-2,2),random(-2,2),random(2,7),random(0,360))
	TNT1 A 0 A_Explode(20,60)
	TNT1 A 0 A_JumpIf(user_fireloop >= 40,"Death2")	 
	TNT1 A 0 A_SetUserVar("user_fireloop",user_fireloop+1)
	WFCF KKLLMM 1 Bright A_spawnItemEx("VexedNemesisImpBallTrail",random(-6,6),random(-6,6),random(0,3),random(-2,2),random(-2,2),random(2,7),random(0,360))
	TNT1 A 0 A_Explode(20,60)
	Loop
  Death2:
	TNT1 A 0 A_StopSound(7)
	WFCF MNOP 2 Bright
	Stop
  FuckOffHEMCustom:
	TNT1 A 1 Bright A_ChangeFlag("MISSILE",0)
	Stop
	}
}

ACTOR NemLieutenantGhostA
{
Alpha 0.7
Renderstyle Translucent
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	NSZX A 2 A_FadeOut(0.1,1)
	Wait
	}
}

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

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

ACTOR NemLieutenantGhostD : NemLieutenantGhostA
{   
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	NSZX D 2 A_FadeOut(0.1,1)
	Wait
    }
}

ACTOR NemLieutenantGhostE : NemLieutenantGhostA
{   
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 1 A_JumpIf(ACS_ExecuteWithResult(304) == 1,"NULL")
	NSZX E 2 A_FadeOut(0.1,1)
	Wait
	}
}