diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index 12576ea3f2..198b6a6637 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -663,6 +663,9 @@ namespace OpenRA.Mods.Common.Traits Order IIssueDeployOrder.IssueDeployOrder(Actor self) { + if (!Info.RearmBuildings.Any()) + return null; + return new Order("ReturnToBase", self, false); } @@ -675,9 +678,10 @@ namespace OpenRA.Mods.Common.Traits { case "Move": case "Enter": - case "ReturnToBase": case "Stop": return Info.Voice; + case "ReturnToBase": + return Info.RearmBuildings.Any() ? Info.Voice : null; default: return null; } } @@ -764,7 +768,7 @@ namespace OpenRA.Mods.Common.Traits self.QueueActivity(new HeliLand(self, true)); } } - else if (order.OrderString == "ReturnToBase") + else if (order.OrderString == "ReturnToBase" && Info.RearmBuildings.Any()) { UnReserve(); self.CancelActivity(); diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/CommandBarLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/CommandBarLogic.cs index 0ebfd765d8..230186ef73 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/CommandBarLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/CommandBarLogic.cs @@ -309,6 +309,7 @@ namespace OpenRA.Mods.Common.Widgets var orders = selectedDeploys .Where(pair => pair.Trait.IsTraitEnabled()) .Select(d => d.Trait.IssueDeployOrder(d.Actor)) + .Where(d => d != null) .ToArray(); foreach (var o in orders)