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; } ///