ACTOR VexedNemesisCommando : NemesisCommando 28027
{
  Health 2500
  Speed 20
  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
  SeeSound "VexedCommando/sight"
  PainSound "VexedCommando/pain"
  DeathSound "VexedCommando/death"
  ActiveSound "VexedCommando/active"
  Obituary "%o was nullified by the Vexed Nemesis Commando."
  Tag "\c[w2]Vexed Nemesis Commando\c-"
  var int user_missile;
  States
  {
  Spawn:
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM A 10 Bright A_Look
    Loop
  See:
    TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,749)
	TNT1 A 0 A_SetUserVar("user_music",1)
    VCOM A 0 A_JumpIfTargetInLOS("Strafing")
    VCOM AABB 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VCOM A 0 A_JumpIfTargetInLOS("Strafing")
	VCOM CCDD 3 Bright A_Chase
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(30,"Teleport")
	VCOM A 0 A_Jump(80,"Rush")
    TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    Loop
  Rush:
    VCOM A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
    TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VCOM D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",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
  Strafing:
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VCOM AA 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VCOM BB 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_SpawnItem("LegendaryFootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
    VCOM CC 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	VCOM DD 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto See
  Teleport:
	VCOM A 1 Bright A_UnSetShootable
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VCOM AAAAAAAAAA 1 Bright A_FadeOut(0.1,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	VCOM A 1 Bright A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VCOM AAAAAAAAAA 1 Bright A_FadeIn(0.1)
	VCOM A 1 Bright A_SetShootable
	Goto See  
  Pause:
	VCOM EEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Goto See	
  Missile:
    TNT1 A 0 A_SetShootable
    TNT1 A 0 A_SetTranslucent(1)
    TNT1 A 0 A_Jump(88,"Laser","IonBeam","MiniBFG","10kProjectiles")
  Normal:
	VCOM EEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM E 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_CustomMissile("NemesisZombieCannonProj",32,-10,random(-12,12))
	TNT1 A 0 A_CustomMissile("NemesisZombieCannonProj",32,10,random(-12,12))
	VCOM F 2 Bright A_PlaySound("NemesisCannon/Fire",7)
	TNT1 A 0 A_Jump(24,"Pause")
	TNT1 A 0 A_SpidRefire
	Goto Normal+4
  Laser:
	VCOM E 1 Bright A_FaceTarget
	VCOM EEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("NemesisCannon/Mode2")
	VCOM EEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  LaserLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 10,"LaserEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_PlaySound("NemesisCannon/Laser",1)
	TNT1 A 0 A_CustomMissile("NemesisZombieCannonLaser",32,-10,random(-6,6))
	TNT1 A 0 A_CustomMissile("NemesisZombieCannonLaser",32,10,random(-6,6))
	VCOM FE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
  LaserEnd:
	VCOM EEEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Jump(80,"MiniBFG")
	Goto See
  IonBeam:
	VCOM E 0 A_PlaySound("cydes/mischrg",7,1,0,0.5)
	VCOM E 1 Bright A_FaceTarget
	VCOM EEEEEEEEEEEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("NemesisCannon/BigLaser",CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile("NemesisZombieCannonIonBeam",32,-10,0)
	VCOM F 7 Bright A_CustomMissile("NemesisZombieCannonIonBeam",32,10,0)
	VCOM E 10 Bright
	Goto See
  MiniBFG:
	VCOM E 1 Bright A_FaceTarget
	VCOM EEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlayWeaponSound("star/load3")
	VCOM EEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM F 0 A_PlayWeaponSound("NemesisBFG/Altfire")
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",32,-10,0)
	VCOM F 4 Bright A_CustomMissile("MiniNemesisBFGBall",32,10,0)
	VCOM EEE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM F 0 A_PlayWeaponSound("NemesisBFG/Altfire")
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",32,-10,0)
	VCOM F 4 Bright A_CustomMissile("MiniNemesisBFGBall",32,10,0)
	VCOM EEE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM F 0 A_PlayWeaponSound("NemesisBFG/Altfire")
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",32,-10,0)
	VCOM F 4 Bright A_CustomMissile("MiniNemesisBFGBall",32,10,0)
	VCOM EEE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM E 8 Bright A_FaceTarget
	Goto See
  10kProjectiles:
	VCOM E 1 Bright A_FaceTarget
	VCOM EEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_PlaySound("weapons/charge15k")
	VCOM EEEEEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_SetUserVar("user_missile",0)
  BFG10kLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 10,"BFG10kLoop2")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",32,-10,Random(-8,8))
	TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",32,10,Random(-8,8))
	VCOM FE 2 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
  BFG10kLoop2:
	TNT1 A 0 A_JumpIf(user_missile >= 20,"BFG10kEnd")	 
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",32,-10,Random(-12,12))
	TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",32,10,Random(-12,12))
	VCOM FE 1 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	Loop
  BFG10kEnd:
	VCOM FE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	VCOM EEEEEE 3 Bright A_GiveInventory("VexedNemesisLegZombieStrafing",1)
	TNT1 A 0 A_Jump(80,"MiniBFG")
	Goto See
  Pain:
	TNT1 A 0 A_Jump(35,"Teleport")
	VCOM G 3 Bright
	VCOM G 3 Bright A_Pain
	TNT1 A 0 A_Jump(192,"Missile")
	Goto See
  XDeath:
  Death:
    TNT1 A 0 A_Jump(36,"LegendarySoul")
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItemEx("VexedNemesisCommandoBeacon")
	VCOM H 5 A_Scream
    VCOM I 5 A_Fall
    VCOM J 5 A_SpawnItem("BodyCrash",0,0,0,0)
    VCOM KLM 5 
	TNT1 A 0 A_Jump(100,"MoreStuff")
	VCOM N 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)
    VCOM N -1 
	Stop
  MoreStuff:
	VCOM N 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")
	VCOM NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1 A_SpawnItem("NemesisZombieItemRandomizer")
	VCOM NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1 A_SpawnItem("NemesisZombieItemRandomizer")
	VCOM N 1 A_SpawnItem("NemesisZombieSuperItemRandomizer")
	VCOM N -1
	Stop
  LegendarySoul:
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VCOM H 5 A_Scream
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM I 5 A_Fall
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM J 5 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM K 5 
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM L 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
    VCOM M 5
	TNT1 A 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VCOM N 140
	VCOM N 0 A_PlaySoundEx("brain/spit","Voice",0,2)
	VCOM NNNNNNNNNNNNNNNNN 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	VCOM NNNNNNNNNNNNNNNNN 2 Bright A_GiveInventory("NemesisSoulEvent",1)
	VCOM NNNNNNNNNNNNNNNNN 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)
	VCOM N -1
	Stop	
    }
}

Actor VexedNemesisCommandoBeacon : ActiveFormerBeacon
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
    NBEC A 105
    TNT1 A 0 A_SpawnItemEx("TeleportFog")
    TNT1 A 0 A_SpawnItemEx("PGNZombie",0,0,8,0,0,0,0,1)
    NBEC A 105
    TNT1 A 0 A_SpawnItemEx("TeleportFog")
    TNT1 A 0 A_SpawnItemEx("EmpoweredProShotgunCommando",0,0,8,0,0,0,0,1)
    NBEC A 105
    TNT1 A 0 A_SpawnItemEx("TeleportFog")
    TNT1 A 0 A_SpawnItemEx("CorruptedGeneral",0,0,8,0,0,0,0,1)
    NBEC A 105
    TNT1 A 1 A_SpawnItemEx("TeleportFog")
    stop
  }
}

ACTOR VexedNemesisCommandoGhost : LegCommandoGhost
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
Fade:
    TNT1 A 1
    VCOM A 2 A_FadeOut(0.10)
    Goto Fade+1
    }
}