diff --git a/Questionable/Controller/Steps/Common/NextQuest.cs b/Questionable/Controller/Steps/Common/NextQuest.cs index 3ac7758d..8262a9ec 100644 --- a/Questionable/Controller/Steps/Common/NextQuest.cs +++ b/Questionable/Controller/Steps/Common/NextQuest.cs @@ -1,4 +1,6 @@ -using Microsoft.Extensions.Logging; +using System.Linq; +using Microsoft.Extensions.Logging; +using Questionable.Data; using Questionable.Functions; using Questionable.Model; using Questionable.Model.Questing; @@ -21,7 +23,7 @@ internal static class NextQuest return null; // probably irrelevant, since pick up is handled elsewhere (and, in particular, checks for aetherytes and stuff) - if (questFunctions.GetPriorityQuests().Contains(step.NextQuestId)) + if (questFunctions.GetPriorityQuests(onlyClassAndRoleQuests: true).Contains(step.NextQuestId)) return null; return new SetQuestTask(step.NextQuestId, quest.Id); diff --git a/Questionable/Functions/QuestFunctions.cs b/Questionable/Functions/QuestFunctions.cs index f0e6d159..6107e257 100644 --- a/Questionable/Functions/QuestFunctions.cs +++ b/Questionable/Functions/QuestFunctions.cs @@ -401,14 +401,15 @@ internal sealed unsafe class QuestFunctions return 1000 * quest.AllSteps().Count(x => x.Step.AetheryteShortcut != null); } - public List GetPriorityQuests() + public List GetPriorityQuests(bool onlyClassAndRoleQuests = false) { - List priorityQuests = - [ - new QuestId(1157), // Garuda (Hard) - new QuestId(1158), // Titan (Hard) - ..QuestData.CrystalTowerQuests - ]; + List priorityQuests = []; + if (!onlyClassAndRoleQuests) + { + priorityQuests.Add(new QuestId(1157)); // Garuda (Hard) + priorityQuests.Add(new QuestId(1158)); // Titan (Hard) + priorityQuests.AddRange(QuestData.CrystalTowerQuests); + } EClassJob classJob = (EClassJob?)_clientState.LocalPlayer?.ClassJob.RowId ?? EClassJob.Adventurer; uint[] shadowbringersRoleQuestChapters = QuestData.AllRoleQuestChapters.Select(x => x[0]).ToArray();