diff --git a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs index 82aae460e1..a2524a5884 100644 --- a/OpenRA.Mods.Common/Traits/Air/Aircraft.cs +++ b/OpenRA.Mods.Common/Traits/Air/Aircraft.cs @@ -717,9 +717,9 @@ namespace OpenRA.Mods.Common.Traits else self.QueueActivity(order.Queued, new HeliFlyAndLandWhenIdle(self, target, Info)); } - else if (order.OrderString == "Enter") + else if (order.OrderString == "Enter" || order.OrderString == "Repair") { - // Enter orders are only valid for own/allied actors, + // Enter and Repair orders are only valid for own/allied actors, // which are guaranteed to never be frozen. if (order.Target.Type != TargetType.Actor) return; diff --git a/OpenRA.Mods.Common/Traits/Repairable.cs b/OpenRA.Mods.Common/Traits/Repairable.cs index fd8ed8d7c4..005f0f3f00 100644 --- a/OpenRA.Mods.Common/Traits/Repairable.cs +++ b/OpenRA.Mods.Common/Traits/Repairable.cs @@ -101,6 +101,10 @@ namespace OpenRA.Mods.Common.Traits if (order.Target.Type != TargetType.Actor) return; + // Aircraft handle Repair orders directly in the Aircraft trait + if (self.Info.HasTraitInfo()) + return; + if (!CanRepairAt(order.Target.Actor) || (!CanRepair() && !CanRearm())) return;