diff --git a/OpenRA.Mods.Common/Traits/Harvester.cs b/OpenRA.Mods.Common/Traits/Harvester.cs index 78a56a3c81..ab7613cb69 100644 --- a/OpenRA.Mods.Common/Traits/Harvester.cs +++ b/OpenRA.Mods.Common/Traits/Harvester.cs @@ -89,7 +89,7 @@ namespace OpenRA.Mods.Common.Traits readonly ResourceLayer resLayer; readonly ResourceClaimLayer claimLayer; readonly Dictionary contents = new Dictionary(); - bool idleSmart = true; + bool idleSmart = false; INotifyHarvesterAction[] notifyHarvesterAction; ConditionManager conditionManager; int conditionToken = ConditionManager.InvalidConditionToken; @@ -130,10 +130,8 @@ namespace OpenRA.Mods.Common.Traits notifyHarvesterAction = self.TraitsImplementing().ToArray(); conditionManager = self.TraitOrDefault(); UpdateCondition(self); - - // Note: This is queued in a FrameEndTask because otherwise the activity is dropped/overridden while moving out of a factory. if (Info.SearchOnCreation) - self.World.AddFrameEndTask(w => self.QueueActivity(new FindResources(self))); + idleSmart = true; } public void SetProcLines(Actor proc) @@ -280,8 +278,7 @@ namespace OpenRA.Mods.Common.Traits if (LastSearchFailed) { // Wait a bit before searching again. - idleDuration += 1; - if (idleDuration <= Info.WaitDuration) + if (idleDuration++ < Info.WaitDuration) return; }