diff --git a/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs b/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs index 92b922f3ad..26387e5adf 100644 --- a/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs +++ b/OpenRA.Mods.Common/Activities/Air/FlyAttack.cs @@ -59,7 +59,7 @@ namespace OpenRA.Mods.Common.Activities return NextActivity; // TODO: This should fire each weapon at its maximum range - if (attackPlane != null && target.IsInRange(self.CenterPosition, attackPlane.Armaments.Select(a => a.Weapon.MinRange).Min())) + if (attackPlane != null && target.IsInRange(self.CenterPosition, attackPlane.Armaments.Where(Exts.IsTraitEnabled).Select(a => a.Weapon.MinRange).Min())) ChildActivity = ActivityUtils.SequenceActivities(new FlyTimed(ticksUntilTurn, self), new Fly(self, target), new FlyTimed(ticksUntilTurn, self)); else ChildActivity = ActivityUtils.SequenceActivities(new Fly(self, target), new FlyTimed(ticksUntilTurn, self)); diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs b/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs index a9c418cc36..9340f6b7c4 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackGarrisoned.cs @@ -151,6 +151,9 @@ namespace OpenRA.Mods.Common.Traits foreach (var a in Armaments) { + if (a.IsTraitDisabled) + continue; + var port = SelectFirePort(self, targetYaw); if (port == null) return; diff --git a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs index 30c40f4dbc..57635ea284 100644 --- a/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs +++ b/OpenRA.Mods.Common/Traits/CombatDebugOverlay.cs @@ -115,6 +115,9 @@ namespace OpenRA.Mods.Common.Traits foreach (var a in attack.Armaments) { + if (a.IsTraitDisabled) + continue; + foreach (var b in a.Barrels) { var muzzle = self.CenterPosition + a.MuzzleOffset(self, b);