From 161f4cbdff5e9c1b7ae63785996f75349b3a7222 Mon Sep 17 00:00:00 2001 From: Gustas Date: Tue, 5 Sep 2023 18:06:39 +0300 Subject: [PATCH] Fix inconsistent ordering --- OpenRA.Mods.Common/Traits/CaptureManager.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/CaptureManager.cs b/OpenRA.Mods.Common/Traits/CaptureManager.cs index 8a6cde17e4..9f3ac771c7 100644 --- a/OpenRA.Mods.Common/Traits/CaptureManager.cs +++ b/OpenRA.Mods.Common/Traits/CaptureManager.cs @@ -164,7 +164,7 @@ namespace OpenRA.Mods.Common.Traits if (captee.IsDead) return null; - foreach (var c in enabledCaptures.OrderBy(c => c.Info.SabotageThreshold)) + foreach (var c in enabledCaptures.OrderBy(c => c.Info.SabotageThreshold).ThenBy(c => c.Info.CaptureDelay)) if (capteeManager.CanBeTargetedBy(captee, self, c)) return c; @@ -209,10 +209,7 @@ namespace OpenRA.Mods.Common.Traits if (targetManager.beingCapturedToken == Actor.InvalidConditionToken) targetManager.beingCapturedToken = target.GrantCondition(targetManager.info.BeingCapturedCondition); - captures = enabledCaptures - .OrderBy(c => c.Info.CaptureDelay) - .FirstOrDefault(c => targetManager.CanBeTargetedBy(target, self, c)); - + captures = ValidCapturesWithLowestSabotageThreshold(self, target, targetManager); if (captures == null) return false;