diff --git a/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs b/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs index df7ba1519a..cf9a32f272 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliReturnToBase.cs @@ -82,7 +82,7 @@ namespace OpenRA.Mods.Common.Activities new Turn(self, initialFacing), new HeliLand(self, false), new ResupplyAircraft(self), - NextActivity); + !heli.Info.AbortOnResupply ? NextActivity : null); } return ActivityUtils.SequenceActivities( diff --git a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs index 209276872e..eab7914ec3 100644 --- a/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs +++ b/OpenRA.Mods.Common/Activities/Air/ReturnToBase.cs @@ -149,7 +149,8 @@ namespace OpenRA.Mods.Common.Activities landingProcedures.Add(new ResupplyAircraft(self)); } - landingProcedures.Add(NextActivity); + if (!planeInfo.AbortOnResupply) + landingProcedures.Add(NextActivity); return ActivityUtils.SequenceActivities(landingProcedures.ToArray()); } diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index f183dd936e..4a84fe62b2 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -69,6 +69,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("Does this actor need to turn before landing?")] public readonly bool TurnToLand = false; + [Desc("Does this actor cancel its previous activity after resupplying?")] + public readonly bool AbortOnResupply = false; + public readonly WDist LandAltitude = WDist.Zero; [Desc("How fast this actor ascends or descends when using horizontal take off/landing.")]