diff --git a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs index dbf9197d7b..7864d8c379 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyCircle.cs @@ -18,11 +18,13 @@ namespace OpenRA.Mods.Common.Activities { readonly Aircraft plane; readonly WDist cruiseAltitude; + int remainingTicks; - public FlyCircle(Actor self) + public FlyCircle(Actor self, int ticks = -1) { plane = self.Trait(); cruiseAltitude = plane.Info.CruiseAltitude; + remainingTicks = ticks; } public override Activity Tick(Actor self) @@ -37,6 +39,11 @@ namespace OpenRA.Mods.Common.Activities if (IsCanceled) return NextActivity; + if (remainingTicks > 0) + remainingTicks--; + else if (remainingTicks == 0) + return NextActivity; + // We can't possibly turn this fast var desiredFacing = plane.Facing + 64; Fly.FlyToward(self, plane, desiredFacing, cruiseAltitude); diff --git a/OpenRA.Mods.Common/Activities/Air/FlyCircleTimed.cs b/OpenRA.Mods.Common/Activities/Air/FlyCircleTimed.cs deleted file mode 100644 index ff3b14cadd..0000000000 --- a/OpenRA.Mods.Common/Activities/Air/FlyCircleTimed.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2017 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of - * the License, or (at your option) any later version. For more - * information, see COPYING. - */ -#endregion - -using OpenRA.Activities; -using OpenRA.Mods.Common.Traits; - -namespace OpenRA.Mods.Common.Activities -{ - public class FlyCircleTimed : FlyCircle - { - int remainingTicks; - - public FlyCircleTimed(Actor self, int ticks) : base(self) - { - remainingTicks = ticks; - } - - public override Activity Tick(Actor self) - { - if (IsCanceled || remainingTicks-- == 0) - return NextActivity; - - base.Tick(self); - - return this; - } - } -} diff --git a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs index 7d700a6851..fd7c2df585 100644 --- a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs +++ b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs @@ -128,7 +128,7 @@ namespace OpenRA.Mods.Common.Activities if (nearestAfld != null) return ActivityUtils.SequenceActivities( new Fly(self, Target.FromActor(nearestAfld), WDist.Zero, plane.Info.WaitDistanceFromResupplyBase), - new FlyCircleTimed(self, plane.Info.NumberOfTicksToVerifyAvailableAirport), + new FlyCircle(self, plane.Info.NumberOfTicksToVerifyAvailableAirport), this); else { diff --git a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj index 80c59d3d85..3a07650762 100644 --- a/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj +++ b/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj @@ -770,7 +770,6 @@ -