diff --git a/OpenRA.Mods.Common/Activities/FindResources.cs b/OpenRA.Mods.Common/Activities/FindResources.cs index 187c18c814..49205a5997 100644 --- a/OpenRA.Mods.Common/Activities/FindResources.cs +++ b/OpenRA.Mods.Common/Activities/FindResources.cs @@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Activities // Only do this if UnblockRefinery did nothing. if (self.Location == cachedPosition) { - var unblockCell = harv.LastHarvestedCell ?? (self.Location + new CVec(0, 4)); + var unblockCell = harv.LastHarvestedCell ?? (self.Location + harvInfo.UnblockCell); var moveTo = mobile.NearestMoveableCell(unblockCell, 2, 5); self.QueueActivity(mobile.MoveTo(moveTo, 1)); self.SetTargetLine(Target.FromCell(self.World, moveTo), Color.Gray, false); diff --git a/OpenRA.Mods.Common/Traits/Harvester.cs b/OpenRA.Mods.Common/Traits/Harvester.cs index 47cf4c52c8..f2e4c49c09 100644 --- a/OpenRA.Mods.Common/Traits/Harvester.cs +++ b/OpenRA.Mods.Common/Traits/Harvester.cs @@ -26,6 +26,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("How long (in ticks) to wait until (re-)checking for a nearby available DeliveryBuilding if not yet linked to one.")] public readonly int SearchForDeliveryBuildingDelay = 125; + [Desc("Cell to move to when automatically unblocking DeliveryBuilding.")] + public readonly CVec UnblockCell = new CVec(0, 4); + [Desc("How much resources it can carry.")] public readonly int Capacity = 28; @@ -196,7 +199,8 @@ namespace OpenRA.Mods.Common.Traits if (self.Location == deliveryLoc) { // Get out of the way: - var moveTo = LastHarvestedCell ?? (deliveryLoc + new CVec(0, 4)); + var unblockCell = LastHarvestedCell ?? (deliveryLoc + info.UnblockCell); + var moveTo = mobile.NearestMoveableCell(unblockCell, 1, 5); self.QueueActivity(mobile.MoveTo(moveTo, 1)); self.SetTargetLine(Target.FromCell(self.World, moveTo), Color.Gray, false);