ACTOR STGClip : Ammo replaces Cell
{
	Inventory.Amount 15
	Inventory.MaxAmount 150
	Ammo.BackpackAmount 30
	Ammo.BackpackMaxAmount 270
	ConversationID 183
	Inventory.PickupMessage "Picked up some Rifle ammo."
	Inventory.Icon "762AA0"
	States
	{
	Spawn:
		762A A -1
		Stop
	}
}

ACTOR STGAmmo : Ammo
{
	+IGNORESKILL
	Inventory.MaxAmount 30
	Inventory.Icon STGIA0
}

Actor STG44 : Weapon
{
  attacksound "Weapons/STGFIRE"
  inventory.pickupmessage "You got the Sturmgewehr 44!"
  Weapon.SlotNumber 6
  weapon.kickback 100
  Weapon.AmmoType "STGAmmo"
  Weapon.AmmoUse1 0
  Weapon.AmmoGive1 0
  weapon.ammotype2 "STGClip"
  weapon.ammouse2 1
  weapon.ammogive2 20
  Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.2
	Weapon.BobRangeY 0.5
	Weapon.BobRangeX 0.7
  ConversationID 195
  Scale 0.5
  Tag "Sturmgewehr 44"
  Decal "BulletChip"
  +Ammo_Optional
  	+Alt_Ammo_Optional
	+WEAPON.PRIMARY_USES_BOTH
	+Weapon.NoAlert
  States
  {
	Ready:
		STGG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Deselect:
		STGG A 0 A_Lower
		STGG A 1 A_Lower
		Loop
	Select:
		STGG A 0 A_Raise
		STGG A 1 A_Raise
		Loop
	Fire:
		STGG A 0 A_JumpIfInventory("STGAmmo",1,1)
		Goto Dryfire
		STGF A 0 A_GunFlash
		TNT1 A 0 A_Jump(250,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		STGF A 0 A_PlayWeaponSound("Weapons/STGFIRE")
		STGF A 0 A_TakeInventory("STGAmmo",1)
		STGF A 1 bright A_FireCustomMissile("STGTracer",frandom(-1.2,1.2),0,0,0,0,frandom(-1.0,1.0))
		STGF B 1 bright Offset(0,38) A_SetPitch(pitch - 1.0)
		STGG A 1 Offset(0,37) A_AlertMonsters
		STGG A 1 Offset(0,35)
		STGG A 1 Offset(0,33)
		Goto Ready
	Dryfire:
		STGG A 1
	Reload:
		STGG A 0 A_JumpIfInventory("STGAmmo",30,2)
		STGG A 0 A_JumpIfNoAmmo(1)
		Goto ProperReload
		STGG A 1
		Goto Ready
	ProperReload:
		STGG A 1 Offset(0,35) A_PlaySound("reloads/stg", CHAN_ITEM)
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		STGG A 1 Offset(0,38)
		STGG A 1 Offset(0,44)
		STGG A 1 Offset(-2,46)
		STGG A 1 Offset(-4,52)
		STGG A 1 Offset(-7,56)
		STGG A 1 Offset(-10,57)
		STGG A 8 Offset(-11,58)
	ReloadLoop:
		TNT1 A 0 A_TakeInventory("STGClip",1,TIF_NOTAKEINFINITE)
		TNT1 A 0 A_GiveInventory("STGAmmo",1)
		TNT1 A 0 A_JumpIfInventory("STGAmmo",30,"ReloadFinish")
		TNT1 A 0 A_JumpIfNoAmmo("ReloadFinish")
		Goto ReloadLoop
	ReloadFinish:
		STGG A 1 Offset(-10,58)
		STGG A 1 Offset(-10,61)
		STGG A 1 Offset(-10,65)
		STGG A 1 Offset(-10,71)
		STGG A 1 Offset(-10,65)
		STGG A 1 Offset(-10,60)
		STGG A 1 Offset(-10,55)
		STGG A 1 Offset(-10,53)
		STGG A 1 Offset(-10,51)
		STGG A 1 Offset(-9,50)
		STGG A 1 Offset(-8,46)
		STGG A 1 Offset(-7,43)
		STGG A 1 Offset(-5,40)
		STGG A 1 Offset(-3,37)
		STGG A 1 Offset(-1,34)
		STGG A 1 Offset(0,32)
		Goto Ready
	Flash:
		TNT1 A 2 BRIGHT A_Light2
		TNT1 A 2 BRIGHT A_Light1
		TNT1 A 0 A_Light0
		Stop
	Spawn:
		STGI A -1
		Stop
	}
}
