muffin v6.20
This commit is contained in:
parent
0000d73aff
commit
daafb42d2d
6 changed files with 958 additions and 1031 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue