From 16e0ea611e61d464c831e0b8ad441c4356261532 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 1 Mar 2020 20:02:32 +0000 Subject: [PATCH] Revert "Fix AttackFollow ignoring allowMove flag when auto-targeting." This reverts commit 3e116060cfc0a3e46563716c3e594a4ba3051b93. --- OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs | 11 +---------- OpenRA.Mods.Common/Traits/AutoTarget.cs | 6 +++--- OpenRA.Mods.Common/TraitsInterfaces.cs | 2 +- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs b/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs index dbd7c2627b..3562037ca0 100644 --- a/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs +++ b/OpenRA.Mods.Common/Traits/Attack/AttackFollow.cs @@ -42,7 +42,6 @@ namespace OpenRA.Mods.Common.Traits Activity requestedTargetPresetForActivity; bool opportunityForceAttack; bool opportunityTargetIsPersistentTarget; - bool scanningForOpportunityTarget; public void SetRequestedTarget(Actor self, Target target, bool isForceAttack = false) { @@ -138,10 +137,7 @@ namespace OpenRA.Mods.Common.Traits if (!IsAiming && Info.OpportunityFire && autoTarget != null && !autoTarget.IsTraitDisabled && autoTarget.Stance >= UnitStance.Defend) { - scanningForOpportunityTarget = true; OpportunityTarget = autoTarget.ScanForTarget(self, false, false); - scanningForOpportunityTarget = false; - opportunityForceAttack = false; opportunityTargetIsPersistentTarget = false; @@ -186,13 +182,8 @@ namespace OpenRA.Mods.Common.Traits opportunityTargetIsPersistentTarget = false; } - bool IDisableAutoTarget.DisableAutoTarget(Actor self, bool allowMove) + bool IDisableAutoTarget.DisableAutoTarget(Actor self) { - // HACK: Disable standard AutoTarget scanning, which we want to be - // controlled by the opportunity target logic in this trait - if (!allowMove && !scanningForOpportunityTarget) - return true; - return RequestedTarget.Type != TargetType.Invalid || (opportunityTargetIsPersistentTarget && OpportunityTarget.Type != TargetType.Invalid); } diff --git a/OpenRA.Mods.Common/Traits/AutoTarget.cs b/OpenRA.Mods.Common/Traits/AutoTarget.cs index 05a611a879..a06aa3803b 100644 --- a/OpenRA.Mods.Common/Traits/AutoTarget.cs +++ b/OpenRA.Mods.Common/Traits/AutoTarget.cs @@ -236,9 +236,8 @@ namespace OpenRA.Mods.Common.Traits if (attacker.Disposed) return; - var allowMove = allowMovement && Stance > UnitStance.Defend; foreach (var dat in disableAutoTarget) - if (dat.DisableAutoTarget(self, allowMove)) + if (dat.DisableAutoTarget(self)) return; if (!attacker.IsInWorld) @@ -250,6 +249,7 @@ namespace OpenRA.Mods.Common.Traits } // Don't fire at an invisible enemy when we can't move to reveal it + var allowMove = allowMovement && Stance > UnitStance.Defend; if (!allowMove && !attacker.CanBeViewedByPlayer(self.Owner)) return; @@ -291,7 +291,7 @@ namespace OpenRA.Mods.Common.Traits if (nextScanTime <= 0 && ActiveAttackBases.Any()) { foreach (var dat in disableAutoTarget) - if (dat.DisableAutoTarget(self, allowMove)) + if (dat.DisableAutoTarget(self)) return Target.Invalid; nextScanTime = self.World.SharedRandom.Next(Info.MinimumScanTimeInterval, Info.MaximumScanTimeInterval); diff --git a/OpenRA.Mods.Common/TraitsInterfaces.cs b/OpenRA.Mods.Common/TraitsInterfaces.cs index 32049da45c..0c31450898 100644 --- a/OpenRA.Mods.Common/TraitsInterfaces.cs +++ b/OpenRA.Mods.Common/TraitsInterfaces.cs @@ -310,7 +310,7 @@ namespace OpenRA.Mods.Common.Traits [RequireExplicitImplementation] public interface IDisableAutoTarget { - bool DisableAutoTarget(Actor self, bool allowMove); + bool DisableAutoTarget(Actor self); } [RequireExplicitImplementation]