diff --git a/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs b/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs index 4c827722e1..69c6aa2e21 100644 --- a/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs +++ b/OpenRA.Mods.Cnc/Activities/HarvesterDockSequence.cs @@ -54,8 +54,9 @@ namespace OpenRA.Mods.Cnc case State.Dock: ru.PlayCustomAnimation(self, "dock", () => { ru.PlayCustomAnimRepeating(self, "dock-loop"); - foreach (var nd in proc.TraitsImplementing()) - nd.Docked(proc, self); + if (proc.IsInWorld && !proc.IsDead()) + foreach (var nd in proc.TraitsImplementing()) + nd.Docked(proc, self); state = State.Loop; }); state = State.Wait; @@ -66,8 +67,9 @@ namespace OpenRA.Mods.Cnc return this; case State.Undock: ru.PlayCustomAnimBackwards(self, "dock", () => state = State.DragOut); - foreach (var nd in proc.TraitsImplementing()) - nd.Undocked(proc, self); + if (proc.IsInWorld && !proc.IsDead()) + foreach (var nd in proc.TraitsImplementing()) + nd.Undocked(proc, self); state = State.Wait; return this; case State.DragOut: @@ -87,4 +89,4 @@ namespace OpenRA.Mods.Cnc yield return Target.FromActor(proc); } } -} \ No newline at end of file +} diff --git a/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs b/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs index ca9d2c1517..f04bf6a317 100644 --- a/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs +++ b/OpenRA.Mods.RA/Activities/RAHarvesterDockSequence.cs @@ -47,8 +47,9 @@ namespace OpenRA.Mods.RA case State.Dock: ru.PlayCustomAnimation(self, "dock", () => { ru.PlayCustomAnimRepeating(self, "dock-loop"); - foreach (var nd in proc.TraitsImplementing()) - nd.Docked(proc, self); + if (proc.IsInWorld && !proc.IsDead()) + foreach (var nd in proc.TraitsImplementing()) + nd.Docked(proc, self); state = State.Loop; }); state = State.Wait; @@ -64,8 +65,9 @@ namespace OpenRA.Mods.RA case State.Complete: harv.LastLinkedProc = harv.LinkedProc; harv.LinkProc(self, null); - foreach (var nd in proc.TraitsImplementing()) - nd.Undocked(proc, self); + if (proc.IsInWorld && !proc.IsDead()) + foreach (var nd in proc.TraitsImplementing()) + nd.Undocked(proc, self); return NextActivity; }