muffin v6.20

This commit is contained in:
alydev 2025-10-11 12:31:50 +10:00
parent 0000d73aff
commit daafb42d2d
6 changed files with 958 additions and 1031 deletions

View file

@ -142,8 +142,6 @@ internal sealed class QuestController : MiniTaskController<QuestController>
private DateTime _lastAutoRefresh = DateTime.MinValue;
private readonly AlliedSocietyData _alliedSocietyData = new AlliedSocietyData();
private const char ClipboardSeparator = ';';
public EAutomationType AutomationType
@ -946,16 +944,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_gatheringController.Stop("Execute next step");
try
{
if (CurrentQuest.Sequence == byte.MaxValue && CurrentQuest.Quest.Info.AlliedSociety != EAlliedSociety.None && _configuration.General.BatchAlliedSocietyTurnIns)
foreach (ITask item in _taskCreator.CreateTasks(CurrentQuest.Quest, CurrentQuest.Sequence, questSequence, step))
{
EnqueueBatchedAlliedSocietyTurnIns(questSequence, step);
}
else
{
foreach (ITask item in _taskCreator.CreateTasks(CurrentQuest.Quest, CurrentQuest.Sequence, questSequence, step))
{
_taskQueue.Enqueue(item);
}
_taskQueue.Enqueue(item);
}
ResetAutoRefreshState();
return;
@ -975,86 +966,6 @@ internal sealed class QuestController : MiniTaskController<QuestController>
goto IL_01e8;
}
private void EnqueueBatchedAlliedSocietyTurnIns(QuestSequence seq, QuestStep? step)
{
QuestProgress currentQuest = CurrentQuest;
if (currentQuest == null)
{
return;
}
EAlliedSociety alliedSociety = currentQuest.Quest.Info.AlliedSociety;
if (alliedSociety == EAlliedSociety.None)
{
return;
}
List<(QuestId, byte, int)> list = new List<(QuestId, byte, int)>();
foreach (Quest allQuest in _questRegistry.AllQuests)
{
if (allQuest == null || allQuest.Info.AlliedSociety != alliedSociety || !_questFunctions.IsQuestAccepted(allQuest.Id))
{
continue;
}
QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(allQuest.Id);
if (questProgressInfo != null)
{
int item = 0;
if (allQuest.Id is QuestId item2)
{
list.Add((item2, questProgressInfo.Sequence, item));
}
}
}
if (list.Count == 0)
{
return;
}
foreach (var (questId, b, num) in list.Where<(QuestId, byte, int)>(((QuestId Id, byte Sequence, int StepIndex) x) => x.Sequence < byte.MaxValue))
{
if (!_questRegistry.TryGetQuest(questId, out Quest quest))
{
continue;
}
QuestSequence questSequence = quest.FindSequence(b);
if (questSequence == null)
{
continue;
}
QuestStep step2 = null;
if (num >= 0 && num < questSequence.Steps.Count)
{
step2 = questSequence.FindStep(num);
}
foreach (ITask item3 in _taskCreator.CreateTasks(quest, b, questSequence, step2))
{
_taskQueue.Enqueue(item3);
}
}
foreach (KeyValuePair<uint, List<QuestId>> item4 in _alliedSocietyData.GroupQuestsByTurnInIssuer(list.Select<(QuestId, byte, int), QuestId>(((QuestId Id, byte Sequence, int StepIndex) x) => x.Id)))
{
_ = item4.Key;
List<QuestId> value = item4.Value;
if (value.Count == 0)
{
continue;
}
QuestId questId2 = value[0];
if (!_questRegistry.TryGetQuest(questId2, out Quest quest2))
{
continue;
}
QuestSequence questSequence2 = quest2.FindSequence(byte.MaxValue);
if (questSequence2 == null)
{
continue;
}
QuestStep step3 = questSequence2.FindStep(0);
foreach (ITask item5 in _taskCreator.CreateTasks(quest2, byte.MaxValue, questSequence2, step3))
{
_taskQueue.Enqueue(item5);
}
}
}
public string ToStatString()
{
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;