diff --git a/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs b/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs index 9f245000bf..c8dd30e49a 100644 --- a/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs +++ b/OpenRA.Mods.Common/Activities/Air/HeliAttack.cs @@ -65,9 +65,8 @@ namespace OpenRA.Mods.Common.Activities return ActivityUtils.SequenceActivities(new HeliFly(self, newTarget)); } - // If all ammo pools are depleted and none reload automatically, return to helipad to reload and then move to next activity - // TODO: This should check whether there is ammo left that is actually suitable for the target - if (ammoPools.All(x => !x.Info.SelfReloads && !x.HasAmmo())) + // If any AmmoPool is depleted and no weapon is valid against target, return to helipad to reload and then move to next activity + if (ammoPools.Any(x => !x.Info.SelfReloads && !x.HasAmmo()) && !attackHeli.HasAnyValidWeapons(target)) return ActivityUtils.SequenceActivities(new HeliReturnToBase(self), NextActivity); var dist = target.CenterPosition - self.CenterPosition;