ACTOR NemesisZombie : LegendaryZombie 28000
{ 
  Health 1500
  Speed 20
  BloodColor "Black"
  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.1
  DamageFactor "VileFires", 0.0
  DropItem "NemesisHealthBonusMax", 256, 32
  DropItem "NemesisArmorBonus32", 256
  DropItem "NemesisHealthBonusMax", 256, 32
  DropItem "NemesisArmorBonus32", 256
  DropItem "EnragedLegendaryArmor", 85, 1
  DropItem "LegAmmoSphere", 88, 1
  DropItem "EnragedLegendaryPowerShard", 35, 1
  DropItem "HandGrenadeAmmo", 235, 2
  DropItem "MineAmmo", 235, 2
  DropItem "Backpack", 198, 1
  DropItem "Armorplate", 205, 1
  DropItem "Portablemedkit", 210, 1
  DropItem "NLDemonAmmoBox", 200 
  DropItem "NLDemonAmmo", 250 
  DropItem "LegendaryRune", 60, 1
  DropItem "Nemesis Rifle", 128, 1
  SeeSound "NemesisZombie/Sight"
  PainSound "NemesisZombie/Pain"
  DeathSound "NemesisZombie/Death"
  ActiveSound "NemesisZombie/Active"
  Obituary "%o was eradicated by the Nemesis Zombie's dark energy."
  Tag "\c[v9]Nemesis Zombie\c-"
  var int user_deathtimer;
  var int user_deathtimeractive;
  States
  {
  Spawn:
	NSZO A 10 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZI A 10 Bright A_Look
	TNT1 AA 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,700)
	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")
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	NSZO AA 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO BB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	NSZO CC 3 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO DD 3 Bright A_Chase
	TNT1 A 0 A_Jump(20,"Teleport")
	TNT1 A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	Loop
  Rush:
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("NemesisZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	NSZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	Loop
  Teleport:
	NSZO A 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO AAAAAAAAAA 1 Bright A_FadeOut(0.1,0)
	NSZO A 2 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	NSZO A 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO AAAAAAAAAA 1 Bright A_FadeIn(0.1)
	NSZO A 1 Bright A_SetShootable
	Goto See  
  Strafing:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NSZO AA 2 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NSZO BB 2 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NSZO CC 2 Bright A_GiveInventory("NemesisLegZombieStrafing",1)  
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	NSZO DD 2 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	Goto See
  Pause:
	TNT1 A 0 A_PlaySound("weapons/demontechsteam")
	NSZO EEEEE 3 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	Goto See  
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_UnsetInvulnerable
	TNT1 A 0 A_SetTranslucent(1)
	NSZO EEE 2 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
  MissileLoop:
	NSZO E 4 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("NemesisRifleShotEnemy",32,0,random(-2,2),0)
	NSZO F 4 Bright A_PlaySoundEx("NemesisRifle/Fire","Weapon")
	TNT1 A 0 A_Jump(10,"MidAttackTeleport")
	TNT1 A 0 A_Jump(24,"Pause")
	TNT1 A 0 A_SpidRefire
	Loop
  MidAttackTeleport:
	NSZO E 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO E 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO EEE 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO EEE 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO EEE 1 Bright A_FadeOut(0.1,0)
	NSZO E 2 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	NSZO E 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisHellionSmokeSpawner")
	NSZO EEEEEEEEEE 1 Bright A_FadeIn(0.1)
	NSZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("NemesisLegZombieStrafing",1)
	NSZO E 1 Bright A_FadeIn(0.1)
	NSZO E 1 Bright A_SetShootable
	Goto MissileLoop
  Pain:
	TNT1 A 0 A_Jump(30,"Teleport")
	NSZO G 3 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Pain
	NSZO G 3 Bright A_GiveInventory("NemesisLegZombieStrafing",1)
	TNT1 A 0 A_Jump(192,"Missile")
	Goto See
  Death:
	TNT1 A 0 A_StopSound(6)
	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")
	NSZO H 5 A_Scream
	NSZO I 5 A_Fall
	NSZO J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	NSZO K 5 
	TNT1 A 0 A_Jump(100,"MoreStuff")
	NSZO L -1
	Stop
  LegendarySoul:
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NSZO H 5 A_Scream
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZO I 5 A_Fall
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZO J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZO K 5 
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    NSZO L 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	NSZO L 140
	NSZO L 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	NSZO LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZO LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZO 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)
	NSZO L -1
	Stop
  VexedSpawn:
	NSZO G 3 Bright A_Pain
	NSZO G 0 A_PlaySoundEx("brain/spit",7,0,2)
	NSZO GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZO GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	NSZO GGGGGGGGGGGGGGGGG 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	NSZO GGGGGGGGGGGG 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG)
	TNT1 A 0
	Stop	
  MoreStuff:
	NSZO L 100
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	NSZO LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 1 A_SpawnItem("NemesisZombieItemRandomizer")
	NSZO LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 1 A_SpawnItem("NemesisZombieItemRandomizer")
	NSZO L 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	NSZO L -1
	Stop
  XDeath:
	TNT1 A 0 A_StopSound(6)
	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")	
	NSZO O 3 A_SpawnItemEx("NemesisGibbedGenerator",0,0,0,0,0,0,0,128,0)
	NSZO P 3 A_XScream
	NSZO R 3 A_Fall
	NSZO STUV 3 
	TNT1 A 0 A_Jump(100,"MoreStuff2")
	NSZO W -1
	Stop
  MoreStuff2:
	NSZO W 100
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	NSZO WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisZombieItemRandomizer")
	NSZO WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisZombieItemRandomizer")
	NSZO W 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	NSZO W -1
	Stop
  }
}

ACTOR NemesisZombieItemRandomizer
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(25,"Ammo")
TNT1 A 0 A_Jump(256,"Health","Armor")
Health:
TNT1 A 1 A_SpawnItemEx("NemesisHealthBonusMax",0,0,32,frandom(-5,5),frandom(-5,5),frandom(0,3),random(0,360))
Stop
Armor:
TNT1 A 1 A_SpawnItemEx("NemesisArmorBonusMax",0,0,32,frandom(-5,5),frandom(-5,5),frandom(0,3),random(0,360))
Stop
Ammo:
TNT1 A 1 A_SpawnItemEx("NLDemonAmmo",0,0,32,frandom(-5,5),frandom(-5,5),frandom(0,3),random(0,360))
Stop
}
}

ACTOR NemesisZombieSuperItemRandomizer
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(128,"DoomguyDoll","AnkhOfResurrection","LightArmor")
TNT1 A 0 A_Jump(64,"NemesisSphere")
TNT1 A 0 A_Jump(32,"NemesisArmor")
Nothing:
TNT1 A 1
Stop
DoomGuyDoll:
TNT1 A 1 ACS_NamedExecuteAlways("DropDoll",0,256)
Stop
AnkhOfResurrection:
TNT1 A 1 ACS_NamedExecuteAlways("DropAnkh",0,256)
Stop
ArmorSphere:
TNT1 A 1 A_SpawnItemEx("NemesisArmorSphere",0,0,32)
Stop
LightArmor:
TNT1 A 1 A_SpawnItemEx("LightNemesisArmor",0,0,32)
Stop
NemesisSphere:
TNT1 A 1 A_SpawnItemEx("NemesisSphere",0,0,32)
Stop
NemesisArmor:
TNT1 A 1 A_SpawnItemEx("NemesisArmor",0,0,32)
Stop
}
}

ACTOR NemesisZombieGhostA
{
PROJECTILE
Height 56
Radius 20
Speed 0
Scale 1.1
RENDERSTYLE Translucent
Alpha 0.7
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 1 Bright
	Goto Fade
  Fade:
	NSZO A 2 A_FadeOut(0.1,1)
	Loop
  Toaster:
	TNT1 A 1 Bright
	Stop
  }
}

ACTOR NemesisZombieGhostB : NemesisZombieGhostA
{
States
  {
  Fade:
	NSZO B 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR NemesisZombieGhostC : NemesisZombieGhostA
{
States
  {
  Fade:
	NSZO C 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR NemesisZombieGhostD : NemesisZombieGhostA
{
States
  {
  Fade:
	NSZO D 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR NemesisZombieGhostE : NemesisZombieGhostA
{
States
  {
  Fade:
	NSZO E 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR NemesisZombieGhostF : NemesisZombieGhostA
{
States
  {
  Fade:
	NSZO F 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR NemesisHellionSmoke : AHellionSmoke
{
Renderstyle Subtract
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	FIW1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
	Stop
  }
}

ACTOR NemesisHellionSmokeSpawner : LHellionSmokeSpawner
{
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 0 Bright A_CheckSight("Toaster")
	TNT1 AAA 0 A_SpawnItemEx("NemesisHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 1 Bright
	Stop	
  }
}

ACTOR TrueNemesisHellionSmoke : AHellionSmoke
{
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	2HDT ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
	Stop
  }
}

ACTOR TrueNemesisHellionSmokeSpawner : LHellionSmokeSpawner
{
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 0 Bright A_CheckSight("Toaster")
	TNT1 AAA 0 A_SpawnItemEx("TrueNemesisHellionSmoke",random(12,-12),random(12,-12),random(12,64),0,0,random(1,3),0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 1 Bright
	Stop	
  }
}

Actor NemesisLegZombieStrafing : 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("NemesisHellionSmokeSpawner")
	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+38.7,3,0,0)
	NULL A 1 A_Jump(256,2)  
	NULL A 1 ThrustThing(angle*256/360+38.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  
  }
}