Actor NemesisPatriarch //if you use any of these enemies in a randomspawner, please retire from making addons
{
  Monster
  Health 100000
  Speed 20
  Radius 40
  Height 105
  Mass 1000000
  Bloodcolor "Black"
  Species "Cybers"
  Scale 1.1
  DamageFactor "PDTBFG", 0.05
  DamageFactor "PDTBFGTracer", 0.05
  DamageFactor "BFGSplash", 0.25
  DamageFactor "BFGSpray", 0.25
  DamageFactor "PlayerDevBall", 0.025
  DamageFactor "PlayerDevBall2", 0.025
  DamageFactor "PlayerDTBFGRailgunSlug", 0.025
  DamageFactor "PlayerDevTracer", 0.025
  DamageFactor "ImpComet", 0.0
  DamageFactor "Cyber10K", 0.0
  DamageFactor "Legendary", 0.0
  DamageFactor "LegendaryPlayer", 0.0
  DamageFactor "LegendaryGuru", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "DemolisherEx", 0.0
  DamageFactor "DarkDemoEx", 0.0
  DamageFactor "CerChainguns", 0.0
  DamageFactor "CerEnergyBall", 0.0
  DamageFactor "LegMind", 0.0
  DamageFactor "BeheComet", 0.0
  DamageFactor "NobleCOmet", 0.0
  DamageFactor "CacoComet", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "HellComet", 0.0
  DamageFactor "Legendary1", 0.0
  DamageFactor "T3rm", 0.0
  DamageFactor "C0mm4nder", 0.0
  DamageFactor "DBFG10K2", 0.0
  DamageFactor "HFCyb3r", 0.0
  DamageFactor "PlayerDBFG10K2", 0.0
  DamageFactor "PlayerDTRG", 0.3
  DamageFactor "DBFG2", 0.0
  DamageFactor "PlayerDBFG2", 0.0
  DamageFactor "PyroShot", 0.0
  DamageFactor "PlayerPyro", 0.0
  DamageFactor "PDTPuff", 0.0
  DamageFactor "Touhou", 0.0
  DamageFactor "Hell", 0.0
  DamageFactor "PlayerBHole", 0.0
  DamageFactor "PlayerNemesisPlasma", 0.0
  DamageFactor "SatanGuard", 0.0
  DamageFactor "Explosion", 0.01
  DamageFactor "NemesisBall", 0
  DamageFactor "NemesisBeam", 0.3
  DamageFactor 0.5
  PainChance "Explosion", 256
  PainChance "PlayerDBFG2", 256
  PainChance "DBFG2", 256
  PainChance "PlayerDBFG10K2", 256
  PainChance 15
  +BOSS
  +QUICKTORETALIATE
  +NOTIMEFREEZE
  +NORADIUSDMG
  +DONTGIB
  +DONTRIP
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  +NOICEDEATH
  +CANTSEEK
  +NOFEAR
  +MISSILEEVENMORE
  +NOTARGET
  +MISSILEMORE
  +FLOORCLIP
  +DONTMORPH
  +BOSSDEATH
  +LOOKALLAROUND
  SeeSound "Patriarch/Sight"
  ActiveSound "Patriarch/Active"
  PainSound "Patriarch/Pain"
  DeathSound "Patriarch/Death"
  Obituary "%o met the Nemesis Patriarch."
  Tag "\c[v9]Nemesis \c[w2]Patriarch\c-"
  var int user_music;
  var int user_missile;
  var int user_missile2;
  var int user_phase2;
  var int user_phase3;
  var int user_phase4;
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("PatriarchOrbitCube1",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("PatriarchOrbitCube2",0,0,0,0,0,0,120,SXF_SETMASTER)
	TNT1 A 0 A_SpawnItemEx("PatriarchOrbitCube3",0,0,0,0,0,0,240,SXF_SETMASTER)
	TNT1 A 0 ACS_Execute(15)
  Idle:
	OMNI A 10 A_Look
	Loop
  See:
	TNT1 A 0 A_JumpIfInTargetInventory("Power4xDamage",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("TerminatorDamage",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("TerminatorDamage2",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("LegendaryInvulnerabilitySphere",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("GhoulDamage",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("BFGUpgrade",1,"NoCheesingAllowed")
	TNT1 A 0 A_JumpIfInTargetInventory("DistortionRune",1,"NoCheesingAllowed")
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_JumpIfHealthLower(45000,"Phase3")	
	TNT1 A 0 A_JumpIfHealthLower(75000,"Phase2")
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI AABB 3 A_Chase
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI CCDD 3 A_Chase
	Loop
  See.Phase2:
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI AABB 2 A_Chase
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI CCDD 2 A_Chase
	Loop
  See.Phase3:
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI AABB 2 A_Chase
	TNT1 A 0 A_Jump(64,"Teleport")
	OMNI CCDD 2 A_Chase
	Loop
	
	
  Teleport:
    OMNI E 1 A_UnSetShootable
	TNT1 A 0 A_PlaySound("BH/Fire",0,1.0,0,0.4)
	TNT1 A 0 A_SpawnItemEx("PatriarchTeleport",0,0,40)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_SpawnItemEx("PatriarchTeleport",0,0,40)
    OMNI E 1 A_SetShootable
	Goto See
	
	
  NoCheesingAllowed:
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_GiveToTarget("PatriarchAntiCheese")
	OMNI E 40 A_PlaySound("brain/spit",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_UnsetInvulnerable
	Goto See
	
	
  Phase2:
	TNT1 A 0 A_JumpIf(user_phase2 == 1,"See.Phase2")	
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	OMNI M 50 A_Pain
	TNT1 A 0 A_PlaySound("Patriarch/Phase2",5,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_phase2",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	OMNI MMMMMMMMMMMM 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See.Phase2
  Phase3:
	TNT1 A 0 A_JumpIf(user_phase3 == 1,"See.Phase3")	
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	OMNI M 50 A_Pain
	TNT1 A 0 A_PlaySound("Patriarch/Phase3",5,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_phase2",0)
	TNT1 A 0 A_SetUserVar("user_phase3",1)
	TNT1 A 0 A_SpawnItemEx("NemesisLightning")
	OMNI MMMMMMMMMMMM 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	Goto See.Phase3
	
	
  Missile:
	TNT1 A 0 A_PlaySound("Patriarch/Attack",6)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_phase2 == 1,"Missile.Phase2")
	TNT1 A 0 A_JumpIf(user_phase3 == 1,"Missile.Phase3")
	TNT1 A 0 A_Jump(256,"Lasers","MagaHomingBalls","MiniNemesisBFG","LaserTeleport","CerebralCommanderBalls","Pyrocannon")
	Goto See
  Missile.Phase2:
	TNT1 A 0 A_Jump(180,"MagaHomingBalls.Phase2","LegSouls.Phase2","MiniNemesisBFG","MiniNemesisBFGTeleport","CerebralCommanderBalls.Phase2","Pyrocannon")
	TNT1 A 0 A_Jump(256,"Hellfire","SummonLegBarrels","Nuke")
	Goto See
  Missile.Phase3:
	TNT1 A 0 A_Jump(180,"MagaHomingBalls.Phase2","LegSouls.Phase2","MiniNemesisBFG.Phase3","CerebralCommanderBallsTeleport","CerebralCommanderBalls.Phase2","Pyrocannon.Phase3")
	TNT1 A 0 A_Jump(256,"Hellfire.Phase3","SummonLegBarrels","Nuke.Phase3")
	Goto See
	
	
  Pyrocannon:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupHellfire",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI KKKKK 5
	TNT1 A 0 A_PlaySound("weapons/PCNNF",1)
	OMNI L 20 A_CustomMissile("RSTPyroShot",38,0,0)
	Goto See
  Pyrocannon.Phase3:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupPyrocannon2",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI KKKKK 5
	TNT1 A 0 A_PlaySound("weapons/PCNNF",1)
	OMNI L 20 A_CustomMissile("PatriarchCommanderPyroShot",38,0,0)
	Goto See
	
	
  Lasers:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLaser",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI EEEEE 5 A_FaceTarget
	TNT1 A 0 A_SetUserVar(user_missile,0)
	OMNI F 2 A_CustomMissile("NemesisCyberRailLaser",38,0,user_missile)
  LaserLoop:
	TNT1 A 0 A_JumpIf(user_missile >= 360,"See")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+10)
	TNT1 A 0 A_CustomMissile("NemesisCyberRailLaser",38,0,user_missile*-1)
	OMNI F 2 A_CustomMissile("NemesisCyberRailLaser",38,0,user_missile)
	Loop
	
	
  MagaHomingBalls:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupMagaBalls",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	OMNI EEEEE 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 10 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 10 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 10 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	Goto See
  MagaHomingBalls.Phase2:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupMagaBalls",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_PlaySound("MreimuBall/Cast")
	OMNI EEEEE 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 8 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 8 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 8 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 8 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	OMNI E 3 A_FaceTarget
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MReimuHomingSuperBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MReimuSuperBall",38,0,15)
	OMNI F 8 A_CustomMissile("MReimuHomingSuperBall",38,0,0)
	Goto See
	
	
  MiniNemesisBFG:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupVexedBouncy",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI GGGGGGG 5 A_FaceTarget
    TNT1 A 0 A_PlaySound("FantasyStaff/Fire2",7,1.0,0,0.2) 
    TNT1 A 0 A_PlaySound("FantasyStaff/Meltdown",6,1.0,0,0.2) 
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-90)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,90)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-45)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,45)
	OMNI H 30 A_CustomMissile("MiniNemesisBFGBall",38,0,0)
	Goto See
  MiniNemesisBFG.Phase3:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupVexedBouncy",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI GGGGGGG 5 A_FaceTarget
    TNT1 A 0 A_PlaySound("FantasyStaff/Fire2",7,1.0,0,0.2) 
    TNT1 A 0 A_PlaySound("FantasyStaff/Meltdown",6,1.0,0,0.2) 
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-90)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,90)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-45)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,45)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-30)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,30)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,-15)
	TNT1 A 0 A_CustomMissile("MiniNemesisBFGBall",38,0,15)
	OMNI H 30 A_CustomMissile("MiniNemesisBFGBall",38,0,0)
	Goto See
	
	
  LegSouls:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLegSouls",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI IIIIIIII 5 A_FaceTarget
	OMNI JJJJJJJ 12 A_CustomMissile("LegendarySoulProj",10,0,random(0,360))
	Goto See
  LegSouls.phase2:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLegSouls2",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI IIIIIIII 5 A_FaceTarget
	OMNI JJJJJJJ 12 A_CustomMissile("ELegendarySoulProj",10,0,random(0,360))
	Goto See
	
	
  LaserTeleport:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLaser",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI EEEEE 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PatriarchFakeLaser",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("PatriarchFakeLaser",random(-1500,1500),random(-1500,1500),-1000,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLaser",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI EEEEE 5 A_FaceTarget
	OMNI F 10 A_CustomMissile("NemesisCyberRailLaser",38,0,0)
	Goto See
  MiniNemesisBFGTeleport:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupVexedBouncy",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI GGGGGGG 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PatriarchFakeMiniBFG",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("PatriarchFakeMiniBFG",random(-1500,1500),random(-1500,1500),-1000,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupVexedBouncy",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI GGGGGGG 5 A_FaceTarget
	OMNI H 10 A_CustomMissile("MiniNemesisBFGBall",38,0,0)
	Goto See
  CerebralCommanderBallsTeleport:
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,33,110)
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,-37,110)
	OMNI WWWWWWW 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("PatriarchFakeCommanderBalls",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAA 0 A_SpawnItemEx("PatriarchFakeCommanderBalls",random(-1500,1500),random(-1500,1500),-1000,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,33,110)
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,-37,110)
	OMNI WWWWWWW 5 A_FaceTarget
	OMNI X 30 A_CustomMissile("EmpoweredBrainwave",38,0,0)
	Goto See
	
	
  CerebralCommanderBalls:
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,33,110)
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,-37,110)
	OMNI WWWWWWW 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("CommanderBrainWave",38,0,-45)
	TNT1 A 0 A_CustomMissile("CommanderBrainWave",38,0,45)
	OMNI X 30 A_CustomMissile("EmpoweredBrainwave",38,0,0)
	Goto See
  CerebralCommanderBalls.Phase2:
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,33,110)
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,-37,110)
	OMNI WWWWWWW 5 A_FaceTarget
	TNT1 A 0 A_CustomMissile("EmpoweredBrainwave",38,0,-90)
	TNT1 A 0 A_CustomMissile("EmpoweredBrainwave",38,0,90)
	TNT1 A 0 A_CustomMissile("CommanderBrainWave",38,0,-45)
	TNT1 A 0 A_CustomMissile("CommanderBrainWave",38,0,45)
	OMNI X 30 A_CustomMissile("EmpoweredBrainwave",38,0,0)
	Goto See
	

  HellFire:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupHellfire",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI KKKKK 5
	TNT1 A 0 A_SetUserVar(user_missile,0)
  HellFireContinue:
	TNT1 A 0 A_JumpIf(user_missile >= 65,"See")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_missile < 25,2)
	TNT1 A 0 A_SpawnItemEx("HFUndeadHandProjectile",random(0,2500),0,0,0,0,0,random(-30,30),SXF_NOCHECKPOSITION)
	OMNI K 4 A_SpawnItemEx("HFire",0,0,32,frandom(20,50),0,frandom(-2,2),random(-30,30),SXF_NOCHECKPOSITION,0)
	Loop
  HellFire.Phase3:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupHellfire2",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI KKKKK 5
	TNT1 A 0 A_SetUserVar(user_missile,0)
  HellFireContinue.Phase3:
	TNT1 A 0 A_JumpIf(user_missile >= 80,"See")
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_missile < 30,3)
	TNT1 A 0 A_SpawnItemEx("LegIceSpike",random(0,2500),0,0,0,0,0,random(-30,30),SXF_NOCHECKPOSITION,128)
	TNT1 A 0 A_SpawnItemEx("HFUndeadHandProjectile",random(0,2500),0,0,0,0,0,random(-30,30),SXF_NOCHECKPOSITION,128)
	TNT1 A 0 A_SpawnItemEx("TrueSmartFire",0,0,32,frandom(20,50),0,frandom(-2,2),random(-30,30),SXF_NOCHECKPOSITION,128)
	OMNI K 4 A_SpawnItemEx("HFire",0,0,32,frandom(20,50),0,frandom(-2,2),random(-30,30),SXF_NOCHECKPOSITION,128)
	Loop
	
	
  SummonLegBarrels:
	TNT1 A 0 A_SpawnItemEx("PatriarchChargeupLegSouls",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI IIIII 5 A_FaceTarget
	OMNI JJJ 20 A_SpawnItemEx("LegendaryBarrel",80,0,40,random(10,100),0,random(20,100),random(0,360))
	Goto See
	
	
  Nuke:
	TNT1 A 0 A_PlaySound("Arcradimus/BFGCharge")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	OMNI KKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging1",0,0,120)
	OMNI KKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging2",0,0,120)
	OMNI KKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging3",0,0,120)
	OMNI KKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging4",0,0,120)
	OMNI KKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging5",0,0,120)
	OMNI KKKKKKKKKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	OMNI L 40 A_CustomMissile("ArcradimusBall",120,0,0,0)
	Goto See
  Nuke.Phase3:
	TNT1 A 0 A_PlaySound("Arcradimus/BFGCharge")
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	OMNI KKKKK 5 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("ArcradimusBallCharging5",0,0,120)
	OMNI KKKKKKKKKKKKKK 5 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	OMNI LLL 15 A_CustomMissile("ArcradimusBall",120,0,random(-40,40))
	Goto See
	
	
  Pain:
	OMNI M 2 A_ChangeFlag("NOPAIN",1)
	OMNI M 2 A_Pain
	Goto See
	
	
  Death:
	TNT1 A 0 ACS_Execute(425)
	OMNI M 80 Bright A_Pain
	TNT1 A 0 A_PlaySound("brain/spit",7)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_Quake(7,540,0,3000,"")
	TNT1 A 0 A_PlaySound("VexedPatriarch/Spawn",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-72,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-144,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-216,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-288,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,0,2)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSummonEffectSpawner3")
	OMNI M 520 Bright
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning")
	TNT1 A 0 A_SpawnItemEx("NemesisDeathBall")
	OMNI MMMMMMMMMMMMMMM 2 Bright A_SpawnItemEx("VexedNemesisFlameSpawner")
	TNT1 A 0 A_RemoveChildren(1)
	TNT1 A 10 A_SpawnItemEx("VexedNemesisPatriarch",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG,0,tid)
	Stop
	}
}

Actor PatriarchFakeLaser : NemesisPatriarch
{
  -BOSS
  -SHOOTABLE
  -COUNTKILL
  +NODAMAGE
  +NOPAIN
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("PatriarchChargeupLaser",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI EEEEE 5 A_FaceTarget
	OMNI F 2 A_CustomMissile("NemesisCyberRailLaser",38,0,0)
	OMNI F 2 A_FadeOut
	Wait
	}
}

Actor PatriarchFakeMiniBFG : PatriarchFakeLaser
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("PatriarchChargeupVexedBouncy",0,0,0,0,0,0,0,SXF_SETMASTER)
	OMNI GGGGGGG 5 A_FaceTarget
	OMNI H 2 A_CustomMissile("MiniNemesisBFGBall",38,0,0)
	OMNI H 2 A_FadeOut
	Wait
	}
}

Actor PatriarchFakeCommanderBalls : PatriarchFakeLaser
{
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("EWAVE",0,33,110)
	TNT1 A 0 A_SpawnItemEx("EWAVE",0,-37,110)
	OMNI WWWWWWW 5 A_FaceTarget
	OMNI X 2 A_CustomMissile("CommanderBrainWave",38,0,0)
	OMNI X 2 A_FadeOut
	Wait
	}
}

ACTOR PatriarchTeleport : BaseProjectileEffect
{
  Scale 3
  +NOTIMEFREEZE
  States
  {
  Spawn:
	NTEL ABCDEFGHIJKLMNOPQRSTUVWXY 1 Bright
    Stop
	}
}

Actor PatriarchAntiCheese : CustomInventory
{  
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
inventory.amount 1
inventory.maxamount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_TakeInventory("GhoulDamage")
		TNT1 A 0 A_TakeInventory("GhoulRage")
		TNT1 A 0 A_TakeInventory("GhoulDrain")
		TNT1 A 0 A_TakeInventory("TerminatorDamage")
		TNT1 A 0 A_TakeInventory("TerminatorDamage2")
		TNT1 A 0 A_TakeInventory("Power4xDamage")
		TNT1 A 0 A_TakeInventory("DistortionRune")
		TNT1 A 0 A_TakeInventory("BFGUpgrade")
		TNT1 A 0 A_TakeInventory("LegendaryInvulnerabilitySphere")
		TNT1 A 0 A_PlaySound("exile/voidend",7,1.0,0,ATTN_NONE)
		TNT1 A 1
		Stop
	}
}

Actor PatriarchCommanderPyroShot : CommanderPyroShot
{
  Speed 65
  -PIERCEARMOR
  States
  {
  Spawn:
	TNT1 A 0 A_Explode(600,128,0,1)
    CCBA ABC 1 A_SpawnItemEx("CCExTrail",0,0,0,0,0,0,0)
    Goto Spawn+2
	}
}

Actor PatriarchChargeupLaser
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  +ISMONSTER
  var int user_active;
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge2",0,33,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	TNT1 A 2 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge2",0,-37,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	Loop
	}
}

Actor PatriarchChargeupMagaBalls : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,33,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	TNT1 A 2 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,-37,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	Loop
	}
}

Actor PatriarchChargeupVexedBouncy : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 17,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 0 A_PlaySound("vile/firecrkl")
	TNT1 A 0 A_SpawnItemEx("WhiteNemesisKaboomNoSound",0,33,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	TNT1 A 2 A_SpawnItemEx("WhiteNemesisKaboomNoSound",0,-37,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	Loop
	}
}

Actor PatriarchChargeupLegSouls : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 2 A_SpawnItemEx("LRedFlameSpawner",0,0,30)
	Loop
	}
}

Actor PatriarchChargeupLegSouls2 : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 2 A_SpawnItemEx("ELFiendFlameSpawner",0,0,30)
	Loop
	}
}

Actor PatriarchChargeupHellfire : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 2 A_SpawnItemEx("CardinalRageFlameSpawner",0,0,30)
	Loop
	}
}

Actor PatriarchChargeupHellfire2 : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("LegCardinalRageFlameSpawner",0,0,30)
	TNT1 A 2 A_SpawnItemEx("CardinalRageFlameSpawner",0,0,30)
	Loop
	}
}

Actor PatriarchChargeupPyrocannon2 : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 25,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 AAAA 0 A_SpawnItemEx("CommanderBrainFlame",random(40,-40),random(40,-40),random(60,100),0,0,random(4,6),0,128,0)
	TNT1 A 1 A_SpawnItemEx("CardinalRageFlameSpawner",0,0,30)
	Loop
	}
}

Actor PatriarchChargeupMixedStorm : PatriarchChargeupLaser
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_active >= 12,"Null")
	TNT1 A 0 A_SetUserVar(user_active,user_active+1)
	TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_INTERPOLATE)
	TNT1 A 0 A_SpawnItemEx("DarkPurpleProjParticleSuperLarge2",0,33,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	TNT1 A 2 A_SpawnItemEx("DarkRedProjParticleSuperLarge2",0,-37,104,frandom(-2,2),frandom(-2,2),frandom(1,5))
	Loop
	}
}

Actor PatriarchOrbitCube1
{
  +CLIENTSIDEONLY
  +NOINTERACTION
  +ISMONSTER
  +BRIGHT
  Scale 1.2
  states
  {
  Spawn:
	CAB1 ABCDEFGHIJKLMNOP 2 A_Warp(AAPTR_MASTER,30,0,105,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
	}
}

Actor PatriarchOrbitCube2 : PatriarchOrbitCube1 
{
  States
  {	
  Spawn:
	CAB2 ABCDEFGHIJKLMNOP 2 A_Warp(AAPTR_MASTER,30,0,105,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
  }
}

Actor PatriarchOrbitCube3 : PatriarchOrbitCube1
{
  States
  {
  Spawn:
	CAB3 ABCDEFGHIJKLMNOP 2 A_Warp(AAPTR_MASTER,30,0,105,10,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_USECALLERANGLE)
	Loop
  }
}

Actor NemesisPatriarchSummoner 29099
{
  Monster
  -COUNTKILL
  +NOTIMEFREEZE
  +NODAMAGE
  -SHOOTABLE
  Scale 1.1
  States
  {
  Spawn:
	OMNI V 10
	OMNI V 100
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSummonEffectSpawner")
	TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-72,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-144,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-216,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,-288,2)
    TNT1 A 0 A_CustomMissile("NemesisPentaLine1",0,0,0,2)
	TNT1 A 0 A_PlaySound("Patriarch/Spawn",1,1.0,0,ATTN_NONE)
	TNT1 A 0 A_Quake(8,2300,0,8000)
	OMNI V 60
	OMNI VVVVVVVVVV 20 A_SpawnItemEx("NemesisLightning",random(-2000,2000),random(-2000,2000),0,0,0,0,0,0,64)
	OMNI VVVVVVVVVVVVVVVVVVVV 20 A_SpawnItemEx("NemesisHKCometRain",random(-2000,2000),random(-2000,2000),0,0,0,0,SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSummonEffectSpawner2")
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightningSpawner")
	OMNI VVVVVVVVVVVVVVVVVVVV 20 A_SpawnItemEx("NemesisLightning",random(-2000,2000),random(-2000,2000),0,0,0,0,0,0,64)
	OMNI VVVVVVVVVV 20 A_SpawnItemEx("NemesisHKCometRain",random(-2000,2000),random(-2000,2000),0,0,0,0,SXF_NOCHECKPOSITION,0)
	OMNI VVVVVVVVVVVVVVVVVVVVVVVV 20 A_SpawnItemEx("NemesisLightning",random(-2000,2000),random(-2000,2000),0,0,0,0,0,0,64)
	TNT1 A 0 A_PlaySound("NemesisPortal/Open",7)
	TNT1 AAA 0 A_SpawnItemEx("NemesisPatriarchSummonEffect",0,0,130)
	OMNI VVVVVVVVVVVVVVVVVVVVVVVVV 20 A_SpawnItemEx("NemesisLightning",random(-2000,2000),random(-2000,2000),0,0,0,0,0,0,64)
	TNT1 A 0 A_PlaySound("NemesisPortal/Loop",6,1.0,1)
	OMNI VUTSRQPON 20 A_SpawnItemEx("NemesisLightning",random(-2000,2000),random(-2000,2000),0,0,0,0,0,0,64)
	TNT1 A 10 A_SpawnItemEx("NemesisPatriarch",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG,0,tid)
	TNT1 A 0 A_StopSound(6)
	Stop
	}
}

Actor NemesisPatriarchSummonerTest //29099
{
  Monster
  -COUNTKILL
  +NOTIMEFREEZE
  +NODAMAGE
  -SHOOTABLE
  Scale 1.1
  States
  {
  Spawn:
	OMNI V 10
	OMNI V 100
	TNT1 A 10 A_SpawnItemEx("NemesisPatriarch",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TELEFRAG,0,tid)
	Stop
	}
}

Actor NemesisPatriarchSummonEffect
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  +BRIGHT
  Renderstyle Add
  Scale 3.0
  States
  {
  Spawn:
	NPOR ABCDEFGHIJKLMNOPQRSTUVWXYZ 10
	NPO2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 10
	NPO3 ABCDEFGHIJKLMNOPQR 10
	Stop
	}
}

Actor NemesisPatriarchSummonEffect2 : NemesisPatriarchSummonEffect
{
  Scale 1.5
  States
  {
  Spawn:
	NSPF ABCDEFGHIJK 4
	Stop
	}
}

Actor NemesisPatriarchSkullEffect : NemesisPatriarchSummonEffect
{
  Scale 1.0
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	NESK ABCDEFGHIJKL 3
	Stop
	}
}

Actor NemesisPatriarchLightning : NemesisPatriarchSummonEffect
{
  Scale 5.0
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_PlaySound("PatriarchLightning",1)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning2")
	NLT9 ABCDEFG 2
	Stop
	}
}

Actor NemesisPatriarchLightning2 : NemesisPatriarchSummonEffect
{
  Scale 6.0
  States
  {
  Spawn:
	NLT0 ABCDEFGHI 1
	Stop
	}
}

Actor NemesisPatriarchSummonEffectSpawner
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  var int user_effectloop;
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_effectloop >= 2300,"Null")
	TNT1 A 0 A_SetUserVar(user_effectloop,user_effectloop+1)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSkullEffect",random(-200,200),random(-200,200),random(0,15),frandom(-2,2),frandom(-2,2),frandom(1,4))
	TNT1 AAA 0 A_SpawnItemEx("BlackProjParticleSuperLarge2",random(-4000,4000),random(-4000,4000),random(0,10),frandom(-1,1),frandom(-1,1),frandom(1,6))
	TNT1 AAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",random(-4000,4000),random(-4000,4000),random(0,10),frandom(-1,1),frandom(-1,1),frandom(1,6))
	TNT1 A 1
	Loop
	}
}

Actor NemesisPatriarchSummonEffectSpawner2 : NemesisPatriarchSummonEffectSpawner
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_effectloop >= 250,"Null")
	TNT1 A 0 A_SetUserVar(user_effectloop,user_effectloop+1)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSummonEffect2",random(-100,100),random(-100,100),random(10,120),0,0,0,0,0,64)
	TNT1 A 5
	Loop
	}
}

Actor NemesisPatriarchSummonEffectSpawner3 : NemesisPatriarchSummonEffectSpawner
{
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_effectloop >= 104,"Null")
	TNT1 A 0 A_SetUserVar(user_effectloop,user_effectloop+1)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSkullEffect",random(-200,200),random(-200,200),random(0,15),frandom(-2,2),frandom(-2,2),frandom(1,4))
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchSummonEffect2",random(-100,100),random(-100,100),random(10,120),0,0,0,0,0,64)
	TNT1 A 5
	Loop
	}
}

Actor NemesisPatriarchLightningSpawner : NemesisPatriarchSummonEffectSpawner
{
  //var int user_angle;
  States
  {
  Spawn:
	TNT1 A 0 A_JumpIf(user_effectloop >= 26,"Null")
	TNT1 A 0 A_SetUserVar(user_effectloop,user_effectloop+1)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",100,100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",-100,100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",100,-100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",-100,-100)
	TNT1 A 20
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",100,100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",-100,100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",100,-100)
	TNT1 A 0 A_SpawnItemEx("NemesisPatriarchLightning",-100,-100)
	TNT1 A 20
	Loop
	}
}