From 385f01247b0bd4d0d05e74693bebb848eb987357 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 18 Oct 2020 14:01:39 +0200 Subject: [PATCH] Fix harvs dragging to refinery even if it died while turning --- .../Activities/HarvesterDockSequence.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Common/Activities/HarvesterDockSequence.cs b/OpenRA.Mods.Common/Activities/HarvesterDockSequence.cs index 2cc76f3975..73e9b17a24 100644 --- a/OpenRA.Mods.Common/Activities/HarvesterDockSequence.cs +++ b/OpenRA.Mods.Common/Activities/HarvesterDockSequence.cs @@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.Activities { public abstract class HarvesterDockSequence : Activity { - protected enum DockingState { Wait, Turn, Dock, Loop, Undock, Complete } + protected enum DockingState { Wait, Turn, Drag, Dock, Loop, Undock, Complete } protected readonly Actor Refinery; protected readonly Harvester Harv; @@ -54,10 +54,18 @@ namespace OpenRA.Mods.Common.Activities return false; case DockingState.Turn: - dockingState = DockingState.Dock; + dockingState = DockingState.Drag; QueueChild(new Turn(self, DockAngle)); + return false; + + case DockingState.Drag: + if (!Refinery.IsInWorld || Refinery.IsDead) + return true; + + dockingState = DockingState.Dock; if (IsDragRequired) QueueChild(new Drag(self, StartDrag, EndDrag, DragLength)); + return false; case DockingState.Dock: