diff --git a/Content.Server/Stunnable/Systems/StunbatonSystem.cs b/Content.Server/Stunnable/Systems/StunbatonSystem.cs index 053a293689..027259495c 100644 --- a/Content.Server/Stunnable/Systems/StunbatonSystem.cs +++ b/Content.Server/Stunnable/Systems/StunbatonSystem.cs @@ -30,6 +30,7 @@ namespace Content.Server.Stunnable.Systems SubscribeLocalEvent(OnStaminaHitAttempt); SubscribeLocalEvent(TryTurnOn); SubscribeLocalEvent(ToggleDone); + SubscribeLocalEvent(OnChargeChanged); } private void OnStaminaHitAttempt(Entity entity, ref StaminaDamageOnHitAttemptEvent args) @@ -38,12 +39,6 @@ namespace Content.Server.Stunnable.Systems !TryComp(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 entity, ref ChargeChangedEvent args) + { + if (TryComp(entity.Owner, out var battery) && + battery.CurrentCharge < entity.Comp.EnergyPerUse) + { + _itemToggle.TryDeactivate(entity.Owner, predicted: false); + } + } } }