ACTOR VexedNemesisZombie : NemesisZombie 28009
{ 
  Health 2000
  Speed 40
  DamageFactor 0.5
  DamageFactor "Explosion", 0.0001
  DamageFactor "PlayerDTRG", 0.0001
  DamageFactor "DTRailgun", 0.0001
  DamageFactor "PDTPuff", 0.0001
  DamageFactor "RailG", 0.0001
  DamageFactor "PyroShot", 0.0001
  DamageFactor "PlayerPyro", 0.0001
  DamageFactor "PlayerBHole", 0.025
  DamageFactor "PlayerDBFG", 0.015
  DamageFactor "PlayerDBFG2", 0.015
  PainChance "Explosion", 128
  PainChance "PlayerDTRG", 128
  PainChance "DTRailgun", 128
  PainChance "PDTPuff", 128
  PainChance "RailG", 128
  SeeSound "VexedNemesisZombie/Sight"
  PainSound "VexedNemesisZombie/Pain"
  DeathSound "VexedNemesisZombie/Death"
  ActiveSound "VexedNemesisZombie/Active"
  Obituary "%o was eradicated by the Vexed Nemesis Zombie's dark energy."
  Tag "\c[w2]Vexed Nemesis Zombie\c-"
  var int user_missile;
  States
  {
  Spawn:
	VNZO A 10 Bright A_Look
	TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
	VNZI A 10 Bright A_Look
	TNT1 AA 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
	Loop
  See:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,712)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	VNZO AA 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO BB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	VNZO CC 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO DD 3 Bright A_Chase
	TNT1 A 0 A_Jump(20,"Teleport")
	TNT1 A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	Loop
  Rush:
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNZO D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	Loop
  Teleport:
	VNZO A 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO AAAAAAAAAA 1 Bright A_FadeOut(0.1,0)
	VNZO A 2 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	VNZO A 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO AAAAAAAAAA 1 Bright A_FadeIn(0.1)
	VNZO 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)
	VNZO AA 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VNZO BB 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VNZO CC 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)  
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VNZO DD 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto See
  Pause:
	TNT1 A 0 A_PlaySound("weapons/demontechsteam")
	VNZO EEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto See  
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_Jump(20,"Rage")
	TNT1 A 0 A_SetTranslucent(1)
	VNZO EEE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
  MissileLoop:
	VNZO E 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 AA 0 A_CustomMissile("NemesisRifleShotEnemy",32,0,random(-4,4),0)
	VNZO F 2 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:
	VNZO E 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO E 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeOut(0.1,0)
	VNZO E 2 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	VNZO E 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO EEEEEEEEEE 1 Bright A_FadeIn(0.1)
	VNZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO E 1 Bright A_FadeIn(0.1)
	VNZO E 1 Bright A_SetShootable
	Goto MissileLoop
  Rage:
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_PlaySound("VexedNemesisZombie/Sight",7,1.0,0,ATTN_NONE)
	VNZO EEEEEEEE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  RageLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 50,"See")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	VNZO E 1 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 AA 0 A_CustomMissile("NemesisRifleShotEnemy",32,0,random(-4,4),0)
	VNZO F 1 Bright A_PlaySoundEx("NemesisRifle/Fire","Weapon")
	TNT1 A 0 A_Jump(30,"MidRageTeleport")
	Loop
  MidRageTeleport:
	VNZO E 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO E 1 Bright A_FadeOut(0.1,0)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO EEE 1 Bright A_FadeOut(0.3,0)
	VNZO E 2 Bright
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	VNZO E 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO EEE 1 Bright A_FadeIn(0.3)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VNZO E 1 Bright A_FadeIn(0.1)
	VNZO E 1 Bright A_SetShootable
	Goto RageLoop
  Pain:
	TNT1 A 0 A_Jump(30,"Teleport")
  Pain2:
	TNT1 A 0 A_Jump(192,"PainMissile")
	VNZO G 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Pain
	VNZO G 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto See
  PainMissile: 
	VNZO G 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Pain
	VNZO G 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto Missile  
  Pain.RailG:
  Pain.PDTPuff:
  Pain.DTRailgun:
  Pain.PlayerDTRG:
  Pain.Explosion:
	Goto Rage
  XDeath:
  Death:
	TNT1 A 0 A_StopSound(6)
    TNT1 A 0 A_Jump(36,"LegendarySoul")
	VNZO H 5 A_Scream
	VNZO I 5 A_Fall
	VNZO J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	VNZO K 5 
	TNT1 A 0 A_Jump(100,"MoreStuff")
	VNZO L 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NemesisFragment") == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	VNZO L -1
	Stop
  LegendarySoul:
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO H 5 A_Scream
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VNZO I 5 A_Fall
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VNZO J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VNZO K 5 
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VNZO L 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNZO L 140
	VNZO L 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	VNZO LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	VNZO LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	VNZO LLLLLLLLLLLLLLLLL 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisSoul",0,0,16,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("TeleportFog",0,0,16,0,0,0,0,32)
	VNZO L -1
	Stop	
  XDeath:
	TNT1 A 0 A_StopSound(6)
	VNZO O 3 A_SpawnItemEx("NemesisGibbedGenerator",0,0,0,0,0,0,0,128,0)
	VNZO P 3 A_XScream
	VNZO R 3 A_Fall
	VNZO STUV 3 
	TNT1 A 0 A_Jump(100,"MoreStuff2")
	VNZO W 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NemesisFragment") == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	VNZO W -1
	Stop
  MoreStuff:
	VNZO L 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NemesisFragment") == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	VNZO LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 1 A_SpawnItem("NemesisHKItemRandomizer")
	VNZO LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 1 A_SpawnItem("NemesisHKItemRandomizer")
	VNZO L 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	VNZO L -1
	Stop
  MoreStuff2:
	VNZO W 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("NemesisFragment") == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	VNZO WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisHKItemRandomizer")
	VNZO WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_SpawnItem("NemesisHKItemRandomizer")
	VNZO W 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	VNZO W -1
	Stop
  }
}

ACTOR VexedNemesisZombieGhostA
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  +NOTIMEFREEZE
  Scale 1.1
  Renderstyle Translucent
  Alpha 0.7
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO A 2 A_FadeOut(0.1,1)
	Loop
	}
}

ACTOR VexedNemesisZombieGhostB : VexedNemesisZombieGhostA
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO B 2 A_FadeOut(0.1,1)
	Loop
	}
}

ACTOR VexedNemesisZombieGhostC : VexedNemesisZombieGhostA
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO C 2 A_FadeOut(0.1,1)
	Loop
	}
}

ACTOR VexedNemesisZombieGhostD : VexedNemesisZombieGhostA
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO D 2 A_FadeOut(0.1,1)
	Loop
	}
}

ACTOR VexedNemesisZombieGhostE : VexedNemesisZombieGhostA
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO E 2 A_FadeOut(0.1,1)
	Loop
	}
}

ACTOR VexedNemesisZombieGhostF : VexedNemesisZombieGhostA
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Null")
	VNZO F 2 A_FadeOut(0.1,1)
	Loop
	}
}

Actor VexedNemesisLegZombieStrafing : NemesisLegZombieStrafing
{
States
  {
  Pickup:
	NULL A 1 
	NULL A 1 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	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,6,0,0)
	NULL A 1 A_Jump(256,2)  
	NULL A 1 ThrustThing(angle*256/360+38.7,-6,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(-2)
	Stop
	NULL A 1 A_Recoil(2)
	Stop  
  }
}

ACTOR VexedNemesisFlameSpawner : LSoulFlameSpawner
{
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("vile/firecrkl")
	TNT1 A 0 A_Explode(3,128)
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
    TNT1 AAAAAA 0 A_SpawnItemEx("NemesisSoulFlameFlameFlameFlameFlameFlame",random(20,-20),random(20,-20),random(0,60),0,0,random(2,6),0,128,0)
    TNT1 A 1
    Stop
  Toaster:
    TNT1 A 0
	Stop		
  }
}