actor "FAMAS-F1" : RGUWeapon
{
  obituary "%k shot %o down with the FAMAS-F1."
  inventory.pickupmessage "You got the FAMAS-F1. Look at that M203!"
  weapon.selectionorder 5
  weapon.ammotype "FamasClip"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "FamasAmmo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  states
  {
  Ready:
    M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    GRNA L 0 A_TakeInventory("weapondropper",2)
    FAMA B 0 A_PlaySoundEx("weapon/draw","SoundSlot5")
    FAMA CDEFG 2 A_WeaponReady(WRF_NOPRIMARY|WRF_ALLOWZOOM)
	FAMA HIJKLM 2 A_WeaponReady(WRF_ALLOWZOOM)
	M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
    FAMA N 0 A_JumpIfNoAmmo("Reload")
	M4CC F 0 A_JumpIfInventory("weapondropper",1,"DropWeapon")
    FAMA N 0 A_JumpIfInventory("Aiming",1,5)
    FAMA N 0 A_JumpIfInventory("Reloading",1,"Reload")
    FAMA N 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    FAMA N 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMA N 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+16
    FAMF G 0 A_JumpIfInventory("Reloading",1,"Reload")
  ReadyAim:
    FAMF G 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    FAMF G 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
    FAMF G 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+22
  Deselect:
    FAMA N 0 A_PlaySoundEx("weapon/down","SoundSlot5")
    FAMA N 0 A_TakeInventory("Aiming",1)
    FAMA N 0 A_TakeInventory("Reloading",1)
    FAMA N 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMA N 0 A_ZoomFactor(1.0)
    FAMA N 0 A_Lower
    FAMA N 1 A_Lower
    Goto Deselect+5
  Select:
    FAMA A 0 A_Raise
    Loop
  Spawn:
    WEAP G 0
    WEAP G 0 A_SpawnItem("FamasDrop")
    Stop
  Fire:
    FAMB A 0 A_JumpIfInventory("Aiming",1,"FireAim")
    FAMA N 1 A_JumpIfNoAmmo("ReloadStart")
    FAMB A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-6.00,6.00),1,0,4,0,frandom(-6.00,6.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB C 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB B 0 BRIGHT A_GunFlash
    FAMB B 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-9.00,9.00),1,0,4,0,frandom(-9.00,9.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB B 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB B 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB D 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-9.00,9.00),1,0,4,0,frandom(-9.00,9.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
    FAMB DF 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+16
  FireEmpty:
    FAMB BC 1
    FAMB F 1 A_GiveInventory("FamasBolt",1)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+16
  FireAim:
    FAMF G 1 A_JumpIfNoAmmo("ReloadStart")
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.20,1.40),1,0,4,0,frandom(-1.20,1.20))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF I 0 BRIGHT A_GunFlash
    FAMF I 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF I 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF I 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF IJ 1
    FAMF GG 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+22
  FireAimEmpty:
    FAMF IJ 1
    FAMF G 1 A_GiveInventory("FamasBolt",1)
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+22
  Reload:
    VECC A 0 A_JumpIfInventory("FamasClip",25,2)
    VECC A 0 A_JumpIfInventory("FamasAmmo",1,"ReloadStart")
    VECC A 0 A_TakeInventory("Reloading",1)
    VECC A 0 A_JumpIfInventory("Aiming",1,"ReadyAim")
    Goto Ready+19
  ReloadStart:
    FAMC A 0 ACS_NamedExecuteAlways("RefSpeak",0,0,0,0)
    FAMC A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim")
    FAMC A 3 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload2")
    FAMC BCDEFGH 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 3 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload2
  Reload2:
    FAMC PQRSTUV 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 3 A_TakeInventory("Reloading",1)
    FAMC X 3 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo
  ReloadAmmo:
    FAMC I 0 A_JumpIfInventory("FamasClip",25,"ReloadEnd")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd
    FAMC I 0 A_GiveInventory("FamasClip",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo
  ReloadEnd:
    FAMC YZ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 3 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt")
    FAMD CD 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+16
  ReloadEndBolt:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJK 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD L 3 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD MNOP 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    Goto Ready+16
  Zoom:
  PostReloadAlt:
    M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
    U45F A 0 A_ZoomFactor(1.3)
    FAMF E 0 A_GiveInventory("Aiming",1)
	FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMF ABCDEF 1
    Goto AltHold
  ReloadBreak:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	TNT1 A 0 A_ClearReFire
    Goto Reload
  ClearRefire:
    FAMF G 1 A_ClearReFire
	Goto AltHold
  FireAimAltHold:
    "####" "#" 0 A_JumpIfInventory("FamasClip",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.20,1.40),1,0,4,0,frandom(-1.20,1.20))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF I 0 BRIGHT A_GunFlash
    FAMF I 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF I 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF I 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF IJ 1
    FAMF GG 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    "####" "#" 0 A_JumpIfInventory("FamasClip",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
	TNT1 A 0
    Goto AltHold
  AltHold:
    A12C C 0 A_JumpIfInventory("FireHeld",1,"ClearRefire")
    FAMF G 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
	A12C C 0 A_JumpIfInventory("FireHeld",1,"FireAimAltHold")
	A12C C 0 A_JumpIfInventory("Reloading",1,"ReloadBreak")
	U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
	A12C F 0 A_Refire("AltHold")
	A12C C 0 A_JumpIfInventory("Aiming",1,"AltFire2")
	Goto Ready+22
  AltFire:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"AltHold")
    FAMF A 0 A_JumpIfInventory("Aiming",1,"AltFire2")
    U45F A 0 A_ZoomFactor(1.3)
    FAMF AB 1
    FAMF B 0 A_GiveInventory("Aiming",1)
    FAMF CDEF 1
    FAMF G 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	A12C F 0 A_Refire("AltHold")
    Goto Ready+22
  AltFire2:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto Ready+16
  AltFire3:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	goto DropWeapon
  ReloadStartAim:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto ReloadStart+2
  Flash:
    TNT1 A 2 bright A_Light1
    TNT1 A 0 bright A_Light0
    Stop
  Fire_SteadyAim:
    FAMF A 0 A_PlayWeaponSound("g2/fire")
    FAMF A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-4.25,4.25),1,0,4,0,frandom(-4.25,4.25))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB C 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB B 0 BRIGHT A_GunFlash
    FAMB B 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-7.00,7.00),1,0,4,0,frandom(-7.00,7.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB B 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB D 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-7.00,7.00),1,0,4,0,frandom(-7.00,7.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB BC 1
    FAMB DF 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+16
  ReloadStart_SOH:
    FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload3")
    FAMC A 2
    FAMC BCDEFGH 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 2 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload3
  Reload3:
    FAMC PQRSTUV 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 2 A_TakeInventory("Reloading",1)
    FAMC X 2 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    FAMC I 0 A_JumpIfInventory("FamasClip",25,"ReloadEnd_SOH")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd_SOH
    FAMC I 0 A_GiveInventory("FamasClip",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    FAMC YZ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 2 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt_SOH")
    FAMD CD 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+16
  ReloadEndBolt_SOH:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD K 2 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD LMNOP 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    Goto Ready+16
  FragGrenade:
    U45F A 0 ACS_NamedExecuteAlways("RefSpeak",0,1,0,0)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	M4CA J 0 A_JumpIfInventory("ThrowingStun",1,"StunGrenade")
	M4CA J 0 A_JumpIfInventory("ThrowingIncd",1,"IncGrenade")
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"FragGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  FragGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  KnifeAttack:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"KnifeAttack_SOH")
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  KnifeAttack_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  KnifeAttack_SOH:
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_SOH_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  KnifeAttack_SOH_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  StunGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"StunGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  IncGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"IncGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  StunGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  IncGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+3
  DropWeapon:
    FAMA MLKJIHGFEDCB 2 A_WeaponReady(WRF_NOPRIMARY)
	FAMA A 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CC F 0 A_JumpIfInventory("weapondropper",2,"ThrowWeapon")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",1)
	M4CB A 0 A_FireCustomMissile("FamasDropped",0,0,7,2)
	stop
  ThrowWeapon:
    GRNA IKMN 1
	KNFA B 0 A_PlaySound("knife/swing")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",2)
	M4CB A 0 A_FireCustomMissile("FamasThrown",0,0,7,2)
	stop
  }
}

actor FamasClip : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 25
    ammo.backpackamount 0
    ammo.backpackmaxamount 25
    +IGNORESKILL
}


actor FamasBolt : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor "FAMAS-F1 Ex Mags" : "FAMAS-F1"
{
  obituary "%k shot %o down with the FAMAS-F1."
  inventory.pickupmessage "You got the FAMAS-F1. Look at that M203!"
  //attacksound "g2/fire"
  weapon.selectionorder 5
  weapon.ammotype "FamasClip2"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "FamasAmmo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  states
  {
  Ready:
    M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    GRNA L 0 A_TakeInventory("weapondropper",2)
    FAMA B 0 A_PlaySoundEx("weapon/draw","SoundSlot5")
    FAMA CDEFG 2 A_WeaponReady(WRF_NOPRIMARY|WRF_ALLOWZOOM)
	FAMA HIJKLM 2 A_WeaponReady(WRF_ALLOWZOOM)
	M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
    FAMA N 0 A_JumpIfNoAmmo("Reload")
	M4CC F 0 A_JumpIfInventory("weapondropper",1,"DropWeapon")
    FAMA N 0 A_JumpIfInventory("Aiming",1,5)
    FAMA N 0 A_JumpIfInventory("Reloading",1,"Reload")
    FAMA N 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    FAMA N 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMA N 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+16
    FAMF G 0 A_JumpIfInventory("Reloading",1,"Reload")
  ReadyAim:
    FAMF G 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    FAMF G 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
    FAMF G 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+22
  Fire:
    FAMB A 0 A_JumpIfInventory("Aiming",1,"FireAim")
    FAMA N 1 A_JumpIfNoAmmo("ReloadStart")
    FAMB A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-6.00,6.00),1,0,4,0,frandom(-6.00,6.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB C 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB B 0 BRIGHT A_GunFlash
    FAMB B 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-9.00,9.00),1,0,4,0,frandom(-9.00,9.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB B 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB B 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB D 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-9.00,9.00),1,0,4,0,frandom(-9.00,9.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
    FAMB DF 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+16
  FireAim:
    FAMF G 1 A_JumpIfNoAmmo("ReloadStart")
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.20,1.20),1,0,4,0,frandom(-1.20,1.20))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF I 0 BRIGHT A_GunFlash
    FAMF I 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF I 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF I 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF IJ 1
    FAMF GG 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+22
  Fire_SteadyAim:
    FAMF A 0 A_PlayWeaponSound("g2/fire")
    FAMF A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-4.25,4.25),1,0,4,0,frandom(-4.25,4.25))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB C 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB B 0 BRIGHT A_GunFlash
    FAMB B 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-7.00,7.00),1,0,4,0,frandom(-7.00,7.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB B 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB B 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB D 1
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-2)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-7.00,7.00),1,0,4,0,frandom(-7.00,7.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
    FAMB DF 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+16
  Reload: //AltFire:
    VECC A 0 A_JumpIfInventory("FamasClip2",37,2)
    VECC A 0 A_JumpIfInventory("FamasAmmo",1,"ReloadStart")
    VECC A 0 A_TakeInventory("Reloading",1)
    VECC A 0 A_JumpIfInventory("Aiming",1,"ReadyAim")
    Goto Ready+19
  ReloadStart:
    FAMC A 0 ACS_NamedExecuteAlways("RefSpeak",0,0,0,0)
    FAMC A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim")
    FAMC A 3 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload2")
    FAMC BCDEFGH 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 3 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagExtSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload2
  Reload2:
    FAMC PQRSTUV 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 3 A_TakeInventory("Reloading",1)
    FAMC X 3 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo
  ReloadAmmo:
    FAMC I 0 A_JumpIfInventory("FamasClip2",37,"ReloadEnd")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd
    FAMC I 0 A_GiveInventory("FamasClip2",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo
  ReloadEnd:
    FAMC YZ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 3 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt")
    FAMD CD 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+16
  ReloadEndBolt:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJK 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD L 3 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD MNOP 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    Goto Ready+16
  ReloadStart_SOH:
    FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload3")
    FAMC A 2
    FAMC BCDEFGH 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 2 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagExtSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload3
  Reload3:
    FAMC PQRSTUV 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 2 A_TakeInventory("Reloading",1)
    FAMC X 2 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    FAMC I 0 A_JumpIfInventory("FamasClip2",37,"ReloadEnd_SOH")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd_SOH
    FAMC I 0 A_GiveInventory("FamasClip2",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    FAMC YZ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 2 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt_SOH")
    FAMD CD 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+16
  ReloadEndBolt_SOH:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD K 2 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD LMNOP 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    Goto Ready+16
  ReloadStartAim:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto ReloadStart+2
  PostReloadAlt:
    M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
    U45F A 0 A_ZoomFactor(1.3)
    FAMF E 0 A_GiveInventory("Aiming",1)
	FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMF ABCDEF 1
    Goto AltHold
  ReloadBreak:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	TNT1 A 0 A_ClearReFire
    Goto Reload
  ClearRefire:
    FAMF G 1 A_ClearReFire
	Goto AltHold
  FireAimAltHold:
    "####" "#" 0 A_JumpIfInventory("FamasClip2",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip2",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.20,1.40),1,0,4,0,frandom(-1.20,1.20))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip2",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip2",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF I 0 BRIGHT A_GunFlash
    FAMF I 2 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF I 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip2",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF J 1
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	M16F A 0 A_TakeInventory("FamasClip2",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
	"####" "#" 0 A_JumpIfInventory("FamasClip2",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
    TNT1 A 0 A_JumpIfInventory("FamasClip2",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF IJ 1
    FAMF GG 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWZOOM)
    "####" "#" 0 A_JumpIfInventory("FamasClip2",1,2)
	TNT1 A 0 A_GiveInventory("FamasBolt",1)
	Goto ReloadBreak
	TNT1 A 0
    Goto AltHold
  }
}

actor FamasClip2 : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 37
    ammo.backpackamount 0
    ammo.backpackmaxamount 37
    +IGNORESKILL
}

actor FamasExMags : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor "FAMAS-F1 Auto" : "FAMAS-F1"
{
  obituary "%k speedily shot %o down with the FAMAS-F1 Auto."
  inventory.pickupmessage "You got the FAMAS-F1. Look at that M203!"
  weapon.selectionorder 5
  weapon.ammotype "FamasClip"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "FamasAmmo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  -NOAUTOFIRE
  states
  {
  Fire:
    FAMB A 0 A_JumpIfInventory("Aiming",1,"FireAim")
    FAMB A 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-1)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-6.00,6.00),1,0,4,0,frandom(-6.00,6.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMB D 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMB DF 1 A_ReFire
    Goto Ready+16
    FAMB D 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB DF 1 A_ReFire
    Goto Ready+16
  Hold:
    FAMB A 0 A_JumpIfInventory("Aiming",1,"HoldAim")
    FAMB A 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Hold_SteadyAim")
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-1)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-9.00,9.00),1,0,4,0,frandom(-9.00,9.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMB D 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMB DF 1 A_ReFire
    Goto Ready+16
    FAMB D 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB DF 1 A_ReFire
    Goto Ready+16
  FireEmpty:
    FAMB BCD 1
    FAMB F 1 A_GiveInventory("FamasBolt",1)
    FAMB F 0 A_JumpIfInventory("FamasAmmo",1,2)
    FAMB F 0 A_ReFire
    Goto Ready+16
    FAMB F 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB F 0 A_ReFire
    Goto Ready+16
  FireAim:
    FAMF H 0 A_JumpIfNoAmmo("ReloadStart")
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.20,1.20),1,0,4,0,frandom(-1.20,1.20))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF IJ 1
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMF GG 1 A_ReFire
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    FAMF GG 1 A_ReFire
    Goto Ready+22
  HoldAim:
    FAMF H 0 A_JumpIfNoAmmo("ReloadStart")
    FAMF H 0 A_PlayWeaponSound("g2/fire")
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF H 0 A_JumpIfNoAmmo("FireAimEmpty")
    FAMF IJ 1
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMF GG 1 A_ReFire
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    FAMF GG 1 A_ReFire
    Goto Ready+22
  FireAimEmpty:
    FAMF IJG 1
    FAMF G 1 A_GiveInventory("FamasBolt",1)
    FAMF G 0 A_JumpIfInventory("FamasAmmo",1,2)
    FAMF G 0 A_ReFire
    Goto Ready+22
    FAMF G 0 A_JumpIfNoAmmo("ReloadStart")
    FAMF G 0 A_ReFire
    Goto Ready+22
  Zoom:
  PostReloadAlt:
    M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
    U45F A 0 A_ZoomFactor(1.3)
    FAMF E 0 A_GiveInventory("Aiming",1)
	FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMF ABCDEF 1
    Goto AltHold
  AltFireHoldAim:
    "####" "#" 0 A_JumpIfInventory("FamasClip",1,1)
	Goto Reload
    FAMF H 0 A_PlayWeaponSound("g2/fire")
	GRNA L 0 A_TakeInventory("FamasClip",1)
    FAMF H 0 A_FireCustomMissile("WeaponSmokePuff",0,0,0,-3)
    FAMF H 0 BRIGHT A_GunFlash
    FAMF H 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-1.80,1.80),1,0,4,0,frandom(-1.80,1.80))
	FAMF H 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,31-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMF H 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMF IJ 1
    "####" "#" 0 A_JumpIfInventory("FamasClip",1,1)
	Goto Reload
    FAMF GG 1 A_ReFire
    Goto Ready+22
  AltHold:
    FAMF G 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
	M4CA C 0 A_JumpIfInventory("FireHeld",1,"AltFireHoldAim")
	M4CA C 0 A_JumpIfInventory("Reloading",1,"Reload")
	U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
	M4CA F 0 A_Refire("AltHold")
	M4CA C 0 A_JumpIfInventory("Aiming",1,"AltFire2")
	Goto Ready+22
  AltFire:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    M4CD A 0 A_JumpIfInventory("FamasToken",1,"Reload")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"AltHold")
    FAMF A 0 A_JumpIfInventory("Aiming",1,"AltFire2")
    FAMF A 0 A_ZoomFactor(1.3)
    FAMF AB 1
    FAMF B 0 A_GiveInventory("Aiming",1)
    FAMF CDEF 1
    FAMF G 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMF G 0 A_ReFire
    Goto Ready+22
  AltFire2:
    FAMF G 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	FAMA NNNN 1
    M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+16
  AltFire3:
    FAMF G 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMF A 0 A_ReFire
	goto DropWeapon
  ReloadStartAim:
    U45F A 0 A_ZoomFactor(1.0)
    FAMF FE 1
    FAMF E 0 A_TakeInventory("Aiming",1)
    FAMF DCBA 1
    FAMF A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto ReloadStart+2
  Fire_SteadyAim:
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-1)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-4.25,4.25),1,0,4,0,frandom(-4.25,4.25))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMB D 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMB DF 1 A_ReFire
    Goto Ready+16
    FAMB D 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB DF 1 A_ReFire
    Goto Ready+16
  Hold_SteadyAim:
    FAMB A 0 A_PlayWeaponSound("g2/fire")
    FAMB A 0 A_FireCustomMissile("WeaponSmokePuff",0,0,9,-1)
    FAMB A 0 BRIGHT A_GunFlash
    FAMB A 1 BRIGHT A_FireCustomMissile("HHCBFAMAS",frandom(-7.00,7.00),1,0,4,0,frandom(-7.00,7.00))
	FAMB A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,32-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    FAMB A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    TNT1 A 0 A_JumpIfInventory("FamasClip",5,2)
    TNT1 A 0 A_PlaySound("m9/lock")
    FAMB A 0 A_JumpIfNoAmmo("FireEmpty")
    FAMB BC 1
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMB D 0 A_JumpIfInventory("FamasAmmo",1,3)
    FAMB DF 1 A_ReFire
    Goto Ready+16
    FAMB D 0 A_JumpIfNoAmmo("ReloadStart")
    FAMB DF 1 A_ReFire
    Goto Ready+16
  Reload:
    VECC A 0 A_JumpIfInventory("FamasClip",25,2)
    VECC A 0 A_JumpIfInventory("FamasAmmo",1,"ReloadStart")
    VECC A 0 A_TakeInventory("Reloading",1)
    VECC A 0 A_JumpIfInventory("Aiming",1,"ReadyAim")
    Goto Ready+19
  ReloadStart:
    FAMC A 0 ACS_NamedExecuteAlways("RefSpeak",0,0,0,0)
    FAMC A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim")
    FAMC A 3 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload2")
    FAMC BCDEFGH 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 3 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload2
  Reload2:
    FAMC PQRSTUV 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 3 A_TakeInventory("Reloading",1)
    FAMC X 3 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo
  ReloadAmmo:
    FAMC I 0 A_JumpIfInventory("FamasClip",25,"ReloadEnd")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd
    FAMC I 0 A_GiveInventory("FamasClip",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo
  ReloadEnd:
    FAMC YZ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 3 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt")
    FAMD CD 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMD M 0 A_ReFire
    Goto Ready+16
  ReloadEndBolt:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJK 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD L 3 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD MNOP 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMD M 0 A_ReFire
    Goto Ready+16
  ReloadStart_SOH:
    FAMC A 0 A_JumpIfInventory("FAMASToken",1,"Reload3")
    FAMC A 2
    FAMC BCDEFGH 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMC I 2 A_PlaySoundEx("g2/clipout","SoundSlot5")
	FAMC O 0 A_FireCustomMissile("EmptyBoxMagSpawner2",0,0,0,-4)
	FAMC O 0 A_GiveInventory("FAMASToken",1)
	FAMC J 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC KLMNO 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	goto Reload3
  Reload3:
    FAMC PQRSTUV 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMC W 3 A_TakeInventory("Reloading",1)
    FAMC X 2 A_PlayWeaponSound("g2/clipin")
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    FAMC I 0 A_JumpIfInventory("FamasClip",25,"ReloadEnd_SOH")
	FAMC I 0 A_TakeInventory("FAMASToken",1)
    FAMC I 0 A_JumpIfInventory("FamasAmmo",1,1)
    Goto ReloadEnd_SOH
    FAMC I 0 A_GiveInventory("FamasClip",1)
    FAMC I 0 A_TakeInventory("FamasAmmo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    FAMC YZ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD B 2 A_JumpIfInventory("FamasBolt",1,"ReloadEndBolt_SOH")
    FAMD CD 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD EFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMD M 0 A_ReFire
    Goto Ready+16
  ReloadEndBolt_SOH:
    FAMD B 0 A_TakeInventory("FamasBolt",1)
    FAMD BHIJ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMD K 2 A_PlaySoundEx("g2/bolt","SoundSlot5")
    FAMD LMNOP 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMD QRS 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    FAMD M 0 A_ReFire
    Goto Ready+16
  }
}

actor FamasRapidFire : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor "FAMAS-F1 M203" : RGUWeapon
{
  obituary "%k popped %o with the M203!"
  inventory.pickupmessage "You got the FAMAS-F1 M203. Wait, how'd you get this?"
  +WEAPON.EXPLOSIVE
  weapon.selectionorder 22
  weapon.ammotype "M203Clip"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "M203Ammo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  states
  {
  Ready:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    FAMG A 2 A_PlaySoundEx("weapon/draw","SoundSlot5")
    FAMG BCDEFGHIJ 2 A_WeaponReady(WRF_NOFIRE)
	M4CD A 0 A_JumpIfInventory("FamasGRToken",1,"Reload")
    FAMG K 0 A_JumpIfNoAmmo("Reload")
	M4CC F 0 A_JumpIfInventory("weapondropper",1,"DropWeapon")
    FAMG K 0 A_JumpIfInventory("Reloading",1,"Reload")
    FAMG K 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    FAMG K 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMG J 1 A_WeaponReady(WRF_ALLOWRELOAD)
    Goto Ready+12
  Deselect:
    FAMG J 0 A_PlaySoundEx("weapon/down","SoundSlot5")
    FAMG J 0 A_TakeInventory("Aiming",1)
    FAMG J 0 A_TakeInventory("Reloading",1)
    FAMG J 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    FAMG J 0 A_Lower
    FAMG J 1 A_Lower
    Goto Deselect+4
  Select:
    FAMF A 0
    FAMG A 0 A_TakeInventory("Reloading",1)
    FAMF A 0 ACS_NamedExecuteAlways("RefXHair",0,0,0,0)
    FAMA A 0 A_Raise
    Goto Select+3
  Fire:
    FAMG J 1 A_JumpIfNoAmmo("ReloadStart")
    FAMG A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("M203Shell",frandom(-2.50,2.50),1,8,8,0,frandom(-2.00,2.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+12
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+12
  Reload: //AltFire:
    FAMI A 0 A_JumpIfInventory("M203Clip",1,2)
    FAMI A 0 A_JumpIfInventory("M203Ammo",1,"ReloadStart")
    FAMI A 0 A_TakeInventory("Reloading",1)
    Goto Ready+14
  ReloadStart:
    FAMI A 3 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	FAMC A 0 A_JumpIfInventory("FAMASGRToken",1,"Reload2")
    FAMI BCDE 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMI F 0 A_GiveInventory("Reloading",1)
    FAMI F 3 A_PlaySoundEx("m203/open","SoundSlot5")
	FAMI F 0 A_FireCustomMissile("ARGrenadeCasing",0,0,0,-4)
	FAMC I 0 A_GiveInventory("FAMASGRToken",1)
    FAMI GHIJK 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	goto Reload2
  Reload2:
    FAMI LMNO 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    Goto ReloadAmmo
  ReloadAmmo:
    FAMC I 0 A_JumpIfInventory("M203Clip",1,"ReloadEnd")
	FAMC I 0 A_TakeInventory("FAMASGRToken",1)
    FAMC I 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto ReloadEnd
    FAMC I 0 A_GiveInventory("M203Clip",1)
    FAMC I 0 A_TakeInventory("M203Ammo",1)
    Goto ReloadAmmo
  ReloadEnd:
    FAMI PQR 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMI S 0 A_PlayWeaponSound("m203/in")
    FAMI STUVWX 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMI Y 0 A_TakeInventory("Reloading",1)
    FAMI Y 3 A_PlaySound("m203/close")
    FAMI Z 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMJ ABCD 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    Goto Ready+12
  AltFire:
    FAMG J 1 A_WeaponReady(WRF_NOSECONDARY)
    Goto Ready+12
  Flash:
    TNT1 A 2 bright A_Light1
    TNT1 A 0 bright A_Light0
    Stop
  Spawn:
    WEAP G 0
    WEAP G 0 A_SpawnItem("FamasPickup")
    Stop
  ReloadStart_SOH:
    FAMC A 0 A_JumpIfInventory("FAMASGRToken",1,"Reload3")
    FAMI A 2
    FAMI BCDE 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMI F 0 A_GiveInventory("Reloading",1)
    FAMI F 2 A_PlaySoundEx("m203/open","SoundSlot5")
	FAMI F 0 A_FireCustomMissile("ARGrenadeCasing",0,0,0,-4)
    FAMC I 0 A_GiveInventory("FAMASGRToken",1)
    FAMI GHIJK 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
	goto Reload3
  Reload3:
    FAMI LMNO 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    FAMI O 2 A_PlayWeaponSound("m203/in")
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    FAMC I 0 A_JumpIfInventory("M203Clip",1,"ReloadEnd_SOH")
	FAMC I 0 A_TakeInventory("FAMASGRToken",1)
    FAMC I 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto ReloadEnd_SOH
    FAMC I 0 A_GiveInventory("M203Clip",1)
    FAMC I 0 A_TakeInventory("M203Ammo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    FAMI PQRSTUVWX 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMI Y 0 A_TakeInventory("Reloading",1)
    FAMI Y 2 A_PlaySound("m203/close")
    FAMI Z 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    FAMJ ABCD 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    Goto Ready+12
  FragGrenade:
    U45F A 0 ACS_NamedExecuteAlways("RefSpeak",0,1,0,0)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	M4CA J 0 A_JumpIfInventory("ThrowingStun",1,"StunGrenade")
	M4CA J 0 A_JumpIfInventory("ThrowingIncd",1,"IncGrenade")
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"FragGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  FragGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
    Goto Ready+2
  KnifeAttack:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"KnifeAttack_SOH")
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    Goto Ready+2
  KnifeAttack_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    Goto Ready+2
  KnifeAttack_SOH:
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_SOH_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    Goto Ready+2
  KnifeAttack_SOH_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    Goto Ready+2
  Fire_SteadyAim:
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("M203Shell",frandom(-1.50,1.50),1,8,8,0,frandom(-1.00,1.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+12
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+12
  StunGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"StunGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  IncGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"IncGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  StunGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
    Goto Ready+2
  IncGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
  DropWeapon:
    FAMG IHGFEDCB 2 A_WeaponReady(WRF_NOPRIMARY)
	FAMG A 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CC F 0 A_JumpIfInventory("weapondropper",2,"ThrowWeapon")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",1)
	M4CB A 0 A_FireCustomMissile("FamasDropped",0,0,7,2)
	stop
  ThrowWeapon:
    GRNA IKMN 1
	KNFA B 0 A_PlaySound("knife/swing")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",2)
	M4CB A 0 A_FireCustomMissile("FamasThrown",0,0,7,2)
  }
}

actor M203Clip : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 1
    ammo.backpackamount 0
    ammo.backpackmaxamount 1
    +IGNORESKILL
}

actor M203Ammo : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 1
    inventory.maxamount 3
    ammo.backpackamount 2
    ammo.backpackmaxamount 6
}

actor M203Shell
{
  obituary "%k popped %o with the M203!"
  radius 4
  height 4
  speed 39//40
  damage (35)
  PROJECTILE
  -NOGRAVITY
  +NOEXTREMEDEATH
  +FORCERADIUSDMG
  +CANBOUNCEWATER
  +FORCEXYBILLBOARD
  +THRUSPECIES
  Species "Player"
  Scale 0.05
  gravity 0.3
  bouncefactor 0.5
  decal RevenantScorch
  DamageType "Explosion"
  ProjectileKickBack 35
  states
  {
  Spawn:
    G69X AAAAA 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    G69X A 0 A_GiveInventory("M203Armed",1)
    G69X A 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    Wait
  XDeath:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
  Death:
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 AA 0 A_Explode(110,16,0)
    TNT1 A 0 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0)
    TNT1 A 20 A_PlaySoundEx("generic/ricochets","SoundSlot5")
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,11,0,6,0)
    TNT1 AA 0 A_Explode(55,125)
    TNT1 AA 0 A_Explode(45,250,0)
    TNT1 A 0 A_SetDamageType("explosionc")
    TNT1 A 0 A_Explode(45,250,0)
    TNT1 AA 0 A_SpawnItemEx("ExplosionMain3")
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-24,24), random(-24,24), random(-12,18), random(-4,4), random(-4,4), random(-2,3), 0, 128, 0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("ImpactSpark2", random(-24,24), random(-24,24), random(-12,18), random(-4,4), random(-4,4), random(-2,3), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(500)
    Stop
  }
}

//Grenades need .2 or so seconds before it arms.
actor M203Armed : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor M203ShellUnarmedDrop
{
  Speed 1
  Height 1
  Radius 0
  Scale 0.03
  gravity 0.5
  bouncefactor 0.5
  bouncecount 3
  bouncetype "Doom"
  +MISSILE
  +FORCEXYBILLBOARD
  //SeeSound "misc/shell"
  //DeathSound "misc/shell"
  States
  {
  Spawn:
    G69X A 0
    G69X AAAAA 5 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    Goto Death
  Death:
    G69X A 125
    G69X A 5 A_FadeOut(0.1)
    Wait
  }
}

actor "FAMAS-F1 M203 Incendiary" : "FAMAS-F1 M203"
{
  states
  {
  Fire:
    FAMG J 1 A_JumpIfNoAmmo("ReloadStart")
    FAMG A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("IncM203Shell",frandom(-2.50,2.50),1,8,8,0,frandom(-2.00,2.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+10
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+10
  Fire_SteadyAim:
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("IncM203Shell",frandom(-1.50,1.50),1,8,8,0,frandom(-1.00,1.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+10
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+10
  }
}

actor FamasInc : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor IncM203Shell : M203Shell
{
  states
  {
  Spawn:
    G69X AAAAA 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    G69X A 0 A_GiveInventory("M203Armed",1)
    G69X A 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    Wait
  XDeath:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
  Death:
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 AA 0 A_Explode(110,16,0)
    TNT1 A 0 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0)
    TNT1 A 20 A_PlaySoundEx("generic/ricochets","SoundSlot5")
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,10,0,5,0)
    TNT1 A 0 A_Explode(55,125)
    TNT1 A 0 A_Explode(45,250,0)
    TNT1 A 0 A_SetDamageType("explosionc")
    TNT1 A 0 A_Explode(22,250,0)
    TNT1 A 0 A_SpawnItemEx("ExplosionMain3")
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFire", random(-32,32), random(-32,32), random(0,16), random(-20,20)/10.0, random(-20,20)/10.0, random(4,5), 0, 0, 0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-20,20)/10.0, random(-20,20)/10.0, random(4,5), 0, 128, 0)
    TNT1 AAAAAAAAAA 0 A_SpawnItemEx("IncGrenadeFireLight", random(-32,32), random(-32,32), random(0,16), random(-20,20)/10.0, random(-20,20)/10.0, random(4,5), 0, 128, 0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(500)
    Stop
  }
}

actor "FAMAS-F1 M203 Stun" : "FAMAS-F1 M203"
{
  states
  {
  Fire:
    FAMG J 1 A_JumpIfNoAmmo("ReloadStart")
    FAMG A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("StunM203Shell",frandom(-2.50,2.50),1,8,8,0,frandom(-2.00,2.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+10
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+10
  Fire_SteadyAim:
    FAMG A 0 A_PlayWeaponSound("m203/fire")
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",3,0,4,-8)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",0,0,8,-4)
    FAMG A 0 A_FireCustomMissile("WeaponSmokePuffLong",-3,0,12,-8)
    FAMH A 1 BRIGHT A_FireCustomMissile("StunM203Shell",frandom(-1.50,1.50),1,8,8,0,frandom(-1.00,1.00))
    FAMH A 0 ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    FAMH B 1 BRIGHT A_GunFlash
    FAMH CDEFGHI 1
    FAMH A 0 A_JumpIfInventory("M203Ammo",1,1)
    Goto Ready+10
    FAMH A 0 A_JumpIfNoAmmo("ReloadStart")
    Goto Ready+10
  }
}

actor FamasStun : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor StunM203Shell : M203Shell
{
  states
  {
  Spawn:
    G69X AAAAA 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    G69X A 0 A_GiveInventory("M203Armed",1)
    G69X A 1 A_SpawnItemEx("FlightSmokePuff",-10,0,0,0,0,0,0,128,0)
    Wait
  XDeath:
    TNT1 A 0
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
  Death:
    TNT1 A 0 A_JumpIfInventory("M203Armed",1,"DeathArmed")
    TNT1 AA 0 A_Explode(110,16,0)
    TNT1 A 0 A_SpawnItemEx("M203ShellUnarmedDrop",0,0,0,-2,0,2,random(-8,8),0,0)
    TNT1 A 20 A_PlaySoundEx("generic/ricochets","SoundSlot5")
    Stop
  DeathArmed:
    TNT1 A 0
    TNT1 A 0 Radius_Quake(2,12,0,12,0)
    TNT1 A 0 A_Explode(28,125)
    TNT1 A 0 A_Explode(22,250,0)
    TNT1 A 0 A_SetDamageType("explosionc")
    TNT1 A 0 A_Explode(11,250,0)
    TNT1 A 0 A_PlaySoundEx("stun/explosion","SoundSlot5")
    TNT1 A 0 A_PlaySoundEx("distant/explosionsmall","SoundSlot6")
    TNT1 A 0 A_SpawnItemEx("StunExplosionMain2")
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion",-1,0,0,0,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion2",-1,0,0,0,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("StunGrenadeExplosion3",-1,0,0,0,0,0,0,0,0)
    TNT1 A 10
    TNT1 A 15 A_AlertMonsters(1536)
    Stop
  }
}

actor FamasPickup : CustomInventory
{
  inventory.pickupmessage "You got the FAMAS-F1. Look at that M203!"
  inventory.pickupsound "akm/bolt"
  +INVENTORY.AUTOACTIVATE
  //inventory.respawntics 70
  scale 0.15
  States
  {
  Spawn:
    WEAP G -1
    Stop
  Pickup:
    WEAP G 0
    WEAP G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",0,0,0)) == 1, "PickupStay")
    WEAP G 0 A_JumpIfInventory("FAMAS-F1",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Ex Mags",1,"AmmoPickup")
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Auto",1,"AmmoPickup")
	WEAP G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEAP G 0 A_JumpIfInventory("MaxWeaponsFilled",68,"FailPickup2")
	WEAP G 0 A_GiveInventory("MaxWeaponsFilled",33)
    WEAP G 0 ACS_NamedExecuteWithResult("RefPickU",5,0,0)
    Stop
  PickupStay:
    WEAP G 0
    WEAP G 0 A_JumpIfInventory("FAMAS-F1",1,"FailPickup") // If the player already has this weapon, they get more ammo for it
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Ex Mags",1,"FailPickup")
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Auto",1,"FailPickup")
	WEAP G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEAP G 0 A_JumpIfInventory("MaxWeaponsFilled",68,"FailPickup2")
	WEAP G 0 A_GiveInventory("MaxWeaponsFilled",33)
    WEAP G 0 ACS_NamedExecuteWithResult("RefPickU",5,0,0)
    WEAP G 0 ACS_NamedExecuteWithResult("RefPickC",5,0,0)
    WEAP G 0 A_PlaySound("akm/bolt")
    fail
  AmmoPickup:
    WEAP G 0
    WEAP G 0 A_JumpIfInventory("FAMASAmmo",0,"AmmoPickup2")
    WEAP G 0 A_GiveInventory("FAMASAmmo",25)
    WEAP G 0 A_GiveInventory("M203Ammo",1)
	Stop
  AmmoPickup2:
    WEAP G 0
    WEAP G 0 A_JumpIfInventory("M203Ammo",0,"FailPickup")
    WEAP G 0 A_GiveInventory("FAMASAmmo",25)
    WEAP G 0 A_GiveInventory("M203Ammo",1)
    Stop
  OneManArmy:
    WEAP G 0
	WEAP G 0 A_JumpIfInventory("MaxWeaponsFilled",105,"FailPickup2")
	WEAP G 0 A_GiveInventory("MaxWeaponsFilled",33)
	WEAP G 0 ACS_NamedExecuteWithResult("RefPickU",5,0,0)
  FailPickup:
    WEAP G 1
    fail
  FailPickup2:
    WEAP G 1
    WEAP G 0 ACS_NamedExecuteAlways("RefSlots",0,22,0,0)
    fail
  }
}

actor FamasDrop : FamasPickup
{
  States
  {
  Spawn:
    WEAP G -1
    Stop
    Goto Spawn+1
  Pickup:
    WEAP G 0
    WEAP G 0 A_JumpIfInventory("FAMAS-F1",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Ex Mags",1,"AmmoPickup")
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Auto",1,"AmmoPickup")
	WEAP G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEAP G 0 A_JumpIfInventory("MaxWeaponsFilled",68,"FailPickup2")
	WEAP G 0 A_GiveInventory("MaxWeaponsFilled",33)
    WEAP G 0 ACS_NamedExecuteWithResult("RefPickU",5,0,0)
    Stop
  }
}

actor FamasDrop2 : FamasDrop
{
  States
  {
  Spawn:
    WEAP G -1
    Stop
    Goto Spawn+1
  Pickup:
    WEAP G 0
    WEAP G 0 A_JumpIfInventory("FAMAS-F1",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Ex Mags",1,"AmmoPickup")
    WEAP G 0 A_JumpIfInventory("FAMAS-F1 Auto",1,"AmmoPickup")
	WEAP G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEAP G 0 A_JumpIfInventory("MaxWeaponsFilled",68,"FailPickup2")
	WEAP G 0 A_GiveInventory("MaxWeaponsFilled",33)
    WEAP G 0 ACS_NamedExecuteWithResult("RefPickU",5,0,0)
    Stop
  AmmoPickup:
    WEAP G 0
	Stop
  }
}

actor HHCBFAMAS : HHBullet
{
  damage (random(23,29))
  Speed 400
  damagetype "Rifle"
  States
  {
  Spawn:
    TNT1 A 15
    Stop
  Death:
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  XDeath:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("generic/ricochets")
    Stop
  Crash:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    Stop
  }
}