#include "Decorate/Guns/Projectile/Matriarch.txt"

ACTOR MatriarchSelected : GenericToken {}
ACTOR MatriarchLoading : GenericToken {}
ACTOR MatriarchLoading2 : GenericToken {}
ACTOR MatriarchClip : Inventory { Inventory.MaxAmount 9 }
ACTOR MatriarchClip2 : Inventory { Inventory.MaxAmount 9 }

ACTOR Matriarch : GuncasterWeapon //replaces PhoenixRod
{
   Inventory.PickupSound "Guncaster/Laugh1"
   Inventory.PickupMessage "$GOTMATRIARCH"
   Obituary "$KILLMATRIARCH"
   Weapon.UpSound "Matriarch/Up" 
   Weapon.SelectionOrder 7
   Weapon.AmmoGive 6
   Weapon.AmmoType "MatriarchAmmo"
   Weapon.AmmoUse 1
   Weapon.SlotNumber 5
   Weapon.BobStyle InverseSmooth
   Weapon.BobSpeed 1.6
   Weapon.BobRangeY 0.8
   Weapon.BobRangeX 1.4
   +NOAUTOAIM
   +NOALERT
   //+NOAUTOFIRE
   Scale 0.9
   States
   {
   Spawn:
      MTRG X -1
      Stop
   Ready:
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"StratReady")
   ReadyLoop:
	  TNT1 A 0 A_TakeInventory("RightFireToken")
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"StratActivate")
      "####" A 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
      Loop
	  
   StratActivate:
   	  TNT1 A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiStratActivate")
      TNT1 A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiStratActivate")
	  MCTM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUTM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MATM A 0
	  "####" A 0 A_PlaySound("Matriarch/Pull",5,0.7)
	  "####" ABCDEFGH 1
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
	  "####" A 5
	  "####" A 0 A_GiveInventory("MatriarchStratActive",1)
   StratReady:
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,1)
	  Goto StratDeactivate
	  TNT1 A 0 A_TakeInventory("RightFireToken")
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
	  "####" A 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
	  Loop
   StratDeactivate:
   	  TNT1 A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiStratDeactivate")
      TNT1 A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiStratDeactivate")
	  MCTM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUTM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MATM A 0
	  "####" A 0 A_PlaySound("Matriarch/Pull",5,0.7)
      "####" IJKLMNO 1
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
	  "####" A 5
	  "####" A 0 A_TakeInventory("MatriarchStratActive",1)
	  Goto Ready
	  
   DeselectMain:
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
      "####" A 0 A_TakeInventory("MatriarchSelected")
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiDeselect")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiDeselect")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"StratDeselect")
      "####" A 1 A_Lower
      "####" A 0 A_Lower
      Loop
   StratDeselect:
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
      "####" A 1 A_Lower
      "####" A 0 A_Lower
      Loop
   Select:
	  TNT1 A 0 A_JumpIf(CallACS("GunslingerMode"),3)
	  TNT1 A 0 A_JumpIfInventory("PowerGunzerking",1,2) 
	  TNT1 A 0 A_GunFlash("Nullify",GFF_NOEXTCHANGE)
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
      "####" A 0 A_GiveInventory("MatriarchSelected")
      "####" A 0 A_JumpIf(CallACS("CrosshairMode"), 2)
      "####" A 0 A_SetCrosshair(52)
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiSelect")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiSelect")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"StratSelect")
      "####" A 1 A_Raise
      "####" A 0 A_Raise
      Loop
   StratSelect:
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
      "####" A 1 A_Raise
      "####" A 0 A_Raise
      Loop
   Fire:
	  MCRF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARF A 0
	  "####" A 0 A_GiveInventory("RightFireToken")
      "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"StratFire")
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(7)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_QuakeEx(7, 7, 7, 7, 0, 16, none, QF_SCALEDOWN)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1)//,8,-4)
      "####" A 0 //A_SetPitch(pitch-0.5)
      "####" A 0 //A_SetAngle(angle-0.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,2,2)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-2)
      "####" A 0 //A_SetAngle(angle-2)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,4,4)
      "####" B 1 Bright A_ZoomFactor(0.97)
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
      "####" A 0 //A_SetPitch(pitch-3)
      "####" A 0 //A_SetAngle(angle-3)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,5,5)
      "####" B 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 //A_SetPitch(pitch-1.5)
      "####" A 0 //A_SetAngle(angle-1.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,6,6)
	  "####" C 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.5)
      "####" A 0 //A_SetAngle(angle-0.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,7,7)
	  "####" D 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.5)
      "####" A 0 //A_SetAngle(angle+1)
	  "####" E 1 A_ZoomFactor(0.915)
      "####" A 0 //A_SetPitch(pitch+0.5)
      "####" A 0 //A_SetAngle(angle+0.5)
	  "####" F 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+1)
      "####" A 0 //A_SetAngle(angle+1)
	  "####" G 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch+0.5)
      "####" A 0 //A_SetAngle(angle+0.5)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 //A_SetPitch(pitch+0.5)
      "####" A 0 //A_SetAngle(angle+0.5)
	  "####" I 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.5)
      "####" A 0 //A_SetAngle(angle+0.5)
	  "####" J 1 A_ZoomFactor(0.98)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" K 1 A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" A 0 A_TakeInventory("RightFireToken")
	  "####" A 0 A_ReFire
	  "####" A 1 A_ZoomFactor(1)
      Goto Ready
	  
	StratFire:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenStratFire")
      "####" A 0 A_JumpIfInventory("MatriarchClip",0,"UnleashTheFirestorm")
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto StratMainFire
	  "####" A 1 A_ReFire("StratFireLoad")
	  Goto StratMainFire
	StratFireLoad:
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,"StratFireLoadSeq")
	  Goto Ready
	  
	HexenStratFire:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,1)
	  Goto StratMainFire
	  "####" A 1 A_ReFire("HexenStratFireLoad")
	  Goto StratMainFire
	HexenStratFireLoad:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,"StratFireLoadSeq")
	  Goto Ready
	  
	StopStrat:
	  MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARG A 0
	  "####" A 0 A_TakeInventory("MatriarchLoading",1)
	  "####" A 10
	  Goto StratReady
	StratFireLoadSeq:
	  MCUL A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUL A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUL A 0
	  "####" A 0 A_GiveInventory("RightFireToken")
	  "####" A 0 A_PlaySound("Matriarch/Load",7,0.5)
	  "####" A 0 A_GiveInventory("MatriarchLoading",1)
	  "####" ABCDEFGHIJK 1 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH|WRF_NOBOB) //R-canceling is causing me a headache.
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" A 0 A_TakeInventory("MatriarchAmmo",1,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_TakeInventory("GreenMana",3,TIF_NOTAKEINFINITE)
	  "####" A 0 A_GiveInventory("MatriarchClip",1)
	  "####" A 0 A_ReFire("StratFireLoadSeq2")
	  Goto UnleashTheFirestorm
	StratFireLoadSeq2:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,2)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto FullOrNotEnough
	  "####" A 0 A_JumpIfInventory("MatriarchClip",0,"FullOrNotEnough")
	  Goto StratFireLoadSeq
	FullOrNotEnough:
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
	  "####" A 1 //A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
	  "####" A 0 A_ReFire("StratFireLoadSeq2")
	  Goto UnleashTheFirestorm 
	UnleashTheFirestorm:
	  MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUF A 0
      "####" A 0 A_TakeInventory("MatriarchLoading",1)
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
	  "####" A 0 A_TakeInventory("MatriarchClip",1)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,0)//,8,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,2,2)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,4,4)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.5)
      "####" A 0 //A_SetAngle(angle-0.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,5,5)
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
      "####" C 1 A_ZoomFactor(0.94)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,6,6)
	  "####" D random(0,1) A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,7,7)
	  "####" E random(0,1) A_ZoomFactor(0.92)
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,3)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_ReFire("StratBreak")
	  "####" A 0 A_JumpIfInventory("MatriarchClip",1,"UnleashTheFirestorm")
	  Goto StratMainFire
   StratMainFire:
	  MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUF A 0
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1)//,8,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,2,2)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,4,4)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,5,5)
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
      "####" B 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,6,6)
	  "####" C 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,7,7)
	  "####" D 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.15)
      "####" A 0 //A_SetAngle(angle+0.15)
	  "####" E 1 A_ZoomFactor(0.915)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
    StratBreak:
	  MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUG A 0
	  "####" F 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.35)
      "####" A 0 //A_SetAngle(angle+0.35)
	  "####" G 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" I 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" J 1 A_ZoomFactor(0.98)
	  "####" K 1 A_ZoomFactor(0.99)
	  "####" A 0 A_TakeInventory("RightFireToken")
	  "####" A 1 A_ZoomFactor(1)
      Goto Ready
		  
	AltFire:
	  "####" A 0 A_GiveInventory("RightFireToken")
      "####" A 0 A_JumpIfInventory("MatriarchLoading",1,"StopStrat")
      MCRM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
      MARM A 0
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,1)
	  Goto Super::CheckForMagic
      MCUM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUM A 0
	  "####" A 0
	  Goto Super::CheckForMagic
	  
	Zoom:
	  "####" A 0 A_GiveInventory("RightFireToken")
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"Gunzerk")
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"Gunzerk")
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"Strat")
	  Goto Regular
	Regular:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  MCRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MARK A 0
	  "####" A 0
	  Goto Super::Zoom
	  MCRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MURK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Strat:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  MCUK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MAUK A 0
	  "####" A 0
	  Goto Super::Zoom
	  MCUK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  MUUK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  MUMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Gunzerk:
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"GunzerkStrat")
	  "####" A 0 A_GunFlash("LeftKickBudge",GFF_NOEXTCHANGE)
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1CRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1URK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1ARK A 0
	  "####" A 0
	  Goto Super::Zoom
	  1CRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1URK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1MMK A 0
	  "####" A 0
	  Goto Super::Zoom
	
	GunzerkStrat:
	  "####" A 0 A_GunFlash("LeftKickBudge",GFF_NOEXTCHANGE)
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1CSK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1ASK A 0
	  "####" A 0 
	  Goto Super::Zoom
	  1CSK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1SMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	LeftKickBudge:
	  2ASK A 0 A_JumpIfInventory("MatriarchStratActive",1,2)
	  2ARK A 0 
	  "####" ABCDEFGHIHGFEDCBA 1
	  "####" Z 10
	  "####" Z 0 
	  {
		If((CountInv("PowerGunzerking") > 0) || CallACS("GunslingerMode"))
		{
			A_GunFlash("Flash",GFF_NOEXTCHANGE);
		}
		Else
		{
			A_GunFlash("Nullify",GFF_NOEXTCHANGE);
		}
	  }
	  Stop
	  
	//Zweihander

   ZweiSelect:
	  3ASG A 0 A_JumpIfInventory("MatriarchStratActive",1,2)
	  3ARG A 0
      "####" A 1 A_Raise
      "####" A 0 A_Raise
      Loop
   ZweiDeselect:
	  3ASG A 0 A_JumpIfInventory("MatriarchStratActive",1,2)
	  3ARG A 0
	  "####" A 0 A_GunFlash("Nullify",GFF_NOEXTCHANGE)
	  "####" A 0 A_TakeInventory("SynthFireActive",1)
	  "####" A 0 A_TakeInventory("SynthFireLeft",1)
	  "####" A 0 A_TakeInventory("SynthFireRight",1)
   Zweihander:
	  "####" A 0 A_Lower
	  "####" A 1 A_Lower
	  Loop
   ZweiReady:
	  "####" A 0 A_GiveInventory("SynthFireActive",1)
	  "####" A 0 ACS_NamedExecuteAlways("SynthLeft")
	  "####" A 0 ACS_NamedExecuteAlways("SynthRight")
	  "####" A 0 A_GunFlash("Flash",GFF_NOEXTCHANGE)
	  Goto RIdle
   ZweiStratActivate:
	  1ATM A 0 A_GunFlash("LeftStratToggleOn",GFF_NOEXTCHANGE)
	  "####" A 0 A_PlaySound("Matriarch/Pull",5,0.7)
	  "####" ABCDEFGHIJ 1
	  1ASG A 0
	  "####" A 3
	  "####" A 0 A_GiveInventory("MatriarchStratActive",1)
	  Goto RIdle
   ZweiStratDeactivate:
	  1ATM A 0 A_GunFlash("LeftStratToggleOff",GFF_NOEXTCHANGE)
	  "####" A 0 A_PlaySound("Matriarch/Pull",5,0.7)
	  "####" KLMNOPQRST 1
	  1ARG A 0
	  "####" A 3
	  "####" A 0 A_TakeInventory("MatriarchStratActive",1)
	  Goto RIdle
   
   LeftStratToggleOn:
	  2ATM ABCDEFGHIJ 1
	  2ASG A 3
	  "####" A 0
	  {
		If((CountInv("PowerGunzerking") > 0) || CallACS("GunslingerMode"))
		{
			A_GunFlash("Flash",GFF_NOEXTCHANGE);
		}
		Else
		{
			A_GunFlash("Nullify",GFF_NOEXTCHANGE);
		}
	  }
	  Stop	  
	  
   LeftStratToggleOff:
	  2ATM KLMNOPQRST 1
	  2ARG A 3 
	  "####" A 0
	  {
		If((CountInv("PowerGunzerking") > 0) || CallACS("GunslingerMode"))
		{
			A_GunFlash("Flash",GFF_NOEXTCHANGE);
		}
		Else
		{
			A_GunFlash("Nullify",GFF_NOEXTCHANGE);
		}
	  }
	  Stop	  
	  
   //Right
   
   RIdle:
	  TNT1 A 0 A_TakeInventory("RightFireToken")
	  1ASG A 0 A_JumpIfInventory("MatriarchStratActive",1,2)
	  1ARG A 0 
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RFire")
	  "####" A 0 A_JumpIfInventory("LeftFireToken",1,3)
	  "####" A 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
	  "####" A 0 A_Jump(256,2)
	  "####" A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"RIdle")
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"RIdle") 
	  Goto BackToReady
   BackToReady:
	  "####" A 0 A_GunFlash("Nullify",GFF_NOEXTCHANGE)
	  Goto Ready
   Nullify:
	  TNT1 A 0 A_TakeInventory("LeftFireToken",1)
	  Stop
   RFire:
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1)
	  Goto BackToReady
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"RStratFire")
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenR")
	  "####" A 1 A_JumpIfInventory("MatriarchAmmo",1,"RConfirmed")
	  Goto RIdle
   HexenR:
	  "####" A 1 A_JumpIfInventory("GreenMana",3,1)
	  Goto RIdle
   RConfirmed:
	  1ARF A 0
	  "####" A 0 A_GiveInventory("RightFireToken")
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(2.25)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_QuakeEx(7, 7, 7, 7, 0, 16, none, QF_SCALEDOWN)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1,10,-4)
      //"####" A 0 A_TakeInventory("MatriarchAmmo",1,TIF_NOTAKEINFINITE)
      "####" A 0 A_SetPitch(pitch-0.25)//A_SetPitch(pitch-0.25)
      "####" A 0 A_SetAngle(angle-0.125)//A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-1)//A_SetPitch(pitch-1)
      "####" A 0 A_SetAngle(angle-0.5)//A_SetAngle(angle-1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-1.5)//A_SetPitch(pitch-1.5)
      "####" A 0 A_SetAngle(angle-0.75)//A_SetAngle(angle-1.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,17,3)
	  1ARG A 0
      "####" A 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 A_SetPitch(pitch-0.75)//A_SetPitch(pitch-0.75)
      "####" A 0 A_SetAngle(angle-0.375)//A_SetAngle(angle-0.75)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,18,4)
	  "####" B 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch-0.25)//A_SetPitch(pitch-0.25)
      "####" A 0 A_SetAngle(angle-0.125)//A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,19,5)
	  "####" C 1 A_ZoomFactor(0.92)
      "####" A 0 A_SetPitch(pitch+0.25)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle+0.125)//A_SetAngle(angle+0.5)
	  "####" D 1 A_ZoomFactor(0.915)
      "####" A 0 A_SetPitch(pitch+0.75)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle+0.375)//A_SetAngle(angle+0.25)
	  "####" E 1 A_ZoomFactor(0.92)
      "####" A 0 A_SetPitch(pitch+1.5)//A_SetPitch(pitch+0.5)
      "####" A 0 A_SetAngle(angle+0.75)//A_SetAngle(angle+0.5)
	  "####" F 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch+1)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle+0.5)//A_SetAngle(angle+0.25)
	  "####" G 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.25)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle+0.125)//A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
	  "####" H 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" I 1 A_ZoomFactor(0.98)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" J 1 A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" K 1 A_ZoomFactor(1)
	  "####" A 0 A_TakeInventory("RightFireToken")
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RFire")
	  Goto RIdle

	RStratFire:
	  1ASG A 0 A_JumpIfInventory("HexenCounter",1,"RHexenStratFire")
      "####" A 0 A_JumpIfInventory("MatriarchClip",0,"UnleashTheRightFirestorm")
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto RStratMainFire
	  "####" A 1 A_JumpIfInventory("SynthFireRight",1,"RStratFireLoad")
	  Goto RStratMainFire
	RStratFireLoad:
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,"RStratFireLoadSeq")
	  Goto RIdle
	  
	RHexenStratFire:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,1)
	  Goto RStratMainFire
	  "####" A 1 A_JumpIfInventory("SynthFireRight",1,"RHexenStratFireLoad")
	  Goto RStratMainFire
	RHexenStratFireLoad:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,"RStratFireLoadSeq")
	  Goto RIdle
	  
	RStopStrat:
	  //MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASG A 0
	  "####" A 0 A_TakeInventory("MatriarchLoading",1)
	  "####" A 10
	  Goto RIdle
	RStratFireLoadSeq:
	  //MCUL A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1AUL A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto BackToReady
	  "####" A 0 A_GiveInventory("RightFireToken")
	  "####" A 0 A_PlaySound("Matriarch/Load",7,0.5)
	  "####" A 0 A_GiveInventory("MatriarchLoading",1)
	  "####" ABCDEFGHIJK 1 //A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH) //R-canceling is causing me a headache.
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" A 0 A_TakeInventory("MatriarchAmmo",1,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_TakeInventory("GreenMana",3,TIF_NOTAKEINFINITE)
	  "####" A 0 A_GiveInventory("MatriarchClip",1)
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RStratFireLoadSeq2")
	  Goto UnleashTheRightFirestorm
	RStratFireLoadSeq2:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,2)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto RFullOrNotEnough
	  "####" A 0 A_JumpIfInventory("MatriarchClip",0,"RFullOrNotEnough")
	  Goto RStratFireLoadSeq
	RFullOrNotEnough:
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto BackToReady
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASG A 0
	  "####" A 1 //A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RStratFireLoadSeq2")
	  Goto UnleashTheRightFirestorm 
	UnleashTheRightFirestorm:
	  //MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASF A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto BackToReady
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
	  "####" A 0 A_TakeInventory("MatriarchClip",1)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,0,10,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.5)
      "####" A 0 //A_SetAngle(angle-0.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,17,3)
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASG A 0
      "####" C 1 A_ZoomFactor(0.94)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,18,4)
	  "####" D random(0,1) A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,19,5)
	  "####" E random(0,1) A_ZoomFactor(0.92)
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,3)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RStratBreak")
	  "####" A 0 A_JumpIfInventory("MatriarchClip",1,"UnleashTheRightFirestorm")
	  Goto RStratMainFire
   RStratMainFire:
	  //MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASF A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto BackToReady
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1)//,8,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,17,3)
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASG A 0
      "####" B 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,18,4)
	  "####" C 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,19,5)
	  "####" D 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.15)
      "####" A 0 //A_SetAngle(angle+0.15)
	  "####" E 1 A_ZoomFactor(0.915)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
    RStratBreak:
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1ASG A 0
	  "####" F 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.35)
      "####" A 0 //A_SetAngle(angle+0.35)
	  "####" G 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,4,-10)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" I 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" J 1 A_ZoomFactor(0.98)
	  "####" K 1 A_ZoomFactor(0.99)
	  "####" A 0 A_TakeInventory("RightFireToken")
	  "####" A 1 A_ZoomFactor(1)
      Goto RIdle
	  
   //Left
	  
   Flash:
	  TNT1 A 0 A_Light0
   LIdle:
	  2ASG A 0 A_JumpIfInventory("MatriarchStratActive",1,2)
	  2ARG A 0 
	  "####" A 1 A_JumpIfInventory("SynthFireLeft",1,"LFire")
	  Loop
   LFire:
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto Nullify
	  "####" A 0 A_JumpIfInventory("MatriarchStratActive",1,"LStratFire")
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenL")
	  "####" A 1 A_JumpIfInventory("MatriarchAmmo",1,"LConfirmed")
	  Goto LIdle
   HexenL:
	  "####" A 1 A_JumpIfInventory("GreenMana",3,1)
	  Goto LIdle
   LConfirmed:
	  2ARF A 0
	  "####" A 0 A_GiveInventory("LeftFireToken",1)
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(2.25)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_QuakeEx(7, 7, 7, 7, 0, 16, none, QF_SCALEDOWN)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1,-10,-4)
      //"####" A 0 A_TakeInventory("MatriarchAmmo",1,TIF_NOTAKEINFINITE)
      "####" A 0 A_SetPitch(pitch-0.25)//A_SetPitch(pitch-0.25)
      "####" A 0 A_SetAngle(angle+0.125)//A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-1)//A_SetPitch(pitch-1)
      "####" A 0 A_SetAngle(angle+0.5)//A_SetAngle(angle+1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-1.5)//A_SetPitch(pitch-1.5)
      "####" A 0 A_SetAngle(angle+0.75)//A_SetAngle(angle+1.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-17,3)
	  2ARG A 0
      "####" A 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 A_SetPitch(pitch-0.75)//A_SetPitch(pitch-0.75)
      "####" A 0 A_SetAngle(angle+.375)//A_SetAngle(angle+0.75)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-18,4)
	  "####" B 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch-0.25)//A_SetPitch(pitch-0.25)
      "####" A 0 A_SetAngle(angle+0.125)//A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-19,5)
	  "####" C 1 A_ZoomFactor(0.92)
      "####" A 0 A_SetPitch(pitch+0.25)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle-0.125)//A_SetAngle(angle-0.5)
	  "####" D 1 A_ZoomFactor(0.915)
      "####" A 0 A_SetPitch(pitch+0.75)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle-0.375)//A_SetAngle(angle-0.25)
	  "####" E 1 A_ZoomFactor(0.92)
      "####" A 0 A_SetPitch(pitch+1.5)//A_SetPitch(pitch+0.5)
      "####" A 0 A_SetAngle(angle-0.75)//A_SetAngle(angle-0.5)
	  "####" F 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch+1)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle-0.5)//A_SetAngle(angle-0.25)
	  "####" G 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.25)//A_SetPitch(pitch+0.25)
      "####" A 0 A_SetAngle(angle-0.125)//A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawnerLeft",0,0,-4,-10)
	  "####" H 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" I 1 A_ZoomFactor(0.98)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle-0.125)
	  "####" J 1 A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle-0.125)
	  "####" K 1 A_ZoomFactor(1)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LFire")
	  Goto LIdle
	  
	LStratFire:
	  TNT1 A 0 A_GiveInventory("LeftFireToken",1)
	  2ASG A 0 A_JumpIfInventory("HexenCounter",1,"LHexenStratFire")
      "####" A 0 A_JumpIfInventory("MatriarchClip2",0,"UnleashTheLeftFirestorm")
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto LStratMainFire
	  "####" A 1 A_JumpIfInventory("SynthFireLeft",1,"LStratFireLoad")
	  Goto LStratMainFire
	LStratFireLoad:
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,"LStratFireLoadSeq")
	  Goto LIdle
	  
	LHexenStratFire:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,1)
	  Goto LStratMainFire
	  "####" A 1 A_JumpIfInventory("SynthFireLeft",1,"LHexenStratFireLoad")
	  Goto LStratMainFire
	LHexenStratFireLoad:
	  "####" A 0 A_JumpIfInventory("GreenMana",6,"LStratFireLoadSeq")
	  Goto LIdle
	  
	LStopStrat:
	  //MCRG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASG A 0
	  "####" A 0 A_TakeInventory("MatriarchLoading2",1)
	  "####" A 10
	  Goto LIdle
	LStratFireLoadSeq:
	  //MCUL A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2AUL A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),5)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,4) 
	  "####" A 0 A_GiveInventory("MatriarchAmmo",CountInv("MatriarchClip2"))
	  "####" A 0 A_TakeInventory("MatriarchClip2",0)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
	  Goto Nullify
	  "####" A 0 A_PlaySound("Matriarch/Load",7,0.5)
	  "####" A 0 A_GiveInventory("MatriarchLoading2",1)
	  "####" ABCDEFGHIJK 1 //A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH) //R-canceling is causing me a headache.
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" A 0 A_TakeInventory("MatriarchAmmo",1,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_TakeInventory("GreenMana",3,TIF_NOTAKEINFINITE)
	  "####" A 0 A_GiveInventory("MatriarchClip2",1)
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LStratFireLoadSeq2")
	  Goto UnleashTheLeftFirestorm
	LStratFireLoadSeq2:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,2)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,1)
	  Goto LFullOrNotEnough
	  "####" A 0 A_JumpIfInventory("MatriarchClip2",0,"LFullOrNotEnough")
	  Goto LStratFireLoadSeq
	LFullOrNotEnough:
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),5)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,4) 
	  "####" A 0 A_GiveInventory("MatriarchAmmo",CountInv("MatriarchClip2"))
	  "####" A 0 A_TakeInventory("MatriarchClip2",0)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
	  Goto Nullify
	  "####" A 1 //A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LStratFireLoadSeq2")
	  Goto UnleashTheLeftFirestorm 
	UnleashTheLeftFirestorm:
	  //MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASF A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),5)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,4) 
	  "####" A 0 A_GiveInventory("MatriarchAmmo",CountInv("MatriarchClip2"))
	  "####" A 0 A_TakeInventory("MatriarchClip2",0)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
	  Goto Nullify
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
	  "####" A 0 A_TakeInventory("MatriarchClip2",1)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,0,-10,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.5)
      "####" A 0 //A_SetAngle(angle-0.5)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-17,3)
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASG A 0
      "####" C 1 A_ZoomFactor(0.94)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawner",0,0,-4,-10)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-18,4)
	  "####" D random(0,1) A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-19,5)
	  "####" E random(0,1) A_ZoomFactor(0.92)
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("GreenMana",6,3)
	  "####" A 0 A_JumpIfInventory("MatriarchAmmo",2,2)
	  "####" A 0 A_Jump(256,2)
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LStratBreak")
	  "####" A 0 A_JumpIfInventory("MatriarchClip2",1,"UnleashTheLeftFirestorm")
	  Goto LStratMainFire
   LStratMainFire:
	  //MCUF A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASF A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),5)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,4) 
	  "####" A 0 A_GiveInventory("MatriarchAmmo",CountInv("MatriarchClip2"))
	  "####" A 0 A_TakeInventory("MatriarchClip2",0)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
	  Goto Nullify
      "####" A 0 A_PlaySound("Matriarch/Fire",1,0.8)
      "####" A 0 A_PlaySound("Matriarch/Add",5,0.5)
      "####" A 0 A_SetBlend("Yellow",0.15,12)
      "####" A 0 A_Recoil(3)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (7, 7, 0, 3, none)
      "####" A 0 A_FireCustomMissile("MatriarchSlug",0,1)//,8,-4)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-14,0)
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-16,2)
      "####" B 1 Bright A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch-0.35)
      "####" A 0 //A_SetAngle(angle-0.35)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-17,3)
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASG A 0
      "####" B 1 A_ZoomFactor(0.94) //Sheesh.
	  "####" A 0 A_PlaySound("Matriarch/Reload",6,0.3)
      "####" A 0 //A_SetPitch(pitch-0.25)
      "####" A 0 //A_SetAngle(angle-0.25)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-18,4)
	  "####" C 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch-0.15)
      "####" A 0 //A_SetAngle(angle-0.15)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Large",0,0,-19,5)
	  "####" D 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.15)
      "####" A 0 //A_SetAngle(angle+0.15)
	  "####" E 1 A_ZoomFactor(0.915)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
    LStratBreak:
	  //MCUG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2ASG A 0
	  "####" F 1 A_ZoomFactor(0.92)
      "####" A 0 //A_SetPitch(pitch+0.35)
      "####" A 0 //A_SetAngle(angle+0.35)
	  "####" G 1 A_ZoomFactor(0.93)
      "####" A 0 //A_SetPitch(pitch+0.25)
      "####" A 0 //A_SetAngle(angle+0.25)
	  "####" A 0 A_FireCustomMissile("TankShellCasingSpawnerLeft",0,0,-4,-10)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" I 1 A_ZoomFactor(0.97)
      "####" A 0 //A_SetPitch(pitch+0.125)
      "####" A 0 //A_SetAngle(angle+0.125)
	  "####" J 1 A_ZoomFactor(0.98)
	  "####" K 1 A_ZoomFactor(0.99)
	  "####" A 1 A_ZoomFactor(1)
	  "####" A 0 A_TakeInventory("LeftFireToken",1)
      Goto LIdle
	}
}