diff --git a/OpenRA.Game/Activities/Activity.cs b/OpenRA.Game/Activities/Activity.cs index e223321c78..97b7708c1e 100644 --- a/OpenRA.Game/Activities/Activity.cs +++ b/OpenRA.Game/Activities/Activity.cs @@ -152,6 +152,7 @@ namespace OpenRA.Activities set { NextActivity = value; } } + public bool IsIdle { get; protected set; } public bool IsInterruptible { get; protected set; } public bool IsCanceled { get { return State == ActivityState.Canceled; } } diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index 1192346848..148385fe1f 100644 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -53,7 +53,7 @@ namespace OpenRA public IOccupySpace OccupiesSpace { get; private set; } public ITargetable[] Targetables { get; private set; } - public bool IsIdle { get { return CurrentActivity == null; } } + public bool IsIdle { get { return CurrentActivity == null || CurrentActivity.IsIdle; } } public bool IsDead { get { return Disposed || (health != null && health.IsDead); } } public CPos Location { get { return OccupiesSpace.TopLeft; } } diff --git a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs index 7946560c21..ea89930fc7 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs @@ -21,6 +21,7 @@ namespace OpenRA.Mods.Common.Activities public FlyCircle(Actor self) { + IsIdle = true; plane = self.Trait(); cruiseAltitude = plane.Info.CruiseAltitude; } diff --git a/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs b/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs index 888ddbdf86..2eac754c36 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliFlyCircle.cs @@ -22,6 +22,7 @@ namespace OpenRA.Mods.Common.Activities public HeliFlyCircle(Actor self) { helicopter = self.Trait(); + IsIdle = true; } public override Activity Tick(Actor self)