Merge pull request #9619 from abcdefg30/repulsionbug
Fix aircraft repulsing other aircraft when not being repulsable themselves
This commit is contained in:
@@ -199,8 +199,14 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
return WVec.Zero;
|
return WVec.Zero;
|
||||||
|
|
||||||
var repulsionForce = self.World.FindActorsInCircle(self.CenterPosition, Info.IdealSeparation)
|
var repulsionForce = self.World.FindActorsInCircle(self.CenterPosition, Info.IdealSeparation)
|
||||||
.Where(a => !a.IsDead && a.Info.HasTraitInfo<AircraftInfo>()
|
.Where(a =>
|
||||||
&& a.Info.TraitInfo<AircraftInfo>().CruiseAltitude == Info.CruiseAltitude)
|
{
|
||||||
|
if (a.IsDead)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var ai = a.Info.TraitInfoOrDefault<AircraftInfo>();
|
||||||
|
return ai != null && ai.Repulsable && ai.CruiseAltitude == Info.CruiseAltitude;
|
||||||
|
})
|
||||||
.Select(GetRepulsionForce)
|
.Select(GetRepulsionForce)
|
||||||
.Aggregate(WVec.Zero, (a, b) => a + b);
|
.Aggregate(WVec.Zero, (a, b) => a + b);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user