Fix helicopters not returning when all valid weapons are out of ammo

They now return if all weapons are invalid (which includes those that are otherwise valid, but out of ammo) and at least one AmmoPool needs reloading at RearmBuilding.
This commit is contained in:
reaperrr
2016-06-17 13:16:34 +02:00
parent 4f55b088eb
commit 40e5dfbedb

View File

@@ -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;