Fix aircraft repulsing other aircraft when not being repulsable themselves

This commit is contained in:
abcdefg30
2015-10-13 21:48:25 +02:00
parent 410f121a1e
commit 4432c071cc

View File

@@ -199,8 +199,14 @@ namespace OpenRA.Mods.Common.Traits
return WVec.Zero;
var repulsionForce = self.World.FindActorsInCircle(self.CenterPosition, Info.IdealSeparation)
.Where(a => !a.IsDead && a.Info.HasTraitInfo<AircraftInfo>()
&& a.Info.TraitInfo<AircraftInfo>().CruiseAltitude == Info.CruiseAltitude)
.Where(a =>
{
if (a.IsDead)
return false;
var ai = a.Info.TraitInfoOrDefault<AircraftInfo>();
return ai != null && ai.Repulsable && ai.CruiseAltitude == Info.CruiseAltitude;
})
.Select(GetRepulsionForce)
.Aggregate(WVec.Zero, (a, b) => a + b);