Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions CraftingSequence/CraftingSequenceExecutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ private static async SyncTask<bool> EvaluateConditionsAsync(CraftingStep current

private static async SyncTask<bool> EvaluateConditionsAsync(List<ConditionalChecksGroup> 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)
Expand All @@ -258,12 +258,19 @@ private static async SyncTask<bool> EvaluateConditionsAsync(List<ConditionalChec
switch (group.GroupType)
{
case ConditionGroup.AND:
andResult &= trueCount.trueCount >= 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);
Expand All @@ -281,15 +288,9 @@ private static async SyncTask<bool> EvaluateConditionsAsync(List<ConditionalChec

break;
}

if (!andResult)
{
Logging.Logging.LogMessage("Exiting early due to AND group result being false", LogMessageType.Evaluation);
return false;
}
}

var combinedResult = andResult || orResult;
var combinedResult = !hasOrGroup || orResult;
Logging.Logging.LogMessage($"Final Combined Result: {combinedResult}", LogMessageType.Evaluation);
return combinedResult;
}
Expand Down