diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs
index dc5dc5b90c..c421c92a9f 100644
--- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs
+++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs
@@ -112,7 +112,10 @@ public abstract partial class SharedGunSystem
}
}
- CycleCartridge(uid, component, user);
+ if (!CycleCartridge(uid, component, user))
+ {
+ UpdateAmmoCount(uid);
+ }
if (component.BoltClosed != false)
{
@@ -202,11 +205,12 @@ public abstract partial class SharedGunSystem
///
/// Tries to take ammo from the magazine and insert into the chamber.
///
- private void CycleCartridge(EntityUid uid, ChamberMagazineAmmoProviderComponent component, EntityUid? user = null, AppearanceComponent? appearance = null)
+ private bool CycleCartridge(EntityUid uid, ChamberMagazineAmmoProviderComponent component, EntityUid? user = null, AppearanceComponent? appearance = null)
{
// Try to put a new round in if possible.
var magEnt = GetMagazineEntity(uid);
var chambered = GetChamberEntity(uid);
+ var result = false;
// Similar to what takeammo does though that uses an optimised version where
// multiple bullets may be fired in a single tick.
@@ -243,7 +247,11 @@ public abstract partial class SharedGunSystem
{
UpdateAmmoCount(uid);
}
+
+ result = true;
}
+
+ return result;
}
///