muffin v7.5.12
This commit is contained in:
parent
3102923ce2
commit
911ed68baa
65 changed files with 2356 additions and 1539 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue