From 5e8121bd0bc6f95ebd5875e39ebda9efb236a3af Mon Sep 17 00:00:00 2001 From: tovl Date: Thu, 23 Jul 2020 16:58:31 +0200 Subject: [PATCH] Properly cancel EnterActor when target capturable trait is disabled. --- OpenRA.Mods.Common/Activities/CaptureActor.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OpenRA.Mods.Common/Activities/CaptureActor.cs b/OpenRA.Mods.Common/Activities/CaptureActor.cs index c0826a358f..21dcf59ea9 100644 --- a/OpenRA.Mods.Common/Activities/CaptureActor.cs +++ b/OpenRA.Mods.Common/Activities/CaptureActor.cs @@ -28,6 +28,19 @@ namespace OpenRA.Mods.Common.Activities manager = self.Trait(); } + protected override void TickInner(Actor self, Target target, bool targetIsDeadOrHiddenActor) + { + if (target.Type == TargetType.Actor && enterActor != target.Actor) + { + enterActor = target.Actor; + enterCaptureManager = target.Actor.TraitOrDefault(); + } + + if (!targetIsDeadOrHiddenActor && target.Type != TargetType.FrozenActor && + (enterCaptureManager == null || !enterCaptureManager.CanBeTargetedBy(enterActor, self, manager))) + Cancel(self, true); + } + protected override bool TryStartEnter(Actor self, Actor targetActor) { if (enterActor != targetActor)