ACTOR VexedNemesisArchon : NemesisHellKnight
{
  Health 3500
  Speed 20
  BloodColor "Black"
  MeleeDamage 30
  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
  DamageFactor "VileStaff", 0.0
  PainChance "Explosion", 128
  PainChance "PlayerDTRG", 128
  PainChance "DTRailgun", 128
  PainChance "PDTPuff", 128
  PainChance "RailG", 128
  DropItem "NemesisHealthBonusMax", 256, 32
  DropItem "NemesisArmorBonus32", 256
  DropItem "NemesisHealthBonusMax", 256, 32
  DropItem "NemesisArmorBonus32", 256
  DropItem "NemesisSphere", 100, 1
  DropItem "NemesisRuneSpawnerTier2", 128, 1
  DropItem "NLDemonAmmo", 256
  DropItem "NLDemonAmmoBox", 256
  DropItem "NemesisRifle", 200, 1
  SeeSound "VexedArchon/sight"
  PainSound "VexedArchon/pain"
  DeathSound "VexedArchon/death"
  ActiveSound "VexedArchon/active"
  Obituary "%o stopped being alive after getting sight of the Vexed Nemesis Archon."
  HitObituary "%o ate the Vexed Nemesis Archon's knuckle sandwich."
  Tag "$NEVexArchon"
  +BRIGHT
  //var int user_delay;
  var int user_aurascript;
  var int user_fading;
  States
  {
  Spawn:
    VNBL A 0
	TNT1 A 0 ACS_NamedExecuteAlways("WimpyMode",0,2)
	TNT1 A 0 ACS_NamedExecuteAlways("SpawnEffects",0)
	TNT1 A 0 ACS_NamedExecuteAlways("ModifyMonster",0,2,5)
  Idle:
	TNT1 A 0 A_SetUserVar("user_effect_delay",10)
	TNT1 A 0 A_SetUserVar("user_effect_quantity",1)
	TNT1 A 0 A_SetUserVar("user_effect_type",102)
	VNBL A 10 A_Look
	Loop
  See:
	TNT1 A 0 A_SetUserVar("user_effect_type",102)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("CFMusic",0,2003)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 ACS_NamedExecuteWithResult("CFRuneCheck",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_Jump(100,"Rush")
	VNBL AA 2 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("WhiteWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNBL BB 2 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("WhiteWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNBL CC 2 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("WhiteWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	VNBL DD 2 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("WhiteWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_Jump(32,"Teleport")
	Loop
  Rush:
	VNBL A 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL A 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase  
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL B 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL B 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	//delete this later
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL C 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL C 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase  
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL D 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	VNBL D 2 A_SpawnItemEx("VexedNLNGhost",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 AAAA 0 A_Chase
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	//delete this later
	TNT1 A 0 A_SpawnItem("LegendaryHoofStep",0,0,0,0)
	TNT1 A 0 A_Jump(24,"Teleport")
	TNT1 A 0 A_Jump(75,"See")
	Loop
  Teleport:
	VNBL P 1 ACS_NamedExecuteWithResult("ttk_fader",10,3)
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNBL P 0 A_Settics(user_fading)
	VNBL P 2
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	VNBL P 1 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAA 0 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNBL P 0 A_Settics(user_fading)
	VNBL P 1 
	TNT1 A 0 A_Jump(64,"See")
	TNT1 A 0 A_JumpIfTargetInLOS("Missile")
	Goto See	
  Missile:
	TNT1 A 0 A_SetShootable
	TNT1 A 0 A_SetTranslucent(1)
	TNT1 A 0 A_Jump(128,"Spread","Hugger","Rage","BestAttack","DarkMatter","FloorFire"/*,"Rain","Rain2"*/)
	TNT1 A 0 A_Jump(100,"9Comets","CometBarrage","DarkMatterBarrage","Spirit")
	//Goto FloorFire
  Normal:
	VNBL EF 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_PlaySound("firesword/swing",1)
	VNBL G 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0)
	VNBL ST 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_PlaySound("firesword/swing",2)
	VNBL U 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0)
	VNBL EF 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_PlaySound("firesword/swing",1)
	VNBL G 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0)
	VNBL ST 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_PlaySound("firesword/swing",2)
	VNBL U 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0) 
	VNBL EF 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_PlaySound("firesword/swing",1)
	VNBL G 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0)
	VNBL ST 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,8)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,4)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall",32,0,-4)
	TNT1 A 0 A_PlaySound("firesword/swing",2)
	VNBL U 3 A_CustomMissile("VexedNemesisLegNobleBall",32,0,0) 
	TNT1 A 0 A_Jump(127,"Spread")
	Goto See
  Spread:
	VNBL PQ 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("firesword/fireswing",1)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,18)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-18)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,15)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-15)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,12)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-12)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,9)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-9)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,6)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-6)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,3)  
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,-3)
	VNBL R 6 A_CustomMissile("VexedNemesisLegNobleBall2",32,0,0)
	TNT1 A 0 A_Jump(127,"Hugger")
	Goto See
  Hugger:
	VNBL RP 6 A_FaceTarget
	VNBL QQQQ 2 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall3",32,0,0)
	VNBL QQ 6 A_FaceTarget
	VNBL QQQQ 2 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall3",32,0,0)
	VNBL QQ 6 A_FaceTarget
	VNBL QQQQ 2 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_CustomMissile("VexedNemesisLegNobleBall3",32,0,0)
	VNBL PP 6 A_FaceTarget
	TNT1 A 0 A_Jump(80,"CometBarrage")
	Goto See 
  WhiteComet:
	VNBL EF 5 A_FaceTarget
	VNBL G 2 A_CustomMissile("NemesisHKComet",32,0,0)
	TNT1 A 0 A_CustomMissile("NemesisHKComet",32,0,6)
	VNBL G 3 A_CustomMissile("NemesisHKComet",32,0,-6)
	VNBL ST 5 A_FaceTarget
	VNBL U 2 A_CustomMissile("NemesisHKComet",32,0,0)
	TNT1 A 0 A_CustomMissile("NemesisHKComet",32,0,6)
	VNBL U 3 A_CustomMissile("NemesisHKComet",32,0,-6)
	TNT1 A 0 A_Jump(80,"9Comets")
	Goto See
  9Comets:
	VNBL PQ 6 A_FaceTarget
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, -5)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, 5)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, -10)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, 10)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, -15)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, 15)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, -20)
	TNT1 A 0 A_CustomMissile("NemesisHKComet", 32, 0, 20)
	VNBL R 6 A_CustomMissile("NemesisHKComet", 32, 0, 0)
	//TNT1 A 0 A_Jump(64,"CometBarrage")
	//TNT1 A 0 A_Jump(127,"Rage")
	Goto See
  CometBarrage:
	VNBL PPQ 4 A_FaceTarget
	VNBL R 2 A_FaceTarget
	VNBL RRRRRRRRRRRRRRRR 1 A_CustomMissile("NemesisHKComet",30,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_FaceTarget
	VNBL RRRRRRRRRRRRRRRR 1 A_CustomMissile("NemesisHKComet",30,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	VNBL R 3
	VNBL RRR 3
	TNT1 A 0 A_Jump(80,"9Comets")
	TNT1 A 0 A_Jump(127,"Rage")
	Goto See  
  FloorFire:
	VNBL PPQ 4 A_FaceTarget
	VNBL RRR 4 A_FaceTarget
	TNT1 A 0 A_Custommissile("VexedArchonFloorFireSpawner",16,0,-10,0)
	TNT1 A 0 A_Custommissile("VexedArchonFloorFireSpawner",16,0,10,0)	
	VNBL R 1 A_Custommissile("VexedArchonFloorFireSpawner",16,0,0,0)
	VNBL RRR 6 A_FaceTarget
	Goto See  
  DarkMatter:
	VNBL QQ 6 A_FaceTarget
	VNBL PPPP 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	VNBL P 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	VNBL P 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	VNBL P 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	VNBL P 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	VNBL P 2 A_FaceTarget
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, -30, 0)
	TNT1 A 0 A_CustomMissile("VexedArchonDarkMatter", 70, 30, 0)
	TNT1 A 0 A_Jump(127,"DarkMatterBarrage")
	Goto See
  DarkMatterBarrage:
	VNBL PPQ 8 A_FaceTarget
	VNBL R 2 A_FaceTarget
	VNBL RRRRRRRR 1 A_CustomMissile("VexedArchonDarkMatter",30,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_FaceTarget
	VNBL RRRRRRRR 1 A_CustomMissile("VexedArchonDarkMatter",30,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	VNBL R 3
	VNBL RRR 3
	Goto See
  Rage:
	VNBL Q 1 A_PlaySound("VexedArchon/Attack",1)
	VNBL Q 1 A_FaceTarget
	VNBL Q 1 A_SetUserVar("user_missile",0)
	VNBL RRRR 2 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNBL QQQQ 2 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
  Raging:
	TNT1 A 0 A_JumpIf(user_missile >= 18,"See")   
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	VNBL QQ 0 A_CustomMissile("VexedNemesisLegNobleBall3Small",0,0,random(0,359))  
	VNBL Q 3 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	Loop
  SuperRage:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	VNBL Q 1 A_PlaySound("VexedArchon/Sight",1)
	VNBL Q 1 A_FaceTarget
	VNBL Q 1 A_SetUserVar("user_missile",0)
	VNBL RRRRRRRRRRRRRRRRRRR 2 A_SpawnItem("VexedAura",0,0,0,0)
	VNBL QQQQQQQQQQQQQQQQQQQ 2 A_SpawnItem("VexedAura",0,0,0,0)
  SuperRaging:
	TNT1 A 0 A_JumpIf(user_missile >= 14,"See")   
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	VNBL Q 0 A_CustomMissile("NemesisHKSuperBall",32,0,random(0,359)) 
	VNBL Q 8 A_SpawnItem("VexedAura",0,0,0,0)
	Loop
  BestAttack:
	VNBL Q 1 A_PlaySound("VexedArchon/Sight",1)
	VNBL P 2 A_FaceTarget
	VNBL PPPPPPPPPPPPPPPPP 1 A_SpawnItem("VexedAura",0,0,0,0)
	VNBL Q 2 A_FaceTarget
	VNBL QQQQQQQQQQQQQQQQQ 1 A_SpawnItem("VexedAura",0,0,0,0)
	VNBL R 6 A_FaceTarget
	VNBL R 6 A_CustomMissile("NemesisHKSuperBall",32,0,0)
	VNBL EF 6 A_FaceTarget
	VNBL G 6 A_CustomMissile("NemesisHKSuperBall",32,20,0)
	VNBL ST 6 A_FaceTarget
	VNBL U 6 A_CustomMissile("NemesisHKSuperBall",32,-20,0)
	Goto See
  Spirit:
	VNBL Q 1 A_PlaySound("VexedArchon/Sight",1)
	VNBL P 2 A_FaceTarget
	VNBL PPPPPPPPPPPPPPPPP 1 A_SpawnItem("VexedAura",0,0,0,0)
	VNBL Q 2 A_FaceTarget
	VNBL QQQQQQQQQQQQQQQQQ 1 A_SpawnItem("VexedAura",0,0,0,0)
	VNBL R 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("firesword/fireswing",1)
	VNBL R 6 A_SpawnItemEx("VexedNemesisSpirit",0,0,10,70,0,0)
	Goto See
/*
  Rain:
	TNT1 A 0 A_PlaySound("VexedArchon/Attack",1)
	TNT1 A 0 Radius_Quake(6,60,0,18,0)
	VNBL P 2 A_FaceTarget
	VNBL PPPPPPP 1 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNBL Q 2 A_FaceTarget
	VNBL QQQQQQQ 1 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	VNBL Q 2 A_FaceTarget
	TNT1 A 0 A_SetUserVar(user_missile,0)
  RainLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 10,"RainContinue")   
	TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
	VNBL Q 1 A_SpawnItemEx("NemesisHKCometRain",random(-800,800),random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
	Loop
  RainContinue:
	VNBL Q 2 A_FaceTarget
	VNBL QQQQQQQQ 1 A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
	Goto See
  Rain2:
	VNBL RRQQ 4 A_FaceTarget
	TNT1 A 0 A_CustomMissile("NemesisHKCometRain2",46,0,-30)
	TNT1 A 0 A_CustomMissile("NemesisHKCometRain2",46,0,30)
	TNT1 A 0 A_CustomMissile("NemesisHKCometRain2",46,0,-15)
	TNT1 A 0 A_CustomMissile("NemesisHKCometRain2",46,0,15)
	VNBL P 15 A_CustomMissile("NemesisHKCometRain2",46,0,0)
	Goto See
*/
  Melee:
	VNBL EF 2 A_FaceTarget
	VNBL G 2 A_MeleeAttack
	VNBL ST 2 A_FaceTarget
	VNBL U 2 A_MeleeAttack
	VNBL EF 2 A_FaceTarget
	VNBL G 2 A_MeleeAttack
	VNBL ST 2 A_FaceTarget
	VNBL U 2 A_MeleeAttack
	Goto See
  Pain:
	TNT1 A 0 A_Jump(2,"SuperRage")
	TNT1 A 0 A_Jump(8,"Rage")
	TNT1 A 0 A_Jump(70,"Teleport")
	TNT1 A 0 A_Jump(128,"PainMissile")
	VNBL H 2
	VNBL H 2 A_Pain
	Goto See
  Pain.Explosion:
  Pain.Mine:
	TNT1 A 0 A_Jump(32,"SuperRage")
	Goto Teleport
  PainMissile:
	VNBL H 2 Bright
	VNBL H 2 A_Pain
	Goto Missile
  XDeath:
  Death:
	TNT1 A 0 A_StopSound(6)
	VNBL H 40 A_Scream
	VNBL I 6
	VNBL J 6
	TNT1 AAA 0 A_CustomMissile("VexedNemesisArchonDeath",0,0,random(0,359))  
	TNT1 AAAA 0 A_SpawnItemEx("VexedNemesisSpirit",0,0,16,random(-15,15),random(-15,15),random(0,25))
	VNBL K 4
	VNBL L 4 A_NoBlocking
	VNBL MNOXYZ 4
	TNT1 A 0 A_BossDeath
	TNT1 A 0 A_KillChildren
	TNT1 A 0 A_KillMaster
	TNT1 A 0 A_Jump(100,"MoreStuff")
	TNT1 A 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",18) == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	TNT1 A 1
	Stop
  MoreStuff:
	TNT1 A 100
	TNT1 A 0 A_JumpIfInTargetInventory("NemesisFragmentToken",1,3)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",18) == 0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisFragmentSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,192)
	TNT1 A 0 A_SpawnItem("HellionSmokeAttack")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem("NemesisHKItemRandomizer")
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem("NemesisHKItemRandomizer")
	TNT1 A 1 A_SpawnItem("NemesisHKSuperItemRandomizer")
	Stop 
  }
}

ACTOR VexedAuraSpawnerBruiser : VexedAuraSpawnerZombie
{
States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Null")
	TNT1 AA 0 A_SpawnItemEx("VexedAuraSoul",random(-24,24),random(-24,24),random(20,50),frandom(-0.4,0.4),frandom(-0.4,0.4),frandom(0,3),0,0,64)
	TNT1 AA 0 A_SpawnItemEx("VexedAuraSpark",random(-24,24),random(-24,24),random(20,50),frandom(-0.4,0.4),frandom(-0.4,0.4),frandom(0,3),0,0,64)
	TNT1 A 0 A_SpawnItemEx("VexedAuraRiftRandomizer",random(-32,32),random(-32,32),random(20,50),frandom(-0.4,0.4),frandom(-0.4,0.4),frandom(0,3),0,0,64)
	TNT1 A 0 A_SpawnItemEx("VexedAuraParticle",random(-24,24),random(-24,24),random(20,50),frandom(-0.4,0.4),frandom(-0.4,0.4),frandom(0,3),0,0,64)
	TNT1 A 1
	Stop	
  }
}

ACTOR VexedNLNGhost
{
Scale 1.2
RENDERSTYLE Translucent
Alpha 0.75
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
	Goto Fade
  Fade:
	VNBL A 2 Bright A_FadeOut(0.09,1)
	Loop
  Vanilla:
	TNT1 A 1
	Stop	
    }
}

ACTOR VexedNemesisSpirit : LostSoul
{
  Health 400
  PainChance 20
  Scale 0.85
  Obituary "%o had part of their soul taken by an envious Vexed Nemesis Spirit."
  Damage 15
  Speed 25
  Mass 1000000
  Renderstyle Add
  -NOBLOOD
  +BRIGHT
  +NOTIMEFREEZE
  +NOINFIGHTING
  +THRUSPECIES
  -COUNTKILL
  Bloodcolor "Black"
  Species "Nobles"
  DamageFactor "Legendary", 0.0
  DamageFactor "PlayerNemesisPlasma", 0.0
  DamageFactor "NobleComet", 0.0
  DropItem "NemesisHealthBonusMax", 256, 32
  DropItem "NemesisArmorBonus32", 256
  SeeSound "forgotten/sight"
  PainSound "forgotten/pain"
  DeathSound "forgotten/death"
  ActiveSound "forgotten/active"
  AttackSound "forgotten/attack"
  Tag "\c[w2]Vexed Nemesis Spirit\c-"
  States
  {
  Spawn:
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_Look
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_Look
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M B 2 A_Look
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M B 2 A_Look
    Loop
  See:
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_Chase
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M B 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M B 2 A_Chase
    Loop
  Missile:
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M A 2 A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M C 2 A_FaceTarget
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M C 2 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M D 2 A_SkullAttack(70)
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
  Cont:
    NT2M CDD 2 A_SpawnItemEx("VexedUmbraFireSpawner")
    Loop
  Pain:
	TNT1 A 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M E 3 A_Pain
    NT2M E 3 A_SpawnItemEx("VexedUmbraFireSpawner")
    Goto See
  Death:
    NT2M E 30 A_Scream
	TNT1 AAAAAA 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M F 4 A_Fadeout(0.3)
	TNT1 AAAAAA 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M G 4 A_Fadeout(0.3)
	TNT1 AAAAAA 0 A_SpawnItemEx("VexedUmbraFireSpawner")
    NT2M H 4 A_Fadeout(0.4)
	TNT1 AAAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,FRandom(0,360),2,FRandom(0,360))
	TNT1 A 0 A_NoBlocking
    Stop
    }
}

ACTOR VexedUmbraFire : NemesisHellionSmoke
{
  Renderstyle Add
  Scale 0.3
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_ChangeVelocity(FRandom(-0.75,0.75),FRandom(-0.75,0.75),FRandom(-0.75,0.75))
	FIW1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.15)
	Stop
	}
}

ACTOR VexedUmbraFireSpawner : RedParticleSpawner
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
    TNT1 A 0 A_SpawnItemEx("VexedUmbraFire",6,FRandom(-3,3),FRandom(18,28),1,0,FRandom(3,5),FRandom(90,270),128)
    TNT1 A 1
    Stop
    }
}

ACTOR VexedNemesisArchonDeath
{
Renderstyle Add
Speed 0
States
{
Spawn:
  TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Null")
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 2 
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 2 
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 2
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",0,0,0,random(-16,16),random(-16,16),random(0,16),random(0,359)) 
  Stop
}
}

ACTOR VexedNemesisLegNobleBall : LegNobleBall
{
Renderstyle Add
Alpha 1.0
Scale 0.35
Speed 60
BounceCount 5
Damagetype "Legendary"
SeeSound ""
States
{
Spawn:
	CLBA D 1 Bright A_CustomMissile("WhiteProjParticleSuperLarge",Random(-1,1),Random(-1,1))
	Loop
Death:
	TNT1 A 0
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("WhiteProjParticleSuperLarge",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),random(0,359))
	CLBA D 1 Bright A_FadeOut(0.2)
	Goto Death+10
}
}

ACTOR VexedNemesisLegNobleBall2 : LegNobleBall2
{
Renderstyle Add
Alpha 1.0
Scale 0.35
Speed 60
SeeSound ""
States
{
Spawn:
	CLBA D 1 Bright A_SpawnItem("WhiteProjParticleSuperLarge")
	Loop
Death:
  TNT1 A 0
  TNT1 AAAAAAAAA 0 A_SpawnItemEx("WhiteProjParticleSuperLarge",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),random(0,359))
	CLBA D 1 Bright A_FadeOut(0.2)
	Goto Death+10
}
}

ACTOR VexedNemesisLegNobleBall3 : LegNobleBall3
{
Renderstyle Add
Speed 60
+SEEKERMISSILE
States
{
Spawn:
  TNT1 A 0 A_CountDown
  TNT1 A 0 A_LoopActiveSound
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 1 
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 1 
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",random(-4,4),random(-4,4),random(0,4),random(-4,4),random(-4,4),random(3,10),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 1 A_SeekerMissile(0,15)
  Loop
Death:
  TNT1 A 0
  TNT1 A 0 A_Explode(32,64,0)
  TNT1 A 0 A_Explode(128,128,0)
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3Trail",0,0,0,random(-16,16),random(-16,16),random(0,16),random(0,359)) 
  TNT1 A 12
  Stop
}
}

ACTOR VexedNemesisLegNobleBall3Trail : NemesisHellionSmoke
{
Renderstyle Add
Scale 1.0
+Clientsideonly
States
  {
  Spawn:
	TNT1 A 0
	FIW1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
	Stop
  }
}

ACTOR VexedNemesisLegNobleBall3Small : LegNobleBall3Small
{
Renderstyle Add
Speed 40
States
{
Spawn:
  TNT1 A 0 A_CountDown
  TNT1 A 0 A_LoopActiveSound
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3SmallTrail",random(-2,2),random(-2,2),random(0,4),random(-2,2),random(-2,2),random(0,5),random(0,359),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
  TNT1 A 1
  Loop
Death:
  TNT1 A 0
  TNT1 A 0 A_SpawnItemEx("VexedNemesisLegNobleBall3SmallTrail",0,0,0,random(-6,6),random(-6,6),random(0,10),random(0,359)) 
  TNT1 A 6
  Stop
}
}

ACTOR VexedNemesisLegNobleBall3SmallTrail : VexedNemesisLegNobleBall3Trail
{
Scale 0.4
+Clientsideonly
}

ACTOR VexedArchonDarkMatter : PainLordDarkMatter
{
  //Speed 32
  Damage 35
  +NOTIMEFREEZE
  RenderStyle Add
  States
  {
  Spawn:
	VXD1 ABC 3 Bright A_SpawnItemEx("VexedArchonDarkMatterSpark",0,0,0,random(-3,0),random(-2,2),random(-2,2))
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 A 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 A 0 A_CustomMissile("WhiteNemesisKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 A 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("VexedDarkMatterExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("VexedArchonVaporSpawnerDust",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(130,200,1)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
  }
}

ACTOR VexedArchonDarkMatterSpark : DarkMatterSpark
{
  RenderStyle Add
  //Scale 0.75
  //Alpha 1.0
  +NOTIMEFREEZE
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Null")
	VXD2 ABCDEFGHIJKL 1 Bright A_FadeOut(0.04)
	Stop
  }
}

ACTOR VexedArchonVaporSpawnerDust : ShadowVaporSpawnerCF
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Null")
	TNT1 AAAAA 0 A_SpawnItemEx("VexedArchonVaporDust",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	PLAY A 3
	PLAY BCDEF 5
	Stop
	}
}

ACTOR VexedArchonVaporDust : ShadowVaporCF
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	VXD2 MNOPQRSTUVWXYZ 1 Bright A_FadeOut(0.018)
	VXD3 ABC 2 A_FadeOut(0.018)
	Stop
	}
}

ACTOR VexedDarkMatterExplosionSpawner : PainLordDeathExplosionSpawner
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Null")
	TNT1 AAAAAAAAAAAAAAA 2 A_SpawnItemEx("VexedArchonVapor",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	TNT1 A 1
	Stop
	}
}

ACTOR VexedArchonVapor : PainLordVapor
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode2",7)
	VXD4 ABCDEF 3
	Stop
  }
}

ACTOR VexedArchonFloorFire : PyroFire
{
  Speed 0
  Damage 8
  Obituary "%o stopped being real after getting sight of the Vexed Nemesis Archon."
  //SeeSound "weapons/rocklx"
  +NOTIMEFREEZE
  States
  {
  Spawn:
	VXD4 A 5
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 A 0 A_CustomMissile("WhiteNemesisKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 A 0 A_SpawnItemEx("VexedDarkMatterExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("VexedArchonVaporSpawnerDust",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(130,200,1)
	TNT1 A 0 Radius_Quake(5,15,0,20,0)
	VXD4 AAABCDEF 5
    Stop       
   }
}

ACTOR VexedArchonFloorFireSpawner : PyroFireSpawner
{
  Speed 20
  FastSpeed 25
  MissileType VexedArchonFloorFire
  Renderstyle Add
  Alpha 0.8
  +NOTIMEFREEZE
  States
  {
  Spawn: 
	TNT1 AAAA 1 Bright A_CStaffMissileSlither
	TNT1 A 1 Bright A_MissileAttack
    Loop
  Death:  
    TNT1 A 1
    Stop
  }
}
