1
0
Fork 0
forked from aly/qstbak

muffin v7.5.12

This commit is contained in:
alydev 2026-08-19 13:19:57 +10:00
parent 3102923ce2
commit 911ed68baa
65 changed files with 2356 additions and 1539 deletions

View file

@ -84,7 +84,7 @@ internal sealed class QuestPriorityResolver
{
return QuestResolution.Slot(EQuestResolutionType.Simulated, slots.Simulated, "Simulated quest");
}
if (slots.Next != null)
if (slots.Next != null && !_questFunctions.IsQuestBlacklisted(slots.Next.Quest.Id))
{
return QuestResolution.Slot(EQuestResolutionType.NextQuest, slots.Next, $"Next quest {slots.Next.Quest.Id}");
}
@ -93,7 +93,7 @@ internal sealed class QuestPriorityResolver
private QuestResolution ResolveFromGameState(List<Quest> manualPriorityQuests, QuestController.EAutomationType automationType)
{
bool allowNewMsq = automationType != QuestController.EAutomationType.SingleQuestB;
bool flag = automationType != QuestController.EAutomationType.SingleQuestB;
QuestReference resolvedMsqQuest = GetResolvedMsqQuest();
int num = _objectTable.LocalPlayer?.Level ?? 0;
EClassJob valueOrDefault = ((EClassJob?)_objectTable.LocalPlayer?.ClassJob.RowId).GetValueOrDefault();
@ -103,6 +103,16 @@ internal sealed class QuestPriorityResolver
QuestResolution valueOrDefault2 = questResolution.GetValueOrDefault();
return ApplyQuestRedirects(valueOrDefault2);
}
uint territoryType = _clientState.TerritoryType;
bool flag2 = territoryType - 181 <= 2;
if (flag2 && flag && _configuration.General.MsqPriority != Configuration.EMsqPriorityMode.Manual)
{
ElementId currentQuest = resolvedMsqQuest.CurrentQuest;
if ((object)currentQuest != null && currentQuest.Value > 0 && !_questFunctions.IsQuestAccepted(currentQuest))
{
return QuestResolution.ForQuest(EQuestResolutionType.MsqImmediate, currentQuest, resolvedMsqQuest.Sequence, resolvedMsqQuest.State, $"Starting city opening MSQ {currentQuest}");
}
}
questResolution = TryResolveInProgressClassQuest(valueOrDefault, resolvedMsqQuest.State);
if (questResolution.HasValue)
{
@ -130,7 +140,7 @@ internal sealed class QuestPriorityResolver
_lastLoggedPriorityClassQuest = null;
_loggedNoClassQuestsAvailable = false;
_loggedAdventurerClass = false;
questResolution = TryResolveMsqImmediate(resolvedMsqQuest, allowNewMsq);
questResolution = TryResolveMsqImmediate(resolvedMsqQuest, flag);
if (questResolution.HasValue)
{
return questResolution.GetValueOrDefault();
@ -147,7 +157,7 @@ internal sealed class QuestPriorityResolver
QuestResolution valueOrDefault4 = questResolution.GetValueOrDefault();
return ApplyQuestRedirects(valueOrDefault4);
}
questResolution = TryResolveMsqFallback(resolvedMsqQuest, allowNewMsq);
questResolution = TryResolveMsqFallback(resolvedMsqQuest, flag);
if (questResolution.HasValue)
{
return questResolution.GetValueOrDefault();
@ -259,8 +269,14 @@ internal sealed class QuestPriorityResolver
{
return null;
}
(ElementId, byte) tuple = (from x in manualPriorityQuests
where _questFunctions.IsQuestAccepted(x.Id) ? ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp || !(x.Id is QuestId questId) || !_questFunctions.WouldOvercapAlliedSocietyReputation(questId)) ? true : false) : _questFunctions.IsReadyToAcceptQuest(x.Id)
(ElementId, byte) tuple = (from x in manualPriorityQuests.Where(delegate(Quest x)
{
if (_questFunctions.IsQuestBlacklisted(x.Id))
{
return false;
}
return _questFunctions.IsQuestAccepted(x.Id) ? ((!_configuration.Advanced.AutoPrioritizeAlliedSocietyRankUp || !(x.Id is QuestId questId) || !_questFunctions.WouldOvercapAlliedSocietyReputation(questId)) ? true : false) : _questFunctions.IsReadyToAcceptQuest(x.Id);
})
select (QuestId: x.Id, Sequence: _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault();
if ((object)tuple.Item1 != null)
{
@ -271,12 +287,12 @@ internal sealed class QuestPriorityResolver
private QuestResolution? TryResolveInProgressClassQuest(EClassJob currentClassJob, MainScenarioQuestState msqState)
{
if (currentClassJob == EClassJob.Adventurer)
if (_configuration.Advanced.SkipClassJobQuests || currentClassJob == EClassJob.Adventurer)
{
return null;
}
QuestInfo questInfo = (from x in _questData.GetClassJobQuests(currentClassJob)
where (x.Level <= 5 || !_configuration.Advanced.SkipClassJobQuests) && _questFunctions.IsQuestAccepted(x.QuestId) && !_questFunctions.IsQuestComplete(x.QuestId)
where !_questFunctions.IsQuestBlacklisted(x.QuestId) && _questFunctions.IsQuestAccepted(x.QuestId) && !_questFunctions.IsQuestComplete(x.QuestId)
orderby x.Level
select x).FirstOrDefault();
if (questInfo == null)
@ -422,10 +438,14 @@ internal sealed class QuestPriorityResolver
{
case 1:
{
ElementId elementId = new QuestId(ptr->NormalQuests[trackingWork.Index].QuestId);
if (_questRegistry.IsKnownQuest(elementId) && !_questFunctions.IsQuestBlacklisted(elementId))
QuestWork questWork = ptr->NormalQuests[trackingWork.Index];
if (!questWork.IsHidden)
{
list.Add((elementId, QuestManager.GetQuestSequence(elementId.Value)));
ElementId elementId = new QuestId(questWork.QuestId);
if (_questRegistry.IsKnownQuest(elementId) && !_questFunctions.IsQuestBlacklisted(elementId))
{
list.Add((elementId, QuestManager.GetQuestSequence(elementId.Value)));
}
}
break;
}