diff --git a/OpenRA.Mods.RA/Activities/Rearm.cs b/OpenRA.Mods.RA/Activities/Rearm.cs index 48f050f33d..cf34aafc89 100644 --- a/OpenRA.Mods.RA/Activities/Rearm.cs +++ b/OpenRA.Mods.RA/Activities/Rearm.cs @@ -42,8 +42,17 @@ namespace OpenRA.Mods.RA.Activities { var helicopter = self.TraitOrDefault(); if (helicopter != null) + { + if (helicopter.Info.RepairBuildings.Contains(hostBuilding.Info.Name) && self.HasTrait()) + { + if (self.Trait().DamageState != DamageState.Undamaged) + return NextActivity; + } + return helicopter.TakeOff(hostBuilding); - else return NextActivity; + } + + return NextActivity; } if (hostBuilding != null) diff --git a/OpenRA.Mods.RA/Activities/Repair.cs b/OpenRA.Mods.RA/Activities/Repair.cs index 70247863f1..d1d87caad7 100644 --- a/OpenRA.Mods.RA/Activities/Repair.cs +++ b/OpenRA.Mods.RA/Activities/Repair.cs @@ -9,6 +9,7 @@ #endregion using System; +using System.Linq; using OpenRA.Mods.RA.Air; using OpenRA.Mods.RA.Render; using OpenRA.Traits; @@ -34,7 +35,15 @@ namespace OpenRA.Mods.RA.Activities { var helicopter = self.TraitOrDefault(); if (helicopter != null) + { + if (helicopter.Info.RearmBuildings.Contains(host.Info.Name) && self.HasTrait()) + { + if (self.Trait().FullAmmo() == false) + return NextActivity; + } + return helicopter.TakeOff(host); + } return NextActivity; }