Fix stun baton EMP state (#24706)

* Fix stun baton EMP state

* trydeactivate

(cherry picked from commit 26d8084d524378284c45fa7c3e6eec0757988766)
This commit is contained in:
themias 2024-01-30 18:04:26 -05:00 committed by Debug
parent d9208ced9d
commit 23ae5fd441
No known key found for this signature in database
GPG Key ID: 271270A74EF9C350
1 changed files with 10 additions and 6 deletions

View 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);
}
}
}
}