]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix stun baton EMP state (#24706)
authorthemias <89101928+themias@users.noreply.github.com>
Tue, 30 Jan 2024 23:04:26 +0000 (18:04 -0500)
committerGitHub <noreply@github.com>
Tue, 30 Jan 2024 23:04:26 +0000 (18:04 -0500)
* Fix stun baton EMP state

* trydeactivate

Content.Server/Stunnable/Systems/StunbatonSystem.cs

index 053a2936892eac386580e3b4d5b8ffb2cf4397b3..027259495c10a0d2edd8fd3656a4cf7f62e4d473 100644 (file)
@@ -30,6 +30,7 @@ namespace Content.Server.Stunnable.Systems
             SubscribeLocalEvent<StunbatonComponent, StaminaDamageOnHitAttemptEvent>(OnStaminaHitAttempt);
             SubscribeLocalEvent<StunbatonComponent, ItemToggleActivateAttemptEvent>(TryTurnOn);
             SubscribeLocalEvent<StunbatonComponent, ItemToggledEvent>(ToggleDone);
+            SubscribeLocalEvent<StunbatonComponent, ChargeChangedEvent>(OnChargeChanged);
         }
 
         private void OnStaminaHitAttempt(Entity<StunbatonComponent> entity, ref StaminaDamageOnHitAttemptEvent args)
@@ -38,12 +39,6 @@ namespace Content.Server.Stunnable.Systems
             !TryComp<BatteryComponent>(entity.Owner, out var battery) || !_battery.TryUseCharge(entity.Owner, entity.Comp.EnergyPerUse, battery))
             {
                 args.Cancelled = true;
-                return;
-            }
-
-            if (battery.CurrentCharge < entity.Comp.EnergyPerUse)
-            {
-                _itemToggle.Toggle(entity.Owner, predicted: false);
             }
         }
 
@@ -101,5 +96,14 @@ namespace Content.Server.Stunnable.Systems
                 User = user
             });
         }
+
+        private void OnChargeChanged(Entity<StunbatonComponent> entity, ref ChargeChangedEvent args)
+        {
+            if (TryComp<BatteryComponent>(entity.Owner, out var battery) &&
+                battery.CurrentCharge < entity.Comp.EnergyPerUse)
+            {
+                _itemToggle.TryDeactivate(entity.Owner, predicted: false);
+            }
+        }
     }
 }