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)