From a9cfbd9ad715a2902da57b6918fe9251c8aedd02 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Fri, 10 Mar 2017 19:34:41 +0000 Subject: [PATCH] Fix Obelisk not dropping targets when they move out of range. --- OpenRA.Mods.Common/Traits/Attack/AttackOmni.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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);