forked from aly/qstbak
muffin v7.5.11
This commit is contained in:
parent
addf2d530f
commit
3102923ce2
522 changed files with 41082 additions and 211592 deletions
|
|
@ -1,8 +1,6 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text.RegularExpressions;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
|
|
@ -10,7 +8,6 @@ using Dalamud.Game.Text.SeStringHandling;
|
|||
using Dalamud.Plugin.Services;
|
||||
using LLib;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Lumina.Text.ReadOnly;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
|
|
@ -24,55 +21,6 @@ namespace Questionable.Controller;
|
|||
|
||||
internal abstract class MiniTaskController<T> : IDisposable
|
||||
{
|
||||
[Serializable]
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec
|
||||
{
|
||||
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
|
||||
|
||||
public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_0;
|
||||
|
||||
public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_1;
|
||||
|
||||
public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__13_2;
|
||||
|
||||
public static Func<ITask, string> _003C_003E9__20_1;
|
||||
|
||||
public static Func<ITask, string> _003C_003E9__20_0;
|
||||
|
||||
internal ReadOnlySeString? _003C_002Ector_003Eb__13_0(LogMessage x)
|
||||
{
|
||||
return x.Text;
|
||||
}
|
||||
|
||||
internal ReadOnlySeString? _003C_002Ector_003Eb__13_1(LogMessage x)
|
||||
{
|
||||
return x.Text;
|
||||
}
|
||||
|
||||
internal ReadOnlySeString? _003C_002Ector_003Eb__13_2(LogMessage x)
|
||||
{
|
||||
return x.Text;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
internal string _003CGetRemainingTaskNames_003Eb__20_1(ITask x)
|
||||
{
|
||||
return _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656320081);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
internal string _003CGetRemainingTaskNames_003Eb__20_0(ITask x)
|
||||
{
|
||||
return _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575);
|
||||
}
|
||||
|
||||
static string _206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
protected readonly TaskQueue _taskQueue = new TaskQueue();
|
||||
|
||||
private readonly IChatGui _chatGui;
|
||||
|
|
@ -113,10 +61,8 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
_interruptHandler.Interrupted += HandleInterruption;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected virtual void UpdateCurrentTask()
|
||||
{
|
||||
int num;
|
||||
if (_taskQueue.CurrentTaskExecutor == null)
|
||||
{
|
||||
if (!_taskQueue.TryDequeue(out ITask task))
|
||||
|
|
@ -125,46 +71,28 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
}
|
||||
try
|
||||
{
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1429948586), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) });
|
||||
ITaskExecutor requiredKeyedService = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(_202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E((object)task));
|
||||
num = ((!requiredKeyedService.Start(task)) ? (-231627347) : (-231627345));
|
||||
while (true)
|
||||
_logger.LogDebug("Starting task {TaskName}", task.ToString());
|
||||
ITaskExecutor requiredKeyedService = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task.GetType());
|
||||
if (requiredKeyedService.Start(task))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -231627346;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService;
|
||||
if (task != _lastInterruptedTask)
|
||||
{
|
||||
case 2:
|
||||
_lastInterruptedTask = null;
|
||||
_interruptRetryCount = 0;
|
||||
num = -231627346;
|
||||
break;
|
||||
case 1:
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService;
|
||||
num = ((task == _lastInterruptedTask) ? (-231627346) : (-231627348));
|
||||
break;
|
||||
case 4:
|
||||
num = -231627345;
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
case 3:
|
||||
_206C_200C_200B_206D_206A_206E_206A_206D_206A_200D_202E_206E_202B_206E_202E_202C_200F_202B_202B_202C_200C_206C_206C_200F_206B_200D_206D_206C_202C_200B_206E_200F_206F_200E_202A_206B_200F_202B_200E_200E_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(383569520), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) });
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogTrace("Task {TaskName} was skipped", task.ToString());
|
||||
}
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception exception)
|
||||
{
|
||||
_206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E((ILogger)_logger, ex, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-347977283), new object[1] { _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) });
|
||||
IChatGui chatGui = _chatGui;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(57, 1);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-2137508884));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(task);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(956431555));
|
||||
_200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1231541163), (ushort?)(ushort)576);
|
||||
Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-728065814));
|
||||
_logger.LogError(exception, "Failed to start task {TaskName}", task.ToString());
|
||||
_chatGui.PrintError($"Failed to start task '{task}', please check /xllog for details.", "Questionable", 576);
|
||||
Stop("Task failed to start");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -173,232 +101,107 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
ETaskResult eTaskResult;
|
||||
try
|
||||
{
|
||||
num = ((!currentTaskExecutor.WasInterrupted()) ? 235217046 : 235217045);
|
||||
while (true)
|
||||
if (currentTaskExecutor.WasInterrupted())
|
||||
{
|
||||
int num5 = num;
|
||||
int num3 = 235217046;
|
||||
int num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
InterruptQueueWithCombat();
|
||||
return;
|
||||
}
|
||||
if (currentTaskExecutor.HasTimedOut(_configuration.Advanced.InteractionTimeoutSeconds))
|
||||
{
|
||||
_logger.LogWarning("Task {TaskName} timed out after {Timeout}s", currentTask, _configuration.Advanced.InteractionTimeoutSeconds);
|
||||
if (_condition[ConditionFlag.InCombat])
|
||||
{
|
||||
case 6:
|
||||
return;
|
||||
case 2:
|
||||
_206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1893436399), new object[1] { _retryStepCount });
|
||||
Stop(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-209533649));
|
||||
return;
|
||||
case 5:
|
||||
InterruptQueueWithCombat();
|
||||
num = 235217040;
|
||||
break;
|
||||
case 1:
|
||||
_206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1774014248), new object[2]
|
||||
{
|
||||
currentTask,
|
||||
_configuration.Advanced.InteractionTimeoutSeconds
|
||||
});
|
||||
num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InCombat)) ? 235217041 : 235217043);
|
||||
break;
|
||||
case 4:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1770635265), new object[2]
|
||||
{
|
||||
_retryStepCount,
|
||||
_configuration.Advanced.InteractionRetryLimit
|
||||
});
|
||||
return;
|
||||
}
|
||||
_retryStepCount++;
|
||||
if (_retryStepCount > _configuration.Advanced.InteractionRetryLimit)
|
||||
{
|
||||
_logger.LogError("Non-combat timeout retry limit exceeded after {Count} retries, stopping", _retryStepCount);
|
||||
Stop("Non-combat timeout retry limit exceeded");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogDebug("Not in combat, retrying step (attempt {Count}/{Limit})", _retryStepCount, _configuration.Advanced.InteractionRetryLimit);
|
||||
_taskQueue.Reset();
|
||||
OnRetryStep();
|
||||
num = 235217040;
|
||||
break;
|
||||
case 8:
|
||||
num = 235217045;
|
||||
break;
|
||||
case 0:
|
||||
num = ((!currentTaskExecutor.HasTimedOut(_configuration.Advanced.InteractionTimeoutSeconds)) ? 235217055 : 235217047);
|
||||
break;
|
||||
case 3:
|
||||
InterruptQueueWithCombat();
|
||||
return;
|
||||
case 7:
|
||||
{
|
||||
int retryStepCount = _retryStepCount;
|
||||
num3 = 1;
|
||||
num4 = retryStepCount;
|
||||
int num6 = num4 ^ num3;
|
||||
int num7 = num4 & num3;
|
||||
_retryStepCount = num6 + (num7 + num7);
|
||||
num = ((_retryStepCount <= _configuration.Advanced.InteractionRetryLimit) ? 235217042 : 235217044);
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
eTaskResult = currentTaskExecutor.Update();
|
||||
goto end_IL_0211;
|
||||
}
|
||||
continue;
|
||||
end_IL_0211:
|
||||
break;
|
||||
return;
|
||||
}
|
||||
eTaskResult = currentTaskExecutor.Update();
|
||||
}
|
||||
catch (MovementController.PathfindingFailedException)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
catch (Exception ex3)
|
||||
catch (Exception exception2)
|
||||
{
|
||||
_206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E((ILogger)_logger, ex3, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-407849183), new object[1] { currentTask });
|
||||
IChatGui chatGui2 = _chatGui;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(58, 1);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(822530907));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(currentTask);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-201978855));
|
||||
_200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui2, defaultInterpolatedStringHandler2.ToStringAndClear(), global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1481660241), (ushort?)(ushort)576);
|
||||
Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-391735924));
|
||||
_logger.LogError(exception2, "Failed to update task {TaskName}", currentTask);
|
||||
_chatGui.PrintError($"Failed to update task '{currentTask}', please check /xllog for details.", "Questionable", 576);
|
||||
Stop("Task failed to update");
|
||||
return;
|
||||
}
|
||||
num = ((_taskQueue.CurrentTaskExecutor == currentTaskExecutor) ? (-1790042060) : (-1790042062));
|
||||
bool flag = default(bool);
|
||||
ITask task2 = default(ITask);
|
||||
IExtraTaskCreator extraTaskCreator = default(IExtraTaskCreator);
|
||||
while (true)
|
||||
if (_taskQueue.CurrentTaskExecutor != currentTaskExecutor)
|
||||
{
|
||||
int num8 = num;
|
||||
int num3 = -1790042050;
|
||||
int num4 = num8;
|
||||
int num9 = num4 + num3;
|
||||
int num10 = num4 & num3;
|
||||
int retryStepCount2;
|
||||
ILastTask task3;
|
||||
switch (num9 - (num10 + num10))
|
||||
return;
|
||||
}
|
||||
switch (eTaskResult)
|
||||
{
|
||||
case ETaskResult.StillRunning:
|
||||
break;
|
||||
case ETaskResult.SkipRemainingTasksForStep:
|
||||
{
|
||||
_logger.LogDebug("{Task} → {Result}, skipping remaining tasks for step", currentTask, eTaskResult);
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
ITask task3;
|
||||
while (_taskQueue.TryDequeue(out task3))
|
||||
{
|
||||
case 1:
|
||||
num = ((!flag) ? (-1790042054) : (-1790042068));
|
||||
break;
|
||||
case 0:
|
||||
num = ((!(task2 is Gather.SkipMarker)) ? (-1790042072) : (-1790042055));
|
||||
break;
|
||||
case 17:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1662139304), new object[3]
|
||||
if ((task3 is ILastTask || task3 is Gather.SkipMarker) ? true : false)
|
||||
{
|
||||
currentTask,
|
||||
eTaskResult,
|
||||
_taskQueue.RemainingTasks.Count()
|
||||
});
|
||||
OnTaskComplete(currentTask);
|
||||
num = ((eTaskResult != ETaskResult.CreateNewTasks) ? (-1790042058) : (-1790042059));
|
||||
break;
|
||||
case 18:
|
||||
{
|
||||
ITaskExecutor requiredKeyedService2 = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(_202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E((object)task2));
|
||||
requiredKeyedService2.Start(task2);
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService2;
|
||||
return;
|
||||
}
|
||||
case 6:
|
||||
num = -1790042062;
|
||||
break;
|
||||
case 21:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-705700696), new object[4]
|
||||
{
|
||||
currentTask,
|
||||
eTaskResult,
|
||||
_retryStepCount,
|
||||
_configuration.Advanced.InteractionRetryLimit
|
||||
});
|
||||
_taskQueue.Reset();
|
||||
OnRetryStep();
|
||||
return;
|
||||
case 19:
|
||||
_taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks());
|
||||
num = -1790042058;
|
||||
break;
|
||||
case 8:
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
return;
|
||||
case 9:
|
||||
_206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1386872238), new object[1] { _retryStepCount });
|
||||
Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(724240837));
|
||||
return;
|
||||
case 5:
|
||||
goto IL_071a;
|
||||
case 13:
|
||||
return;
|
||||
case 3:
|
||||
goto IL_0761;
|
||||
case 20:
|
||||
return;
|
||||
case 10:
|
||||
switch (eTaskResult)
|
||||
{
|
||||
case ETaskResult.TaskComplete:
|
||||
case ETaskResult.CreateNewTasks:
|
||||
ITaskExecutor requiredKeyedService2 = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task3.GetType());
|
||||
requiredKeyedService2.Start(task3);
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService2;
|
||||
break;
|
||||
case ETaskResult.End:
|
||||
goto IL_071a;
|
||||
case ETaskResult.StillRunning:
|
||||
return;
|
||||
case ETaskResult.NextStep:
|
||||
goto IL_0761;
|
||||
default:
|
||||
goto IL_07d0;
|
||||
case ETaskResult.RetryStep:
|
||||
goto IL_0821;
|
||||
case ETaskResult.SkipRemainingTasksForStep:
|
||||
goto IL_0870;
|
||||
}
|
||||
goto case 17;
|
||||
case 22:
|
||||
flag = false;
|
||||
num = -1790042049;
|
||||
break;
|
||||
case 7:
|
||||
flag = true;
|
||||
num = -1790042049;
|
||||
break;
|
||||
case 11:
|
||||
extraTaskCreator = currentTaskExecutor as IExtraTaskCreator;
|
||||
num = ((extraTaskCreator == null) ? (-1790042058) : (-1790042067));
|
||||
break;
|
||||
case 15:
|
||||
goto IL_0821;
|
||||
case 16:
|
||||
goto IL_0870;
|
||||
case 14:
|
||||
num = ((task2 is ILastTask) ? (-1790042055) : (-1790042050));
|
||||
break;
|
||||
case 12:
|
||||
return;
|
||||
case 4:
|
||||
num = ((!_taskQueue.TryDequeue(out task2)) ? (-1790042070) : (-1790042064));
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
IL_0870:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1713413528), new object[2] { currentTask, eTaskResult });
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
num = -1790042054;
|
||||
break;
|
||||
IL_0821:
|
||||
retryStepCount2 = _retryStepCount;
|
||||
num3 = 1;
|
||||
num4 = retryStepCount2;
|
||||
_retryStepCount = (num4 | num3) + (num4 & num3);
|
||||
num = ((_retryStepCount <= _configuration.Advanced.InteractionRetryLimit) ? (-1790042069) : (-1790042057));
|
||||
break;
|
||||
IL_07d0:
|
||||
num = -1790042052;
|
||||
break;
|
||||
IL_0761:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(341325607), new object[2] { currentTask, eTaskResult });
|
||||
_retryStepCount = 0;
|
||||
task3 = (ILastTask)currentTask;
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
OnNextStep(task3);
|
||||
return;
|
||||
IL_071a:
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1482182306), new object[2] { currentTask, eTaskResult });
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
Stop(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(910810307));
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ETaskResult.TaskComplete:
|
||||
case ETaskResult.CreateNewTasks:
|
||||
_logger.LogDebug("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", currentTask, eTaskResult, _taskQueue.RemainingTasks.Count());
|
||||
OnTaskComplete(currentTask);
|
||||
if (eTaskResult == ETaskResult.CreateNewTasks && currentTaskExecutor is IExtraTaskCreator extraTaskCreator)
|
||||
{
|
||||
_taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks());
|
||||
}
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
break;
|
||||
case ETaskResult.RetryStep:
|
||||
_retryStepCount++;
|
||||
if (_retryStepCount > _configuration.Advanced.InteractionRetryLimit)
|
||||
{
|
||||
_logger.LogError("RetryStep limit exceeded after {Count} retries, stopping", _retryStepCount);
|
||||
Stop("RetryStep limit exceeded");
|
||||
break;
|
||||
}
|
||||
_logger.LogDebug("{Task} → {Result}, retrying current step (attempt {Count}/{Limit})", currentTask, eTaskResult, _retryStepCount, _configuration.Advanced.InteractionRetryLimit);
|
||||
_taskQueue.Reset();
|
||||
OnRetryStep();
|
||||
break;
|
||||
case ETaskResult.NextStep:
|
||||
{
|
||||
_logger.LogDebug("{Task} → {Result}", currentTask, eTaskResult);
|
||||
_retryStepCount = 0;
|
||||
ILastTask task2 = (ILastTask)currentTask;
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
OnNextStep(task2);
|
||||
break;
|
||||
}
|
||||
case ETaskResult.End:
|
||||
_logger.LogDebug("{Task} → {Result}", currentTask, eTaskResult);
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
Stop("Task end");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -406,11 +209,10 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
{
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected virtual void OnRetryStep()
|
||||
{
|
||||
_206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(265028979), Array.Empty<object>());
|
||||
Stop(global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(542623925));
|
||||
_logger.LogWarning("RetryStep not handled by this controller, stopping");
|
||||
Stop("RetryStep not supported");
|
||||
}
|
||||
|
||||
protected void ResetStepRetryCounter()
|
||||
|
|
@ -424,336 +226,130 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
|
||||
public virtual void Stop(string label)
|
||||
{
|
||||
IStoppableTaskExecutor stoppableTaskExecutor = _taskQueue.CurrentTaskExecutor as IStoppableTaskExecutor;
|
||||
int num = ((stoppableTaskExecutor == null) ? (-478245129) : (-478245132));
|
||||
while (true)
|
||||
if (_taskQueue.CurrentTaskExecutor is IStoppableTaskExecutor stoppableTaskExecutor)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -478245130;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
_retryStepCount = 0;
|
||||
return;
|
||||
case 2:
|
||||
stoppableTaskExecutor.StopNow();
|
||||
num = -478245129;
|
||||
break;
|
||||
case 0:
|
||||
num = -478245132;
|
||||
break;
|
||||
}
|
||||
stoppableTaskExecutor.StopNow();
|
||||
}
|
||||
_retryStepCount = 0;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public virtual IList<string> GetRemainingTaskNames()
|
||||
{
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
int num = ((task == null) ? 45674528 : 45674531);
|
||||
while (true)
|
||||
if (task != null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 45674529;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_005f;
|
||||
case 1:
|
||||
return _taskQueue.RemainingTasks.Select([MethodImpl(MethodImplOptions.NoInlining)] (ITask x) => _003C_003Ec._206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575)).ToList();
|
||||
case 2:
|
||||
{
|
||||
List<string> list = new List<string>();
|
||||
list.Add(_202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E((object)task) ?? global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1887683575));
|
||||
list.AddRange(_taskQueue.RemainingTasks.Select([MethodImpl(MethodImplOptions.NoInlining)] (ITask x) => _003C_003Ec._206B_202C_200C_206D_200D_200E_206B_202E_202C_206E_200E_200C_200F_202B_202A_206A_206D_200C_200F_202E_200D_200E_206B_200C_200F_200C_206C_202E_200E_206D_206A_200F_200B_206D_202D_206A_206D_200E_206D_206F_202E((object)x) ?? global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(656320081)));
|
||||
return list;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_005f:
|
||||
num = 45674531;
|
||||
List<string> list = new List<string>();
|
||||
list.Add(task.ToString() ?? "?");
|
||||
list.AddRange(_taskQueue.RemainingTasks.Select((ITask x) => x.ToString() ?? "?"));
|
||||
return list;
|
||||
}
|
||||
return _taskQueue.RemainingTasks.Select((ITask x) => x.ToString() ?? "?").ToList();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void InterruptQueueWithCombat()
|
||||
{
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
int num = ((task != _lastInterruptedTask) ? (-2089841709) : (-2089841711));
|
||||
List<ITask> list = default(List<ITask>);
|
||||
while (true)
|
||||
if (task == _lastInterruptedTask)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -2089841710;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
_interruptRetryCount++;
|
||||
if (_interruptRetryCount > _configuration.Advanced.InteractionRetryLimit)
|
||||
{
|
||||
case 8:
|
||||
{
|
||||
_206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-269456005), new object[2]
|
||||
{
|
||||
task,
|
||||
_configuration.Advanced.InteractionRetryLimit
|
||||
});
|
||||
IChatGui chatGui = _chatGui;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(30, 2);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1056300213));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(task);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1081019019));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(_configuration.Advanced.InteractionRetryLimit);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(601161044));
|
||||
_200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(chatGui, defaultInterpolatedStringHandler.ToStringAndClear(), global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(467221712), (ushort?)(ushort)576);
|
||||
Stop(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1773571268));
|
||||
_logger.LogError("Task {TaskName} exceeded retry limit of {Limit}, stopping", task, _configuration.Advanced.InteractionRetryLimit);
|
||||
_chatGui.PrintError($"Task '{task}' failed after {_configuration.Advanced.InteractionRetryLimit} retries.", "Questionable", 576);
|
||||
Stop("Retry limit exceeded");
|
||||
return;
|
||||
}
|
||||
case 2:
|
||||
LogTasksAfterInterruption();
|
||||
return;
|
||||
case 5:
|
||||
list = new List<ITask>();
|
||||
num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.Mounted)) ? (-2089841701) : (-2089841707));
|
||||
break;
|
||||
case 6:
|
||||
num = -2089841711;
|
||||
break;
|
||||
case 7:
|
||||
list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
num = -2089841701;
|
||||
break;
|
||||
case 1:
|
||||
_lastInterruptedTask = task;
|
||||
_interruptRetryCount = 1;
|
||||
num = -2089841706;
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
int num7 = 1;
|
||||
List<ITask> list2 = new List<ITask>(num7);
|
||||
CollectionsMarshal.SetCount(list2, num7);
|
||||
CollectionsMarshal.AsSpan(list2)[0] = new WaitAtEnd.WaitDelay();
|
||||
taskQueue.InterruptWith(list2);
|
||||
num = -2089841712;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
_206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1063396505), new object[2]
|
||||
{
|
||||
_interruptRetryCount,
|
||||
_configuration.Advanced.InteractionRetryLimit
|
||||
});
|
||||
num = ((!_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InCombat)) ? (-2089841710) : (-2089841705));
|
||||
break;
|
||||
case 9:
|
||||
list.Add(Combat.Factory.CreateTask(null, -1, isLastStep: false, EEnemySpawnType.QuestInterruption, new List<uint>(), new List<QuestWorkValue>(), new List<ComplexCombatData>(), null));
|
||||
list.Add(new WaitAtEnd.WaitDelay());
|
||||
_taskQueue.InterruptWith(list);
|
||||
num = -2089841712;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
int interruptRetryCount = _interruptRetryCount;
|
||||
num3 = 1;
|
||||
num4 = interruptRetryCount;
|
||||
_interruptRetryCount = (num4 | num3) + (num4 & num3);
|
||||
num = ((_interruptRetryCount <= _configuration.Advanced.InteractionRetryLimit) ? (-2089841706) : (-2089841702));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_lastInterruptedTask = task;
|
||||
_interruptRetryCount = 1;
|
||||
}
|
||||
_logger.LogWarning("Interrupted (attempt {Retry}/{Limit}), attempting to resolve (if in combat)", _interruptRetryCount, _configuration.Advanced.InteractionRetryLimit);
|
||||
if (_condition[ConditionFlag.InCombat])
|
||||
{
|
||||
List<ITask> list = new List<ITask>();
|
||||
if (_condition[ConditionFlag.Mounted])
|
||||
{
|
||||
list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
}
|
||||
list.Add(Combat.Factory.CreateTask(null, -1, isLastStep: false, EEnemySpawnType.QuestInterruption, new List<uint>(), new List<QuestWorkValue>(), new List<ComplexCombatData>(), null));
|
||||
list.Add(new WaitAtEnd.WaitDelay());
|
||||
_taskQueue.InterruptWith(list);
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
int num = 1;
|
||||
List<ITask> list2 = new List<ITask>(num);
|
||||
CollectionsMarshal.SetCount(list2, num);
|
||||
CollectionsMarshal.AsSpan(list2)[0] = new WaitAtEnd.WaitDelay();
|
||||
taskQueue.InterruptWith(list2);
|
||||
}
|
||||
LogTasksAfterInterruption();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void InterruptWithoutCombat()
|
||||
{
|
||||
int num = ((_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor) ? 1044838736 : 1044838739);
|
||||
while (true)
|
||||
if (!(_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1044838737;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 1044838739;
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
_206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(1960045245), Array.Empty<object>());
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
int num7 = 1;
|
||||
List<ITask> list = new List<ITask>(num7);
|
||||
CollectionsMarshal.SetCount(list, num7);
|
||||
CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitDelay();
|
||||
taskQueue.InterruptWith(list);
|
||||
LogTasksAfterInterruption();
|
||||
num = 1044838736;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
_logger.LogWarning("Interrupted, attempting to redo previous tasks (not in combat)");
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
int num = 1;
|
||||
List<ITask> list = new List<ITask>(num);
|
||||
CollectionsMarshal.SetCount(list, num);
|
||||
CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitDelay();
|
||||
taskQueue.InterruptWith(list);
|
||||
LogTasksAfterInterruption();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void LogTasksAfterInterruption()
|
||||
{
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1548875949), Array.Empty<object>());
|
||||
IEnumerator<ITask> enumerator = _taskQueue.RemainingTasks.GetEnumerator();
|
||||
try
|
||||
_logger.LogDebug("Remaining tasks after interruption:");
|
||||
foreach (ITask remainingTask in _taskQueue.RemainingTasks)
|
||||
{
|
||||
int num = -508230281;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -508230281;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (_206C_200F_206D_200D_200E_206B_200C_206E_202C_206D_206E_200C_202E_202E_200E_200D_200F_200C_202E_200E_200D_202D_202D_202B_206F_206B_206E_202E_206E_206B_200C_206C_206C_202D_206F_206A_202E_206E_200E_200E_202E((IEnumerator)enumerator) ? (-508230284) : (-508230282));
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
ITask current = enumerator.Current;
|
||||
_206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E((ILogger)_logger, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1033828461), new object[1] { current });
|
||||
num = -508230281;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = -508230281;
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? 1241940011 : 1241940008);
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
int num3 = 1241940009;
|
||||
int num4 = num5;
|
||||
int num6 = num4 + num3;
|
||||
int num7 = num4 & num3;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 2:
|
||||
goto end_IL_00e0;
|
||||
case 1:
|
||||
_202E_202A_200D_200C_206E_202E_206F_202D_200D_206F_202B_202A_200D_200E_202D_200E_206D_202A_206D_206D_200D_206E_202E_206B_206E_200D_206F_206E_206D_206C_206E_200F_206D_202D_202B_202B_202A_200C_202B_202A_202E((IDisposable)enumerator);
|
||||
num = 1241940011;
|
||||
break;
|
||||
case 0:
|
||||
num = 1241940008;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_00e0:
|
||||
break;
|
||||
}
|
||||
_logger.LogDebug("- {TaskName}", remainingTask);
|
||||
}
|
||||
}
|
||||
|
||||
public void OnErrorToast(ref SeString message, ref bool isHandled)
|
||||
{
|
||||
int num = ((!_taskQueue.AllTasksComplete) ? 573119934 : 573119925);
|
||||
IToastAware toastAware = default(IToastAware);
|
||||
while (true)
|
||||
if (_taskQueue.AllTasksComplete)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 573119928;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
return;
|
||||
}
|
||||
if (_taskQueue.CurrentTaskExecutor is IToastAware toastAware && toastAware.OnErrorToast(message))
|
||||
{
|
||||
isHandled = true;
|
||||
}
|
||||
if (isHandled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_actionCanceledText.IsMatch(message.TextValue) && !_condition[ConditionFlag.InFlight])
|
||||
{
|
||||
ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
if (currentTaskExecutor != null && currentTaskExecutor.ShouldInterruptOnDamage())
|
||||
{
|
||||
case 0:
|
||||
num = 573119925;
|
||||
break;
|
||||
case 10:
|
||||
num = ((!toastAware.OnErrorToast(message)) ? 573119924 : 573119923);
|
||||
break;
|
||||
case 6:
|
||||
toastAware = _taskQueue.CurrentTaskExecutor as IToastAware;
|
||||
num = ((toastAware == null) ? 573119924 : 573119922);
|
||||
break;
|
||||
case 4:
|
||||
num = ((!_206B_200C_202A_206F_206D_202C_200C_202A_202B_202C_206E_202D_206D_200B_202A_206D_202C_202A_206C_206E_202D_206D_200B_206D_200C_202B_206C_206E_206B_206D_206B_202A_202E_206E_206A_200B_206B_202D_206C_200C_202E(_actionCanceledText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message))) ? 573119920 : 573119930);
|
||||
break;
|
||||
case 12:
|
||||
num = (isHandled ? 573119935 : 573119932);
|
||||
break;
|
||||
case 8:
|
||||
num = (GameFunctions.GameStringEquals(_cantExecuteDueToStatusText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message)) ? 573119933 : 573119929);
|
||||
break;
|
||||
case 3:
|
||||
InterruptQueueWithCombat();
|
||||
return;
|
||||
case 5:
|
||||
InterruptWithoutCombat();
|
||||
num = 573119935;
|
||||
break;
|
||||
case 7:
|
||||
return;
|
||||
case 9:
|
||||
{
|
||||
ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
num = ((currentTaskExecutor == null || !currentTaskExecutor.ShouldInterruptOnDamage()) ? 573119920 : 573119931);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
num = ((!GameFunctions.GameStringEquals(_eventCanceledText, _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(message))) ? 573119935 : 573119933);
|
||||
break;
|
||||
case 11:
|
||||
isHandled = true;
|
||||
num = 573119924;
|
||||
break;
|
||||
case 13:
|
||||
return;
|
||||
case 2:
|
||||
num = (_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InFlight) ? 573119920 : 573119921);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (GameFunctions.GameStringEquals(_cantExecuteDueToStatusText, message.TextValue) || GameFunctions.GameStringEquals(_eventCanceledText, message.TextValue))
|
||||
{
|
||||
InterruptWithoutCombat();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void HandleInterruption(object? sender, EventArgs e)
|
||||
{
|
||||
int num = (_202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(_condition, ConditionFlag.InFlight) ? 759202618 : 759202616);
|
||||
while (true)
|
||||
if (!_condition[ConditionFlag.InFlight])
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 759202619;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
if (currentTaskExecutor != null && currentTaskExecutor.ShouldInterruptOnDamage())
|
||||
{
|
||||
case 1:
|
||||
return;
|
||||
case 3:
|
||||
{
|
||||
ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
num = ((currentTaskExecutor == null || !currentTaskExecutor.ShouldInterruptOnDamage()) ? 759202618 : 759202619);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = 759202616;
|
||||
break;
|
||||
case 0:
|
||||
InterruptQueueWithCombat();
|
||||
num = 759202618;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -762,75 +358,4 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
{
|
||||
_interruptHandler.Interrupted -= HandleInterruption;
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static string _202D_200B_206C_206B_200E_202E_200D_206C_206A_206D_206C_206A_202E_202B_200C_202B_206F_206C_202A_200D_202B_200B_200B_200E_202C_202C_206D_200E_206D_206A_200F_206D_200E_202C_200D_206A_206B_202D_206E_206F_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static void _206D_206B_206A_202B_206A_200F_202D_200C_206E_200E_200D_206C_206F_200B_200B_200C_200C_206E_206E_206E_202A_206C_206B_206C_200F_202D_206A_206B_206A_206D_202D_200F_200E_200D_206A_202C_206D_206F_200E_202C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static Type _202B_200E_206B_202E_206D_200E_202A_206B_206F_206A_200D_200B_206A_200F_202C_202C_202A_202B_206E_202D_200F_206E_202D_200B_206E_202D_200B_206C_206E_200B_202E_200E_200B_202A_202A_206A_200C_202D_206D_206D_202E(object P_0)
|
||||
{
|
||||
return P_0.GetType();
|
||||
}
|
||||
|
||||
static void _206C_200C_200B_206D_206A_206E_206A_206D_206A_200D_202E_206E_202B_206E_202E_202C_200F_202B_202B_202C_200C_206C_206C_200F_206B_200D_206D_206C_202C_200B_206E_200F_206F_200E_202A_206B_200F_202B_200E_200E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogTrace(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206E_206B_200C_202D_206E_202E_200F_206B_206F_202B_206F_206D_206C_206C_202C_200B_206A_200E_200E_200D_202B_202E_202B_200D_206F_202C_206D_206A_202B_202A_206E_200B_206B_200F_206F_202D_200B_206A_202B_202A_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _200C_202A_200F_200D_200C_206A_202E_202E_206B_202B_200B_202D_200F_202C_202C_202A_206B_202C_206C_206B_202E_206D_200C_202C_202E_200F_200E_206C_202A_206B_202E_200D_200C_206D_200E_206A_200E_200C_206F_206E_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
|
||||
{
|
||||
P_0.PrintError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _206F_206B_206C_200E_202E_206D_206C_200E_202B_206D_206B_202E_200C_200D_206D_200B_200F_200B_206C_200E_202B_202B_206E_206B_206C_206B_206E_200D_206A_202C_202D_206F_206B_200F_206D_200F_206E_206E_202D_206A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _202D_206D_206E_202B_206C_200E_200B_200B_200B_202B_206A_202D_206C_200E_202D_200D_202C_200E_206F_206D_202C_206B_202B_200D_202A_202D_206A_206D_202D_206B_200E_200D_202D_202C_206D_206B_202D_206B_206D_206E_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
|
||||
static void _206D_202E_202E_206E_202A_202A_202D_202C_200C_200F_200B_200B_202A_206B_202D_206D_200E_206C_200B_206F_206D_200F_206D_206E_200F_202C_202E_202A_200E_206D_200E_206D_206C_200D_206A_202D_206B_206E_206F_206D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206C_200F_206D_200D_200E_206B_200C_206E_202C_206D_206E_200C_202E_202E_200E_200D_200F_200C_202E_200E_200D_202D_202D_202B_206F_206B_206E_202E_206E_206B_200C_206C_206C_202D_206F_206A_202E_206E_200E_200E_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _202E_202A_200D_200C_206E_202E_206F_202D_200D_206F_202B_202A_200D_200E_202D_200E_206D_202A_206D_206D_200D_206E_202E_206B_206E_200D_206F_206E_206D_206C_206E_200F_206D_202D_202B_202B_202A_200C_202B_202A_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static string _202A_200E_206A_206B_202A_206F_200F_200E_206B_202D_202A_200B_206C_206E_200E_206F_206A_202C_202B_206D_206E_206B_200D_206B_200B_206E_202A_206E_200E_202E_202B_202D_206A_202D_200B_202C_200E_206E_206E_202E(SeString P_0)
|
||||
{
|
||||
return P_0.TextValue;
|
||||
}
|
||||
|
||||
static bool _206B_200C_202A_206F_206D_202C_200C_202A_202B_202C_206E_202D_206D_200B_202A_206D_202C_202A_206C_206E_202D_206D_200B_206D_200C_202B_206C_206E_206B_206D_206B_202A_202E_206E_206A_200B_206B_202D_206C_200C_202E(Regex P_0, string P_1)
|
||||
{
|
||||
return P_0.IsMatch(P_1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue