From a3ee6645c1146820f89f782d77f731db756f3343 Mon Sep 17 00:00:00 2001 From: Gustas <37534529+PunkPun@users.noreply.github.com> Date: Sat, 29 Mar 2025 11:51:30 +0200 Subject: [PATCH] Fix units being picked up when they no longer want it --- OpenRA.Mods.Common/Activities/MoveToDock.cs | 3 +++ OpenRA.Mods.Common/Activities/Resupply.cs | 3 +++ OpenRA.Mods.Common/Traits/CarryableHarvester.cs | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Activities/MoveToDock.cs b/OpenRA.Mods.Common/Activities/MoveToDock.cs index b34b9dd774..502ef1f2b5 100644 --- a/OpenRA.Mods.Common/Activities/MoveToDock.cs +++ b/OpenRA.Mods.Common/Activities/MoveToDock.cs @@ -115,6 +115,9 @@ namespace OpenRA.Mods.Common.Activities } else { + foreach (var ndcm in notifyDockClientMoving) + ndcm.MovementCancelled(self); + // The dock explicitly chosen by the user is currently occupied. Wait and check again. QueueChild(new Wait(dockClient.Info.SearchForDockDelay)); return false; diff --git a/OpenRA.Mods.Common/Activities/Resupply.cs b/OpenRA.Mods.Common/Activities/Resupply.cs index 60056d44eb..bf62b3104f 100644 --- a/OpenRA.Mods.Common/Activities/Resupply.cs +++ b/OpenRA.Mods.Common/Activities/Resupply.cs @@ -158,6 +158,9 @@ namespace OpenRA.Mods.Common.Activities if (!actualResupplyStarted && activeResupplyTypes > 0) { actualResupplyStarted = true; + foreach (var t in transportCallers) + t.MovementCancelled(self); + foreach (var notifyResupply in notifyResupplies) notifyResupply.BeforeResupply(host.Actor, self, activeResupplyTypes); diff --git a/OpenRA.Mods.Common/Traits/CarryableHarvester.cs b/OpenRA.Mods.Common/Traits/CarryableHarvester.cs index 571365a417..6685583e08 100644 --- a/OpenRA.Mods.Common/Traits/CarryableHarvester.cs +++ b/OpenRA.Mods.Common/Traits/CarryableHarvester.cs @@ -52,6 +52,10 @@ namespace OpenRA.Mods.Common.Traits t.MovementCancelled(self); } - void INotifyHarvestAction.Harvested(Actor self, string resourceType) { } + void INotifyHarvestAction.Harvested(Actor self, string resourceType) + { + foreach (var t in transports) + t.MovementCancelled(self); + } } }