ACTOR ThompsonClip : Ammo
{
	Inventory.MaxAmount 20
	+IGNORESKILL
}

ACTOR 45ACPAmmo : Ammo
{
	Inventory.Amount 20
	Inventory.MaxAmount 300
	Ammo.BackpackAmount 80
	Ammo.BackpackMaxAmount 450
	Scale 0.6
	Inventory.Icon "45AMA0"
	Inventory.PickupMessage "Picked up some .45ACP ammo."
	States
	{
	Spawn:
		45AM A -1
		Stop
	}
}

Actor Thompson : Weapon
{
	attacksound "Weapons/AK47FIR"
	inventory.pickupmessage "You got the Thompson M1A1!"
	Weapon.SlotNumber 4
	weapon.kickback 100
	Weapon.AmmoType "ThompsonClip"
	Weapon.AmmoUse1 0
	Weapon.AmmoGive1 0
	weapon.ammotype2 "45ACPAmmo"
	weapon.ammouse2 1
	weapon.ammogive2 100
	Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.2
	Weapon.BobRangeY 0.5
	Weapon.BobRangeX 0.7
	ConversationID 195
	Scale 0.5
	Tag "Thompson M1A1"
	Decal "BulletChip"
	+Ammo_Optional
  	+Alt_Ammo_Optional
	+WEAPON.PRIMARY_USES_BOTH
	+Weapon.NoAlert
	States
	{
	Ready:
		THOM A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Deselect:
		THOM A 0 A_Lower
		THOM A 1 A_Lower
		Loop
	Select:
		THOM A 0 A_Raise
		THOM A 1 A_Raise
		Loop
	Fire:
		THOM A 0 A_JumpIfInventory("ThompsonClip",1,1)
		Goto Dryfire
		THOM B 0 A_GunFlash
		TNT1 A 0 A_Jump(250,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		THOM B 0 A_PlayWeaponSound("Thompson/fire")
		THOM B 0 A_TakeInventory("ThompsonClip",1)
		THOM B 1 bright A_FireCustomMissile("ThompsonTracer",frandom(-1.5,1.5),0,0,0,0,frandom(-1.0,1.0))
		THOM C 1 bright Offset(0,38) A_SetPitch(pitch - 0.5)
		THOM A 1 Offset(0,34) A_AlertMonsters
		Goto Ready
	Dryfire:
		THOM A 1
	Reload:
		THOM A 0 A_JumpIfInventory("ThompsonClip",20,2)
		THOM A 0 A_JumpIfNoAmmo(1)
		Goto ProperReload
		THOM A 1
		Goto Ready
	ProperReload:
		THOM A 1 Offset(0,35) A_PlaySound("Thompson/reload",CHAN_ITEM)
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		THOM A 1 Offset(0,38)
		THOM A 1 Offset(0,44)
		THOM A 1 Offset(-2,46)
		THOM A 1 Offset(-4,52)
		THOM A 1 Offset(-7,56)
		THOM A 1 Offset(-10,57)
		THOM A 8 Offset(-11,58)
	ReloadLoop:
		TNT1 A 0 A_TakeInventory("45ACPAmmo",1,TIF_NOTAKEINFINITE)
		TNT1 A 0 A_GiveInventory("ThompsonClip",1)
		TNT1 A 0 A_JumpIfInventory("ThompsonClip",20,"ReloadFinish")
		TNT1 A 0 A_JumpIfNoAmmo("ReloadFinish")
		Goto ReloadLoop
	ReloadFinish:
		THOM A 1 Offset(-10,58)
		THOM A 1 Offset(-10,61)
		THOM A 1 Offset(-10,65)
		THOM A 1 Offset(-10,71)
		THOM A 1 Offset(-10,65)
		THOM A 1 Offset(-10,60)
		THOM A 1 Offset(-10,55)
		THOM A 1 Offset(-10,53)
		THOM A 1 Offset(-10,51)
		THOM A 1 Offset(-9,50)
		THOM A 1 Offset(-8,46)
		THOM A 1 Offset(-7,43)
		THOM A 1 Offset(-5,40)
		THOM A 1 Offset(-3,37)
		THOM A 1 Offset(-1,34)
		THOM 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:
		THOM P -1
		Stop
	}
}

ACTOR ThompsonSpawner replaces Chaingun
{
	DropItem "Thompson"
	DropItem "45ACPAmmo"
	DropItem "45ACPAmmo"
	DropItem "45ACPAmmo"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Fall
		Stop
	}
}