Fix stun baton EMP state (#24706)

* Fix stun baton EMP state

* trydeactivate
This commit is contained in:
themias
2024-01-30 18:04:26 -05:00
committed by GitHub
parent 9bebdf5706
commit 26d8084d52

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