diff --git a/OpenRA.Mods.RA/Missions/Allies03Script.cs b/OpenRA.Mods.RA/Missions/Allies03Script.cs index 9f7cfbaab9..c1d356385c 100644 --- a/OpenRA.Mods.RA/Missions/Allies03Script.cs +++ b/OpenRA.Mods.RA/Missions/Allies03Script.cs @@ -171,7 +171,11 @@ namespace OpenRA.Mods.RA.Missions void ManageSovietAircraft() { - var enemies = world.Actors.Where(u => (u.Owner == allies1 || u.Owner == allies2) && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait()) && u.IsInWorld && !u.IsDead()); + var enemies = world.Actors + .Where(u => (u.Owner == allies1 || u.Owner == allies2) + && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait()) && u.IsInWorld && !u.IsDead() + && (!u.HasTrait() || !u.Trait().Disguised || (u.Trait().Disguised && u.Trait().disguisedAsPlayer != soviets))); + foreach (var aircraft in SovietAircraft()) { var plane = aircraft.Trait(); @@ -263,8 +267,10 @@ namespace OpenRA.Mods.RA.Missions void AttackNearestAlliedActor(Actor self) { - var enemies = world.Actors.Where(u => u.IsInWorld && !u.IsDead() && (u.Owner == allies1 || u.Owner == allies2) - && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait())); + var enemies = world.Actors + .Where(u => (u.Owner == allies1 || u.Owner == allies2) + && ((u.HasTrait() && !u.HasTrait()) || u.HasTrait()) && u.IsInWorld && !u.IsDead() + && (!u.HasTrait() || !u.Trait().Disguised || (u.Trait().Disguised && u.Trait().disguisedAsPlayer != soviets))); var enemy = enemies.OrderBy(u => (self.CenterLocation - u.CenterLocation).LengthSquared).FirstUnshroudedOrDefault(world, 10); if (enemy != null) {