diff --git a/OpenRA.Mods.Common/Activities/Resupply.cs b/OpenRA.Mods.Common/Activities/Resupply.cs index f3104bf2af..ae41e724f8 100644 --- a/OpenRA.Mods.Common/Activities/Resupply.cs +++ b/OpenRA.Mods.Common/Activities/Resupply.cs @@ -76,6 +76,13 @@ namespace OpenRA.Mods.Common.Activities public override bool Tick(Actor self) { + // Wait for the cooldown to expire before releasing the unit if this was cancelled + if (IsCanceling && remainingTicks > 0) + { + remainingTicks--; + return false; + } + var isHostInvalid = host.Type != TargetType.Actor || !host.Actor.IsInWorld; var isCloseEnough = closeEnough < WDist.Zero || (!isHostInvalid && (host.CenterPosition - self.CenterPosition).HorizontalLengthSquared <= closeEnough.LengthSquared);