From 311cd521e333f0e5a1dedc2bd372027906d188d8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-7PLKRFC\\jur_1" Date: Sat, 3 Mar 2018 22:36:35 +0100 Subject: [PATCH] Refinery spawned harvesters should prioritize lower ore #14827 --- OpenRA.Mods.Common/Activities/FindResources.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/OpenRA.Mods.Common/Activities/FindResources.cs b/OpenRA.Mods.Common/Activities/FindResources.cs index 956488d8fe..5d755433da 100644 --- a/OpenRA.Mods.Common/Activities/FindResources.cs +++ b/OpenRA.Mods.Common/Activities/FindResources.cs @@ -121,7 +121,7 @@ namespace OpenRA.Mods.Common.Activities return self.Location; // Determine where to search from and how far to search: - var searchFromLoc = harv.LastOrderLocation ?? (harv.LastLinkedProc ?? harv.LinkedProc ?? self).Location; + var searchFromLoc = GetSearchFromLocation(self); var searchRadius = harv.LastOrderLocation.HasValue ? harvInfo.SearchFromOrderRadius : harvInfo.SearchFromProcRadius; var searchRadiusSquared = searchRadius * searchRadius; @@ -152,5 +152,16 @@ namespace OpenRA.Mods.Common.Activities { yield return Target.FromCell(self.World, self.Location); } + + CPos GetSearchFromLocation(Actor self) + { + if (harv.LastOrderLocation.HasValue) + return harv.LastOrderLocation.Value; + else if (harv.LastLinkedProc != null) + return harv.LastLinkedProc.Location + harv.LastLinkedProc.Trait().DeliveryOffset; + else if (harv.LinkedProc != null) + return harv.LinkedProc.Location + harv.LinkedProc.Trait().DeliveryOffset; + return self.Location; + } } }