From 065affc4ff047f3a94a48ff58d48b385642a3d10 Mon Sep 17 00:00:00 2001 From: beanZ9 <248049379+beanZ9@users.noreply.github.com> Date: Sun, 2 Aug 2026 19:32:08 +0200 Subject: [PATCH] fix: OR logic in conditional group evaluation --- CraftingSequence/CraftingSequenceExecutor.cs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/CraftingSequence/CraftingSequenceExecutor.cs b/CraftingSequence/CraftingSequenceExecutor.cs index f21b41f..5bd3451 100644 --- a/CraftingSequence/CraftingSequenceExecutor.cs +++ b/CraftingSequence/CraftingSequenceExecutor.cs @@ -241,7 +241,7 @@ private static async SyncTask EvaluateConditionsAsync(CraftingStep current private static async SyncTask EvaluateConditionsAsync(List groups, CancellationToken cancellationToken) { - var andResult = true; // Start true for AND logic + var hasOrGroup = false; var orResult = false; // Start false for OR logic foreach (var group in groups) @@ -258,12 +258,19 @@ private static async SyncTask EvaluateConditionsAsync(List= group.ConditionalsToBePassForSuccess; + var andResult = trueCount.trueCount >= group.ConditionalsToBePassForSuccess; Logging.Logging.LogMessage($"AND Group Result: {andResult} (True Count: {trueCount.trueCount}, Required: {group.ConditionalsToBePassForSuccess})", LogMessageType.Evaluation); + if (!andResult) + { + Logging.Logging.LogMessage("Exiting early due to AND group result being false", LogMessageType.Evaluation); + return false; + } + break; case ConditionGroup.OR: + hasOrGroup = true; orResult |= trueCount.trueCount >= group.ConditionalsToBePassForSuccess; Logging.Logging.LogMessage($"OR Group Result: {orResult} (True Count: {trueCount.trueCount}, Required: {group.ConditionalsToBePassForSuccess})", LogMessageType.Evaluation); @@ -281,15 +288,9 @@ private static async SyncTask EvaluateConditionsAsync(List