From 4c3c8140772ac7811b65acf4b7e89614550239fa Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Mon, 9 May 2022 16:21:32 +1000 Subject: [PATCH] Fix healingcomp placement (#8045) --- Content.Server/Medical/HealingSystem.cs | 29 ++++++++++--------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/Content.Server/Medical/HealingSystem.cs b/Content.Server/Medical/HealingSystem.cs index 7013812244..946de6b50b 100644 --- a/Content.Server/Medical/HealingSystem.cs +++ b/Content.Server/Medical/HealingSystem.cs @@ -78,44 +78,37 @@ public sealed class HealingSystem : EntitySystem { if (args.Handled) return; - args.Handled = true; - Heal(uid, args.User, args.User, component); + if (TryHeal(uid, args.User, args.User, component)) + args.Handled = true; } private void OnHealingAfterInteract(EntityUid uid, HealingComponent component, AfterInteractEvent args) { if (args.Handled || !args.CanReach || args.Target == null) return; - args.Handled = true; - Heal(uid, args.User, args.Target.Value, component); + if (TryHeal(uid, args.User, args.Target.Value, component)) + args.Handled = true; } - private void Heal(EntityUid uid, EntityUid user, EntityUid target, HealingComponent component) + private bool TryHeal(EntityUid uid, EntityUid user, EntityUid target, HealingComponent component) { - if (component.CancelToken != null) - { - component.CancelToken?.Cancel(); - component.CancelToken = null; - return; - } - if (TryComp(target, out var state) && state.IsDead()) - return; + return false; if (!TryComp(target, out var targetDamage)) - return; + return false; if (component.DamageContainerID is not null && !component.DamageContainerID.Equals(targetDamage.DamageContainerID)) - return; + return false; if (user != target && !_interactionSystem.InRangeUnobstructed(user, target, popup: true)) { - return; + return false; } if (TryComp(component.Owner, out var stack) && stack.Count < 1) - return; + return false; component.CancelToken = new CancellationTokenSource(); @@ -148,6 +141,8 @@ public sealed class HealingSystem : EntitySystem return true; }, }); + + return true; } private sealed class HealingCompleteEvent : EntityEventArgs