From 649420b641ba2700bc80cc4397e6133f6360f5d1 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Tue, 4 Oct 2022 12:12:45 +1100 Subject: [PATCH] Fix melee windup persisting in some circumstances (#11625) --- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 0ab61bbe3f..72a8bd1375 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -1,6 +1,9 @@ using Content.Shared.ActionBlocker; using Content.Shared.CombatMode; +using Content.Shared.Hands; using Content.Shared.Hands.Components; +using Content.Shared.Interaction.Events; +using Content.Shared.Inventory.Events; using Content.Shared.Popups; using Content.Shared.Weapons.Melee.Events; using JetBrains.Annotations; @@ -34,6 +37,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem SubscribeLocalEvent(OnGetState); SubscribeLocalEvent(OnHandleState); + SubscribeLocalEvent(OnMeleeDropped); SubscribeAllEvent(OnLightAttack); SubscribeAllEvent(OnStartHeavyAttack); @@ -43,6 +47,15 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem SubscribeAllEvent(OnStopAttack); } + private void OnMeleeDropped(EntityUid uid, MeleeWeaponComponent component, HandDeselectedEvent args) + { + if (component.WindUpStart == null) + return; + + component.WindUpStart = null; + Dirty(component); + } + private void OnStopAttack(StopAttackEvent msg, EntitySessionEventArgs args) { var user = args.SenderSession.AttachedEntity;