using Content.Shared.Throwing; using Content.Shared.Timing.Components; using Content.Shared.Timing.Systems; using Content.Shared.Weapons.Melee.Components; using Content.Shared.Weapons.Melee.Events; namespace Content.Shared.Weapons.Melee; /// public sealed partial class UseDelayOnMeleeHitSystem : EntitySystem { [Dependency] private UseDelaySystem _delay = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnMeleeHit); SubscribeLocalEvent(OnThrowHitEvent); } private void OnThrowHitEvent(Entity ent, ref ThrowDoHitEvent args) { TryResetDelay(ent); } private void OnMeleeHit(Entity ent, ref MeleeHitEvent args) { TryResetDelay(ent); } private void TryResetDelay(Entity ent) { var uid = ent.Owner; _delay.TryResetDelay(uid, checkDelayed: true); } }