ACTOR StruckerSelected : GenericToken {}

ACTOR Strucker : GuncasterWeapon replaces Crossbow
{
   Inventory.PickupSound "Guncaster/Laugh1"
   Inventory.PickupMessage "$GOTSTRUCKER"
   Obituary "$KILLSTRUCKER"
   Weapon.UpSound "Strucker/Up" 
   Weapon.SelectionOrder 2
   Weapon.AmmoGive 12
   Weapon.AmmoType "ShotgunAmmo"
   Weapon.AmmoUse 2
   Weapon.SlotNumber 3
   Weapon.BobStyle InverseSmooth
   Weapon.BobSpeed 1.8
   Weapon.BobRangeY 0.4
   Weapon.BobRangeX 0.9
   Scale 1.1
   +NOALERT
   States
   {
   Spawn:
      STRG X -1
      Stop
   Ready:
      SCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratReady")
   ReadyLoop:
      SCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratActivate")
      "####" A 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
      Loop
   StratActivate:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"), "GunzerkStratActivate")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"GunzerkStratActivate")
      SC1G A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SS1G A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  ST1G A 0
	  "####" DCBA 1
	  "####" Z 4
      SCRB A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRB A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRB A 0
	  "####" BCDEFFF 1
	  "####" F 0 A_PlaySound("Punch/Hit",5,0.7)
	  "####" F 0 A_PlaySound("Strucker/Load",6,0.8)
	  "####" F 0 A_GiveInventory("StruckerStratActive",1)
	  "####" GHIJKLMNOPQ 1
   StratReady:
      SCRB R 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRB A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRB R 0
   	  "####" R 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiReady")
      "####" R 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiReady")
	  "####" R 0 A_JumpIfInventory("StruckerStratActive",1,1)
	  Goto StratDeactivate
	  "####" R 1 A_WeaponReady(WRF_ALLOWZOOM|WRF_ALLOWRELOAD)
	  Loop
   StratDeactivate:
      "####" A 0 A_JumpIf(CallACS("GunslingerMode"), "GunzerkStratDeactivate")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"GunzerkStratDeactivate")
      SC2G A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SS2G A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  ST2G A 0
	  "####" DCBA 1
	  "####" Z 4
	  SCDB A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSDB A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STDB A 0
	  "####" BCDEFFF 1
	  "####" F 0 A_PlaySound("Punch/Hit",5,0.7)
	  "####" F 0 A_PlaySound("Strucker/Load",6,0.8)
	  "####" F 0 A_TakeInventory("StruckerStratActive",1)
	  "####" GHIJKL 1
      SC3B A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SS3B A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  ST3B A 0
	  "####" ABCDE 1
      SC1G A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SS1G A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  ST1G A 0
	  "####" Z 4
	  "####" ABCD 1
	  Goto Ready
   DeselectMain:
      SCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRG A 0
      "####" A 0 A_TakeInventory("StruckerSelected")
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiDeselect")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiDeselect")
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratDeselect")
      "####" A 1 A_Lower
      "####" A 0 A_Lower
      Loop
   StratDeselect:
      SCRB R 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRB R 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRB R 0
      "####" R 1 A_Lower
      "####" R 0 A_Lower
      Loop
   Select:
      SCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRG A 0
      "####" A 0 A_GiveInventory("StruckerSelected")
      "####" A 0 A_JumpIf(CallACS("CrosshairMode"), 2)
      "####" A 0 A_SetCrosshair(54)
	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),"ZweiSelect")
      "####" A 0 A_JumpIfInventory("PowerGunzerking",1,"ZweiSelect")
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratSelect")
      "####" A 1 A_Raise
      "####" A 0 A_Raise
      Loop  
   StratSelect:
      SCRB R 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRB R 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRB R 0
	  "####" R 1 A_Raise
	  "####" R 0 A_Raise
	  Loop
   Fire:
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratFire")
   FireCont:
      SCRF A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRF A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRF A 0
      "####" A 0 A_PlaySound("Strucker/Fire",1,0.6)
      "####" A 0 A_PlaySound("Strucker/Add",5,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (4, 8, 0, 3, none)
      "####" A 0 A_FireBullets(5,2,12,6*random(1.0,3.0),"HBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
      "####" A 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,3,0)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,0)
      "####" A 1 Bright A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch-1.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1.5, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,3,0)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,0)
      "####" A 1 Bright A_ZoomFactor(0.99) //Sheesh.
	  
      SCRT A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRT A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRT A 0
      "####" A 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-1, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-1, SPF_INTERPOLATE)
      "####" B 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.5, SPF_INTERPOLATE)
      "####" C 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" D 1 A_ZoomFactor(0.955)
      "####" A 0 A_PlaySound("Strucker/Load",6,0.5)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,20,-12)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" E 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" F 1 A_ZoomFactor(0.96)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,20,-12)
      "####" A 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" G 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" H 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" I 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" J 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
	  "####" KLMNO 1
      "####" A 0 A_ReFire("FireCont")
      SCRG A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRG A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRG A 0
	  "####" A 1
      Goto ReadyLoop
   HexenCheck:
      "####" R 0 A_JumpIfInventory("BlueMana",2,"StratMain")
   StratFire:
      "####" R 0 A_JumpIfInventory("HexenCounter",1,"HexenCheck")
      "####" R 0 A_JumpIfInventory("ShotgunAmmo",2,1)
	  Goto Ready
   StratMain:
      SCRB S 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRB S 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRB S 0
      "####" S 0 A_PlaySound("Strucker/AltFire",1,0.5)
      "####" S 0 A_SetBlend("Yellow",0.05,7)
      "####" S 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" S 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" S 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" S 0 A_SetPitch(pitch-1.5, SPF_INTERPOLATE)
      "####" S 0 A_SetAngle(angle-1.5, SPF_INTERPOLATE)
	  "####" S 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,3,0)
      "####" S 1 Bright A_ZoomFactor(0.9925)
	  "####" T 1 A_ZoomFactor(0.995)
      "####" T 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" T 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" U 1 A_ZoomFactor(0.9975)
	  "####" V 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,20,-12)
	  
      "####" W 0 A_PlaySound("Strucker/AltFire",5,0.5)
      "####" W 0 A_SetBlend("Yellow",0.05,7)
      "####" W 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" W 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" W 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" W 0 A_SetPitch(pitch-1.5, SPF_INTERPOLATE)
      "####" W 0 A_SetAngle(angle-1.5, SPF_INTERPOLATE)
	  "####" W 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,10,0)
      "####" W 1 Bright A_ZoomFactor(0.9925)
	  "####" X 1 A_ZoomFactor(0.995)
      "####" X 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" X 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" Y 1 A_ZoomFactor(0.9975)
	  "####" Z 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,20,-12)
	  "####" R 0 A_ReFire("StratFire")
	  "####" R 4
      Goto StratReady
	  
	AltFire:
      SCRM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
      STRM A 0
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,1)
	  Goto Super::CheckForMagic
      SCBM A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSBM A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STBM 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("StruckerStratActive",1,"Strat")
	  Goto Regular
	Regular:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  SCRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STRK A 0
	  "####" A 0
	  Goto Super::Zoom
	  SCRK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSRK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Strat:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  SCBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  STBK A 0
	  "####" A 0
	  Goto Super::Zoom
	  SCBK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  SSBK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  SBMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	Gunzerk:
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratGunzerk")
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1TCK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SRK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1TRK A 0
	  "####" A 0
	  Goto Super::Zoom
	  1TCK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SRK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1TMK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	StratGunzerk:
	  "####" A 0 A_JumpIfInventory("PowerMidasMode",1,5)
	  1BCK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SSK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BRK A 0
	  "####" A 0
	  Goto Super::Zoom
	  1BCK A 0 A_JumpIfInventory("PowerSuitToken",1,3)
	  1SSK A 0 A_JumpIfInventory("PowerSuitProtect",1,2)
	  1BDK A 0
	  "####" A 0
	  Goto Super::Zoom
	  
	//Zweihander

   ZweiSelect:
	  3SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  3TRG A 0
      "####" A 0 A_Raise
      "####" A 1 A_Raise
      Loop
   ZweiDeselect:
	  3SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  3TRG A 0
	  "####" A 0 A_TakeInventory("SynthFireActive",1)
	  "####" A 0 A_TakeInventory("SynthFireLeft",1)
	  "####" A 0 A_TakeInventory("SynthFireRight",1)
	  "####" A 0 A_GunFlash("Nullify",GFF_NOEXTCHANGE)
   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
   GunzerkStratActivate:
	  1SBG A 0
	  "####" A 0 A_PlaySound("Strucker/Load",6,0.8)
	  "####" A 0 A_GiveInventory("StruckerStratActive",1)
	  "####" A 15 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM)
	  Goto RIdle
   GunzerkStratDeactivate:
	  1TRG A 0
	  "####" A 0 A_PlaySound("Strucker/Load",6,0.8)
	  "####" A 0 A_TakeInventory("StruckerStratActive",1)
	  "####" A 15 A_WeaponReady(WRF_NOFIRE|WRF_ALLOWZOOM)
	  Goto RIdle
	
   //Right
   
   RIdle:
	  1SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  1TRG 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:
	  TNT1 A 0 A_GunFlash("Nullify",GFF_NOEXTCHANGE)
	  Goto Ready
   RFire:
	  1SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  1TRG A 0
   	  "####" 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("ShotgunAmmo",2,"RConfirmed")
	  Goto RIdle
   HexenR:
	  "####" A 1 A_JumpIfInventory("BlueMana",2,1)
	  Goto RIdle
   RConfirmed:
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratRConfirmed")
	  
	  1TRF A 0
      "####" A 0 A_PlaySound("Strucker/Fire",1,0.6)
      "####" A 0 A_PlaySound("Strucker/Add",5,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      //"####" A 0 A_Recoil(1.5)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (4, 8, 0, 3, none)
	  //1TRF A 0 A_TakeInventory("ShotgunAmmo",2,TIF_NOTAKEINFINITE)
      "####" A 0 A_FireBullets(5,2,12,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,8,1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,13,1)
      "####" A 1 Bright A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,8,1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,13,1)
      "####" A 1 Bright A_ZoomFactor(0.99)
	  
	  1TRT A 0
      "####" A 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.5, SPF_INTERPOLATE)
      "####" B 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" C 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
      "####" D 1 A_ZoomFactor(0.955)
      "####" A 0 A_PlaySound("Strucker/Load",6,0.5)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,30,-12)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
      "####" E 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" F 1 A_ZoomFactor(0.96)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,30,-12)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" G 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" H 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" I 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" J 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
	  "####" KLMNO 1

	  1TRG A 0
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RFire")
	  Goto RIdle
   StratRConfirmed:
	  1TRB S 0
      "####" S 0 A_PlaySound("Strucker/AltFire",1,0.5)
      "####" S 0 A_SetBlend("Yellow",0.05,7)
      "####" S 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" S 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" S 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" S 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" S 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" S 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,8,1)
      "####" S 1 Bright A_ZoomFactor(0.9925)
	  "####" T 1 A_ZoomFactor(0.995)
      "####" T 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" T 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" U 1 A_ZoomFactor(0.9975)
	  "####" V 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,30,-12)
	  
      "####" W 0 A_PlaySound("Strucker/AltFire",5,0.5)
      "####" W 0 A_SetBlend("Yellow",0.05,7)
      "####" W 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" W 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" W 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" W 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" W 0 A_SetAngle(angle-0.75, SPF_INTERPOLATE)
	  "####" w 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,13,1)
      "####" W 1 Bright A_ZoomFactor(0.9925)
	  "####" X 1 A_ZoomFactor(0.995)
      "####" X 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" X 0 A_SetAngle(angle-0.375, SPF_INTERPOLATE)
	  "####" Y 1 A_ZoomFactor(0.9975)
	  "####" Z 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawner",0,0,30,-12)
	  
	  "####" A 0 A_JumpIfInventory("SynthFireRight",1,"RFire")
	  
	  1SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  1TRG A 0
	  "####" A 4
      Goto RIdle
	
   //Left
	 
   Nullify:
	  TNT1 A 0
	  Stop
   Flash:
	  TNT1 A 0 A_Light0
   LIdle:
	  2SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  2TRG A 0
	  "####" A 1 A_JumpIfInventory("SynthFireLeft",1,"LFire")
	  Loop
   LFire:
	  2SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  2TRG A 0
   	  "####" A 0 A_JumpIf(CallACS("GunslingerMode"),2)
	  "####" A 0 A_JumpIfInventory("PowerGunzerking",1,1) 
	  Goto Nullify
	  "####" A 0 A_JumpIfInventory("HexenCounter",1,"HexenL")
	  "####" A 1 A_JumpIfInventory("ShotgunAmmo",2,"LConfirmed")
	  Goto LIdle
   HexenL:
	  "####" A 1 A_JumpIfInventory("BlueMana",2,1)
	  Goto LIdle
   LConfirmed:
	  "####" A 0 A_JumpIfInventory("StruckerStratActive",1,"StratLConfirmed")
	  
	  2TRF A 0
      "####" A 0 A_PlaySound("Strucker/Fire",1,0.6)
      "####" A 0 A_PlaySound("Strucker/Add",5,0.4)
      "####" A 0 A_SetBlend("Yellow",0.1,7)
      //"####" A 0 A_Recoil(1.5)
      "####" A 0 A_AlertMonsters
      "####" A 0 A_Quake (4, 8, 0, 3, none)
	  //"####" A 0 A_TakeInventory("ShotgunAmmo",2,TIF_NOTAKEINFINITE)
      "####" A 0 A_FireBullets(5,2,12,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM|FBF_USEAMMO)
      "####" A 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.375, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-8,1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-13,1)
      "####" A 1 Bright A_ZoomFactor(0.995)
      "####" A 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.75, SPF_INTERPOLATE)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-8,1)
	  "####" A 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-13,1)
      "####" A 1 Bright A_ZoomFactor(0.99) 

	  2TRT A 0
      "####" A 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch-0.5, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.5, SPF_INTERPOLATE)
      "####" B 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch-0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.25, SPF_INTERPOLATE)
      "####" C 1 A_ZoomFactor(0.96)
      "####" A 0 A_SetPitch(pitch-0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle+0.125, SPF_INTERPOLATE)
      "####" D 1 A_ZoomFactor(0.955)
      "####" A 0 A_PlaySound("Strucker/Load",6,0.5)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawnerLeft",0,0,-30,-12)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
      "####" E 1 A_ZoomFactor(0.95)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" F 1 A_ZoomFactor(0.96)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawnerLeft",0,0,-30,-12)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" G 1 A_ZoomFactor(0.97)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" H 1 A_ZoomFactor(0.98)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" I 1 A_ZoomFactor(0.99)
      "####" A 0 A_SetPitch(pitch+0.25, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.25, SPF_INTERPOLATE)
      "####" J 1 A_ZoomFactor(1)
      "####" A 0 A_SetPitch(pitch+0.125, SPF_INTERPOLATE)
      "####" A 0 A_SetAngle(angle-0.125, SPF_INTERPOLATE)
	  "####" KLMNO 1
	  2TCG A 0 A_JumpIfInventory("PowerSuitToken",1,2)
	  2TRG A 0
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LFire")
	  Goto LIdle
   StratLConfirmed:
	  2TRB S 0
      "####" S 0 A_PlaySound("Strucker/AltFire",1,0.5)
      "####" S 0 A_SetBlend("Yellow",0.05,7)
      "####" S 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" S 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" S 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" S 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" S 0 A_SetAngle(angle+0.75, SPF_INTERPOLATE)
	  "####" s 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-8,1)
      "####" S 1 Bright A_ZoomFactor(0.9925)
	  "####" T 1 A_ZoomFactor(0.995)
      "####" T 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" T 0 A_SetAngle(angle+0.375, SPF_INTERPOLATE)
	  "####" U 1 A_ZoomFactor(0.9975)
	  "####" V 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawnerLeft",0,0,-30,-12)
	  
      "####" W 0 A_PlaySound("Strucker/AltFire",5,0.5)
      "####" W 0 A_SetBlend("Yellow",0.05,7)
      "####" W 0 A_AlertMonsters
      //"####" S 0 A_Recoil(0.5)
      "####" W 0 A_Quake (1, 6, 0, 3, none)
	  "####" S 0 A_JumpIfInventory("HexenCounter",1,3)
	  "####" S 0 A_TakeInventory("ShotgunAmmo",1,TIF_NOTAKEINFINITE)
	  "####" S 0 A_Jump(256,2)
	  "####" S 0 A_TakeInventory("BlueMana",1,TIF_NOTAKEINFINITE)
      "####" W 0 A_FireBullets(10,4,6,6*random(1.0,3.0),"HBulletPuff",FBF_NORANDOM)
      "####" W 0 A_SetPitch(pitch-0.75, SPF_INTERPOLATE)
      "####" W 0 A_SetAngle(angle+0.75, SPF_INTERPOLATE)
	  "####" w 0 A_FireCustomMissile("GunsmokeSpawner_Small",0,0,-13,1)
      "####" W 1 Bright A_ZoomFactor(0.9925)
	  "####" X 1 A_ZoomFactor(0.995)
      "####" X 0 A_SetPitch(pitch-0.375, SPF_INTERPOLATE)
      "####" X 0 A_SetAngle(angle+0.375, SPF_INTERPOLATE)
	  "####" Y 1 A_ZoomFactor(0.9975)
	  "####" Z 1 A_ZoomFactor(1)
	  "####" A 0 A_FireCustomMissile("ShottyCasingSpawnerLeft",0,0,-30,-12)
	  
	  "####" A 0 A_JumpIfInventory("SynthFireLeft",1,"LFire")
	  
	  2SBG A 0 A_JumpIfInventory("StruckerStratActive",1,2)
	  2TRG A 0
	  "####" A 4
      Goto LIdle
	}
}
