diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs b/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs index cb13839ade..321f09513e 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs @@ -26,23 +26,25 @@ namespace OpenRA.Mods.Common.Traits public override Activity GetAttackActivity(Actor self, Target newTarget, bool allowMove, bool forceAttack) { - return new SetTarget(this, newTarget); + return new SetTarget(this, newTarget, allowMove); } protected class SetTarget : Activity { readonly Target target; readonly AttackOmni attack; + readonly bool allowMove; - public SetTarget(AttackOmni attack, Target target) + public SetTarget(AttackOmni attack, Target target, bool allowMove) { this.target = target; this.attack = attack; + this.allowMove = allowMove; } public override Activity Tick(Actor self) { - if (IsCanceled || !target.IsValidFor(self)) + if (IsCanceled || !target.IsValidFor(self) || !attack.IsReachableTarget(target, allowMove)) return NextActivity; attack.DoAttack(self, target);