diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index 458111700d..1ae7e77370 100755 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -65,7 +65,8 @@ namespace OpenRA public void Tick() { - while (currentActivity != null && !(currentActivity is Idle)) + var wasIdle = currentActivity is Idle; + while (currentActivity != null) { var a = currentActivity; currentActivity = a.Tick(this) ?? new Idle(); @@ -74,8 +75,9 @@ namespace OpenRA if (currentActivity is Idle) { - foreach (var ni in traits.WithInterface()) - ni.Idle(this); + if (!wasIdle) + foreach (var ni in traits.WithInterface()) + ni.Idle(this); break; }