diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs b/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs index 615575fd14..55fa16cb62 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackBase.cs @@ -70,7 +70,10 @@ namespace OpenRA.Mods.Common.Traits protected virtual bool CanAttack(Actor self, Target target) { - if (!self.IsInWorld || IsTraitDisabled) + if (!self.IsInWorld || IsTraitDisabled || self.IsDisabled()) + return false; + + if (!target.IsValidFor(self)) return false; if (!HasAnyValidWeapons(target)) @@ -80,15 +83,9 @@ namespace OpenRA.Mods.Common.Traits if (building.Value != null && !building.Value.BuildComplete) return false; - if (!target.IsValidFor(self)) - return false; - if (Armaments.All(a => a.IsReloading)) return false; - if (self.IsDisabled()) - return false; - if (target.Type == TargetType.Actor && !self.Owner.CanTargetActor(target.Actor)) return false;