// Blood revolver
actor BloodRevolver : AOWWeapon {
	+WEAPON.NOAUTOFIRE
	Weapon.AmmoUse 1
	Weapon.AmmoGive 1
	Weapon.AmmoType "BloodRevolverAmmo"
	Weapon.SelectionOrder 0
	Weapon.PreferredSkin "MarinePistol"
	Inventory.Pickupmessage "You got the revolver!"
	Obituary "$OB_REVOLVER"
	DropItem "Handgun"
	Decal "BFGLightning"
	Tag "Blood Revolver"
	States {
	Spawn:
		TNT1 A 0
		Stop
	Select:
		REVO A 1 A_Raise
		Wait
	Deselect:
		REVO A 1 A_Lower
		Wait
	Ready:
		REVO A 1 A_WeaponReady
		wait
	Fire:
		TNT1 A 0 A_JumpIfInventory ("IsInSpawnRoom", 1, "Ready")
		TNT1 A 0 A_JumpIfInventory ("InMenu", 1, "Ready")
		REVF A 0 A_PlayWeaponSound ("revolver/fire")
		// Remove the token item if we had it already - turret kills can cause this
		REVF A 0 A_TakeInventory ("BloodRevolverKill", 1)
		REVF A 0 bright A_RailAttack (300, 0, true, none, none, true, 0, "RevolverPuff")
		goto Fire.End
	Fire.End:
		REVF A 1 bright offset (0, 33)
		REVF B 1 bright offset (0, 34)
		REVF C 1 bright offset (0, 35)
		REVF D 1 bright offset (0, 36)
		REVO B 1 offset (0, 37)
		REVO B 1 offset (0, 38)
		REVO C 1 offset (0, 37)
		REVO C 1 offset (0, 36)
		REVO B 1 offset (0, 35)
		REVO B 1 offset (0, 34)
		REVO A 1 offset (0, 33)
		REVO A 1 offset (0, 32)
		REVO A 0 A_JumpIfInventory ("BloodRevolverKill", 1, "GotKill")
		REVO A 18
		REVO A 0 A_CheckReload
		goto Ready
	GotKill:
		REVO A 18
		REVO A 0 A_GiveInventory ("BloodRevolverAmmo", 1)
		goto Ready
	}
}

actor BloodRevolverKill : Inventory {}
actor BloodRevolverFail : Inventory {}

actor RevolverPuff : HandgunPuff {+ALWAYSPUFF +PUFFONACTORS}