
//Note: Many actors here depend on the ACS scripts... replacing these actors can break them entirely

//-----------SUCCESSOR-----------------
Actor SuccessorLastKill : NemesisHKSummoner
{
Radius 16
Height 56
Speed 0
+NOGRAVITY
States
{
  Spawn:
    TNT1 A 1
	Wait
   Death:
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor SuccessorRage : PowerSpeed
{
Speed 3.7
PowerUp.Duration -5
}

Actor SuccessorFlight : PowerupGiver
{
Powerup.Type Flight
Powerup.Duration -10
+AUTOACTIVATE
+ALWAYSPICKUP
}

Actor SuccessorInvul : PowerupGiver
{
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.NOSCREENFLASH
  Inventory.MaxAmount 0
  Powerup.Duration 0x7FFFFFFF
  Powerup.Type "Invulnerable"
  //Powerup.Mode Reflective
  Powerup.Color GreenMap
}


//-----------FAILED SUMMONER-----------
Actor FailedSummonerWeapon : "Advanced Necronomicon"
{ //Scripted (Weapon cannot be selected by the action hotkey, massively breaking the weapon)
Weapon.AmmoType "DustMana"
Weapon.AmmoGive 0
Tag "Book of failed spells"
+WEAPON.AMMO_OPTIONAL
States
{
   Spawn:
    TNT1 A 1
    Stop
  Select: 
	TNT1 A 0 A_Raise
	NECR A 1 A_Raise 
	Loop
  Deselect: 
	TNT1 A 0 A_Lower
	NECR A 1 A_Lower
	Loop
  Ready:
	NECR A 18 A_Playsound("weapons/incant0")
	NECR B 8
	NECR C 7
	NECR D 2
	NECR E 7
	TNT1 A 0 ACS_NamedExecuteAlways("FailedSummonerCounter",0)
	TNT1 A 0 A_Jump(32,"SummonBig")
	TNT1 A 0 A_Jump(100,"SummonMid")
	Goto SummonSmall
  SummonSmall:
    NECR E 12 A_SpawnItemEx("FailedSummonerSmall",60)
	Goto SummonBig+1
  SummonMid:
    NECR E 12 A_SpawnItemEx("FailedSummonMid",100)
	Goto SummonBig+1
  SummonBig:
	NECR E 12 A_SpawnItemEx("FailedSummonerBig",180)
	NECR DCB 4
	NECR A 1 A_WeaponReady(WRF_NOFIRE)
	Wait
	}
}

Actor FailedSummonerBig : NemesisHKSummoner
{
Radius 128
Height 110
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("FailedSummonedBig")
	TNT1 A 0 A_SpawnItemEx("FailedSummonerFlare",0,0,30)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor FailedSummonMid : NemesisHKSummoner
{
Radius 64
Height 64
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("FailedSummonedMid")
	TNT1 A 0 A_SpawnItemEx("FailedSummonerFlare",0,0,30)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor FailedSummonerSmall : NemesisHKSummoner
{
Radius 30
Height 56
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("FailedSummonedSmall")
	TNT1 A 0 A_SpawnItemEx("FailedSummonerFlare",0,0,30)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR FailedSummonedSmall : RandomSpawner
{
Dropitem "OrcMonSpawner", 256, 9
Dropitem "ImpFatsoDamager", 256, 9
Dropitem "TentacledCommando", 256, 9
Dropitem "ImpGunner", 256, 8
Dropitem "SuicideBomber", 256, 7
Dropitem "BeheadedKamikaze", 256, 6
Dropitem "Illus", 256, 6
DropItem "LoperComplex", 256, 6
DropItem "TransparentLoper", 256, 5
Dropitem "RainbowExpMinigunner", 256, 5
Dropitem "RainbowBFG10kZombie", 256, 5
Dropitem "SegwayZombie", 256, 5
DropItem "HellfireBrute", 256, 5
Dropitem "UndeadPriest", 256, 5
Dropitem "HornedImp", 256, 5
DropItem "DiscThrower", 256, 4
Dropitem "DualSabreClaw2", 256, 4
Dropitem "Juggernaut", 256, 4
Dropitem "Butcher", 256, 4
Dropitem "ChainmailEttin", 256, 4
Dropitem "MucosaRaider2", 256, 3
Dropitem "Beholder2", 256, 3
DropItem "HEMStoneImp", 256, 3 //Only cursed thing here is that this says HEM
DropItem "RejectedST", 256, 3
DropItem "DeathAssassin", 256, 2
Dropitem "AngryHexaShotgunZombie", 256, 2
Dropitem "RevelationCultist", 256, 2
DropItem "EpicDemonicZombie", 256, 2
DropItem "UltimateBFG10kGeneral", 256, 2
DropItem "UltimateCorruptedBFG10kGeneral", 256, 2
DropItem "Executioner", 256, 2
DropItem "TheFuckingArmageddonLunatic", 256, 2
DropItem "FlyingCerebralImp", 256, 2
DropItem "NightShade", 256, 2
Dropitem "CerebralShadowBoss", 256, 1
DropItem "AbyssalImp" 256, 1
DropItem "AtomicSoul", 256, 1
DropItem "MiniLegendaryCardinal", 256, 1
DropItem "Nethersyst", 256, 1
DropItem "BossTimeImp" 256, 1
Dropitem "CursedImp", 256, 1
DropItem "TheFastestBFG10kZombie", 256, 1
DropItem "kazumi_sanic", 256, 1
DropItem "HomingBFG10kZombie", 256, 1
Dropitem "StoneLegendaryCommando", 256, 1
Dropitem "LegendaryAutogunner", 256, 1
Dropitem "DarkTerrorist", 256, 1
Dropitem "TrueLegendaryCommando", 256, 1
Dropitem "Shrek", 256, 1
DropItem "LivingDevastator", 256, 1
DropItem "Uberzombie", 256, 1
DropItem "SniperRifleGuy", 256, 1
Dropitem "Chameleon", 256, 1
Dropitem "Barney", 256, 1
DropItem "TerrorZombie", 256, 1
Dropitem "CursedZombie", 256, 1
Dropitem "AngryLegendaryZombie", 256, 1
Dropitem "EpicLegendaryZombie", 256, 1
DropItem "LegendarySegwayZombie", 256, 1
DropItem "MarineSlayer", 256, 1
Dropitem "ClassicLegendaryDoomguy", 256, 1
Dropitem "EnragedLegendaryDoomguy", 256, 1
Dropitem "LegendaryDoomguy", 256, 1
Dropitem "ActuallyBadEnragedLegendaryDoomguy", 256, 1
Dropitem "NemesisDoomSlayer", 256, 1
Dropitem "TrueRoasterockSpawnerInfinity", 256, 1
}

ACTOR FailedSummonedMid : RandomSpawner
{
DropItem "Cacobus", 256, 12
DropItem "CacolanternComplex", 256, 9
Dropitem "OneHundredTen", 256, 9
DropItem "Homodox", 256, 9
DropItem "BabyCacoGangs", 256, 8
Dropitem "DemonWizard", 256, 8
Dropitem "Pestilence", 256, 8
Dropitem "Enesce", 256, 7
DropItem "Infected", 256, 6
DropItem "NightmareFamine", 256, 6
DropItem "Shinenen", 256, 6
DropItem "Efreet", 256, 6
DropItem "RitualLord", 256, 5
DropItem "Excubitor", 256, 5
DropItem "BabyCacoGangsMKII", 256, 5
Dropitem "Broat", 256, 5
DropItem "BabyMasterSpark", 256, 5
Dropitem "DarkBishop", 256, 5
Dropitem "CorruptedCrackoDemon", 256, 5
Dropitem "NoirCaco", 256, 5
DropItem "AugmentedBabySentient", 256, 5
DropItem "ArachnoShredder", 256, 5
Dropitem "OverseerGuardian", 256, 5
Dropitem "Vessel", 256, 5
Dropitem "Madarchflyer", 256, 4
Dropitem "KingCaco", 256, 4
Dropitem "InsaneWrithe", 256, 4
DropItem "Arachnocubus", 256, 4
Dropitem "madFatsocar", 256, 4
DropItem "StoneKnightSpawner", 256, 4
DropItem "CyberHellArchon", 256, 4
Dropitem "EnragedVelocirator", 256, 3
DropItem "MadBaronCar", 256, 3
Dropitem "ChaoticDoctorOctagonapusBLARGH", 256, 3
Dropitem "DiarrhealCacodemon", 256, 3
Dropitem "SoulChasm", 256, 3
DropItem "SuperCacobus", 256, 3
Dropitem "Shinobi", 256, 3
DropItem "BFGServant", 256, 2
Dropitem "ForgottenWarrior", 256, 2
Dropitem "DarkPaladin", 256, 2
Dropitem "DistortionDisciple", 256, 2
Dropitem "Surrogate", 256, 2
DropItem "DeathRev", 256, 2
DropItem "NightmarePestilence", 256, 2
DropItem "ImprovedWidowmaker", 256, 2
DropItem "BattlelordOfHell", 256, 2
DropItem "CursedCyberNoble", 256, 1
Dropitem "NemesisSummonerRevenant", 256, 1
Dropitem "Medeus", 256, 1
Dropitem "Facebock", 256, 1
Dropitem "InsanityClockworkCydestroyer", 256, 1
Dropitem "TheOni", 256, 1
Dropitem "LordAsmodeus", 256, 1
DropItem "DoomCaster", 256, 1
Dropitem "CursedHellKnight", 256, 1
Dropitem "TLBSstandalone", 256, 1
DropItem "CursedRevenant", 256, 1
Dropitem "MexicanRevenant", 256, 1
Dropitem "SadFace", 256, 1
Dropitem "EpicLegendaryBabyDemolisher", 256, 1
Dropitem "ManipulatorStandalone", 256, 1
Dropitem "Spoon", 256, 1
Dropitem "Sonic", 256, 1
Dropitem "SawCacodemon", 256, 1
Dropitem "DestroyerCacodemon", 256, 1
Dropitem "DeathKnight", 256, 1
Dropitem "Darkvile", 256, 1
Dropitem "EnragedLegendarySummoner", 256, 1
Dropitem "IllusoCorpseRandomizer", 256, 1
Dropitem "MakaiSlut", 256, 1
Dropitem "Bagel", 256, 1
Dropitem "NemesisRedeemer", 256, 1
Dropitem "BloodyFlandre", 256, 1
Dropitem "Lamia", 256, 1
Dropitem "Uroboros", 256, 1
Dropitem "9", 256, 1
Dropitem "ChaosSheepsheadWrasse", 256, 1
DropItem "GhoulIodsa", 256, 1
Dropitem "Santa", 256, 1
DropItem "BND", 256, 1
DropItem "EyeSore", 256, 1
DropItem "JitterSkull", 256, 1
DropItem "Sjas", 256, 1
DropItem "CreeperGhoul", 256, 1
DropItem "Choke", 256, 1
DropItem "SoulHarvester", 256, 1
DropItem "MioHonda", 256, 1
DropItem "Misty", 256, 1
DropItem "Jugulum", 256, 1
DropItem "ImpostorGhoul", 256, 1
DropItem "Emtalic", 256, 1
DropItem "Noise", 256, 1
DropItem "NexusSpookyDingy", 256, 1
}

ACTOR FailedSummonedBig : RandomSpawner
{
Dropitem "Arachnophyte", 256, 55
Dropitem "ArachnophyteMasterSpark", 256, 34
Dropitem "EpicCyberdemon", 256, 21
Dropitem "LightCardinal", 256, 18
DropItem "DarkChanneler", 256, 14
Dropitem "FatsoLegs", 256, 12
Dropitem "Cyberhog", 256, 12
Dropitem "SupremeFiend", 256, 10
DropItem "ClockworkAvenger", 256, 9
Dropitem "Hornet", 256, 9
Dropitem "ReverseDirection", 256, 9
Dropitem "HardArmament", 256, 9
DropItem "CardihilatorTank", 256, 9
Dropitem "Cardihilation", 256, 8
Dropitem "GoreCarrier", 256, 8
Dropitem "Ebonhound", 256, 8
Dropitem "BlackHummingbird", 256, 8
DropItem "Cacoshredder", 256, 7
DropItem "Caconnihilator", 256, 7
DropItem "AugmentedAnnihilator" 256, 7
DropItem "Superdemon", 256, 7
DropItem "ElementalOfHell", 256, 6
DropItem "CerebralWarMachine", 256, 6
DropItem "NewHellsBattery", 256, 6
DropItem "InsanitySkellyKing", 256, 6
Dropitem "SomeFormCardinal", 256, 6
Dropitem "CyberBishop", 256, 5
DropItem "ElKing", 256, 5
Dropitem "Nifara", 256, 5
Dropitem "HellishAvatar", 256, 5
Dropitem "EvilBaron", 256, 5
Dropitem "CorruptedFan", 256, 4
Dropitem "InsaneWritheQueen", 256, 4
Dropitem "SuperBFGCyberdemon", 256, 4
DropItem "Badenenen", 256, 4
DropItem "OMEGA_BARNEY", 256, 4
DropItem "SirUndead1", 256, 4
DropItem "SuperRedCardinal", 256, 4
DropItem "NewPhaseCyberdemon", 256, 4
DropItem "SuperweaponCyberdemon", 256, 3
Dropitem "DeathLord", 256, 3
Dropitem "ClockworkBanelord", 256, 3
Dropitem "CerebralCardihilation", 256, 3
Dropitem "PranksterLegendarySentient", 256, 3
Dropitem "sin-genjitsu3", 256, 3
Dropitem "HeavyLandCarrier", 256, 3
Dropitem "ArmamentArmedArm", 256, 3
Dropitem "PhaseFoldingFan", 256, 3
Dropitem "Utsuho", 256, 2
Dropitem "NemesisAnnihilator", 256, 2
Dropitem "TeleporterFastBFG10kCyberDemon", 256, 2
Dropitem "SandLord", 256, 2
Dropitem "Jorg", 256, 1
Dropitem "ChaosStormCauser", 256, 2
Dropitem "VexedNemesisDemolisher", 256, 2
Dropitem "Zuromo", 256, 2
Dropitem "BadTrueLegendaryAnnihilator", 256, 1
Dropitem "AbyssalSatyr", 256, 1
Dropitem "ActuallyGoodHeresiarch", 256, 1
Dropitem "Sandstorm", 256, 1
Dropitem "Hulk", 256, 1
DropItem "Baal2", 256, 1
Dropitem "MephistoVileBoss", 256, 1
Dropitem "TarmidhesHosavo", 256, 1
DropItem "ZamasuCyberdemon", 256, 1
Dropitem "EvaccanniaDOOM", 256, 1
Dropitem "MagaReimu", 256, 1
DropItem "Pain", 256, 1
DropItem "Mokou", 256, 1
Dropitem "TerrorShamanImp", 256, 1 //Moved here for reasons
}

Actor FailedSummonerFlare : PlanetCrackerImpact1
{
Scale 0.3
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("tsi/soulspawnrandom",CHAN_BODY,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 A_PlaySound("necghost/active",7)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ArmorParticleGreen",random(3,-3),random(3,-3),0,random(1,-1),random(1,-1),random(1,-1),random(0,360),0,92)
	//TNT1 A 0 A_SpawnItem("MedeusPortalEffect",0,-20)
  Looping:
    TNT1 A 0 A_FadeOut(0.07)
    1TSC B 1 Bright
    Loop
  }
}

//--------BOSS SUMMONER-------
Actor BossSummonerWeapon : FailedSummonerWeapon //Woe! Legendary power be upon ye!
{ //Scripted (Weapon cannot be selected by the action hotkey, massively breaking the weapon)
Weapon.AmmoType "DustMana"
Weapon.AmmoGive 0
Tag "Book of Legendary Might and Magic"
+WEAPON.AMMO_OPTIONAL
States
{
  Select: 
	TNT1 A 0 A_Raise
	LSU1 A 1 A_Raise 
	Loop
  Deselect:
    TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_Lower
	LSU1 A 1 A_Lower
	Goto Deselect+1
  Ready:
    TNT1 A 0 A_JumpIfInventory("BossSummonerCounter",1,1)
	Goto Ready2
    TNT1 A 0 A_PlaySound("FSWLOOP",6,0.3,TRUE)
    LSU1 ABCB 6 A_WeaponReady
	Loop
  Ready2:
    TNT1 A 0 A_StopSound(6)
    TNT1 A 0 A_JumpIfInventory("BossSummonerCounter",1,"Ready")
	LSU1 H 1 A_WeaponReady
	Goto Ready2+1
  Fire:
    TNT1 A 0 A_JumpIfInventory("BossSummonerCounter",1,1)
	Goto NoTokens
    TNT1 A 0 A_JumpIfInventory("DustMana",100,1)
	Goto NoMana
	LSU1 A 3 Bright A_Playsound("DarkBishop/Sight")
	LSU1 BCBABCBABC 3 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	TNT1 A 0 A_PlaySound("reedemer/charge",CHAN_WEAPON,1.0,FALSE,ATTN_NONE)
	TNT1 A 0 Radius_Quake(8,60,0,20,0)
	LSU1 D 5 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	LSU1 EFEFEF 2 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	TNT1 A 0 ACS_NamedExecuteAlways("BossSummonerCounter",0)
	TNT1 A 0 A_Jump(32,"SummonBig")
	TNT1 A 0 A_Jump(100,"SummonMid")
	Goto SummonSmall
  SummonSmall:
    TNT1 A 0 A_SpawnItemEx("BossSummonerSmall",60)
	Goto SummonBig+1
  SummonMid:
    TNT1 A 0 A_SpawnItemEx("BossSummonerMid",100)
	Goto SummonBig+1
  SummonBig:
	TNT1 A 0 A_SpawnItemEx("BossSummonerBig",180)
	LSU1 EFEFEFEFEFEF 2 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	LSU1 G 5 Bright
	Goto Ready
  AltFire:
    TNT1 A 0 A_JumpIfInventory("BossSummonerCounter",2,1)
	Goto NoTokens
    TNT1 A 0 A_JumpIfInventory("DustMana",200,1)
	Goto NoMana
	LSU1 A 3 Bright A_Playsound("DarkBishop/Sight")
	LSU1 BCBABCBABC 3 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	TNT1 A 0 Radius_Quake(8,60,0,20,0)
	LSU1 D 5 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	LSU1 EFEFEF 2 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	TNT1 A 0 A_SpawnItemEx("BossSummonerFriendly",60,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid-1)
	TNT1 A 0 ACS_NamedExecuteAlways("BossSummonerCounter",0,1)
	LSU1 EFEFEFEFEFEF 2 Bright A_SpawnItem("LRedeBSmokeSpawner",50,0,0,0)
	LSU1 G 5 Bright
	Goto Ready
  NoTokens:
    TNT1 A 0 A_JumpIfInventory("BossSummonCooldown",1,"Ready")
    TNT1 A 0 A_GiveInventory("BossSummonCooldown",1)
    TNT1 A 0 ACS_NamedExecuteAlways("DPRNoTokens",0)
	Goto Ready
  NoMana:
    TNT1 A 0 A_JumpIfInventory("BossSummonCooldown",1,"Ready")
    TNT1 A 0 A_GiveInventory("BossSummonCooldown",1)
    TNT1 A 0 ACS_NamedExecuteAlways("DPRNoMana",0)
	Goto Ready
	}
}

Actor BossSummonCooldown : PowerDamage { DamageFactor "nothing", 1.0 Powerup.duration -1 }

Actor BossSummonerBig : NemesisHKSummoner
{
Radius 128
Height 110
Alpha 0.8
Scale 0.25
RenderStyle Add
+NOINTERACTION
+NOGRAVITY
var int user_delay;
States
{
  Spawn:
	TNT1 AAAAA 7 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,172)
	TNT1 A 0 A_SetTranslucent(0.1,1)
	//TNT1 A 0 A_PlaySound("reedemer/charge",CHAN_BODY,1.0,FALSE,ATTN_NONE)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.2,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.3,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.4,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.5,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.6,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.7,1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	TNT1 A 0 A_SetTranslucent(0.8,1)
	TNT1 A 0 A_PlaySound("reedemer/thunder",5,1,1)
  Doing:
    TNT1 A 0 A_JumpIf(user_delay > 30,"Over")
	TNT1 A 0 A_SetUserVar("user_delay",user_delay+1)
	LRD5 ABCDCB 1 bright A_SpawnItem("LegRedThunderMistSpawner",0,32)
	LRD5 A 0 A_SpawnItemEx("LegRedThunderLightningWaveSpawner",0,0,32,0,0,0,0,0,160)
	Loop
  Death:
  Over:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("BossSummonedBig")
	TNT1 A 0 A_SpawnItemEx("LegRedThunder",0,0,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor BossSummonerMid : BossSummonerBig
{
Radius 64
Height 64
States
{
  Over:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("BossSummonedMid")
	TNT1 A 0 A_SpawnItemEx("LegRedThunder",0,0,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor BossSummonerSmall : BossSummonerBig
{
Radius 30
Height 56
States
{
  Over:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("BossSummonedSmall")
	TNT1 A 0 A_SpawnItemEx("LegRedThunder",0,0,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR LegendaryFriendlyPowerSpawner : Crusaderbuff
{
States
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 A_SpawnItemEx("LegendaryFriendlyPowerSummon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid-1)
	stop
	}
}

ACTOR LegendaryFriendlyPowerSummon : NemesisHKSummoner
{
+FRIENDLY
States
{
   Spawn:
    TNT1 A 0
	TNT1 A 0 A_SetAngle(random(0,359))
	TNT1 A 1 A_Recoil(-40)
	TNT1 A 0 A_JumpIf(user_limit > 3,"Death")
	TNT1 A 0 A_SetUserVar("user_limit",user_limit+1)
	TNT1 A 1 A_Recoil(-4)
	TNT1 A 2 A_Jump(48,"Death")
    Goto Spawn+3
   Death:
    TNT1 A 5 A_SpawnItemEx("BossSummonerFriendly",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor BossSummonerFriendly : BossSummonerBig
{
Radius 30
Height 56
+FRIENDLY
States
{
  Over:
	TNT1 A 0 A_Jump(255,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29)
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryImp2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryPhaseImp2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryRevolverZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryCowboy2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryAssaultCaptain2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryLieutenant2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendarySuperShotgunZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryQuadShotgunZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryProShotgunner2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryCatharsi2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryPlasmaGunner2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendarySegwayZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyEpicLegendaryZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryRailgunZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryDevastatorZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryDoomguySpawned",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryChainsawZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryStealthTrooper2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryLeader2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryAnnihilatorImp2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("NewFriendlyLegendaryPlasmaGunner2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyHEMLegendaryStealthTrooper2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryCommando2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyStoneLegendaryCommando2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryGeneral2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryColonel2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyLegendaryPyroZombie2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
	TNT1 A 0 A_SpawnItemEx("FriendlyGeneralRoasterock2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS,0,tid)
	Goto ReallyOver
  ReallyOver:
	TNT1 A 0 A_SpawnItemEx("LegRedThunder",0,0,0)
	TNT1 A 1 A_Fall
	Stop
	}
}

ACTOR BossSummonedSmall : RandomSpawner
{
Dropitem "LegendaryApparition", 256, 5
Dropitem "LegendaryLurker", 256, 5
DropItem "CorruptedFiend", 256, 5
Dropitem "LegendaryFiend", 256, 5
DropItem "LegendaryChainsawZombie", 256, 5
Dropitem "LegendarySuicideBomber", 256, 5
DropItem "LegendaryBeheadedKamikaze", 256, 5
Dropitem "LegendaryImp", 256, 5
Dropitem "LegendaryPhaseImp", 256, 5
Dropitem "LegendaryAnnihilatorImp", 256, 5
Dropitem "LegendaryNightmare", 256, 5
Dropitem "LegendaryCatharsi", 256, 5
Dropitem "LegendaryUberCommando", 256, 5
Dropitem "LegendaryCommando", 256, 5
Dropitem "LegendaryAdmiral", 256, 5
Dropitem "LegendaryGeneral", 256, 5
Dropitem "LegendaryStealthTrooper", 256, 5
Dropitem "HEMLegendaryStealthTrooper", 256, 5
Dropitem "StoneLegendaryCommando", 256, 5
Dropitem "LegendaryAutogunner", 256, 5
Dropitem "GeneralRoasterock", 256, 5
Dropitem "LegendaryGeneralRoasterock", 256, 5
Dropitem "Marauder", 256, 5
Dropitem "LegendaryDoomguy", 256, 5
Dropitem "ClassicLegendaryDoomguy", 256, 5
Dropitem "CorruptedAssaultCaptainSpawnerInfinity", 256, 5
Dropitem "LegendaryAssaultCaptain", 256, 5
Dropitem "LegendaryLieutenant", 256, 5
Dropitem "LegendaryDevastatorZombie", 256, 5
Dropitem "LegendaryQuadShotgunZombie", 256, 5
DropItem "LegendaryJetpackZombie", 256, 5
Dropitem "LegendaryColonel", 256, 5
Dropitem "LegendaryPyroZombie", 256, 5
Dropitem "LegendaryZombie", 256, 5
Dropitem "LegendaryLeader", 256, 5
DropItem "LegendarySegwayZombie", 256, 5
Dropitem "LegendaryPlasmaGunner", 256, 5
DropItem "LegendaryRevolverZombie", 256, 5
DropItem "LegendaryRailgunZombie", 256, 5
Dropitem "EnragedLegendaryFiend", 256, 3
Dropitem "EnragedLegendarySuicideBomber", 256, 3
Dropitem "EnragedLegendaryImp", 256, 3
Dropitem "EnragedLegendaryPhaseImp", 256, 3
Dropitem "EnragedLegendaryCyberImp", 256, 3
Dropitem "EpicLegendaryZombie2", 256, 3
Dropitem "EnragedLegendaryZombie", 256, 3
Dropitem "EnragedLegendaryRevolverZombie", 256, 3
Dropitem "AngryLegendaryZombie", 256, 3
Dropitem "EnragedLegendaryAssaultCaptain", 256, 3
Dropitem "EnragedLegendaryLieutenant", 256, 3
Dropitem "EnragedLegendaryCommando", 256, 3
Dropitem "EnragedLegendaryStealthTrooper", 256, 3
Dropitem "ActuallyBadEnragedLegendaryDoomguy", 256, 3
Dropitem "EnragedLegendaryDoomguy", 256, 3
Dropitem "EnragedLegendaryGeneral", 256, 3
Dropitem "EnragedLegendaryGeneralRoasterock", 256, 3
Dropitem "TrueDarkLegendaryGeneralRoasterock", 256, 3
Dropitem "NemesisZombie", 256, 1
Dropitem "NemesisBandit", 256, 1
Dropitem "NemesisRevolverZombie", 256, 1
Dropitem "NemesisCowboy", 256, 1
DropItem "HackroidZombie", 256, 1
Dropitem "CursedZombie", 256, 1
Dropitem "Chameleon", 256, 1
DropItem "TerrorZombie", 256, 1
Dropitem "NemesisAssaultCaptain", 256, 1
Dropitem "NemesisLieutenant", 256, 1
DropItem "NemesisSuperShotgunZombie", 256, 1
DropItem "HackroidAssaultCaptain", 256, 1
Dropitem "NemesisCommando", 256, 1
Dropitem "NemesisStealthTrooper", 256, 1
Dropitem "NemesisRebelSoldier", 256, 1
Dropitem "CorruptedCommando", 256, 1
Dropitem "PhaseCommando", 256, 1
Dropitem "HellfireCommando", 256, 1
Dropitem "SacrosanctCommando", 256, 1
Dropitem "NemesisUberCommando", 256, 1
Dropitem "NemesisGeneral", 256, 1
Dropitem "NemesisDoomSlayer", 256, 1
Dropitem "NemesisGeneralRoasterock", 256, 1
Dropitem "NemesisImp", 256, 1
Dropitem "NemesisPhaseImp", 256, 1
Dropitem "CursedImp", 256, 1
Dropitem "TerrorShamanImp", 256, 1 //Move to cyber???
Dropitem "CerebralShadowBoss", 256, 1
Dropitem "NemesisSuicideBomber", 256, 1
Dropitem "NemesisFiend", 256, 1
DropItem "NemesisChainsawZombie", 256, 1
DropItem "HackroidBeheadedKamikaze", 256, 1
DropItem "AtomicSoul", 256, 1
}

ACTOR BossSummonedMid : RandomSpawner
{
Dropitem "LegendaryVile", 256, 5
Dropitem "LegendaryCrusader", 256, 5
Dropitem "LegendaryVessel", 256, 5
DropItem "LegendaryCybruiser", 256, 5
Dropitem "LegendaryCyberNoble", 256, 5
Dropitem "LegendaryBelphegor", 256, 5
Dropitem "NewLegendaryAfrit", 256, 5
Dropitem "NewLegendaryArchon", 256, 5
Dropitem "CLLesserCardinalStandAlone", 256, 5
Dropitem "LegendaryHellKnight", 256, 5
Dropitem "LegendaryRevenant", 256, 5
Dropitem "SanaeKochiya", 256, 5
Dropitem "LegendaryBehemoth", 256, 5
Dropitem "HellfireBabySentientStandAlone", 256, 5
Dropitem "LegendaryBabySentient", 256, 5
Dropitem "LegendaryBabyDemolisher", 256, 5
Dropitem "EpicLegendaryBabyDemolisher", 256, 5
Dropitem "TLBSstandalone", 256, 5
Dropitem "CLBabySentientStandAlone", 256, 5
Dropitem "LegendaryTormentor", 256, 5
Dropitem "LegendaryRedeemer", 256, 5
Dropitem "LegendaryNecromancer", 256, 5
Dropitem "BloodyFlandre", 256, 5
Dropitem "Lamia", 256, 5
Dropitem "Uroboros", 256, 5
Dropitem "Tatsuya", 256, 5
Dropitem "9", 256, 5
Dropitem "ChaosSheepsheadWrasse", 256, 5
Dropitem "EnragedLegendaryRedeemer", 256, 3
Dropitem "EnragedLegendaryNecromancer", 256, 3
Dropitem "EnragedLegendaryTormentor", 256, 3
Dropitem "EnragedLegendaryBabySentient", 256, 3
Dropitem "ManipulatorStandalone", 256, 3
Dropitem "EnragedLegendaryBehemoth", 256, 3
Dropitem "EnragedLegendaryRevenant", 256, 3
Dropitem "EnragedLegendaryHellKnight", 256, 3
Dropitem "EnragedLegendaryAfrit", 256, 3
Dropitem "EnragedLegendaryArchon", 256, 3
Dropitem "EnragedLegendaryCybruiser", 256, 3
Dropitem "EnragedLegendaryBelphegor", 256, 3
Dropitem "DementedCydestroyer", 256, 3
Dropitem "LordAsmodeus", 256, 3
Dropitem "EnragedLegendarySummoner", 256, 3
Dropitem "MakaiSlut", 256, 3
Dropitem "NemesisDefiler", 256, 1
Dropitem "NemesisBloodMage", 256, 1
Dropitem "NemesisRedeemer", 256, 1
Dropitem "NemesisTormentor", 256, 1
Dropitem "NemesisBabySentient", 256, 1
Dropitem "NemesisBehemoth", 256, 1
Dropitem "NemesisRevenant", 256, 1
Dropitem "NemesisSummonerRevenant", 256, 1
DropItem "CursedRevenant", 256, 1
Dropitem "NemesisHellKnight", 256, 1
Dropitem "CursedHellKnight", 256, 1
DropItem "Obliterator", 256, 1
Dropitem "NemesisCyberNoble", 256, 1
Dropitem "NemesisAssaultKnight", 256, 1
Dropitem "InsanityClockworkCydestroyer", 256, 1
Dropitem "Medeus", 256, 1
DropItem "CursedCyberNoble", 256, 1
Dropitem "NemesisBelphegor", 256, 1
Dropitem "NemesisExile", 256, 1
Dropitem "NexusSpookyDingy", 256, 1 //Yes... even these fucks also apply
}

ACTOR BossSummonedBig : RandomSpawner
{
Dropitem "DarkInquisitor", 256, 1
DropItem "Frostdemon", 256, 1
Dropitem "CorruptedCardinal", 256, 1
DropItem "ElKing", 256, 1
Dropitem "Nifara", 256, 1
Dropitem "HellishAvatar", 256, 1
Dropitem "Electrotaur", 256, 1
Dropitem "EvilBaron", 256, 1
Dropitem "LegendaryCyberdemon", 256, 1
Dropitem "CorruptedFan", 256, 1
DropItem "Freezemotaur", 256, 1
Dropitem "Plamexis", 256, 1
Dropitem "SuperBFGCyberdemon", 256, 1
DropItem "Badenenen", 256, 1
DropItem "Battlelord", 256, 1
Dropitem "Exos", 256, 1
DropItem "NewMaephisto", 256, 1
DropItem "OMEGA_BARNEY", 256, 1
DropItem "SirUndead1", 256, 1
DropItem "SuperRedCardinal", 256, 1
DropItem "NewPhaseCyberdemon", 256, 1
DropItem "SuperweaponCyberdemon", 256, 1
Dropitem "HellfrostAnnihilator", 256, 1
Dropitem "DeathLord", 256, 1
DropItem "Supremotaur", 256, 1
Dropitem "BlueCardihilator", 256, 1
Dropitem "ClockworkBanelord", 256, 1
Dropitem "LegendaryHellSmith", 256, 1
Dropitem "Utsuho", 256, 1
Dropitem "AnointedApprentice", 256, 1
Dropitem "HellfireInfernoDemon", 256, 1
Dropitem "TheLastPlague", 256, 1
Dropitem "CyberSmith", 256, 1
Dropitem "LegendaryAnnihilator", 256, 1
Dropitem "LegendaryDesolator", 256, 1
Dropitem "EnragedLegendaryCyberdemon", 256, 1
Dropitem "EnragedLegendaryCardinal", 256, 1
Dropitem "NemesisCyberdemon", 256, 1
Dropitem "NemesisAnnihilator", 256, 1
Dropitem "TeleporterFastBFG10kCyberDemon", 256, 1
Dropitem "SandLord", 256, 1
Dropitem "Jorg", 256, 1
DropItem "Maephisto", 256, 1
Dropitem "EnragedLegendaryCardihilator", 256, 1
Dropitem "PhaseTerminator", 256, 1
Dropitem "BadTrueLegendaryAnnihilator", 256, 1
DropItem "NewNemesisCardinal", 256, 1
Dropitem "Arcradimus", 256, 1
DropItem "HellsMinister", 256, 1
Dropitem "NewLegendaryCardinal", 256, 1
Dropitem "HellFireCyberdemon", 256, 1
Dropitem "CyberdemonCommander", 256, 1
Dropitem "RMTerminator", 256, 1
Dropitem "DementedTerminator", 256, 1
Dropitem "AbyssalSatyr", 256, 1
Dropitem "Moloch", 256, 1
Dropitem "ActuallyGoodHeresiarch", 256, 1
Dropitem "LegendaryTerminator", 256, 1
Dropitem "EnragedLegendaryTerminator", 256, 1
Dropitem "Corruption", 256, 1
Dropitem "LordArchon", 256, 1
Dropitem "LordOfInsanity", 256, 1
Dropitem "Hulk", 256, 1
Dropitem "TarmidhesHosavo", 256, 1
DropItem "NewCorruptedLegendaryCardinal", 256, 1
DropItem "HellfireCardinal", 256, 1
DropItem "NemesisTerminator", 256, 1
DropItem "ZamasuCyberdemon", 256, 1
DropItem "NemHellsmith", 256, 1
DropItem "Hellsmith", 256, 1
DropItem "Pain", 256, 1
Dropitem "MagaReimu", 256, 1
Dropitem "Hibachi", 256, 1
Dropitem "Mainyu", 256, 1
Dropitem "NemesisRemilia", 256, 1
DropItem "Baal2", 256, 1
Dropitem "MephistoVileBoss", 256, 1
Dropitem "LegendaryDemolisher", 256, 1
Dropitem "CorruptedSentient", 256, 1
DropItem "ElementalOfHell", 256, 1
DropItem "CerebralWarMachine", 256, 1
Dropitem "HellfrostSentient", 256, 1
Dropitem "CerebralCardihilator", 256, 1
Dropitem "SacrosanctOverseer", 256, 1
DropItem "ElKing", 256, 1
Dropitem "InsaneWritheQueen", 256, 1
Dropitem "CerebralCardihilation", 256, 1
Dropitem "LegendarySentient", 256, 1
Dropitem "ActuallyGoodLegendaryDemolisher", 256, 1
Dropitem "PranksterLegendarySentient", 256, 1
Dropitem "sin-genjitsu3", 256, 1
Dropitem "HeavyLandCarrier", 256, 1
Dropitem "ArmamentArmedArm", 256, 1
Dropitem "PhaseFoldingFan", 256, 1
Dropitem "ChaosStormCauser", 256, 1
Dropitem "EnragedLegendarySentient", 256, 1
Dropitem "NemesisSentient", 256, 1
Dropitem "VexedNemesisDemolisher", 256, 1
Dropitem "Zuromo", 256, 1
Dropitem "NewHellfireSentient", 256, 1
Dropitem "Sandstorm", 256, 1
Dropitem "NewOverlord", 256, 1
Dropitem "EvaccanniaDOOM", 256, 1
Dropitem "CorruptedLegendarySentient", 256, 1
Dropitem "CerebralCommander", 256, 1
DropItem "Mokou", 256, 1
}

//--------UAC SUPPORTER-------

ACTOR UACSupporterMode1 : Inventory { Inventory.MaxAmount 1 }
ACTOR UACSupporterMode2 : Inventory { Inventory.MaxAmount 1 }
ACTOR UACSupporterCounter : Inventory { Inventory.MaxAmount 5 }

Actor UACSupporterWeapon : FailedSummonerWeapon //Teamwork
{ //Scripted (Weapon cannot be selected by the action hotkey, massively breaking the weapon)
Weapon.PreferredSkin "Util-Marine"
Weapon.AmmoType1 "UtilityCache"
Weapon.UpSound "freeze/up"
Weapon.AmmoGive 0
Tag "Utility Gun"
+WEAPON.AMMO_OPTIONAL
+NOAUTOFIRE
States
{
  Select: 
	TNT1 A 0 A_Raise
	UTIL A 1 A_Raise 
	Loop
  Deselect:
    TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	UTIL A 1 A_Lower
	Goto Deselect+1
  Ready:
    UTIL A 1 A_WeaponReady
	Loop
  Fire:
    TNT1 A 0 A_TakeInventory("UACSupporterCounter",5)
	TNT1 A 0 A_JumpIfInventory("UACSupporterMode1",1,"SpawnTurret")
    TNT1 A 0 A_JumpIfInventory("UACSupporterMode2",1,"SpawnMarine")
    TNT1 A 0 A_JumpIfInventory("UtilityCache",60,1)
	Goto Nope
  SpawnBackpackLoop:
    TNT1 A 0 A_JumpIfInventory("UACSupporterCounter",4,"SpawnBackpackSpawned")
	UTIL A 3 A_GunFlash
	UTIL B 3 Bright A_SpawnItemEx("NexusBackpackMarker",78,0,16)
	TNT1 A 0 A_GiveInventory("UACSupporterCounter",1)
	TNT1 A 0 A_Refire("SpawnBackpackLoop")
	Goto Ready
  SpawnBackpackSpawned:
	TNT1 A 0 A_TakeInventory("UtilityCache",60)
    UTIL B 3 Bright A_SpawnItemEx("UtilityRandomBackpack",78,0,16,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid-1)
    Goto Ready
  SpawnTurret:
    TNT1 A 0 A_JumpIfInventory("UtilityCache",100,1)
	Goto Nope
  SpawnTurretLoop:
    TNT1 A 0 A_JumpIfInventory("UACSupporterCounter",4,"SpawnTurretSpawned")
	UTIL A 3 A_GunFlash
	UTIL B 3 Bright A_SpawnItemEx("NexusTurretMarker",78,0,16)
	TNT1 A 0 A_GiveInventory("UACSupporterCounter",1)
	TNT1 A 0 A_Refire("SpawnTurretLoop")
	Goto Ready
  SpawnTurretSpawned:
	TNT1 A 0 A_TakeInventory("UtilityCache",100)
    UTIL B 3 Bright A_SpawnItemEx("UtilityTurretSpawner",78,0,16,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid-1)
    Goto Ready
  SpawnMarine:
    TNT1 A 0 A_JumpIfInventory("UtilityCache",140,1)
	Goto Nope
  SpawnMarineLoop:
    TNT1 A 0 A_JumpIfInventory("UACSupporterCounter",4,"SpawnMarineSpawned")
	UTIL A 3 A_GunFlash
	UTIL B 3 Bright A_SpawnItemEx("NexusMarineMarker",78,0,16)
	TNT1 A 0 A_GiveInventory("UACSupporterCounter",1)
	TNT1 A 0 A_Refire("SpawnMarineLoop")
	Goto Ready
  SpawnMarineSpawned:
	TNT1 A 0 A_TakeInventory("UtilityCache",140)
    UTIL B 3 Bright A_SpawnItemEx("UtilityMarineSpawner",78,0,16,0,0,0,0,SXF_NOCHECKPOSITION|SXF_SETMASTER,0,tid-1)
    Goto Ready
  Nope:
    UTIL C 15 Bright A_PlaySound("sentry/warn")
	Goto Ready
  AltFire:
	TNT1 A 0 A_JumpIfInventory("UACSupporterMode2",1,"Altfire3")
	TNT1 A 0 A_JumpIfInventory("UACSupporterMode1",1,"Altfire2")
	UTIL A 1
	TNT1 A 0 A_Playsound("NemesisMinigun/change")
	TNT1 A 0 A_GiveInventory("UACSupporterMode1")
	TNT1 A 0 A_Print("Turrets/Sentries (costs 100)")
	UTIL A 2 Offset(0,34)
	UTIL A 2 Offset(0,37)
	UTIL A 2 Offset(0,34)
	UTIL A 1
	TNT1 A 0 A_Refire("NoAutoAltFire")
	Goto Ready
  Altfire2:
	UTIL A 1
	TNT1 A 0 A_Playsound("NemesisMinigun/change")
	TNT1 A 0 A_TakeInventory("UACSupporterMode1")
	TNT1 A 0 A_GiveInventory("UACSupporterMode2")
	TNT1 A 0 A_Print("Marines (costs 140)")
	UTIL A 2 Offset(0,34)
	UTIL A 2 Offset(0,37)
	UTIL A 2 Offset(0,34)
	UTIL A 1
	TNT1 A 0 A_Refire("NoAutoAltFire")
	Goto Ready
  Altfire3:
	UTIL A 1
	TNT1 A 0 A_Playsound("NemesisMinigun/change")
	TNT1 A 0 A_TakeInventory("UACSupporterMode2")
	TNT1 A 0 A_Print("Backpacks (costs 60)")
	UTIL A 2 Offset(0,34)
	UTIL A 2 Offset(0,37)
	UTIL A 2 Offset(0,34)
	UTIL A 1
	TNT1 A 0 A_Refire("NoAutoAltFire")
	Goto Ready
  NoAutoAltFire:
	UTIL A 1
	UTIL A 1 A_Refire("NoAutoAltFire")
	Goto Ready
  Flash:
	TNT1 A 5 A_Light1
	TNT1 A 6 A_Light2
	TNT1 A 5 A_Light1
	TNT1 A 0 A_Light0
	Stop
	}
}

Actor UtilityTurretSpawner : MarineBeaconActivatedSpawners
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_Jump(64,"Turret","Plasma")
	TNT1 A 0 A_PlaySound("DTechSentry/use")
	TNT1 A 0 A_Jump(255,1,2,3,4,5)
    TNT1 A 1 A_SpawnItemEx("AlliedSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedExSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedSniperSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedRailSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedImprovedSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
  Plasma:
    TNT1 A 0 A_PlaySound("DTechSentry/use")
    TNT1 A 0 A_Jump(255,1,2,3,4,5)
    TNT1 A 1 A_SpawnItemEx("AlliedDemonTechSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedExDemonTechSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedPhaseDemonTechSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedEmpoweredDemonTechSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("AlliedSuperChargedDemonTechSentryGun",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
  Turret:
    TNT1 A 0 A_PlaySound("turret/use")
    TNT1 A 0 A_Jump(255,1,2,3,4)
    TNT1 A 1 A_SpawnItemEx("RocketTurret",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("BFG10KTurret",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("DeathTurret",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
    TNT1 A 1 A_SpawnItemEx("FreezeTurret",0,0,0,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	}
}

Actor UtilityRandomBackpack : RandomSpawner
{
Dropitem "ArkCombatpack", 256, 10
Dropitem "LiteCombatpack", 256, 9
Dropitem "FullCombatpack", 256, 8
Dropitem "ExplosiveCombatpack", 256, 7
Dropitem "EnergyCombatpack", 256, 6
Dropitem "CapacityCombatpack", 256, 5
Dropitem "LegendaryCombatpack", 256, 3
Dropitem "NemesisCombatpack", 256, 1
}

Actor UtilityMarineSpawner : MarineBeaconActivatedSpawners
{
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItem("UtilityMarinePowerLines")
	TNT1 A 0 A_PlaySound("utility/marinespawned")
	TNT1 A 0 A_Jump(255,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41)
    TNT1 A 1 A_SpawnItemEx("UACGuyDBFGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyARUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMachinegunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMP40Util",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyPistolsUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyASGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuySSGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyQSGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyHSGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyRapidShotgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyExplosiveShotgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyExpSSGUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuySniperUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyChaingunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMinigunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyExpMinigunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyRocketUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyHRLUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMRLUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyGuardianUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyBehemothUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyPlasmaUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyPlasmaRepeaterUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyFreezerUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyRailgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyExplosiveRailgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyDTRifleUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyDTRailgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyDTShotgunUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMinerUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyMedicUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("UACGuyDispenserUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyTechVulcanUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyTechRipperUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyTechBlasterUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyExARUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyBarbatosUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyBFG10KUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyExNailgunKUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyBFG15KUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
	TNT1 A 1 A_SpawnItemEx("TaskForceGuyEFG9000KUtil",0,0,12,0,0,0,0,32|SXF_TRANSFERPOINTERS,0,tid)
	Goto End
   End:
    TNT1 AAAAAA 3 A_SpawnItem("UtilityCirclePadEffect")
	TNT1 A 1 A_Fall
	Stop
	}
}

Actor TaskForceGuyEFG9000KUtil : TaskForceGuyEFG9000
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[x1]EFG 9000\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PRDM AAAAAAAAAA 1 A_FadeIn(0.1)
	PRDM A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyBFG15KUtil : TaskForceGuyBFG15K
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]BFG15K\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PKSW AAAAAAAAAA 1 A_FadeIn(0.1)
	PKSW A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyExNailgunKUtil : TaskForceGuyExNailgun
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Explosive Nailgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PNLG AAAAAAAAAA 1 A_FadeIn(0.1)
	PNLG A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyBFG10KUtil : TaskForceGuyBFG10K
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]BFG10K\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PB10 AAAAAAAAAA 1 A_FadeIn(0.1)
	PB10 A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyBarbatosUtil : TaskForceGuyBarbatos
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Barbatos Cannon\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PUNM AAAAAAAAAA 1 A_FadeIn(0.1)
	PUNM A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyExARUtil : TaskForceGuyExAR
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Explosive Assault Rifle\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLAY AAAAAAAAAA 1 A_FadeIn(0.1)
	PLAY A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyTechBlasterUtil : TaskForceGuyTechBlaster
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Blaster\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	P2TS AAAAAAAAAA 1 A_FadeIn(0.1)
	P2TS A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyTechRipperUtil : TaskForceGuyTechRipper
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Ripper\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PSTN AAAAAAAAAA 1 A_FadeIn(0.1)
	PSTN A 10 A_Look
	Goto Idle
	}
}

Actor TaskForceGuyTechVulcanUtil : TaskForceGuyTechVulcan
{
Tag "\c[a4]Task Force \c[v2]Marine - \c[d4]Tech Vulcan\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PL42 AAAAAAAAAA 1 A_FadeIn(0.1)
	PL42 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyDispenserUtil : UACGuyDispenser
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Dispenser\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PB4K AAAAAAAAAA 1 A_FadeIn(0.1)
	PB4K A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMedicUtil : UACGuyMedic
{
Tag "\c[a6]UAC \c[v2]Marine - \c[n7]Medic\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PM3D AAAAAAAAAA 1 A_FadeIn(0.1)
	PM3D A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMinerUtil : UACGuyMiner
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Miner\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PMNE AAAAAAAAAA 1 A_FadeIn(0.1)
	PMNE A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyDTShotgunUtil : UACGuyDTShotgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Demon Tech Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	P2TS AAAAAAAAAA 1 A_FadeIn(0.1)
	P2TS A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyDTRailgunUtil : UACGuyDTRailgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Demon Tech Railgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PDTR AAAAAAAAAA 1 A_FadeIn(0.1)
	PDTR A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyDTRifleUtil : UACGuyDTRifle
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Demon Tech Rifle\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PRAI AAAAAAAAAA 1 A_FadeIn(0.1)
	PRAI A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyExplosiveRailgunUtil : UACGuyExplosiveRailgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Explosive Railgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PSTN AAAAAAAAAA 1 A_FadeIn(0.1)
	PSTN A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyRailgunUtil : UACGuyRailgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Railgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PDTR AAAAAAAAAA 1 A_FadeIn(0.1)
	PDTR A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyFreezerUtil : UACGuyFreezer
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Freezer Rifle\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PION AAAAAAAAAA 1 A_FadeIn(0.1)
	PION A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyPlasmaRepeaterUtil : UACGuyPlasmaRepeater
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Plasma Repeater\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PREP AAAAAAAAAA 1 A_FadeIn(0.1)
	PREP A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyPlasmaUtil : UACGuyPlasma
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Plasma Rifle\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLA6 AAAAAAAAAA 1 A_FadeIn(0.1)
	PLA6 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyBehemothUtil : UACGuyBehemoth
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Behemoth Cannon\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PUNM AAAAAAAAAA 1 A_FadeIn(0.1)
	PUNM A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyGuardianUtil : UACGuyGuardian
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Guardian Armor\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PR3V AAAAAAAAAA 1 A_FadeIn(0.1)
	PR3V A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMRLUtil : UACGuyMRL
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Mini Rocket Launcher\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PBAZ AAAAAAAAAA 1 A_FadeIn(0.1)
	PBAZ A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyHRLUtil : UACGuyHRL
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Homing Rocket Launcher\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PHRL AAAAAAAAAA 1 A_FadeIn(0.1)
	PHRL A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyRocketUtil : UACGuyRocket
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Rocket Launcher\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLA5 AAAAAAAAAA 1 A_FadeIn(0.1)
	PLA5 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyExpMinigunUtil : UACGuyExpMinigun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Explosive Minigun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	XPMS AAAAAAAAAA 1 A_FadeIn(0.1)
	XPMS A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMinigunUtil : UACGuyMinigun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Minigun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PL42 AAAAAAAAAA 1 A_FadeIn(0.1)
	PL42 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyChaingunUtil : UACGuyChaingun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Chaingun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLR4 AAAAAAAAAA 1 A_FadeIn(0.1)
	PLR4 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuySniperUtil : UACGuySniper
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Sniper\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PSNP AAAAAAAAAA 1 A_FadeIn(0.1)
	PSNP A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyExpSSGUtil : UACGuyExpSSG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Explosive Super Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PNLG AAAAAAAAAA 1 A_FadeIn(0.1)
	PNLG A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyExplosiveShotgunUtil : UACGuyExplosiveShotgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Explosive Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PL32 AAAAAAAAAA 1 A_FadeIn(0.1)
	PL32 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyRapidShotgunUtil : UACGuyRapidShotgun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Rapid Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PSUC AAAAAAAAAA 1 A_FadeIn(0.1)
	PSUC A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyHSGUtil : UACGuyHSG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Hexa Barrel Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PHET AAAAAAAAAA 1 A_FadeIn(0.1)
	PHET A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyARUtil : UACGuyAR
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Assault Rifle\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLAY AAAAAAAAAA 1 A_FadeIn(0.1)
	PLAY A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMachinegunUtil : UACGuyMachinegun
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Machinegun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	MGMR AAAAAAAAAA 1 A_FadeIn(0.1)
	MGMR A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyMP40Util : UACGuyMP40
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]MP40\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PSMG AAAAAAAAAA 1 A_FadeIn(0.1)
	PSMG A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyPistolsUtil : UACGuyPistols
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Pistols\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	DU3L AAAAAAAAAA 1 A_FadeIn(0.1)
	DU3L A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyASGUtil : UACGuyASG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Assault Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PASG AAAAAAAAAA 1 A_FadeIn(0.1)
	PASG A 10 A_Look
	Goto Idle
	}
}

Actor UACGuySSGUtil : UACGuySSG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Double Barrel Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PLA9 AAAAAAAAAA 1 A_FadeIn(0.1)
	PLA9 A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyQSGUtil : UACGuyQSG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]Quad Barrel Shotgun\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PQST AAAAAAAAAA 1 A_FadeIn(0.1)
	PQST A 10 A_Look
	Goto Idle
	}
}

Actor UACGuyDBFGUtil : UACGuyDBFG
{
Tag "\c[a6]UAC \c[v2]Marine - \c[m3]D-BFG\c-"
Alpha 0
States
{
  Spawn:
    TNT1 A 0
	PBDB AAAAAAAAAA 1 A_FadeIn(0.1)
	PBDB A 10 A_Look
	Goto Idle
	}
}

Actor UtilityMarinePowerLines
{
+NOTIMEFREEZE
+CLIENTSIDEONLY
States
{
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAA 0 A_SpawnItemEx("LongGreenPowerLine",random(32,-32),random(32,-32),random(8,48),0,0,random(1,4),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,160)
	TNT1 A 1 A_SpawnItemEx("LongGreenPowerLine",random(32,-32),random(32,-32),random(8,48),0,0,random(1,4),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,160)
	Stop
    }
}

Actor UtilityCirclePadEffect : GreenCirclePadEffect
{
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_radius",32)
	TNT1 A 0 A_SetUserVar("user_speed",4)
    Goto Effect
}            
}

Actor NexusMarineMarker : BaseMarker //BaseMarker in TLCA NaziUtilityGuy
{

States
{
  Spawn:
    PLAY A 0
    PLAY A 6 Bright A_PlaySound("utility/build")
    Stop
  }
}

Actor NexusTurretMarker : BaseMarker
{
States
{
  Spawn:
    S3NT A 0
    S3NT A 6 Bright A_PlaySound("utility/build")
    Stop
  }
}

Actor NexusBackpackMarker : BaseMarker
{
States
{
  Spawn:
    CFLT A 0
    CFLT A 6 Bright A_PlaySound("utility/build")
    Stop
  }
}


Actor UtilityCache : Ammo
{
Inventory.Icon "SPEAMA0"
Inventory.Amount 1
Inventory.MaxAmount 9999
Ammo.BackpackAmount 0
}


//-----------JUMPER-----------
Actor JumperWeapon : FailedSummonerWeapon
{ //Scripted (Weapon cannot be selected by the action hotkey, massively breaking the weapon)
Tag "Jumper power"
States
{
  Select: 
	TNT1 A 0 A_Raise
	JUMQ A 1 A_Raise 
	Loop
  Deselect: 
	TNT1 A 0 A_Lower
	JUMQ "X" 1 A_Lower
	Loop
  Ready:
    TNT1 A 0 A_Playsound("Spellbook/Charge")
	JUMQ A 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ B 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ C 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ D 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ E 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ F 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ G 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ H 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ I 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ J 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ K 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ L 2 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ M 2 Bright
  ReadyLoop:
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
    JUMQ N 1 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ O 1 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ P 1 Bright
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldToken",1,1)
	Goto ReadyFinish
	JUMQ Q 1 Bright
	Loop
  ReadyFinish:
    TNT1 A 0 A_JumpIfInventory("DPRJumperHoldFail",1,"ReadyFail")
    JUMQ RSTUVWX 2 Bright
	TNT1 A 1 A_WeaponReady(WRF_NOFIRE)
	Wait
  ReadyFail:
    TNT1 A 0 A_TakeInventory("DPRJumperHoldFail",1)
    JUMQ MLKJI 2 Bright
	JUMQ HGFEDCBA 1 Bright
	TNT1 A 1 A_WeaponReady(WRF_NOFIRE)
	Wait
	}
}

Actor JumperPuff
{
Radius 16
Height 56
+NOTIMEFREEZE
+NOGRAVITY
+NOBLOCKMAP
+PAINLESS
+BLOODLESSIMPACT
+NODAMAGETHRUST
+NOTRIGGER
+DONTREFLECT
+DONTSPLASH
+FOILINVUL
+HITTRACER
+PUFFONACTORS
+PUFFGETSOWNER
+NOTONAUTOMAP
States
{
  Spawn:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSetCoordinates",0)
	TNT1 A 2
	Stop
  Crash:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSetCoordinates",0)
	TNT1 A 2
	Stop
  Death:
  XDeath:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSetCoordinates",0)
	TNT1 A 2
	Stop
	}
}

Actor JumperPuff2 : JumperPuff
{
States
{
  Spawn:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSpawnShadow",0)
	TNT1 A 2
	Stop
  Crash:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSpawnShadow",0)
	TNT1 A 2
	Stop
  Death:
  XDeath:
	TNT1 A 1 ACS_NamedExecuteAlways("JumperSpawnShadow",0)
	TNT1 A 2
	Stop
	}
}

Actor JumperPuff3 : JumperPuff
{
States
{
  Spawn:
	TNT1 A 1
	Stop
  Crash:
	TNT1 A 1
	Stop
  Death:
  XDeath:
	TNT1 A 1
	Stop
	}
}

Actor JumperDummy : JumperPuff
{
Radius 16
Height 56
Alpha 0.5
Renderstyle Add
Translation "1:254=[0,100,0]:[0,255,0]"
+CLIENTSIDEONLY
+NOINTERACTION
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  Crash:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  Death:
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  SpawnGround:
    PLA4 A 2 Bright
	Stop
	}
}

Actor JumperDummy2 : JumperDummy
{
Translation "1:254=[100,0,0]:[255,0,0]"
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  Crash:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  Death:
  XDeath:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(z-floorz <= 14,"SpawnGround")
	PLA4 "X" 2 Bright
	Stop
  SpawnGround:
    PLA4 A 2 Bright
	Stop
	}
}

Actor JumperTeleportEffect : PlanetCrackerImpact1
{
Scale 0.3
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("medeus/vanish")
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ArmorParticlePurple",random(3,-3),random(3,-3),0,random(1,-1),random(1,-1),random(1,-1),random(0,360),0,92)
	TNT1 A 0 A_SpawnItem("JumperPortalEffect",0,-20)
  Looping:
    TNT1 A 0 A_FadeOut(0.07)
    1TSC C 1 Bright
    Loop
  }
}

Actor JumperPortalEffect : JumperTeleportEffect
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
	TNT1 A 0 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
    TNT1 A 1 A_CustomRailgun(0,0,NONE,NONE,RGF_SILENT|RGF_FULLBRIGHT,0,30,"CyberSmithRailPuff",frandom(-70,70),frandom(-70,70),random(80,200),0,2.0,0,"JumperRailParticle",5)
	Stop
	}
}

ACTOR JumperRailParticle : OverseerRailParticle
{
States
{
Spawn:
	CLB4 J 2 Bright
	Stop
	}
}

//-----------COMMANDO------------------
Actor CommandoSentryWeapon : FailedSummonerWeapon
{ //Scripted (If replaced weapon cannot be selected by the action hotkey, massively breaking the weapon)
Tag "Commando Sentry Thrower"
Weapon.PreferredSkin "Fist-Marine"
States
{
  Select: 
    TNT1 A 0 ACS_NamedExecuteWithResult("StartSpreadCheck",0)
	TNT1 A 0 A_Raise
	Wait
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_Lower
    TNT1 A 1 A_Lower
	Goto Deselect+3
  Ready:
    TNT1 A 5
    TNT1 A 0 A_PlayWeaponSound("sentry/throwned")
	HGRN N 1 A_FireCustomMissile("ThrownCommandoSentry",0,0,0,0)
	HGRN OPQRS 1
	HGRN TU 2
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoCounter",0,2100)
    TNT1 A 1 A_WeaponReady(WRF_NOFIRE)
	Wait
	}
}

Actor CommandoSentryInvuln : PowerupGiver
{
  +INVENTORY.AUTOACTIVATE
  +INVENTORY.ALWAYSPICKUP
  +INVENTORY.NOSCREENFLASH
  Inventory.MaxAmount 0
  Powerup.Duration -1
  Powerup.Type "Invulnerable"
  Powerup.Mode Reflective
  Powerup.Color White 0.0
}

Actor ThrownCommandoSentry : ThrownMine
{
Scale 1.0
SeeSound "sentry/hitbounce"
Tag "Some Idiot"
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_StopSound
	TNT1 A 0 Thing_ChangeTid(0,ACS_NamedExecuteWithResult("Hem_GetTID"))
	ADVX A 1
	Wait
  Death:
	ADVX A 35
	TNT1 A 0 A_PlaySound("turret/use")
	TNT1 A 0 A_PlaySound("sentry/explodo",CHAN_WEAPON)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
    TNT1 AAA 0 A_CustomMissile("Kaboom3", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_SpawnItem("RocketEx")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckCommandoSkill") == 1,"NULL")
	ADVX A 1 A_SpawnItemEx("CommandoSentry",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION,0,ACS_NamedExecuteWithResult("GetTargetTID")-6) //-6
	Stop
	}
}

Actor CommandoSentry : AlliedExDemonTechSentryGun
{
DamageFactor 0.4
Health 2000
Tag "\c[l6]Advanced\c- \c[m8]Sentry Gun\c-"
+QUICKTORETALIATE
+LOOKALLAROUND
var int user_alert;
var int user_secondary;
var int user_ammo;
var int user_rocketloop;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoSentryShield",0)
  See:
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoSentryCheckForHelp",0)
	TNT1 A 0 A_Jump(192,2)
	TNT1 A 0 A_JumpIf(user_turretloop > 100,"Reload2")
    ASZZ AAAAAAAAAAAAAAAA 1 A_Chase
	TNT1 A 0 A_SetUserVar(user_alert,0)
	ASZZ AAAAAAAAAAAAAAAA 1 A_Chase
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoSentryCheckForHelp",0)
	ASZZ AAAAAAAAAAAAAAAA 1 A_Chase
	ASZZ AAAAAAAAAAAAAAAA 1 A_Chase
    TNT1 A 0 A_PlaySound("DTechSentry/beep")
	TNT1 A 0 A_ClearTarget
    Loop
  Missile:
    TNT1 A 0 A_JumpIf(user_alert >= 1,"TurretLoop")
	TNT1 A 0 A_SetUserVar(user_alert,1)
	ASZZ A 1 A_FaceTarget
	ASZZ A 3 A_PlaySound("DTechSentry/sight",7)
	ASZZ A 5 A_FaceTarget
  TurretLoop:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo2") < 8,2)
	TNT1 A 0 A_Jump(5,"Rockets")
    TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2),CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2),CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
	Loop
  Rockets:
    TNT1 A 0 A_SetUserVar(user_rocketloop,0)
    TNT1 A 0 A_Jump(128,"Hellstorm")
  Minirockets:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
    TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 A_PlaySound("sentry/rocketfire",5)
	TNT1 A 0 A_CustomMissile("PlayerHEMiniRocket",55,-16,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerHEMiniRocket",55,16,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo2",0,2)
	ASZZ B 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
	TNT1 A 0 A_JumpIf(user_rocketloop >= 3,"TurretLoop")
	TNT1 A 0 A_SetUserVar(user_rocketloop,user_rocketloop+1)
	Loop
  Hellstorm:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
    TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("SentryM2HellStormBomb",55,-16,random(-2,2))
	TNT1 A 0 A_CustomMissile("SentryM2HellStormBomb",55,16,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo2",0,2)
	ASZZ B 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CommandoCheckAmmo") >= 1,1)
	Goto Error
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_turretLoop >= 200,"Reload")
	TNT1 A 0 A_SetUserVar(user_turretLoop,user_turretLoop+1)
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_PlaySound("hitler/fire",CHAN_WEAPON,1.0,0)
	TNT1 A 0 A_SpawnItemEx("RifleCasing",12,6,40,Random(2,6),0,Random(1,4),Random(-80,-90),128)
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,-8,random(-2,2))
	TNT1 A 0 A_CustomMissile("PlayerExplosiveTracer2",43,8,random(-2,2))
	TNT1 A 0 A_CustomMissile("CommandoSentryExplosiveBullet",43,-8,random(-2,2))
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoTakeAmmo",0)
	ASZZ C 1 Bright A_CustomMissile("CommandoSentryExplosiveBullet",46,8,random(-2,2))
	ASZZ A 1 A_CPosRefire
	TNT1 A 0 A_JumpIf(user_rocketloop >= 3,"TurretLoop")
	TNT1 A 0 A_SetUserVar(user_rocketloop,user_rocketloop+1)
	Loop
  Reload:
    TNT1 A 0 A_SetUserVar(user_turretLoop,0)
	ASZZ A 15 A_PlaySound("sentry/warn")
	ASZZ A 40 A_PlaySound("sentry/commandoreload",6)
	TNT1 A 0 A_JumpIfTargetInLOS("TurretLoop")
	Goto See
  Reload2:
    TNT1 A 0 A_SetUserVar(user_turretLoop,0)
	ASZZ A 40 A_PlaySound("sentry/commandoreload",6)
	TNT1 A 0 A_JumpIfTargetInLOS("TurretLoop")
	Goto See
  Error:
    TNT1 A 0 A_JumpIf(user_ammo >= 1,"Error2")
    TNT1 A 0 ACS_NamedExecuteAlways("CommandoSentryNewTag",0)
    ASZZ A 35 A_PlaySound("sentry/warn")
	Goto See
  Error2:
    ASZZ A 35 A_ClearTarget
	Goto See
  Death:
    TNT1 A 0 ACS_NamedExecuteAlways("CommandoDeath",0)
	TNT1 A 0 A_PlaySound("digger/explode")
	TNT1 A 0 Radius_Quake(3,15,0,10,0)
    TNT1 A 0 A_SpawnItemEx("DiggerExplosionFlare",0,0,0,0,0,0,0,128)
    TNT1 A 0 A_SpawnItemEx("DiggerExplosionShockWave",0,0,0,0,0,0,0,128)
	TNT1 AAAAAA 0 A_SpawnItemEx("HugeExplosionParticle",random(64,-64),random(64,-64),random(64,-64),random(8,-8),random(8,-8),random(8,-8),0,128)
	TNT1 AAAAA 0 A_SpawnItemEx("SmokeFX3",random(8,-8),random(8,-8),random(8,-8),random(4,-4),random(4,-4),random(0,3),0,128)
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_Scream
	TNT1 AAAAAAAAAAA 1 A_SpawnItemEx("DiggerExplosionKaboom",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4))
    Stop
	}
}

Actor PlayerHEMiniRocket : PlayerHERocket
{
Speed 50
Damage 8 //120
Damagetype "PlayerDemonicSkill"
Scale 0.5
+SEEKERMISSILE
States
{
  Spawn:
	TNT1 A 0 A_CustomMissile("RocketSmoke",Random(-8,-4),Random(-2,2)) 
	TNT1 AAA 0 A_CustomMissile("NewRockeParticleTrail",Random(-8,-4),Random(-2,2))
    HEM2 B 1 Bright A_SeekerMissile(2,3,SMF_LOOK|SMF_PRECISE,256,16)
	Loop
  Death:
	TNT1 A 0 A_PlaySound("weapons/hgrenadeex",CHAN_BODY)
	TNT1 A 0 A_PlaySound("Explosion",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("FAREXPL",CHAN_VOICE)
	TNT1 A 0 Radius_Quake(2,24,0,15,0)
	TNT1 A 0 A_Explode(50,428,0,0)
	TNT1 A 0 A_Explode(200,300,XF_HURTSOURCE,0)
	TNT1 A 0 A_Explode(450,150,XF_HURTSOURCE,0)
	TNT1 A 0 A_CustomMissile("DiggerExplosion",0,0,random(80,100),2,random(80,100))
    TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,random(4,-4),random(4,-4),random(4,8),0,128)
	TNT1 A 1 A_SpawnItem("DiggerEx2")
    Stop
	}
}

Actor SentryM2HellStormBomb : HellStormBomb 
{ 
Damagetype "PlayerDemonicSkill"
States
{
  Separate:
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
	TNT1 AAA 0 A_StopSound(6)
	TNT1 AAAAAA 0 A_CustomMissile("EFGRocketSmoke",random(4,6),random(-2,2),random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAAAAA 0 A_CustomMissile("EFGRockeParticleTrail",random(4,6),random(-2,2),random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAAAAAAA 0 A_CustomMissile("SentryHellStormBomb1",0,0,random(-11,11),CMF_AIMDIRECTION|CMF_SAVEPITCH|CMF_OFFSETPITCH,frandom(-2.0,2.0))
	TNT1 A 1 A_Stop
	Stop
  Death:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
	TNT1 A 0 A_ScreamAndUnblock
	TNT1 AAA 0 A_StopSound(6)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE)
	TNT1 AAA 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX3",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAAAAA 0 A_CustomMissile("Kaboom",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAA 1 A_SpawnItemEx("SentryFlamethrowerShot",0,0,0,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
	TNT1 A 0 A_SetTranslucent(0.75,1)
	MISL B 4 Bright A_Explode(128,128,1,1)
	MISL CD 4 Bright
	Stop
	}
}

Actor SentryHellStormBomb1 : HellStormBomb1
{
Damagetype "PlayerDemonicSkill"
States
{
  Death:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_SetTranslucent(0.75,1)
	MISL B 8 Bright A_Explode(64,64,1,1)
	TNT1 A 0 A_SpawnItemEx("MarineWelderFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
	MISL C 6 Bright
	MISL D 4 Bright
	Stop
	}
}

Actor SentryFlamethrowerShot : PlayerFlamethrowerShot
{
DamageType "PlayerDemonicSkill"
States
{
  Death:
	TNT1 AAA 0 A_StopSound(CHAN_BODY)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AA 0 A_CustomMissile("Kaboom69",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AA 0 A_CustomMissile("SmokeFX7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 A 0 A_SpawnItemEx("MarineWelderFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
	TNT1 AAAA 0 A_SpawnItemEx("MarineWelderFlare",0,0,0,random(2,4),random(2,4),2,random(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
	FRTM CDE 3 Bright
	Stop
	}
}

ACTOR CommandoSentryShield //Lost my mind a couple times over this
{
Radius 100
Height 120
Health 2500
Mass 0x7FFFFFFF
RenderStyle Add
DamageFactor 0.4
Scale 0.0
Species "Player"
DamageFactor "Melee", 0.0
DamageFactor "Player", 0.0
DamageFactor "Players", 0.0
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "PlayerDevBall", 0.0
DamageFactor "PlayerDevBall2", 0.0
DamageFactor "PlayerDevTracer", 0.0
DamageFactor "PlayerExplosive", 0.0
DamageFactor "PlayerDTRG", 0.0
DamageFactor "PDTBFG", 0.0
DamageFactor "PDTBFGTracer", 0.0
DamageFactor "LegendaryPlayer", 0.0
DamageFactor "LegendaryGuruPlayer", 0.0
DamageFactor "PlayerPyro", 0.0
damageFactor "PlayerFireSword", 0.0
DamageFactor "PlayerBHole", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "Player2hu", 0.0
DamageFactor "TrueLegendaryPlayer", 0.0
//Ark
DamageFactor "PlayerTear", 0.0
DamageFactor "PlayerDBFG2", 0.0
//TXS
DamageFactor "VulcanPlasmaPuff", 0.0
DamageFactor "VulcanLazer", 0.0
DamageFactor "VulcanLazerEffect", 0.0
DamageFactor "Fire", 0.0
DamageFactor "PlayerBrimstone", 0.0
DamageFactor "ChaosC", 0.0
//Friendly Monsters (Marines)
DamageFactor "AllyRail", 0.0
DamageFactor "AllyDTRG", 0.0
DamageFactor "AllyDTRailgun", 0.0
DamageFactor "AllyExplosion", 0.0
DamageFactor "AllyDTPuff", 0.0
DamageFactor "AllyDBFG", 0.0
DamageFactor "PlayerDemonicSkill", 0.0
DamageType "PlayerDemonicSkill"
Tag "Motherfucker" //Tag "\c[n5]Advanced Shield\c-"
-CANPUSHWALLS
-CANUSEWALLS
-ACTIVATEMCROSS
+NOGRAVITY
+SHOOTABLE
+NOTIMEFREEZE
+THRUSPECIES
+MTHRUSPECIES
//+FRIENDLY
//+NOCLIP
+NOBLOOD
+NOICEDEATH
+NEVERTARGET
+NOINFIGHTING
+CANTSEEK
+DONTRIP
+DONTMORPH
+DONTBLAST
+DONTSPLASH
+NOTELEFRAG
+SOLID //-SOLID
+BRIGHT
+NOPAIN
+DONTFALL
+REFLECTIVE //Was this a good idea? Who knows
+SHIELDREFLECT
var int user_secondary;
States
{
  Spawn:
	NADA A 0
	NADA A 0 A_PlaySound("sentry/shielduse",5)
	NADA A 0 A_PlaySound("sentry/shielduse",6)
	NADA A 0 A_PlaySound("sentry/shieldloop",7,1.0,TRUE)
	NADA AAAAAAAAAA 1 A_SetScale(scalex+0.03,scaley+0.03)
  LoopField:
    NADA A 0 A_JumpIf(user_secondary >= 1, "LoopField2")
	NADA A 1 A_RadiusGive("CommandoShieldSoundGiver",180,RGF_PLAYERS|RGF_NOSIGHT,1)
	Loop
  LoopField2:
	NADA A 1 A_RadiusGive("CommandoShieldSoundGiver2",180,RGF_PLAYERS|RGF_NOSIGHT,1)
	Loop
  Death:
	NADA A 0 A_PlaySound("sentry/shielddepleted",5)
	NADA A 0 A_PlaySound("sentry/shielddepleted",6)
	NADA A 0 A_StopSound(7)
	NADA A 1 A_PlaySound("sentry/shielddepleted",7)
    NADA A 1 A_FadeOut(0.05)
	Wait
	}
}

ACTOR CommandoShieldSoundToken : Inventory { Inventory.MaxAmount 1 }
ACTOR CommandoShieldSoundDelay : Inventory { Inventory.MaxAmount 1 }
ACTOR CommandoShieldSoundToken2 : Inventory { Inventory.MaxAmount 1 }
ACTOR CommandoShieldSoundDelay2 : Inventory { Inventory.MaxAmount 1 }

ACTOR CommandoShieldSoundGiver : Crusaderbuff
{
States 
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoShieldSounder",0)
	stop
	}
}

ACTOR CommandoShieldSoundGiver2 : Crusaderbuff
{
States 
{
  Pickup:
	TNT1 A 1
	TNT1 A 0 ACS_NamedExecuteAlways("CommandoShieldSounder",0,1)
	stop
	}
}

Actor CommandoSentryExplosiveBullet : ExplosiveBullet
{
Damagetype "PlayerDemonicSkill"
Speed 500
Decal DoomImpScorch
Damage (random(10,15)) //(random(20,25))
States
{
  Death:
	TNT1 A 0 A_Playsound("PulseNail/hit",CHAN_AUTO,1.0,0)
	TNT1 A 0 A_Explode(12,95,0,0,78) //A_Explode(25,95,0,0,78)
	TNT1 AAA 0 A_SpawnItemEX("Kaboom9",0,0,0,random(-2,2),random(-2,2),random(-2,2),random(0,360),SXF_CLIENTSIDE,0)
	TNT1 AAA 0 A_SpawnItemEX("SmokeFX4",0,0,0,random(-2,2),random(-2,2),random(-2,2),random(0,360),SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,1,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SetTranslucent(0.85,1)
	TNT1 AAAAAA 1 A_Explode(3,95,0,0,78) //A_Explode(8,95,0,0,78)
	Stop
	}
}

//-----------GLADIATOR-----------------
ACTOR HDGladiatorToken : Inventory {Inventory.MaxAmount 1}

Actor GladiatorWeapon : FailedSummonerWeapon //I have never had this much fun doing decorate... WEAPON FIRE BOUNCE IS SAME AS SHIELD BOUNCE
{ //Scripted (If replaced... weapon cannot be selected by the action hotkey, massively breaking the weapon)
Weapon.AmmoType "NewShell"
Weapon.AmmoUse 0
Weapon.AmmoType2 "NewShell"
Weapon.PreferredSkin "Fist2-Marine"
Tag "Shield Saw"
+WEAPON.NOAUTOFIRE
States
{
  Select: 
	TNT1 A 0 A_Raise
    Wait
  Deselect:
    TNT1 A 0 A_GiveInventory("DPRGladiatorGotShield",1)
	TNT1 A 0 A_TakeInventory("GladiatorResistance",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_Lower
    TNT1 A 1 A_Lower
	Goto Deselect+5
  Ready:
    TNT1 A 0 A_PlaySound("dprgladiator/start",CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("dprgladiator/start",CHAN_BODY)
	TNT1 A 0 A_PlaySound("dprgladiator/loop",5,0.4,TRUE)
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,"ReadyMelee")
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyX")
	H20L ABCD 1
  ReadyLoop:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoopX")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L A 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 512,"Ready2")
	Loop
  ReadyX:
    G21L ABCDE 1
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
	G21L FGHIJ 1
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
	G21L KLMN 1
  ReadyLoopX:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyLoop
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 512,"Ready2")
	Loop
  Ready2:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"Ready3")
	TNT1 A 0 A_PlaySound("dprgladiator/sawloop1",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("PlayShieldSoundsT1",0)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop2X")
  ReadyLoop2:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop2X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L N 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L O 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L P 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"Ready3")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L Q 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L R 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyLoop2X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyLoop2
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"Ready3")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  Ready3:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"Ready4")
	TNT1 A 0 A_PlaySound("dprgladiator/sawloop2",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("PlayShieldSoundsT2",0)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop3X")
  ReadyLoop3:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop3X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L S 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L T 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L U 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"Ready4")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L V 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L W 1 Bright A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyLoop3X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyLoop3
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"Ready4")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  Ready4:
    TNT1 A 0 A_PlaySound("dprgladiator/hiloop",7,1.0,TRUE)
  ReadyLoop4:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop4X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L "X" 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L "Y" 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H21L "Z" 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L A 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L B 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyLoop4X")
    H22L C 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L D 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L E 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L F 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    H22L G 1 Bright A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyLoop4X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyLoop4
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G22L A 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShield
    G23L A 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyMelee:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyMeleeX")
    H30L ABCD 1
  ReadyMeleeLoop:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyMeleeLoopX")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L E 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 512,"ReadyMelee2")
	Loop
  ReadyMeleeX:
    G20L ABCD 1
  ReadyMeleeLoopX:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyMeleeLoop
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 512,"ReadyMelee2")
	Loop
  ReadyMelee2:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"ReadyMelee3")
	TNT1 A 0 A_PlaySound("dprgladiator/sawloop1",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("PlayShieldSoundsT1",0)
  ReadyMeleeLoop2:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyMeleeLoop2X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64) //Add CPF_NOTURN for next Zandronum version, please
	H30L F 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	H30L G 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"ReadyMelee3")
	H30L H 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	H30L I 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	H30L J 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyMeleeLoop2X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyMeleeLoop2
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 1024,"ReadyMelee3")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyMelee3:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"ReadyMelee4")
	TNT1 A 0 A_PlaySound("dprgladiator/sawloop2",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("PlayShieldSoundsT2",0)
  ReadyMeleeLoop3:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyMeleeLoop3X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L K 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L L 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    H30L M 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"ReadyMelee4")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L N 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L O 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
	Loop
  ReadyMeleeLoop3X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyMeleeLoop3
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"ReadyMelee4")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  ReadyMelee4:
    TNT1 A 0 A_PlaySound("dprgladiator/hiloop",7,1.0,TRUE)
  ReadyMeleeLoop4:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ReadyMeleeLoop4X")
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L P 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L Q 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L R 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L S 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L T 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L U 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L V 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L W 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L "X" 1 Bright A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    H30L "Y" 1 Bright A_WeaponReady(WRF_NOSWITCH)
	TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
	Loop
  ReadyMeleeLoop4X:
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,1)
	Goto ReadyMeleeLoop4
    TNT1 A 0 A_CustomPunch(ACS_NamedExecuteWithResult("GetShieldDamage")/128,0,0,"GLARodWallHit",64)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L E 1 A_WeaponReady(WRF_NOSWITCH)
    TNT1 A 0 A_JumpIfInventory("DPRActionSkillActive",1,1)
	Goto FireShieldMelee
    G20L F 1 A_WeaponReady(WRF_NOSWITCH)
	Loop
  Fire:
    TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,"FireMelee")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 512,4)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 1024,"Fire2")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 2048,"Fire3")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"Fire4")
    TNT1 A 0 A_JumpIfInventory("NewShell",2,1)
	Goto AltFire
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(6,3,0,1,0) //Radius_Quake(8,15,0,1,0)
	TNT1 A 0 A_PlaySound("dprgladiator/fireshot",CHAN_WEAPON)
	TNT1 A 0 A_TakeInventory("NewShell",2,TIF_NOTAKEINFINITE)
	TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer3",Random(-8,8),0,0,0,0,frandom(-4,4))
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"FireX")
	H21L BCD 1 Bright
	H21L EFGHIJK 2
	H21L L 16
	H21L KJIH 2
	Goto ReadyLoop
  FireX:
	G22L B 1 Bright //A_FireBullets(8,6,20,Random(5,7),"ModdedBulletPuff")
	G22L CD 1 Bright
	G22L EFGH 1
	G22L IJK 2
	G22L LMN 1
	G22L O 5
	G22L NMLKJ 1
	G22L PQRFE 2
	G22L S 2 A_Refire
	Goto ReadyLoopX
  Fire2:
    TNT1 A 0 A_JumpIfInventory("NewShell",3,1)
	Goto AltFire
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(6,7,0,1,0)
	TNT1 A 0 A_PlaySound("dprgladiator/fireshot",CHAN_WEAPON)
	TNT1 A 0 A_TakeInventory("NewShell",3,TIF_NOTAKEINFINITE)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer3",Random(-10,10),0,0,0,0,frandom(-5,5))
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"Fire2X")
	H23L ABC 1 Bright
	H23L DEFGHIJKLMNOPQTUVRSTUVRSTUVRSTWXYZ  1
	H24L ABC 1
	H24L D 1 A_ReFire
	Goto ReadyLoop2
  Fire2X:
	G22L B 1 Bright //A_FireBullets(10,7,30,Random(5,7),"ModdedBulletPuff")
	G22L CD 1 Bright
	G23L EFG 1
	G22L H 1
	G22L II 1
	G23L JJ 1
	G23L K 1
	G22L KLM 1
	G23L N 1
	G23L OO 1
	G22L OOO 1
	G23L NML 1
	G22L KJP 1
	G23L P 1
	G23L QQ 1
	G22L RR 1
	G22L F 1
	G23L F 1
	G23L EE 1
	G22L SS 1
	G22L A 1 A_Refire
	Goto ReadyLoop2X
  Fire3:
    TNT1 A 0 A_JumpIfInventory("NewShell",4,1)
	Goto AltFire
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(7,10,0,1,0)
	TNT1 A 0 A_PlaySound("dprgladiator/fireshot",CHAN_WEAPON)
	TNT1 A 0 A_TakeInventory("NewShell",4,TIF_NOTAKEINFINITE)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer3",Random(-12,12),0,0,0,0,frandom(-6,6))
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"Fire3X")
	H25L ABC 1 Bright
	H25L DEFGHIJKLMNOPQTUVRSTUVRSTUVRSTWXYZ 1 Bright
	H26L ABC 1 Bright
	H26L D 1 Bright A_ReFire
	Goto ReadyLoop3
  Fire3X:
	G22L B 1 Bright //A_FireBullets(12,8,40,Random(5,7),"ModdedBulletPuff")
	G22L C 1 Bright
	G23L D 1 Bright
	G23L E 1
	G22L FG 1
	G23L HI 1
	G22L IJ 1
	G23L JK 1
	G22L KL 1
	G23L MN 1
	G22L OO 1
	G23L OO 1
	G22L ON 1
	G23L ML 1
	G22L KJ 1
	G23L PP 1
	G22L QQ 1
	G23L RR 1
	G22L FF 1
	G23L EE 1
	G22L S 1
	G22L S 1 A_Refire
	Goto ReadyLoop3X
  Fire4:
    TNT1 A 0 A_JumpIfInventory("NewShell",5,1)
	Goto AltFire
    TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
    TNT1 A 0 Radius_Quake(8,15,0,1,0)
	TNT1 A 0 A_PlaySound("dprgladiator/fireshot",CHAN_WEAPON)
	TNT1 A 0 A_TakeInventory("NewShell",5,TIF_NOTAKEINFINITE)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer3",Random(-16,16),0,0,0,0,frandom(-8,8))
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"Fire4X")
	H27L ABC 1 Bright
	H27L DEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	H28L A 1 Bright
	H27L RSTUVW 1 Bright
	H28L BCDEFGH 1 Bright
	H28L I 1 Bright A_ReFire
	Goto ReadyLoop4
  Fire4X:
	G22L B 1 Bright //A_FireBullets(16,10,50,Random(5,7),"ModdedBulletPuff")
	G23L C 1 Bright
	G22L D 1 Bright
	G23L E 1
	G22L F 1
	G23L G 1
	G22L H 1
	G23L I 1
	G22L I 1
	G23L J 1
	G22L J 1
	G23L K 1
	G22L K 1
	G23L L 1
	G22L M 1
	G23L N 1
	G22L O 1
	G23L O 1
	G22L O 1
	G23L O 1
	G22L O 1
	G23L N 1
	G22L M 1
	G23L L 1
	G22L K 1
	G23L J 1
	G22L P 1
	G23L P 1
	G22L Q 1
	G23L Q 1
	G22L R 1
	G23L R 1
	G22L F 1
	G23L F 1
	G22L E 1
	G23L E 1
	G22L S 1
	G23L S 1 A_Refire
	Goto ReadyLoop4
  FireMelee:
    TNT1 A 0 ACS_NamedExecuteAlways("GladiatorShieldDash",0)
	Goto TryModesMeleeX
  AltFire:
    TNT1 A 0 A_PlaySound("dprgladiator/switch",CHAN_WEAPON)
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,"AltFire2")
	TNT1 A 0 A_GiveInventory("DPRGladiatorSwitched",1)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"AltFireX")
  TryModes:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 512,4)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 1024,"SwitchToMelee2")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 2048,"SwitchToMelee3")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"SwitchToMelee4")
	H29L ABCDEF 1
	Goto ReadyMeleeLoop
  SwitchToMelee2:
    H29L GHIJKL 1
	Goto ReadyMeleeLoop2
  SwitchToMelee3:
    H29L MNOPQR 1 Bright
	Goto ReadyMeleeLoop3
  SwitchToMelee4:
    H29L STUVWX 1 Bright
	Goto ReadyMeleeLoop4
  AltFireX:
	G24L MNOPQR 1
  TryModesMeleeX:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 512,"ReadyMeleeLoopX")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 1024,"ReadyMeleeLoop2X")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 2048,"ReadyMeleeLoop3X")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"ReadyMeleeLoop4X")
	Goto Ready
  AltFire2:
    TNT1 A 0 A_TakeInventory("DPRGladiatorSwitched",1)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"AltFire2X")
  TryModesRanged:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 512,4)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 1024,"SwitchToRanged2")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 2048,"SwitchToRanged3")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"SwitchToRanged4")
	H29L FEDCBA 1
	Goto ReadyLoop
  SwitchToRanged2:
    H29L LKJIHG 1
	Goto ReadyLoop2
  SwitchToRanged3:
    H29L RQPONM 1 Bright
	Goto ReadyLoop3
  SwitchToRanged4:
    H29L XWVUTS 1 Bright
	Goto ReadyLoop4
  AltFire2X:
	G24L STUVWX 1
  TryModesRangedX:
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 512,"ReadyLoopX")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 1024,"ReadyLoop2X")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") < 2048,"ReadyLoop3X")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldDamage") >= 2048,"ReadyLoop4X")
	Goto Ready
  FireShield:
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_PlaySound("dprgladiator/stop",6)
	TNT1 A 0 A_PlaySound("dprgladiator/stop",CHAN_BODY)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"FireShieldX")
	H31L ABCD 1
	TNT1 AAA 1
	Goto Throw
  FireShieldX:
	G24L ABCDEF 1
	TNT1 A 1
  Throw:
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",CHAN_WEAPON)
	TNT1 A 0 A_FireCustomMissile("GladiatorShield",0,0)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ThrowX")
	H31L IJKLMNOPQ 1
	Goto FireLoop
  ThrowX:
	G20L KLMNOPQR 1
  FireLoop:
    TNT1 A 0 A_JumpIfInventory("DPRGladiatorGotShield",1,"ShieldGot")
    TNT1 A 1 A_WeaponReady(WRF_NOFIRE)
	Loop
  FireShieldMelee:
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_PlaySound("dprgladiator/stop",6)
	TNT1 A 0 A_PlaySound("dprgladiator/stop",CHAN_BODY)
    TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"FireShieldMeleeX")
    H31L EFGH 1
	TNT1 AAA 1
	Goto Throw
  FireShieldMeleeX:
    G20L GHIJ 1
	TNT1 AAA 1
	Goto Throw
  ShieldGot:
    TNT1 A 0 A_TakeInventory("GladiatorResistance",1)
    TNT1 A 0 A_PlaySound("dprgladiator/gotshield",CHAN_WEAPON)
	TNT1 A 2 ACS_NamedExecuteAlways("PlayShieldGot",0)
	TNT1 A 0 A_JumpIfInventory("HDGladiatorToken",1,"ShieldGotX")
	H30L E 2
	H31L RSTU 2
	Goto ShieldGot2
  ShieldGotX:
    G20L FGHIJ 2
  ShieldGot2:
    TNT1 A 1 A_WeaponReady(WRF_NOFIRE)
	Wait
	}
}

Actor PlayerExplosiveTracer3 : PlayerExplosiveTracer { DamageType "PlayerDemonicSkill" }

Actor GladiatorDashCooldown : PowerDamage
{
DamageFactor "nothing", 1.0
Powerup.duration -1
}

Actor GLARodWallHit : RodWallHit 
{
Species "Player"
DamageType "Melee"
SeeSound "dprgladiator/melee"
+THRUSPECIES
+MTHRUSPECIES
States
{
  Spawn:
  Melee:
    TNT1 A 1
	Stop
  XDeath:
	FAXE F 3 //A_GiveToTarget("DesiccationHealth")
	FAXE GHIJK 3
	Stop
    }
}

Actor GladiatorShield : ThrownGrenade2
{
Scale 1.0
DamageType "PlayerDemonicSkill" //New unique damagetype on top of the other 999999 unique damagetypes
SeeSound ""
BounceCount 2
+NOGRAVITY
+FOILINVUL //WHY??? BECAUSE FUCK INVUL STATES THAT'S WHEY!
//-CANBOUNCEWATER
-DOOMBOUNCE
+SKYEXPLODE
+HEXENBOUNCE
+BOUNCEONACTORS
+SEEKERMISSILE
var int user_damage;
var int user_bounced;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("dprgladiator/fly",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("dprgladiator/fly",6,1.0,TRUE)
	G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 ACS_NamedExecuteAlways("SetShieldProperty",0,1)
	TNT1 A 0 A_ChangeFlag(USEBOUNCESTATE,1)
  SpawnLoop:
    G10L GGGGGHHHHH 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIf(user_bounced == 1,"Remove")
    TNT1 A 0 A_JumpIfInventory("DPRGladiatorGotShield",1,"Remove",AAPTR_TARGET)
	Loop
  Bounce:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_Explode(user_damage,128,0)
	TNT1 A 0 A_SetUserVar(user_bounced,1)
	TNT1 A 0 A_SpawnItem("GLAShieldExplosion")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldRip") <= 0,"Death")
	G10L G 1 A_CustomMissile("GladiatorShieldHomer",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,Pitch+Random(-4,4))
	Goto NULL
  Death:
  XDeath:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	TNT1 A 0 A_SetUserVar(user_bounced,1)
    TNT1 A 0 A_JumpIf(z-floorz <= 1,"Death2")
    TNT1 A 0 A_SpawnItem("GLAShieldExplosion")
	TNT1 A 0 A_Explode(user_damage,128,0)
	TNT1 A 1 A_CustomMissile("GladiatorShieldReturn",0,0,0,CMF_TRACKOWNER)
	Goto NULL
  Death2:
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetShieldRip") <= 0,"Return")
	TNT1 A 0 A_CustomMissile("GladiatorShieldHomer",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,Random(20,35))
    TNT1 A 0 A_SpawnItem("GLAShieldExplosion")
	TNT1 A 1 A_Explode(user_damage,128,0)
	Goto NULL
  Crash:
    TNT1 A 0
	Goto XDeath
  Return:
    TNT1 A 0 A_Explode(user_damage,128,0)
	TNT1 A 0 A_SpawnItem("GLAShieldExplosion")
    TNT1 A 1 A_CustomMissile("GladiatorShieldReturn",0,0,0,CMF_TRACKOWNER)
	Goto NULL
  Remove:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
	Goto NULL
	}
}

Actor GladiatorShieldReturn : GladiatorShield
{
Damage 0
+NOCLIP
-HEXENBOUNCE
-BOUNCEONACTORS
var int user_tic;
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("dprgladiator/fly",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("dprgladiator/fly",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("SetShieldProperty",0)
	TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_TARGET) //Waow
  SpawnLoop:
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorGotShield",1,"Remove",AAPTR_TARGET)
	TNT1 A 0 A_JumpIfCloser(100,"Death")
    TNT1 A 0 A_JumpIf(user_tic >= 35,"SpawnLoop2")
	TNT1 A 0 A_SetUserVar(user_tic,user_tic+1)
	Loop
  SpawnLoop2:
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
    G10L G 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	G10L H 1 Bright A_SeekerMissile(89,90,SMF_PRECISE,256,128)
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorGotShield",1,"Remove",AAPTR_TARGET)
	TNT1 A 0 A_JumpIfCloser(500,"Death")
	Loop
  Death:
    TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_StopSound(6)
    TNT1 A 0 A_GiveInventory("DPRGladiatorGotShield",1,AAPTR_TARGET)
	Stop
	}
}

Actor GladiatorShieldHomer : GladiatorShield
{
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_PlaySound("dprgladiator/fly",5,1.0,TRUE)
	TNT1 A 0 A_PlaySound("dprgladiator/fly",6,1.0,TRUE)
	TNT1 A 0 ACS_NamedExecuteAlways("SetShieldProperty",0)
	G10L G 1 Bright A_SeekerMissile(89,90,SMF_LOOK|SMF_PRECISE,256,128)
	TNT1 A 0 A_ChangeFlag(USEBOUNCESTATE,1)
  SpawnLoop:
    G10L GH 5 Bright
	TNT1 A 0 A_JumpIf(user_bounced == 1,"Remove")
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorGotShield",1,"Remove",AAPTR_TARGET)
	Loop
	}
}

Actor GLAShieldExplosion : RedHugeExplosion
{
States
{ 
  Spawn:  
	TNT1 A 0
	TNT1 A 0 Radius_Quake(6,28,0,10,0)
    TNT1 A 0 A_SpawnItemEx("RedRocketEx",0,0,0)
    TNT1 A 0 A_SpawnItemEx("RedExplosionFlareEvenSmaller",0,0,0,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("ExpGaussShockWaveMedium",0,0,0,0,0,0,0,0)
	TNT1 AAA 0 A_PlaySound("dprgladiator/explode",CHAN_AUTO)
	TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("RedHugeExplosionParticle",random(64,-64),random(64,-64),random(64,-64),random(8,-8),random(8,-8),random(8,-8),0,0,128)
	TNT1 AAAAAAAAAA 1 A_SpawnItemEx("RedExplosionKaboomSmaller",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),0,0,128)
	TNT1 A 0 A_SpawnItemEx("HugeExplosionSmoke",random(16,-16),random(16,-16),random(16,-16),random(4,-4),random(4,-4),random(0,4))
    TNT1 A 10
	Stop
    } 
}

Actor RedExplosionKaboomSmaller : RedExplosionKaboom { Scale 1.5 }

Actor RedExplosionFlareEvenSmaller : RedHugeExplosionFlare { Scale 0.3 }

Actor ExpGaussShockWaveMedium : ExpGaussShockWaveBig { Scale 0.7 }

ACTOR GladiatorShieldGiver : CustomInventory
{
+INVBAR
+INVENTORY.AUTOACTIVATE
+INVENTORY.BIGPOWERUP
+INVENTORY.NEVERRESPAWN
Inventory.MaxAmount 8
Inventory.InterHubAmount 8
Inventory.Icon "B3ACZ0"
Inventory.PickupSound "Beacon/Pickup"
Inventory.PickupMessage "Marine Beacon"
Tag "Beacon - Single Marine"
Scale 0.8
States
{
  Spawn:
	B3AC A -1
    Stop
  Use:
	TNT1 A 0 A_GiveInventory("GladiatorResistance",0) //How to give fake shield protection 101
	TNT1 A 1 A_SpawnItemEx("GladiatorShieldShitbox",0,0,0,0,0,0,0,SXF_SETMASTER|SXF_NOCHECKPOSITION,0,tid-6)
	Stop
	}
}

ACTOR GladiatorResistance : PowerProtection 
{
Powerup.Duration -64
DamageFactor "legendary", 0.05
DamageFactor "Cyber10k", 0.05
Damagefactor "PlayerPhase", 0.05
DamageFactor "PlayerPyro", 0.05
DamageFactor "PyroShot", 0.05
DamageFactor "RST", 0.05
DamageFactor "C0mm4nder", 0.05
DamageFactor "HFCyber", 0.05
DamageFactor "HFCyb3r", 0.05
DamageFactor "HellComet", 0.05
DamageFactor "Terminator", 0.05
DamageFactor "Term", 0.05
DamageFactor "T3rm", 0.05
DamageFactor "PDTBFG", 0.05
DamageFactor "PlayerDTBFG10KBall", 0.05
DamageFactor "DTBFG10KBall", 0.05
DamageFactor "BFG10K", 0.05
DamageFactor "PlayerDevBall", 0.05
DamageFactor "PlayerDevBall2", 0.05
DamageFactor "Explosion", 0.05
DamageFactor "Vilefires", 0.05
DamageFactor "Mine", 0.05
DamageFactor "Slime", 0.05
DamageFactor "Moloch", 0.05
DamageFactor "CerChainguns", 0.05
DamageFactor "CerEnergyBall", 0.05
DamageFactor "LegMind", 0.05
DamageFactor "SatanGuard", 0.05
DamageFactor "ZombieDev", 0.05
DamageFactor "Cybers", 0.05
DamageFactor "DarkDemoEx", 0.05
DamageFactor "GeneralTracer", 0.05
DamageFactor "Fuck", 0.05
DamageFactor "SS", 0.05
DamageFactor "Touhou", 0.05
DamageFactor "Normal", 0.3 //0.6
+INVENTORY.HUBPOWER
+INVENTORY.PERSISTENTPOWER
+NORADIUSDMG
+DONTRIP
+DONTSQUASH
+NOTIMEFREEZE
}

Actor GladiatorShieldShitbox //Deserves this name for a couple reasons REMOVE DEFLECT ON RANGED MODE
{
Monster
Speed 0
Floatspeed 0
Radius 16
Height 70
Species "Player"
DamageFactor "Melee", 0.0
DamageFactor "Player", 0.0
DamageFactor "Players", 0.0
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "PlayerDevBall", 0.0
DamageFactor "PlayerDevBall2", 0.0
DamageFactor "PlayerDevTracer", 0.0
DamageFactor "PlayerExplosive", 0.0
DamageFactor "PlayerDTRG", 0.0
DamageFactor "PDTBFG", 0.0
DamageFactor "PDTBFGTracer", 0.0
DamageFactor "LegendaryPlayer", 0.0
DamageFactor "LegendaryGuruPlayer", 0.0
DamageFactor "PlayerPyro", 0.0
damageFactor "PlayerFireSword", 0.0
DamageFactor "PlayerBHole", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "Player2hu", 0.0
DamageFactor "TrueLegendaryPlayer", 0.0
//Ark
DamageFactor "PlayerTear", 0.0
DamageFactor "PlayerDBFG2", 0.0
//TXS
DamageFactor "VulcanPlasmaPuff", 0.0
DamageFactor "VulcanLazer", 0.0
DamageFactor "VulcanLazerEffect", 0.0
//DamageFactor "Fire", 0.0
DamageFactor "PlayerBrimstone", 0.0
DamageFactor "ChaosC", 0.0
//Friendly Monsters (Marines)
DamageFactor "AllyRail", 0.0
DamageFactor "AllyDTRG", 0.0
DamageFactor "AllyDTRailgun", 0.0
DamageFactor "AllyExplosion", 0.0
DamageFactor "AllyDTPuff", 0.0
DamageFactor "AllyDBFG", 0.0
DamageFactor "PlayerDemonicSkill", 0.0
DamageType "PlayerDemonicSkill"
Painchance 255
Health 0x7FFFFFFF //max power is whatever this number is...
Mass 0x7FFFFFFF
+FLOAT
+NOGRAVITY
+SHOOTABLE
+NEVERTARGET //NOTARGET
+NOTIMEFREEZE
+ISMONSTER
+THRUSPECIES
+MTHRUSPECIES
+NOCLIP
+NOBLOOD
//+BUDDHA //WHY WHY WHY WHY
//+STOPRAILS //F U C K...
+NOICEDEATH
+DONTRIP
+DONTMORPH
+DONTBLAST
+DONTSPLASH
+NOTELEFRAG
+GHOST //Nothing to see here
-SOLID
-COUNTKILL
-CANPUSHWALLS
-CANUSEWALLS
-ACTIVATEMCROSS
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_ChangeFlag(REFLECTIVE,0)
	TNT1 A 0 A_ChangeFlag(SHIELDREFLECT,0) //WHY CANT WE ZANDROOMERS HAVE NICE THINGS LIKE AIMREFLECT WAAAAAAAAAHHHHHH
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 AA 1 A_Warp(AAPTR_FRIENDPLAYER,30,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
  Looping:
	TNT1 A 1
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,"Loop2",AAPTR_FRIENDPLAYER)
	TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,30,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Looping")
  Death:
    TNT1 A 0
	Stop
  Loop2:
    TNT1 A 0 A_ChangeFlag(SHIELDREFLECT,1)
    TNT1 A 0 A_ChangeFlag(REFLECTIVE,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 AA 1 A_Warp(AAPTR_FRIENDPLAYER,30,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
  Looping2:
	TNT1 A 1
    TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,1,AAPTR_FRIENDPLAYER)
	Goto Spawn
	TNT1 A 0 A_Warp(AAPTR_FRIENDPLAYER,30,0,0,0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE,"Looping2")
	TNT1 A 0
	Stop
  Pain:
    TNT1 A 0 A_PlaySound("dprgladiator/hit",CHAN_AUTO)
	TNT1 A 0 A_JumpIfInventory("DPRGladiatorSwitched",1,"Looping2",AAPTR_FRIENDPLAYER)
	Goto Looping
	}
}