]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix gun cycling ammo count update (#25635)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Tue, 27 Feb 2024 16:40:19 +0000 (03:40 +1100)
committerGitHub <noreply@github.com>
Tue, 27 Feb 2024 16:40:19 +0000 (11:40 -0500)
Doesn't update correctly when cycling.

Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs

index dc5dc5b90c8b352b9b5d9bf905857c87c02cfb89..c421c92a9f7512dd1eec93bb335bb0a26ece139b 100644 (file)
@@ -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
     /// <summary>
     /// Tries to take ammo from the magazine and insert into the chamber.
     /// </summary>
-    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;
     }
 
     /// <summary>