-using Microsoft.Extensions.Logging;
+using System.Linq;
+using Microsoft.Extensions.Logging;
+using Questionable.Data;
using Questionable.Functions;
using Questionable.Model;
using Questionable.Model.Questing;
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);
return 1000 * quest.AllSteps().Count(x => x.Step.AetheryteShortcut != null);
}
- public List<ElementId> GetPriorityQuests()
- {
- List<ElementId> priorityQuests =
- [
- new QuestId(1157), // Garuda (Hard)
- new QuestId(1158), // Titan (Hard)
- ..QuestData.CrystalTowerQuests
- ];
+ public List<ElementId> GetPriorityQuests(bool onlyClassAndRoleQuests = false)
+ {
+ List<ElementId> 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();