ACTOR NemesisBandit : LegendaryZombie
{
//Creator: Vast Unliking
//Origin: Nexus Infinity
//Sprite: NB3A
//Title: "Nemesis Bandit"
Health 1900
Speed 25
BloodColor "Black"
PainChance 20
DamageFactor 0.6
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
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, 1
DropItem "Portablemedkit", 217, 1
DropItem "LegendaryRune", 70, 1
DropItem "EnragedLegendaryArmor", 92, 1
DropItem "EnragedLegendaryPowerShard", 35, 1
DropItem "ModdedBackPack", 202, 1
DropItem "NemesisShell", 256
DropItem "NemesisShellBox", 130
SeeSound "NemesisBandit/sight"
AttackSound " "
PainSound "NemesisAssaultCaptain/pain"
DeathSound "NemesisAssaultCaptain/death"
ActiveSound "NemesisAssaultCaptain/active"
Obituary "%o was murdered by a Nemesis Bandit."
Tag "\c[g3]Nemesis Bandit\c-"
+BRIGHT
var int user_infammo;
var int user_deathtimer;
var int user_deathtimeractive;
States
{
  Spawn:
	NB3A A 10 A_Look
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	Loop
  See:
	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,2066)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_JumpIfInventory("RunesCheck",1,2)
	TNT1 A 0 ACS_NamedExecuteWithResult("CheckRunes")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A A 4 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A B 4 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A C 4 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A D 4 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_Jump(40,"Teleport")
	TNT1 A 0 A_Jump(64,"Rush")
	TNT1 A 0 A_Jump(64,"DodgeLeft","DodgeRight")
	TNT1 A 0 A_Jump(64,"Chase")
	Loop
  Remove:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("Zombieman",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
  Chase:
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A A 1 A_FastChase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(130,"Dodge")
	NB3A A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(130,"Dodge")
	NB3A B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(130,"Dodge")
	NB3A B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	TNT1 A 0 A_JumpIfCloser(150,"Dodge")
	NB3A C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(150,"Dodge")
	NB3A C 1 A_FastChase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(130,"Dodge")
	NB3A D 1 A_FastChase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfCloser(130,"Dodge")
	NB3A D 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	TNT1 A 0 A_Jump(40,"Teleport")
	TNT1 A 0 A_Jump(128,"Dodge")
	Loop
  Rush:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A A 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A B 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A 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("NemesisBanditZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A C 1  A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A C 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A D 1 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisBanditZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NB3A D 1 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_Jump(85,"See")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	Loop
  SeeNoDodge:
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	NB3A CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	NB3A AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	NB3A CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	NB3A AABB 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	NB3A CCDD 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("FootStep",0,0,2,0,0,-20)
	Goto Chase
  Dodge:
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A A 1 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 ThrustThingZ(0, 20, 0, 0)
	TNT1 A 0 A_Jump(256, "DodgeRight", "DodgeLeft")
  DodgeLeft:
	TNT1 A 0 ThrustThing(angle*256/360+192, 15, 0, 0)
	Goto SeeNoDodge
  DodgeRight:
	TNT1 A 0 ThrustThing(angle*256/360+64, 15, 0, 0)
	Goto SeeNoDodge
  Teleport:
	NB3A A 1 A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A AAAAAAAAAA 1 A_FadeOut(0.1,0)
	NB3A A 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	NB3A A 1 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A AAAAAAAAAA 1 A_FadeIn(0.1)
	NB3A A 1 A_SetShootable
	Goto See  
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_UnsetInvulnerable
	TNT1 A 0 A_SetTranslucent(1)
	NB3A E 3 A_GiveInventory("NemesisLegZombieStrafing",1)
  MissileLoop:
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_JumpIfInventory("ASGZAmmo",6,"Reload")
	NB3A E 4 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_GiveInventory("ASGZAmmo",1)
	TNT1 A 0 A_SpawnItemEx("NemesisShellCasing",-8,7,30,4,0,(0.1)*Random(30,40),Random(-80,-90),128)
	TNT1 A 0 A_PlaySound("NemesisASG/Fire",5)
	NB3A F 2 A_CustomMissile("NemesisASGBall",32,0,0,CMF_OFFSETPITCH,0)
	NB3A E 4 A_FaceTarget
	TNT1 A 0 A_CPosRefire
	TNT1 A 0 A_Jump(20,"MidAttackTeleport")
	TNT1 A 0 A_JumpIfCloser(300,"MidAttackTeleport")
	Loop
  Strafing:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NB3A AA 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NB3A BB 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NB3A CC 3 A_GiveInventory("NemesisLegZombieStrafing",1)  
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NB3A DD 3 A_GiveInventory("NemesisLegZombieStrafing",1)
	Goto See
  MidAttackTeleport:
	NB3A E 1 A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A E 1 A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A EEE 1 A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A EEE 1 A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A EEE 1 A_FadeOut(0.1,0)
	NB3A E 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	NB3A E 1 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A EEEEEEEEEE 1 A_FadeIn(0.1)
	NB3A EEE 1 A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A EEE 1 A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A EEE 1 A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NB3A E 1 A_FadeIn(0.1)
	NB3A E 1 A_SetShootable
	Goto See
  Reload:
	TNT1 A 0 A_ChangeFlag("NoPain",1)
	NB3A E 6 A_PlaySound("NemesisSSG/Load")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A E 20 A_TakeInventory("ASGZAmmo",6)
	TNT1 A 0 A_SpawnItemEx("NemesisShellCasing", -8, 6, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	NB3A E 1 A_SpawnItemEx("NemesisShellCasing", -10, 6, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NB3A E 10 A_PlaySound("NemesisSSG/Close")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_ChangeFlag("NoPain",0)
	Goto See
  Pain:
	TNT1 A 0 A_Jump(30,"Teleport")
	TNT1 A 0 A_Jump(20,"Dodge")
	NB3A G 3
	NB3A G 3 A_Pain
	TNT1 A 0 A_Jump(40,"Dodge")
	TNT1 A 0 A_Jump(192,"Missile")
	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_StopSound(6)
	TNT1 A 0 A_ChangeFlag(BRIGHT,0)
	TNT1 A 0 A_Jump(36,"LegendarySoul")
	NB3A H 5
	NB3A I 5 A_Scream
	NB3A J 5 A_Fall
	NB3A J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	NB3A K 5
	TNT1 A 0 A_Jump(100,"MoreStuff")
	NB3A M -1
	Stop
	VexedSpawn:
	NB3A G 3 Bright A_Pain
	NB3A G 0 A_PlaySoundEx("brain/spit",7,0,2)
	NB3A GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NB3A GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NB3A GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	NB3A GGGGGGGGGGGG 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_SpawnItemEx("VexedNemesisBandit",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG)
	TNT1 A 1
	Stop
  LegendarySoul:
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A H 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A I 5 A_Scream
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A J 5 A_Fall
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A K 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NB3A M 140
	NB3A M 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	NB3A MMMMMMMMMMMMMMMMM 2 A_GiveInventory("NemesisSoulEvent",1)
	NB3A MMMMMMMMMMMMMMMMM 2 A_GiveInventory("NemesisSoulEvent",1)
	NB3A MMMMMMMMMMMMMMMMM 2 A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("INFNemesisSoul",0,0,16,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,32)
	NB3A M -1
	Stop
  MoreStuff:
	NB3A M 100
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	NB3A MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 1 A_SpawnItem("NemesisAssaultCaptainItemRandomizer")
	NB3A MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 1 A_SpawnItem("NemesisAssaultCaptainItemRandomizer")
	NB3A M 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	NB3A M -1
	Stop
  XDeath:
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_ChangeFlag(BRIGHT,0)
	NB3A O 5 A_SpawnItemEx("NemesisGibbedGenerator",0,0,0,0,0,0,0,128,0)
	NB3A P 5 A_XScream
	NB3A Q 5 A_Fall
	NB3A RSTUV 5
	TNT1 A 0 A_Jump(100,"MoreStuff2")
	NB3A W -1
	Stop
  MoreStuff2:
	NB3A W 100
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	NB3A WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisAssaultCaptainItemRandomizer")
	NB3A WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisAssaultCaptainItemRandomizer")
	NB3A W 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	NB3A W -1
	Stop
	}
}

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

ACTOR NemesisBanditZombieGhostB : NemesisBanditZombieGhostA
{   
States
  {
  Fade:
	NB3A B 2 A_FadeOut(0.1,1)
	Wait
  }
}

ACTOR NemesisBanditZombieGhostC : NemesisBanditZombieGhostA
{   
States
  {
  Fade:
	NB3A C 2 A_FadeOut(0.1,1)
	Wait
  }
}

ACTOR NemesisBanditZombieGhostD : NemesisBanditZombieGhostA
{   
States
  {
  Fade:
	NB3A D 2 A_FadeOut(0.1,1)
	Wait
	}
}