Fix specialist bug when having no delineations

This commit is contained in:
Asriel Camora
2024-08-06 12:51:44 -07:00
parent fa45ac072e
commit d488b9e797
6 changed files with 40 additions and 12 deletions
+6 -3
View File
@@ -493,7 +493,7 @@ public sealed unsafe class SynthHelper : Window, IDisposable
var gearItems = Gearsets.GetGearsetItems(container);
var characterStats = Gearsets.CalculateCharacterStats(gearStats, gearItems, RecipeData.ClassJob.GetPlayerLevel(), RecipeData.ClassJob.CanPlayerUseManipulation(), Service.Configuration.CheckDelineations);
var characterStats = Gearsets.CalculateCharacterStats(gearStats, gearItems, RecipeData.ClassJob.GetPlayerLevel(), RecipeData.ClassJob.CanPlayerUseManipulation());
if (characterStats != CharacterStats)
{
CharacterStats = characterStats;
@@ -596,13 +596,16 @@ public sealed unsafe class SynthHelper : Window, IDisposable
}
var state = CurrentState;
SolverTask = new(token => CalculateBestMacroTask(state, token));
SolverTask = new(token => CalculateBestMacroTask(state, token, Gearsets.HasDelineations()));
SolverTask.Start();
}
private int CalculateBestMacroTask(SimulationState state, CancellationToken token)
private int CalculateBestMacroTask(SimulationState state, CancellationToken token, bool hasDelineations)
{
var config = Service.Configuration.SynthHelperSolverConfig;
var canUseDelineations = !Service.Configuration.CheckDelineations || hasDelineations;
if (!canUseDelineations)
config = config.FilterSpecialistActions();
token.ThrowIfCancellationRequested();