ACTOR LonghornSelected : GenericToken {}
ACTOR LonghornStratFiring : GenericToken {}

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

ACTOR Longhorn : GuncasterWeapon replaces GoldWand
{
   Inventory.PickupSound "Guncaster/Laugh1"
   Inventory.PickupMessage "$GOTLONGHORN"
   Obituary "$KILLLONGHORN"
   Weapon.UpSound "Longhorn/Up" 
   Weapon.SelectionOrder 3
   Weapon.AmmoGive 0
   Weapon.AmmoType "LonghornAmmo"
   Weapon.AmmoUse 1
   Weapon.SlotNumber 2
   Weapon.BobStyle InverseSmooth
   Weapon.BobSpeed 1.9
   Weapon.BobRangeY 0.5
   Weapon.BobRangeX 1.0
   Scale 1.1
   +NOALERT
   +INVENTORY.UNDROPPABLE
   States
   {
   Spawn:
      LGHG X -1
      Stop
   Ready:
      LCHK Z 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK Z 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHK Z 0
      "####" "#" 0 A_JumpIf(CallACS("GunslingerMode"), "ZweiReady")
      "####" "#" 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" "#" 0 A_JumpIfInventory("LonghornStratActive",1,"StratReady")
   ReadyLoop:
      LCHK Z 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK Z 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHK Z 0
   	  "####" "#" 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" "#" 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" "#" 0 A_JumpIfInventory("LonghornStratActive",1,"StratActivate")
      "####" "#" 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
      Loop
   StratActivate:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"), "GunzerkStratActivate")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"GunzerkStratActivate")
      LCBU A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBU A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBU A 0
	  "####" ABCDEFG 1
	  "####" G 0 A_GiveInventory("LonghornStratActive",1)
   StratReady:
      LCBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,1)
	  Goto StratDeactivate
	  "####" A 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
	  Loop
   StratDeactivate:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"), "GunzerkStratDeactivate")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"GunzerkStratDeactivate")
      LCBU A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBU A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBU A 0
      "####" GFEDCBA 1
	  "####" A 0 A_TakeInventory("LonghornStratActive",1)
	  Goto Ready
   DeselectMain:
      LCHK Z 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK Z 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHK Z 0
      "####" Z 0 A_TakeInventory("LonghornSelected",1)
      "####" Z 0 A_JumpIf(CallACS("GunslingerMode"), "ZweiDeselect")
      "####" Z 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiDeselect")
	  "####" Z 0 A_Gunflash("Nullify",GFF_NOEXTCHANGE)
	  "####" Z 0 A_JumpIfInventory("LonghornStratActive",1,"StratDeselect")
      "####" Z 1 A_Lower
      "####" Z 0 A_Lower
      Loop
   StratDeselect:
	  LCBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBG A 0
      "####" A 1 A_Lower
      "####" A 0 A_Lower
      Loop
   Select:
      LCHK Z 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK Z 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHK Z 0
      "####" Z 0 A_GiveInventory("LonghornSelected",1)
      "####" Z 0 A_JumpIf(CallACS("CrosshairMode"), 2)
      "####" Z 0 A_SetCrosshair(55)
      "####" Z 0 A_JumpIf(CallACS("GunslingerMode"), "ZweiSelect")
      "####" Z 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiSelect")
	  "####" Z 0 A_JumpIfInventory("LonghornStratActive",1,"StratSelect")
      "####" Z 1 A_Raise
      "####" Z 0 A_Raise
      Loop 
   StratSelect:
	  LCBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBG A 0
      "####" A 1 A_Raise
      "####" A 0 A_Raise
      Loop
   Fire:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,"StratFire")
   FireCont: //Why not Hold? Well, it causes some silly issue I want to ommit when casting spells and running out of mana.
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (5, 8, 0, 3, none)
	  "####" AAAAA 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"InvisPuff",FBF_NORANDOM)
      "####" A 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"HuegPuff",FBF_USEAMMO|FBF_NORANDOM)
      "####" A 0 A_SetPitch(pitch-1.0, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.0, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,6,2)
	  LCHF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHF A 0
      "####" A 1 Bright A_ZoomFactor(0.99)
	  
	  LCHR A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHR A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHR A 0
      "####" A 0 A_SetPitch(pitch-2.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-2.5, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,5)
      "####" A 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-1.85, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.85, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,14,8)
      "####" B 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-1.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.25, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,18,12)
	  "####" C 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-1.0, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.0, SPF_INTERPOLATE)
	  "####" D 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" E 1 A_ZoomFactor(0.935)
      "####" A 0 A_SetPitch(pitch-0.55, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.55, SPF_INTERPOLATE)
	  "####" F 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-0.35, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.35, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" G 1 A_ZoomFactor(0.945)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.15, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.15, SPF_INTERPOLATE)
	  "####" I 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
	  "####" J 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.35, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.35, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.85, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.85, SPF_INTERPOLATE)
	  "####" L 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+1.05, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+1.05, SPF_INTERPOLATE)
	  "####" M 1 A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch+1.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+1.25, SPF_INTERPOLATE)
	  "####" N 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.95, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.95, SPF_INTERPOLATE)
	  "####" O 1
      "####" A 0 A_SetPitch(pitch+0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.75, SPF_INTERPOLATE)
	  "####" P 1
      "####" A 0 A_SetPitch(pitch+0.55, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.55, SPF_INTERPOLATE)
	  "####" Q 1
      "####" A 0 A_SetPitch(pitch+0.45, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.45, SPF_INTERPOLATE)
	  "####" R 1
      "####" A 0 A_SetPitch(pitch+0.35, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.35, SPF_INTERPOLATE)
	  "####" S 1
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
	  "####" T 1
      "####" A 0 A_SetPitch(pitch+0.15, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.15, SPF_INTERPOLATE)
	  "####" U 1
	  "####" V 1
	  
      LCHK Z 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  LGHK Z 0
	  "####" Z 1
      "####" Z 0 A_ReFire("FireCont")
      Goto ReadyLoop
   StratFire:
   	  LCBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBG A 0
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,2) 
	  "####" A 1 A_JumpIfInventory("LonghornAmmo",2,2)
	  Goto Ready
	  "####" A 1 A_JumpIfInventory("BlueMana",4,1)
	  Goto Ready
      "####" BCD 1
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      "####" A 0 A_AlertMonsters
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
      "####" A 0 A_TakeInventory("LonghornAmmo",2,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
      "####" A 0 A_TakeInventory("BlueMana",4,TIF_NOTAKEINFINITE)
      "####" A 0 A_Quake (3, 8, 0, 3, none)
      "####" A 0 A_FireCustomMissile("LonghornBullet",0,0,8,2)
      "####" A 0 A_SetPitch(pitch-1.0, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.0, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,2)
      "####" E 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-1.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.75, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,5)
      "####" F 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-1.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.25, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,8)
      "####" G 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-1.0, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.0, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,12)
	  "####" H 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.95, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.95, SPF_INTERPOLATE)
	  "####" I 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" J 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-0.55, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.55, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" J 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(1)
      "####" LMN 1
      "####" A 0 A_ReFire("StratFire")
      Goto StratReady
	AltFire:
      LCHM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
      LGHM A 0
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,1)
	  Goto Super::CheckForMagic
      LCBM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBM A 0
	  "####" A 0
	  Goto Super::CheckForMagic
	Zoom:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"Gunzerk")
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"Gunzerk")
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,"Strat")
	  Goto Regular
	Regular:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,4)
	  LCHK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGHK A 0
	  "####" A 0
	  Goto Super::Zoom
	  LCHK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUHK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Strat:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  LCBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LGBK A 0
	  "####" A 0
	  Goto Super::Zoom
	  LCBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  LUBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  LBMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Gunzerk:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,"StratGunzerk")
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1CHK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHK A 0
	  "####" A 0
	  Goto Super::Zoom
	  1CHK A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  1UHK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	StratGunzerk:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1CBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHK A 0
	  "####" A 0
	  Goto Super::Zoom
	  1CBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	//Zweihander

   ZweiSelect:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,5)
	  3CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3GHG A 0
	  "####" A 0 A_Jump(256,4)
	  3CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3BHG A 0
      "####" A 0 A_Raise
      "####" A 1 A_Raise
      Loop
   ZweiDeselect:
	  "####" A 0 A_TakeInventory("SynthFireActive",1)
	  "####" A 0 A_TakeInventory("SynthFireLeft",1)
	  "####" A 0 A_TakeInventory("SynthFireRight",1)
	  "####" A 0 A_GunFlash("Nullify")
   Zweihander:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,5)
	  3CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3GHG A 0
	  "####" A 0 A_Jump(256,4)
	  3CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3BHG A 0
	  "####" A 0 A_Lower
	  "####" A 1 A_Lower
	  Loop
   ZweiReady:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,5)
	  3CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3GHG A 0
	  "####" A 0 A_Jump(256,3)
	  3CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  3UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  3BHG A 0
	  "####" 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
   GunzerkStratActivate:
      1CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHG A 0
	  "####" A 0 A_PlaySound("Longhorn/Load",5,0.6)
	  "####" A 0 A_GiveInventory("LonghornStratActive",1)
	  "####" A 15 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM)
	  Goto RIdle
   GunzerkStratDeactivate:
      1CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHG A 0
	  "####" A 0 A_PlaySound("Longhorn/Load",5,0.6)
	  "####" A 0 A_TakeInventory("LonghornStratActive",1)
	  "####" A 15 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM)
	  Goto RIdle
	  
   //Right
   RIdle:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,5)
	  1CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHG A 0
	  "####" A 0 A_Jump(256,4)
	  1CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHG A 0
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RFire")
	  "####" A 1 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
	  
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"), "RIdle")
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"RIdle")
	  Goto BackToReady
   BackToReady:
	  "####" A 0 A_GunFlash("Nullify")
	  Goto Ready
   RFire:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto BackToReady
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenR")
	  "####" A 1 A_JumpIfInventory("LonghornAmmo",1,"RConfirmed")
	  Goto RIdle
   HexenR:
	  "####" A 1 A_JumpIfInventory("BlueMana",2,1)
      Goto RIdle
   RConfirmed:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,"RStratConfirmed")
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      //"####" A 0 A_Recoil(2.5)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (5, 8, 0, 3, none)
	  //"####" A 0 A_TakeInventory("LonghornAmmo",1,TIF_NOTAKEINFINITE)
	  "####" AAAAA 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"InvisPuff",FBF_NORANDOM)
      "####" A 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"HuegPuff",FBF_NORANDOM|FBF_USEAMMO)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,6,0)
	  
	  1CHF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHF A 0
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.425, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,4)
	  1CHR A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHR A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHR A 0
      "####" A 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.4, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.4, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,14,8)
      "####" B 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,18,12)
	  "####" C 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.325, SPF_INTERPOLATE)
	  "####" D 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch-0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.825, SPF_INTERPOLATE)
	  "####" E 1 A_ZoomFactor(0.935)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
	  "####" F 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.175, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" G 1 A_ZoomFactor(0.945)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.075, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.075, SPF_INTERPOLATE)
	  "####" I 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
	  "####" J 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.175, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.225, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.225, SPF_INTERPOLATE)
	  "####" L 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.325, SPF_INTERPOLATE)
	  "####" M 1 A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch+0.275, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.275, SPF_INTERPOLATE)
	  "####" N 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.225, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.225, SPF_INTERPOLATE)
	  "####" O 1
      "####" A 0 A_SetPitch(pitch+0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.175, SPF_INTERPOLATE)
	  "####" P 1
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
	  "####" Q 1
      "####" A 0 A_SetPitch(pitch+0.075, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.075, SPF_INTERPOLATE)
	  "####" R 1
      "####" A 0 A_SetPitch(pitch+0.05, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.05, SPF_INTERPOLATE)
	  "####" S 1
      "####" A 0 A_SetPitch(pitch+0.025, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.025, SPF_INTERPOLATE)
	  "####" T 1
      "####" A 0 A_SetPitch(pitch+0.0125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.0125, SPF_INTERPOLATE)
	  "####" U 1
	  "####" V 1
	  1CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1GHG A 0
	  "####" A 1
	  Goto RIdle
   StratRFire:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenStratR")
	  "####" A 1 A_JumpIfInventory("LonghornAmmo",2,"RStratConfirmed")
	  Goto RIdle
   HexenStratR:
	  "####" A 1 A_JumpIfInventory("BlueMana",4,1)
      Goto RIdle
   RStratConfirmed:
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      "####" A 0 A_AlertMonsters
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
      "####" A 0 A_TakeInventory("LonghornAmmo",2,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
      "####" A 0 A_TakeInventory("BlueMana",4,TIF_NOTAKEINFINITE)
      "####" A 0 A_Quake (3, 8, 0, 3, none)
      "####" A 0 A_FireCustomMissile("LonghornBullet",0,0,8,2)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.5, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,2)
	  1CBF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHF A 0
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.875, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.875, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,5)
	  1CBR A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBR A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHR A 0
      "####" A 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.625, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.625, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,8)
      "####" C 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.5, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,12)
	  "####" D 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.475, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.475, SPF_INTERPOLATE)
	  "####" E 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" G 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-0.275, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.275, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" I 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(1)
      "####" LNOQSU 1
	  1CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BHG A 0
	  "####" A 1
	  Goto RIdle
	  
   //Left
   
   Nullify:
	  TNT1 A 0
	  Stop
   Flash:
	  TNT1 A 0 A_Light0
   LIdle:
	  "####" A 0 A_JumpIfInventory("LonghornStratActive",1,5)
	  2CHG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UHG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2GHG A 0
	  "####" A 0 A_Jump(256,4)
	  2CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2BHG 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("LonghornStratActive",1,"StratLFire")
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenL")
	  "####" A 1 A_JumpIfInventory("LonghornAmmo",1,"LConfirmed")
	  Goto LIdle
   HexenL:
	  "####" A 1 A_JumpIfInventory("BlueMana",2,1)
      Goto LIdle
   LConfirmed:
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      //"####" A 0 A_Recoil(2.5)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (5, 8, 0, 3, none)
	  //"####" A 0 A_TakeInventory("LonghornAmmo",1,TIF_NOTAKEINFINITE)
	  "####" AAAAA 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"InvisPuff",FBF_NORANDOM)
      "####" A 0 A_FireBullets(0.5,0.25,-1,9*random(1,3),"HuegPuff",FBF_NORANDOM|FBF_USEAMMO)
      "####" A 0 A_SetPitch(pitch-0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.325, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-6,0)
	  2CHF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UHF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2GHF A 0
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.425, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-10,4)
	  2CHR A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UHR A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2GHR A 0
      "####" A 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.4, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.4, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-14,8)
      "####" B 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.325, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-18,12)
	  "####" C 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-0.35, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.35, SPF_INTERPOLATE)
	  "####" D 1 A_ZoomFactor(0.93)
      "####" A 0 A_SetPitch(pitch-0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.825, SPF_INTERPOLATE)
	  "####" E 1 A_ZoomFactor(0.935)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
	  "####" F 1 A_ZoomFactor(0.94)
      "####" A 0 A_SetPitch(pitch-0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.175, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" G 1 A_ZoomFactor(0.945)
	  "####" H 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.075, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.075, SPF_INTERPOLATE)
	  "####" I 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
	  "####" J 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.175, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.225, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.225, SPF_INTERPOLATE)
	  "####" L 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+0.325, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.325, SPF_INTERPOLATE)
	  "####" M 1 A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch+0.275, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.275, SPF_INTERPOLATE)
	  "####" N 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.225, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.225, SPF_INTERPOLATE)
	  "####" O 1
      "####" A 0 A_SetPitch(pitch+0.175, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.175, SPF_INTERPOLATE)
	  "####" P 1
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
	  "####" Q 1
      "####" A 0 A_SetPitch(pitch+0.075, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.075, SPF_INTERPOLATE)
	  "####" R 1
      "####" A 0 A_SetPitch(pitch+0.05, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.05, SPF_INTERPOLATE)
	  "####" S 1
      "####" A 0 A_SetPitch(pitch+0.025, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.025, SPF_INTERPOLATE)
	  "####" T 1
      "####" A 0 A_SetPitch(pitch+0.0125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.0125, SPF_INTERPOLATE)
	  "####" U 1
	  "####" V 1
	  2CHG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2GHG A 0
	  2GHG A 1
	  Goto LIdle
   StratLFire:
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenStratL")
	  "####" A 1 A_JumpIfInventory("LonghornAmmo",2,"LStratConfirmed")
	  Goto LIdle
   HexenStratL:
	  "####" A 1 A_JumpIfInventory("BlueMana",4,1)
      Goto LIdle
   LStratConfirmed:
      "####" A 0 A_PlaySound("Longhorn/Fire",1,0.4)
      "####" A 0 A_PlaySound("Longhorn/Alt",5,0.4)
      "####" A 0 A_PlaySound("Longhorn/Add",6,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      "####" A 0 A_AlertMonsters
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,3)
      "####" A 0 A_TakeInventory("LonghornAmmo",2,TIF_NOTAKEINFINITE)
	  "####" A 0 A_Jump(256,2)
      "####" A 0 A_TakeInventory("BlueMana",4,TIF_NOTAKEINFINITE)
      "####" A 0 A_Quake (3, 8, 0, 3, none)
      "####" A 0 A_FireCustomMissile("LonghornBullet",0,0,-8,2)
      "####" A 0 A_SetPitch(pitch-0.5)
      "####" A 0 A_SetAngle(angle+0.5)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-10,2)
	  2CBF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UBF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2BHF A 0
      "####" A 1 Bright A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.875, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.875, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-10,5)
	  2CBR A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UBR A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2BHR A 0
      "####" A 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.625, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.625, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-10,8)
      "####" C 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
	  "####" AA 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-10,12)
	  "####" D 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.475, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.475, SPF_INTERPOLATE)
	  "####" E 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.375, SPF_INTERPOLATE)
	  "####" G 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-0.275, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.275, SPF_INTERPOLATE)
      //"####" A 0 A_PlaySound("Longhorn/Load",6,0.2)
	  "####" I 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch-0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
	  "####" K 1 A_ZoomFactor(1)
      "####" LNOQSU 1
	  2CBG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  2UBG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  2BHG A 0
	  "####" A 1
	  Goto LIdle
	}
}
