muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
183
Questionable/Questionable.Controller/AttunementController.cs
Normal file
183
Questionable/Questionable.Controller/AttunementController.cs
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
using Questionable.Functions;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class AttunementController : MiniTaskController<AttunementController>
|
||||
{
|
||||
private readonly MovementController _movementController;
|
||||
|
||||
private readonly GameFunctions _gameFunctions;
|
||||
|
||||
private string? _currentTargetName;
|
||||
|
||||
public bool IsRunning => _currentTargetName != null;
|
||||
|
||||
public string? CurrentTargetName => _currentTargetName;
|
||||
|
||||
public bool CompletedSuccessfully { get; private set; }
|
||||
|
||||
public AttunementController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, ILogger<AttunementController> logger, MovementController movementController, GameFunctions gameFunctions)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger)
|
||||
{
|
||||
_movementController = movementController;
|
||||
_gameFunctions = gameFunctions;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Start(string targetName, IEnumerable<ITask> tasks)
|
||||
{
|
||||
_currentTargetName = targetName;
|
||||
_202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_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>(447934629), new object[1] { targetName });
|
||||
IEnumerator<ITask> enumerator = tasks.GetEnumerator();
|
||||
try
|
||||
{
|
||||
int num = -1031196198;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1031196198;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = -1031196198;
|
||||
break;
|
||||
case 0:
|
||||
num = (_200E_200D_200B_200C_206C_206E_206C_206F_202E_200C_202D_202A_206E_200F_200D_200B_202D_200D_206C_202D_206E_202E_200F_206A_206E_206A_202B_206A_206B_200C_206F_206E_206C_200B_202A_206F_206C_202D_200E_206F_202E((IEnumerator)enumerator) ? (-1031196197) : (-1031196199));
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
ITask current = enumerator.Current;
|
||||
_taskQueue.Enqueue(current);
|
||||
num = -1031196198;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? (-1448008366) : (-1448008367));
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
int num3 = -1448008365;
|
||||
int num4 = num5;
|
||||
int num6 = num4 + num3;
|
||||
int num7 = num4 & num3;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 1:
|
||||
goto end_IL_00cf;
|
||||
case 2:
|
||||
_202B_200D_206D_200C_200D_200D_206A_200E_202D_202C_206B_202E_206F_200F_206A_202C_202E_206A_202A_202C_206F_200B_206F_202B_200F_200E_202C_206A_200B_200B_206C_206F_200C_200D_206A_206A_200D_200E_206A_200D_202E((IDisposable)enumerator);
|
||||
num = -1448008366;
|
||||
break;
|
||||
case 0:
|
||||
num = -1448008367;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_00cf:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Update()
|
||||
{
|
||||
int num = ((_currentTargetName != null) ? (-1300283249) : (-1300283261));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1300283257;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = ((!_movementController.IsPathRunning) ? (-1300283264) : (-1300283260));
|
||||
break;
|
||||
case 1:
|
||||
_202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_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>(1369637439), new object[1] { _currentTargetName });
|
||||
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>(88017175));
|
||||
return;
|
||||
case 5:
|
||||
return;
|
||||
case 3:
|
||||
return;
|
||||
case 8:
|
||||
num = (_movementController.IsPathfinding ? (-1300283260) : (-1300283259));
|
||||
break;
|
||||
case 4:
|
||||
return;
|
||||
case 9:
|
||||
num = -1300283261;
|
||||
break;
|
||||
case 0:
|
||||
num = ((!_taskQueue.AllTasksComplete) ? (-1300283263) : (-1300283258));
|
||||
break;
|
||||
case 6:
|
||||
UpdateCurrentTask();
|
||||
return;
|
||||
case 7:
|
||||
num = ((!_gameFunctions.IsOccupied()) ? (-1300283257) : (-1300283262));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override void Stop(string label)
|
||||
{
|
||||
base.Stop(label);
|
||||
int num = ((_currentTargetName == null) ? (-931001069) : (-931001072));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -931001071;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
return;
|
||||
case 1:
|
||||
CompletedSuccessfully = _taskQueue.AllTasksComplete;
|
||||
_202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_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>(745396372), new object[1] { label });
|
||||
_currentTargetName = null;
|
||||
_taskQueue.Reset();
|
||||
num = -931001069;
|
||||
break;
|
||||
case 0:
|
||||
num = -931001072;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void _202C_200F_206C_200F_206C_206F_206E_206E_206B_202D_202D_200C_202B_202D_202D_206A_200E_206D_206E_200F_206E_206D_200C_206C_206B_206B_206A_200E_200C_206F_206C_202B_200E_206B_202A_206D_202A_206A_202E_206F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogInformation(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _200E_200D_200B_200C_206C_206E_206C_206F_202E_200C_202D_202A_206E_200F_200D_200B_202D_200D_206C_202D_206E_202E_200F_206A_206E_206A_202B_206A_206B_200C_206F_206E_206C_200B_202A_206F_206C_202D_200E_206F_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _202B_200D_206D_200C_200D_200D_206A_200E_202D_202C_206B_202E_206F_200F_206A_202C_202E_206A_202A_202C_206F_200B_206F_202B_200F_200E_202C_206A_200B_200B_206C_206F_200C_200D_206A_206A_200D_200E_206A_200D_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,9 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Game.Command;
|
||||
using Dalamud.Plugin.Services;
|
||||
using LLib.ImGui;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Windows;
|
||||
|
||||
|
|
@ -29,16 +31,18 @@ internal sealed class CommandHandler : IDisposable
|
|||
|
||||
private readonly QuestSelectionWindow _questSelectionWindow;
|
||||
|
||||
private readonly QuestSequenceWindow _questSequenceWindow;
|
||||
|
||||
private readonly JournalProgressWindow _journalProgressWindow;
|
||||
|
||||
private readonly PriorityWindow _priorityWindow;
|
||||
|
||||
private readonly FateController _fateController;
|
||||
|
||||
private readonly SeasonalDutyController _seasonalDutyController;
|
||||
|
||||
private readonly AttunementController _attunementController;
|
||||
|
||||
private readonly CustomDeliveryController _customDeliveryController;
|
||||
|
||||
private readonly FishingController _fishingController;
|
||||
|
||||
private readonly FateSelectionWindow _fateSelectionWindow;
|
||||
|
||||
private readonly SeasonalDutySelectionWindow _seasonalDutySelectionWindow;
|
||||
|
|
@ -51,7 +55,8 @@ internal sealed class CommandHandler : IDisposable
|
|||
|
||||
private readonly ChangelogWindow _changelogWindow;
|
||||
|
||||
public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController, MovementController movementController, FateController fateController, SeasonalDutyController seasonalDutyController, QuestRegistry questRegistry, ConfigWindow configWindow, DebugOverlay debugOverlay, OneTimeSetupWindow oneTimeSetupWindow, QuestWindow questWindow, QuestSelectionWindow questSelectionWindow, QuestSequenceWindow questSequenceWindow, JournalProgressWindow journalProgressWindow, PriorityWindow priorityWindow, FateSelectionWindow fateSelectionWindow, SeasonalDutySelectionWindow seasonalDutySelectionWindow, ITargetManager targetManager, QuestFunctions questFunctions, GameFunctions gameFunctions, AetheryteFunctions aetheryteFunctions, IDataManager dataManager, IClientState clientState, IObjectTable objectTable, Configuration configuration, ChangelogWindow changelogWindow)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public CommandHandler(ICommandManager commandManager, IChatGui chatGui, QuestController questController, MovementController movementController, FateController fateController, SeasonalDutyController seasonalDutyController, AttunementController attunementController, CustomDeliveryController customDeliveryController, FishingController fishingController, QuestRegistry questRegistry, ConfigWindow configWindow, OneTimeSetupWindow oneTimeSetupWindow, QuestWindow questWindow, QuestSelectionWindow questSelectionWindow, QuestSequenceWindow questSequenceWindow, JournalProgressWindow journalProgressWindow, FateSelectionWindow fateSelectionWindow, SeasonalDutySelectionWindow seasonalDutySelectionWindow, ITargetManager targetManager, QuestFunctions questFunctions, GameFunctions gameFunctions, AetheryteFunctions aetheryteFunctions, IDataManager dataManager, IClientState clientState, IObjectTable objectTable, Configuration configuration, ChangelogWindow changelogWindow)
|
||||
{
|
||||
_commandManager = commandManager;
|
||||
_chatGui = chatGui;
|
||||
|
|
@ -59,159 +64,581 @@ internal sealed class CommandHandler : IDisposable
|
|||
_movementController = movementController;
|
||||
_fateController = fateController;
|
||||
_seasonalDutyController = seasonalDutyController;
|
||||
_attunementController = attunementController;
|
||||
_customDeliveryController = customDeliveryController;
|
||||
_fishingController = fishingController;
|
||||
_configWindow = configWindow;
|
||||
_oneTimeSetupWindow = oneTimeSetupWindow;
|
||||
_questWindow = questWindow;
|
||||
_questSelectionWindow = questSelectionWindow;
|
||||
_questSequenceWindow = questSequenceWindow;
|
||||
_journalProgressWindow = journalProgressWindow;
|
||||
_priorityWindow = priorityWindow;
|
||||
_fateSelectionWindow = fateSelectionWindow;
|
||||
_seasonalDutySelectionWindow = seasonalDutySelectionWindow;
|
||||
_targetManager = targetManager;
|
||||
_clientState = clientState;
|
||||
_configuration = configuration;
|
||||
_changelogWindow = changelogWindow;
|
||||
_clientState.Logout += OnLogout;
|
||||
_206F_202A_200D_206C_202E_206D_206D_200F_206B_202A_200D_202D_206F_206D_200E_206F_202A_200C_200E_200F_202B_200E_206F_206A_200F_200D_200D_202D_206B_206F_200D_202D_206C_202C_200E_200B_206B_200E_202C_200D_202E(_clientState, (IClientState.LogoutDelegate)OnLogout);
|
||||
ICommandManager commandManager2 = _commandManager;
|
||||
CommandInfo commandInfo = new CommandInfo(ProcessCommand);
|
||||
string separator = Environment.NewLine + "\t";
|
||||
string text = 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>(1083379744);
|
||||
CommandInfo commandInfo = _206E_200B_200D_200C_206A_202B_202E_206D_202C_200E_202D_206E_206B_206D_202B_206C_200E_200E_206D_200E_202D_206F_206A_200D_200F_200C_206B_206E_206A_202B_200B_206D_200D_206C_206E_206D_202E_206D_200B_206C_202E((IReadOnlyCommandInfo.HandlerDelegate)ProcessCommand);
|
||||
string text2 = _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(_202D_206E_200B_200B_206B_202E_202D_206B_200F_202A_202A_202D_206C_206C_202E_202C_202B_202B_200F_200F_202A_206E_200C_202B_206D_202D_206D_200C_200C_206E_200B_206B_202D_202C_206F_206C_200C_200E_206C_202D_202E(), 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>(-1365294164));
|
||||
InlineArray7<string> buffer = default(InlineArray7<string>);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 0) = "Opens the Questing window";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 1) = "/qst help - displays simplified commands";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 2) = "/qst help-all - displays all available commands";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 3) = "/qst config - opens the configuration window";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 4) = "/qst changelog - opens the changelog window";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 5) = "/qst start - starts doing quests";
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 6) = "/qst stop - stops doing quests";
|
||||
commandInfo.HelpMessage = string.Join(separator, global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray7<string>, string>(in buffer, 7));
|
||||
commandManager2.AddHandler("/qst", commandInfo);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 0) = 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>(2027085169);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 1) = 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>(1094157375);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 2) = 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>(762558285);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 3) = 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>(-86108937);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 4) = 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>(1230176856);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 5) = 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>(112790708);
|
||||
global::_003CPrivateImplementationDetails_003E.InlineArrayElementRef<InlineArray7<string>, string>(ref buffer, 6) = 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>(-794498605);
|
||||
_202C_206D_202E_200C_206E_206C_200E_206D_206E_206F_206A_200F_206C_200E_206B_202A_202C_206D_200D_206E_200B_202B_206B_206B_206D_200F_206E_200F_206D_202D_200D_200E_202B_206A_206E_206F_206C_206F_206A_206F_202E(commandInfo, _206C_200F_206B_206C_200D_202A_202E_206C_200F_206E_206F_202C_206F_202B_206B_200E_200C_206A_202C_200F_206C_206D_200D_200E_202C_202E_206B_202C_200F_200B_206B_206B_206F_200F_202A_206E_200C_200D_206D_200F_202E(text2, global::_003CPrivateImplementationDetails_003E.InlineArrayAsReadOnlySpan<InlineArray7<string>, string>(in buffer, 7)));
|
||||
_202E_200E_200C_202D_206B_200F_206B_206D_206E_202B_200D_202B_202E_202D_200C_206C_206F_202A_200B_200D_206F_206B_206A_202B_206F_206E_202D_202E_206B_200D_206D_206C_202D_206B_202E_206B_202E_202B_206B_200E_202E(commandManager2, text, commandInfo);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void ProcessCommand(string command, string arguments)
|
||||
{
|
||||
if (!OpenSetupIfNeeded(arguments))
|
||||
int num = ((!_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(_200E_202E_200B_202C_206D_200F_206F_200C_200D_200E_202C_200D_206F_200B_200D_206E_206F_200C_202B_202D_206E_206B_200D_206B_206C_200B_206C_200D_206A_200E_202A_200C_202B_206E_200E_200B_202A_200B_202B_206B_202E(arguments), 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>(356304837))) ? (-1968296446) : (-1968296445));
|
||||
char c = default(char);
|
||||
string text = default(string);
|
||||
string[] array = default(string[]);
|
||||
while (true)
|
||||
{
|
||||
string[] array = arguments.Split(' ');
|
||||
switch (array[0])
|
||||
int num2 = num;
|
||||
int num3 = -1968296431;
|
||||
int num4 = num2;
|
||||
char num5;
|
||||
char num6;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case "h":
|
||||
case "help":
|
||||
_chatGui.Print("Available commands:", "Questionable", 576);
|
||||
_chatGui.Print("/qst - toggles the Questing window", "Questionable", 576);
|
||||
_chatGui.Print("/qst help - displays simplified commands", "Questionable", 576);
|
||||
_chatGui.Print("/qst help-all - displays all available commands", "Questionable", 576);
|
||||
_chatGui.Print("/qst config - opens the configuration window", "Questionable", 576);
|
||||
_chatGui.Print("/qst changelog - opens the changelog window", "Questionable", 576);
|
||||
_chatGui.Print("/qst changelog - opens the changelog window", "Questionable", 576);
|
||||
_chatGui.Print("/qst start - starts doing quests", "Questionable", 576);
|
||||
_chatGui.Print("/qst stop - stops doing quests", "Questionable", 576);
|
||||
_chatGui.Print("/qst reload - reload all quest data", "Questionable", 576);
|
||||
_chatGui.Print("/qst fate / duty - toggles the farming window", "Questionable", 576);
|
||||
case 50:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "ha":
|
||||
case "help-all":
|
||||
_chatGui.Print("Available commands:", "Questionable", 576);
|
||||
_chatGui.Print("/qst - toggles the Questing window", "Questionable", 576);
|
||||
_chatGui.Print("/qst help - displays available commands", "Questionable", 576);
|
||||
_chatGui.Print("/qst help-all - displays all available commands", "Questionable", 576);
|
||||
_chatGui.Print("/qst config - opens the configuration window", "Questionable", 576);
|
||||
_chatGui.Print("/qst changelog - opens the changelog window", "Questionable", 576);
|
||||
_chatGui.Print("/qst start - starts doing quests", "Questionable", 576);
|
||||
_chatGui.Print("/qst stop - stops doing quests", "Questionable", 576);
|
||||
_chatGui.Print("/qst reload - reload all quest data", "Questionable", 576);
|
||||
_chatGui.Print("/qst which - shows all quests starting with your selected target", "Questionable", 576);
|
||||
_chatGui.Print("/qst zone - shows all quests starting in the current zone (only includes quests with a known quest path, and currently visible unaccepted quests)", "Questionable", 576);
|
||||
_chatGui.Print("/qst journal - toggles the Journal Progress window", "Questionable", 576);
|
||||
_chatGui.Print("/qst priority - toggles the Priority window", "Questionable", 576);
|
||||
_chatGui.Print("/qst fate / duty - toggles the farming window", "Questionable", 576);
|
||||
_chatGui.Print("/qst handle-interrupt - makes Questionable handle queued interrupts immediately (useful if you manually start combat)", "Questionable", 576);
|
||||
case 14:
|
||||
num = ((c == 'h') ? (-1968296420) : (-1968296390));
|
||||
break;
|
||||
case "c":
|
||||
case "config":
|
||||
_configWindow.ToggleOrUncollapse();
|
||||
case 63:
|
||||
switch (_206D_200C_206B_206B_206B_206C_200B_200C_202B_200C_200F_206C_206B_200B_206F_202D_202E_206A_200F_200E_200C_200E_200B_206C_206D_206C_206A_206B_202C_206E_206F_202D_206C_200C_206B_202B_202B_202A_200B_200E_202E(text))
|
||||
{
|
||||
case 3:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
case 14:
|
||||
case 15:
|
||||
goto IL_021b;
|
||||
case 5:
|
||||
goto IL_024d;
|
||||
case 16:
|
||||
goto IL_0275;
|
||||
case 6:
|
||||
goto IL_0313;
|
||||
case 1:
|
||||
goto IL_033b;
|
||||
case 2:
|
||||
goto IL_0478;
|
||||
case 8:
|
||||
goto IL_04f2;
|
||||
case 9:
|
||||
goto IL_0579;
|
||||
case 0:
|
||||
goto IL_06cc;
|
||||
case 4:
|
||||
goto IL_0756;
|
||||
case 7:
|
||||
goto IL_07be;
|
||||
}
|
||||
num = -1968296367;
|
||||
break;
|
||||
case "cl":
|
||||
case "changelog":
|
||||
_changelogWindow.ToggleOrUncollapse();
|
||||
case 45:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_configWindow);
|
||||
return;
|
||||
case 31:
|
||||
goto IL_01f7;
|
||||
case 34:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "start":
|
||||
_questWindow.IsOpenAndUncollapsed = true;
|
||||
_questController.Start("Start command");
|
||||
case 61:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "stop":
|
||||
_movementController.Stop();
|
||||
_questController.Stop("Stop command");
|
||||
_fateController.Stop("Stop command");
|
||||
_seasonalDutyController.Stop("Stop command");
|
||||
case 67:
|
||||
goto IL_021b;
|
||||
case 6:
|
||||
goto IL_024d;
|
||||
case 55:
|
||||
goto IL_0275;
|
||||
case 64:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "reload":
|
||||
case 28:
|
||||
array = _206D_200E_200D_200B_200C_206D_206E_200E_200B_202D_200C_202A_202C_200D_200E_206B_200B_200B_202D_200C_202E_200B_206E_206B_202C_200E_206D_206D_206C_206F_200C_206A_202E_200E_206A_202E_202A_206C_206B_206F_202E(arguments, ' ', StringSplitOptions.None);
|
||||
text = array[0];
|
||||
num = ((text == null) ? (-1968296366) : (-1968296402));
|
||||
break;
|
||||
case 24:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 13:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-452995351)) ? (-1968296442) : (-1968296405));
|
||||
break;
|
||||
case 12:
|
||||
goto IL_0313;
|
||||
case 66:
|
||||
goto IL_033b;
|
||||
case 36:
|
||||
num = ((c == 'z') ? (-1968296407) : (-1968296424));
|
||||
break;
|
||||
case 19:
|
||||
num = ((!OpenSetupIfNeeded(arguments)) ? (-1968296435) : (-1968296438));
|
||||
break;
|
||||
case 52:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(125256215)) ? (-1968296407) : (-1968296397));
|
||||
break;
|
||||
case 5:
|
||||
_questWindow.Reload();
|
||||
return;
|
||||
case 37:
|
||||
goto IL_03ff;
|
||||
case 22:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "which":
|
||||
_questSelectionWindow.OpenForTarget(_targetManager.Target);
|
||||
case 15:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-250062108)) ? (-1968296444) : (-1968296385));
|
||||
break;
|
||||
case "z":
|
||||
case "zone":
|
||||
_questSelectionWindow.OpenForCurrentZone();
|
||||
case 39:
|
||||
num = ((c == 'w') ? (-1968296437) : (-1968296448));
|
||||
break;
|
||||
case "j":
|
||||
case "journal":
|
||||
_journalProgressWindow.ToggleOrUncollapse();
|
||||
case 7:
|
||||
goto IL_0460;
|
||||
case 33:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "p":
|
||||
case "priority":
|
||||
_priorityWindow.ToggleOrUncollapse();
|
||||
break;
|
||||
case "f":
|
||||
case "fate":
|
||||
_fateSelectionWindow.ToggleOrUncollapse();
|
||||
break;
|
||||
case "d":
|
||||
case "duty":
|
||||
_seasonalDutySelectionWindow.ToggleOrUncollapse();
|
||||
break;
|
||||
case "handle-interrupt":
|
||||
case 2:
|
||||
goto IL_0478;
|
||||
case 40:
|
||||
_questController.InterruptQueueWithCombat();
|
||||
return;
|
||||
case 47:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case "":
|
||||
_questWindow.ToggleOrUncollapse();
|
||||
case 27:
|
||||
return;
|
||||
case 44:
|
||||
num = -1968296366;
|
||||
break;
|
||||
default:
|
||||
_chatGui.PrintError("Unknown subcommand " + array[0], "Questionable", 576);
|
||||
case 57:
|
||||
goto IL_04c5;
|
||||
case 16:
|
||||
goto IL_04f2;
|
||||
case 56:
|
||||
_questSelectionWindow.OpenForCurrentZone();
|
||||
return;
|
||||
case 51:
|
||||
num = ((c == 's') ? (-1968296412) : (-1968296433));
|
||||
break;
|
||||
case 46:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 21:
|
||||
_200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_questWindow, true);
|
||||
_questController.Start(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>(1553553142));
|
||||
return;
|
||||
case 4:
|
||||
goto IL_0579;
|
||||
case 8:
|
||||
num = ((c == 'r') ? (-1968296406) : (-1968296413));
|
||||
break;
|
||||
case 30:
|
||||
num = ((c == 'z') ? (-1968296411) : (-1968296386));
|
||||
break;
|
||||
case 60:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 29:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_changelogWindow);
|
||||
return;
|
||||
case 1:
|
||||
_questSelectionWindow.OpenForTarget(_200E_200F_206B_202B_200D_206F_202B_206E_202D_202A_206A_200C_202C_202A_200B_202A_206C_206F_200F_202E_200F_200C_202E_206D_206A_202A_200B_202B_200C_206A_206C_206B_206F_202E_202D_206B_200D_202D_202E_202D_202E(_targetManager));
|
||||
return;
|
||||
case 49:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 54:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-1011458983)) ? (-1968296436) : (-1968296421));
|
||||
break;
|
||||
case 11:
|
||||
goto IL_064e;
|
||||
case 62:
|
||||
goto IL_067b;
|
||||
case 38:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 10:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 42:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 41:
|
||||
goto IL_06cc;
|
||||
case 25:
|
||||
goto IL_06d8;
|
||||
case 32:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 43:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 18:
|
||||
_200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_oneTimeSetupWindow, true);
|
||||
return;
|
||||
case 17:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 23:
|
||||
PrintHelp(showAll: true);
|
||||
return;
|
||||
case 58:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 26:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(247506049)) ? (-1968296432) : (-1968296403));
|
||||
break;
|
||||
case 3:
|
||||
goto IL_0756;
|
||||
case 59:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(389927297)) ? (-1968296428) : (-1968296400));
|
||||
break;
|
||||
case 48:
|
||||
goto IL_07be;
|
||||
case 35:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(247173070)) ? (-1968296388) : (-1968296439));
|
||||
break;
|
||||
case 53:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-1935052277)) ? (-1968296431) : (-1968296416));
|
||||
break;
|
||||
case 20:
|
||||
num = -1968296445;
|
||||
break;
|
||||
case 0:
|
||||
_movementController.Stop();
|
||||
_questController.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>(-1980456505));
|
||||
_fateController.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>(-1980456505));
|
||||
_seasonalDutyController.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>(-1980456505));
|
||||
_attunementController.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>(-841271388));
|
||||
_customDeliveryController.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>(-1980456505));
|
||||
_fishingController.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>(-276225839));
|
||||
return;
|
||||
case 65:
|
||||
num = -1968296366;
|
||||
break;
|
||||
case 9:
|
||||
{
|
||||
num = -1968296366;
|
||||
break;
|
||||
}
|
||||
IL_0478:
|
||||
c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0);
|
||||
num = ((c == 'c') ? (-1968296409) : (-1968296417));
|
||||
break;
|
||||
IL_024d:
|
||||
c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0);
|
||||
num = ((c == 's') ? (-1968296418) : (-1968296394));
|
||||
break;
|
||||
IL_07be:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(651525904)) ? (-1968296426) : (-1968296399));
|
||||
break;
|
||||
IL_033b:
|
||||
c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0);
|
||||
num5 = c;
|
||||
num3 = 99;
|
||||
num4 = num5;
|
||||
switch (~(~num4 + num3))
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
goto IL_01f7;
|
||||
case 2:
|
||||
case 4:
|
||||
case 6:
|
||||
goto IL_021b;
|
||||
default:
|
||||
goto IL_0376;
|
||||
case 5:
|
||||
goto IL_03ff;
|
||||
case 7:
|
||||
goto IL_0460;
|
||||
case 3:
|
||||
goto IL_06d8;
|
||||
}
|
||||
goto case 45;
|
||||
IL_06d8:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_fateSelectionWindow);
|
||||
return;
|
||||
IL_0756:
|
||||
c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0);
|
||||
num6 = c;
|
||||
num3 = 100;
|
||||
num4 = num6;
|
||||
switch (~(~num4 + num3))
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
break;
|
||||
case 2:
|
||||
goto IL_04c5;
|
||||
case 4:
|
||||
goto IL_064e;
|
||||
case 0:
|
||||
goto IL_067b;
|
||||
default:
|
||||
goto IL_0785;
|
||||
}
|
||||
goto IL_021b;
|
||||
IL_0785:
|
||||
num = -1968296414;
|
||||
break;
|
||||
IL_067b:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-1752048098)) ? (-1968296434) : (-1968296368));
|
||||
break;
|
||||
IL_0460:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_journalProgressWindow);
|
||||
return;
|
||||
IL_03ff:
|
||||
PrintHelp(showAll: false);
|
||||
return;
|
||||
IL_064e:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(1436321725)) ? (-1968296396) : (-1968296387));
|
||||
break;
|
||||
IL_0376:
|
||||
num = -1968296395;
|
||||
break;
|
||||
IL_01f7:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_seasonalDutySelectionWindow);
|
||||
return;
|
||||
IL_04c5:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-1573932804)) ? (-1968296440) : (-1968296404));
|
||||
break;
|
||||
IL_0313:
|
||||
c = _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(text, 0);
|
||||
num = ((c == 'c') ? (-1968296398) : (-1968296423));
|
||||
break;
|
||||
IL_06cc:
|
||||
_206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E((LWindow)_questWindow);
|
||||
return;
|
||||
IL_0579:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-1367448256)) ? (-1968296436) : (-1968296441));
|
||||
break;
|
||||
IL_04f2:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(979277832)) ? (-1968296442) : (-1968296389));
|
||||
break;
|
||||
IL_0275:
|
||||
num = (_202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(text, 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>(-223898377)) ? (-1968296391) : (-1968296393));
|
||||
break;
|
||||
IL_021b:
|
||||
_200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(_chatGui, _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(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>(66928123), array[0]), 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>(85756196), (ushort?)(ushort)576);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ProcessDebugCommand(string command, string arguments)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void PrintHelp(bool showAll)
|
||||
{
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(759427951), 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>(85756196), (ushort?)(ushort)576);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(2028773556), 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>(85756196), (ushort?)(ushort)576);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(1094157375), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(944582271), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-86108937), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(369755883), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-1199190363), 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>(85756196), (ushort?)(ushort)576);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-2087796218), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-1446934470), 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>(85756196), (ushort?)(ushort)576);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(1296112140), 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);
|
||||
int num = ((!showAll) ? (-1200394903) : (-1200394902));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1200394901;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -1200394902;
|
||||
break;
|
||||
case 3:
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(1602086836), 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>(85756196), (ushort?)(ushort)576);
|
||||
num = -1200394897;
|
||||
break;
|
||||
case 2:
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(1967115278), 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);
|
||||
num = ((!showAll) ? (-1200394897) : (-1200394904));
|
||||
break;
|
||||
case 1:
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-2039593709), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(-365682793), 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);
|
||||
_206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(_chatGui, 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>(29170112), 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);
|
||||
num = -1200394903;
|
||||
break;
|
||||
case 4:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private bool OpenSetupIfNeeded(string arguments)
|
||||
{
|
||||
if (!_configuration.IsPluginSetupComplete())
|
||||
int num = (_configuration.IsPluginSetupComplete() ? 6725766 : 6725767);
|
||||
while (true)
|
||||
{
|
||||
if (string.IsNullOrEmpty(arguments))
|
||||
int num2 = num;
|
||||
int num3 = 6725766;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
_oneTimeSetupWindow.IsOpenAndUncollapsed = true;
|
||||
case 5:
|
||||
num = 6725767;
|
||||
break;
|
||||
case 0:
|
||||
return false;
|
||||
case 4:
|
||||
_200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E((LWindow)_oneTimeSetupWindow, true);
|
||||
num = 6725764;
|
||||
break;
|
||||
case 1:
|
||||
num = ((!_200C_202B_200F_206D_200D_200C_206E_202D_200F_202D_206E_200B_200C_202B_200B_202D_206C_206E_202D_206E_200F_200B_206C_202A_202D_202D_202A_206E_202C_200F_206F_200D_206F_200D_206E_206E_200C_200B_206E_206E_202E(arguments)) ? 6725765 : 6725762);
|
||||
break;
|
||||
case 3:
|
||||
_200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(_chatGui, 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>(2108279054), 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>(-1179749275), (ushort?)(ushort)576);
|
||||
num = 6725764;
|
||||
break;
|
||||
case 2:
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_chatGui.PrintError("Please complete the one-time setup first.", "Questionable", 576);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void OnLogout(int type, int code)
|
||||
{
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Dispose()
|
||||
{
|
||||
_commandManager.RemoveHandler("/qst");
|
||||
_clientState.Logout -= OnLogout;
|
||||
_206D_206C_200F_200C_206B_200D_200B_202D_200F_200B_202E_206D_200B_202D_206A_200B_206E_206A_206D_200B_200E_202D_206D_206B_206E_206D_206A_200F_206F_200E_200E_200E_200C_206F_200E_202B_206A_200F_202A_202E_202E(_commandManager, 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>(2086100270));
|
||||
_206A_200E_202D_200C_200C_206F_206E_200F_206C_202D_206C_200B_206B_206D_206D_200C_200D_206F_202C_202C_206E_206D_206E_202D_206C_206C_206B_206F_202D_202A_202A_200F_200B_202B_200E_200D_202B_206E_202B_200E_202E(_clientState, (IClientState.LogoutDelegate)OnLogout);
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static void _206F_202A_200D_206C_202E_206D_206D_200F_206B_202A_200D_202D_206F_206D_200E_206F_202A_200C_200E_200F_202B_200E_206F_206A_200F_200D_200D_202D_206B_206F_200D_202D_206C_202C_200E_200B_206B_200E_202C_200D_202E(IClientState P_0, IClientState.LogoutDelegate P_1)
|
||||
{
|
||||
P_0.Logout += P_1;
|
||||
}
|
||||
|
||||
static CommandInfo _206E_200B_200D_200C_206A_202B_202E_206D_202C_200E_202D_206E_206B_206D_202B_206C_200E_200E_206D_200E_202D_206F_206A_200D_200F_200C_206B_206E_206A_202B_200B_206D_200D_206C_206E_206D_202E_206D_200B_206C_202E(IReadOnlyCommandInfo.HandlerDelegate P_0)
|
||||
{
|
||||
return new CommandInfo(P_0);
|
||||
}
|
||||
|
||||
static string _202D_206E_200B_200B_206B_202E_202D_206B_200F_202A_202A_202D_206C_206C_202E_202C_202B_202B_200F_200F_202A_206E_200C_202B_206D_202D_206D_200C_200C_206E_200B_206B_202D_202C_206F_206C_200C_200E_206C_202D_202E()
|
||||
{
|
||||
return Environment.NewLine;
|
||||
}
|
||||
|
||||
static string _200C_206C_200E_206E_202A_200D_202E_206C_200C_206B_202E_202A_206E_200F_206E_200E_202C_202C_200B_206B_202E_202A_202C_200F_200E_200C_206C_202D_206F_200B_202C_206F_206E_206B_200F_200C_202E_206F_206C_206F_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 + P_1;
|
||||
}
|
||||
|
||||
static string _206C_200F_206B_206C_200D_202A_202E_206C_200F_206E_206F_202C_206F_202B_206B_200E_200C_206A_202C_200F_206C_206D_200D_200E_202C_202E_206B_202C_200F_200B_206B_206B_206F_200F_202A_206E_200C_200D_206D_200F_202E(string P_0, ReadOnlySpan<string> P_1)
|
||||
{
|
||||
return string.Join(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _202C_206D_202E_200C_206E_206C_200E_206D_206E_206F_206A_200F_206C_200E_206B_202A_202C_206D_200D_206E_200B_202B_206B_206B_206D_200F_206E_200F_206D_202D_200D_200E_202B_206A_206E_206F_206C_206F_206A_206F_202E(CommandInfo P_0, string P_1)
|
||||
{
|
||||
P_0.HelpMessage = P_1;
|
||||
}
|
||||
|
||||
static bool _202E_200E_200C_202D_206B_200F_206B_206D_206E_202B_200D_202B_202E_202D_200C_206C_206F_202A_200B_200D_206F_206B_206A_202B_206F_206E_202D_202E_206B_200D_206D_206C_202D_206B_202E_206B_202E_202B_206B_200E_202E(ICommandManager P_0, string P_1, CommandInfo P_2)
|
||||
{
|
||||
return P_0.AddHandler(P_1, P_2);
|
||||
}
|
||||
|
||||
static string _200E_202E_200B_202C_206D_200F_206F_200C_200D_200E_202C_200D_206F_200B_200D_206E_206F_200C_202B_202D_206E_206B_200D_206B_206C_200B_206C_200D_206A_200E_202A_200C_202B_206E_200E_200B_202A_200B_202B_206B_202E(string P_0)
|
||||
{
|
||||
return P_0.Trim();
|
||||
}
|
||||
|
||||
static bool _202D_206B_200B_206E_200B_206A_200D_200D_200B_200C_206B_206A_206B_202E_200E_200B_206A_202E_200C_202C_202E_202E_200B_206A_200C_200B_206C_202C_200F_206F_202B_200C_200E_202E_200D_202C_202E_200F_202C_206F_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
}
|
||||
|
||||
static void _200B_202B_200E_206A_206D_202A_200D_200E_206B_200D_206D_200D_202A_206A_200C_200D_206E_200B_200F_200E_206E_202B_200B_202B_206C_206E_202B_202C_206A_200F_206F_206B_206A_206D_200C_206F_206A_200C_202E_206F_202E(LWindow P_0, bool P_1)
|
||||
{
|
||||
P_0.IsOpenAndUncollapsed = P_1;
|
||||
}
|
||||
|
||||
static string[] _206D_200E_200D_200B_200C_206D_206E_200E_200B_202D_200C_202A_202C_200D_200E_206B_200B_200B_202D_200C_202E_200B_206E_206B_202C_200E_206D_206D_206C_206F_200C_206A_202E_200E_206A_202E_202A_206C_206B_206F_202E(string P_0, char P_1, StringSplitOptions P_2)
|
||||
{
|
||||
return P_0.Split(P_1, P_2);
|
||||
}
|
||||
|
||||
static int _206D_200C_206B_206B_206B_206C_200B_200C_202B_200C_200F_206C_206B_200B_206F_202D_202E_206A_200F_200E_200C_200E_200B_206C_206D_206C_206A_206B_202C_206E_206F_202D_206C_200C_206B_202B_202B_202A_200B_200E_202E(string P_0)
|
||||
{
|
||||
return P_0.Length;
|
||||
}
|
||||
|
||||
static char _200B_206F_202D_202A_200E_202E_206C_200F_202E_202D_202B_200F_202C_202D_202B_200F_202C_200E_200B_202D_202B_200D_202C_202D_202C_206A_206F_200E_200F_200F_202C_200E_206A_202E_206F_202A_200B_202A_206E_206A_202E(string P_0, int P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
|
||||
static void _206D_206D_200F_206F_206B_202C_200C_202A_206F_202E_206A_200D_202A_206C_206E_202C_206F_200F_200E_206D_202C_200E_200E_202C_206C_200E_200E_200B_206D_202E_206C_206C_206E_200D_200D_200B_200D_202D_200E_206E_202E(LWindow P_0)
|
||||
{
|
||||
P_0.ToggleOrUncollapse();
|
||||
}
|
||||
|
||||
static IGameObject _200E_200F_206B_202B_200D_206F_202B_206E_202D_202A_206A_200C_202C_202A_200B_202A_206C_206F_200F_202E_200F_200C_202E_206D_206A_202A_200B_202B_200C_206A_206C_206B_206F_202E_202D_206B_200D_202D_202E_202D_202E(ITargetManager P_0)
|
||||
{
|
||||
return P_0.Target;
|
||||
}
|
||||
|
||||
static void _200C_206E_202E_206F_206D_206F_200E_206A_206B_206E_206D_202D_206B_206E_206D_200C_206E_206F_206C_206A_202A_200E_202D_206F_202A_200D_202B_206F_200C_202E_206A_200C_200D_206D_200F_202C_206C_206E_206C_206F_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
|
||||
{
|
||||
P_0.PrintError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _206D_206B_200C_200E_200B_206E_200C_202D_206D_202B_206E_206A_202E_200B_202A_206D_206F_202A_202D_202D_202E_202A_202D_206E_202D_206C_200F_202A_200D_200D_202B_206B_202B_202E_200C_206E_206C_200E_202A_206C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
|
||||
{
|
||||
P_0.Print(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static bool _200C_202B_200F_206D_200D_200C_206E_202D_200F_202D_206E_200B_200C_202B_200B_202D_206C_206E_202D_206E_200F_200B_206C_202A_202D_202D_202A_206E_202C_200F_206F_200D_206F_200D_206E_206E_200C_200B_206E_206E_202E(string P_0)
|
||||
{
|
||||
return string.IsNullOrEmpty(P_0);
|
||||
}
|
||||
|
||||
static bool _206D_206C_200F_200C_206B_200D_200B_202D_200F_200B_202E_206D_200B_202D_206A_200B_206E_206A_206D_200B_200E_202D_206D_206B_206E_206D_206A_200F_206F_200E_200E_200E_200C_206F_200E_202B_206A_200F_202A_202E_202E(ICommandManager P_0, string P_1)
|
||||
{
|
||||
return P_0.RemoveHandler(P_1);
|
||||
}
|
||||
|
||||
static void _206A_200E_202D_200C_200C_206F_206E_200F_206C_202D_206C_200B_206B_206D_206D_200C_200D_206F_202C_202C_206E_206D_206E_202D_206C_206C_206B_206F_202D_202A_202A_200F_200B_202B_200E_200D_202B_206E_202B_200E_202E(IClientState P_0, IClientState.LogoutDelegate P_1)
|
||||
{
|
||||
P_0.Logout -= P_1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Game.Gui.ContextMenu;
|
||||
using Dalamud.Game.Text;
|
||||
using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||
using LLib.GameData;
|
||||
using LLib.GameUI;
|
||||
using LLib.Shop;
|
||||
using Lumina.Excel;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Data;
|
||||
using Questionable.Functions;
|
||||
using Questionable.GameStructs;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Gathering;
|
||||
using Questionable.Model.Questing;
|
||||
|
|
@ -22,6 +28,39 @@ namespace Questionable.Controller;
|
|||
|
||||
internal sealed class ContextMenuController : IDisposable
|
||||
{
|
||||
[Serializable]
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec
|
||||
{
|
||||
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
|
||||
|
||||
public static Func<IQuestInfo, bool> _003C_003E9__16_0;
|
||||
|
||||
public static Func<QuestStep, bool> _003C_003E9__16_1;
|
||||
|
||||
public static Func<QuestStep, bool> _003C_003E9__16_2;
|
||||
|
||||
internal bool _003CStartGathering_003Eb__16_0(IQuestInfo x)
|
||||
{
|
||||
return x is SatisfactionSupplyInfo;
|
||||
}
|
||||
|
||||
internal bool _003CStartGathering_003Eb__16_1(QuestStep x)
|
||||
{
|
||||
return _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.SwitchClass;
|
||||
}
|
||||
|
||||
internal bool _003CStartGathering_003Eb__16_2(QuestStep x)
|
||||
{
|
||||
return _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.Gather;
|
||||
}
|
||||
|
||||
static EInteractionType _200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(QuestStep P_0)
|
||||
{
|
||||
return P_0.InteractionType;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly IContextMenu _contextMenu;
|
||||
|
||||
private readonly QuestController _questController;
|
||||
|
|
@ -42,13 +81,11 @@ internal sealed class ContextMenuController : IDisposable
|
|||
|
||||
private readonly IChatGui _chatGui;
|
||||
|
||||
private readonly IClientState _clientState;
|
||||
|
||||
private readonly IObjectTable _objectTable;
|
||||
|
||||
private readonly ILogger<ContextMenuController> _logger;
|
||||
|
||||
public ContextMenuController(IContextMenu contextMenu, QuestController questController, GatheringPointRegistry gatheringPointRegistry, GatheringData gatheringData, QuestRegistry questRegistry, QuestData questData, GameFunctions gameFunctions, QuestFunctions questFunctions, IGameGui gameGui, IChatGui chatGui, IClientState clientState, IObjectTable objectTable, ILogger<ContextMenuController> logger)
|
||||
public ContextMenuController(IContextMenu contextMenu, QuestController questController, GatheringPointRegistry gatheringPointRegistry, GatheringData gatheringData, QuestRegistry questRegistry, QuestData questData, GameFunctions gameFunctions, QuestFunctions questFunctions, IGameGui gameGui, IChatGui chatGui, IObjectTable objectTable, ILogger<ContextMenuController> logger)
|
||||
{
|
||||
_contextMenu = contextMenu;
|
||||
_questController = questController;
|
||||
|
|
@ -60,164 +97,508 @@ internal sealed class ContextMenuController : IDisposable
|
|||
_questFunctions = questFunctions;
|
||||
_gameGui = gameGui;
|
||||
_chatGui = chatGui;
|
||||
_clientState = clientState;
|
||||
_objectTable = objectTable;
|
||||
_logger = logger;
|
||||
_contextMenu.OnMenuOpened += MenuOpened;
|
||||
_200F_206F_200F_206C_202E_200D_206B_206E_200B_206A_202A_206E_202C_200F_200B_206D_200C_206E_206F_202B_202E_202C_200C_206A_200C_206E_202D_200C_200F_200E_202A_202C_206E_206A_200B_206C_206F_202D_200D_202A_202E(_contextMenu, (IContextMenu.OnMenuOpenedDelegate)MenuOpened);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void MenuOpened(IMenuOpenedArgs args)
|
||||
{
|
||||
if (args.AddonName != null)
|
||||
int num = ((_206F_200E_206E_206C_206D_206E_206C_202B_202C_206C_200D_202D_200D_202C_206D_206F_200C_202C_200D_202E_200E_202C_206A_200E_202D_202B_202B_202D_200D_206F_206B_206A_202A_200E_202B_206D_206E_206D_206B_206B_202E((IMenuArgs)args) == null) ? (-1062811854) : (-1062811842));
|
||||
uint num6 = default(uint);
|
||||
uint npcId = default(uint);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
uint num = GetHoveredSatisfactionSupplyItemId();
|
||||
if (num == 0)
|
||||
{
|
||||
_logger.LogTrace("Ignoring context menu, no item hovered");
|
||||
return;
|
||||
}
|
||||
if (num > 1000000)
|
||||
{
|
||||
num -= 1000000;
|
||||
}
|
||||
if (num >= 500000)
|
||||
{
|
||||
num -= 500000;
|
||||
}
|
||||
if (_gatheringData.TryGetCustomDeliveryNpc(num, out var npcId))
|
||||
{
|
||||
AddContextMenuEntry(args, num, npcId, EClassJob.Miner, "Mine");
|
||||
AddContextMenuEntry(args, num, npcId, EClassJob.Botanist, "Harvest");
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogDebug("No custom delivery NPC found for item {ItemId}.", num);
|
||||
int num2 = num;
|
||||
int num3 = -1062811852;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
AddContextMenuEntry(args, num6, npcId, EClassJob.Miner, 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>(-1250223418));
|
||||
AddContextMenuEntry(args, num6, npcId, EClassJob.Botanist, 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>(-1145016567));
|
||||
return;
|
||||
case 9:
|
||||
_206F_200F_202B_206E_200F_200B_202E_202C_200D_202A_206B_206C_202D_202C_202C_200D_206D_202A_200F_200D_202E_206B_202D_200B_202E_202A_202E_202C_206A_200E_202D_206B_206D_200C_206E_206D_200C_200D_206E_200F_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>(-1140543498), Array.Empty<object>());
|
||||
return;
|
||||
case 3:
|
||||
num = ((!_gatheringData.TryGetCustomDeliveryNpc(num6, out npcId)) ? (-1062811856) : (-1062811852));
|
||||
break;
|
||||
case 7:
|
||||
{
|
||||
uint num7 = num6;
|
||||
num3 = 500000;
|
||||
num4 = (int)num7;
|
||||
num6 = (uint)(~(~num4 + num3));
|
||||
num = -1062811849;
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
num = ((num6 < 500000) ? (-1062811849) : (-1062811853));
|
||||
break;
|
||||
case 6:
|
||||
num6 = GetHoveredSatisfactionSupplyItemId();
|
||||
num = ((num6 != 0) ? (-1062811851) : (-1062811843));
|
||||
break;
|
||||
case 1:
|
||||
num = ((num6 <= 1000000) ? (-1062811855) : (-1062811844));
|
||||
break;
|
||||
case 10:
|
||||
return;
|
||||
case 4:
|
||||
_206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_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>(-965966202), new object[1] { num6 });
|
||||
return;
|
||||
case 8:
|
||||
{
|
||||
uint num5 = num6;
|
||||
num3 = 1000000;
|
||||
num4 = (int)num5;
|
||||
num6 = (uint)(~(~num4 + num3));
|
||||
num = -1062811855;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = -1062811842;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe uint GetHoveredSatisfactionSupplyItemId()
|
||||
{
|
||||
AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance();
|
||||
if (ptr == null || !ptr->IsAgentActive())
|
||||
int num = ((ptr == null) ? (-247318127) : (-247318126));
|
||||
int hoveredElementIndex = default(int);
|
||||
AddonSatisfactionSupply* addonPtr = default(AddonSatisfactionSupply*);
|
||||
while (true)
|
||||
{
|
||||
return 0u;
|
||||
}
|
||||
if (_gameGui.TryGetAddonByName<AddonSatisfactionSupply>("SatisfactionSupply", out var addonPtr) && LAddon.IsAddonReady(&addonPtr->AtkUnitBase))
|
||||
{
|
||||
int hoveredElementIndex = addonPtr->HoveredElementIndex;
|
||||
if (hoveredElementIndex >= 0 && hoveredElementIndex <= 2)
|
||||
int num2 = num;
|
||||
int num3 = -247318122;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
hoveredElementIndex = addonPtr->HoveredElementIndex;
|
||||
num = ((hoveredElementIndex < 0) ? (-247318114) : (-247318125));
|
||||
break;
|
||||
case 4:
|
||||
num = (ptr->IsAgentActive() ? (-247318121) : (-247318127));
|
||||
break;
|
||||
case 7:
|
||||
return 0u;
|
||||
case 8:
|
||||
return 0u;
|
||||
case 2:
|
||||
num = -247318126;
|
||||
break;
|
||||
case 6:
|
||||
return ptr->Items[addonPtr->HoveredElementIndex].Id;
|
||||
case 3:
|
||||
num = ((!_200F_206B_200B_202D_200D_206B_202A_200F_202A_200D_202B_202C_202B_206D_202D_202C_202C_202A_200F_200E_200C_202D_200D_202D_206E_202A_200D_200C_206F_200F_206A_200E_202A_206D_206B_200B_202E_206C_200C_202D_202E(&addonPtr->AtkUnitBase)) ? (-247318114) : (-247318122));
|
||||
break;
|
||||
case 1:
|
||||
num = ((!_gameGui.TryGetAddonByName<AddonSatisfactionSupply>(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>(1921233017), out addonPtr)) ? (-247318114) : (-247318123));
|
||||
break;
|
||||
case 5:
|
||||
num = ((hoveredElementIndex > 2) ? (-247318114) : (-247318128));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0u;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe void AddContextMenuEntry(IMenuOpenedArgs args, uint itemId, uint npcId, EClassJob classJob, string verb)
|
||||
{
|
||||
if (!(_objectTable[0] is ICharacter { ClassJob: var classJob2 }))
|
||||
ICharacter character = _200F_206F_202D_200D_202D_202C_206E_200B_206A_206F_202A_206C_202E_206F_202C_200C_202A_200E_200D_200C_206C_202B_202B_200E_202C_202C_206B_206D_202E_206E_206D_202B_200C_200C_206F_206D_202A_200B_200B_206C_202E(_objectTable);
|
||||
int num = ((character != null) ? (-1338961886) : (-1338961880));
|
||||
bool flag2 = default(bool);
|
||||
AgentSatisfactionSupply* ptr = default(AgentSatisfactionSupply*);
|
||||
SatisfactionSupplyActions.NpcState npcState = default(SatisfactionSupplyActions.NpcState);
|
||||
string text2 = default(string);
|
||||
int quantityToGather = default(int);
|
||||
string text = default(string);
|
||||
ushort collectability = default(ushort);
|
||||
bool flag = default(bool);
|
||||
EClassJob rowId = default(EClassJob);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
EClassJob rowId = (EClassJob)classJob2.RowId;
|
||||
bool flag = classJob != rowId;
|
||||
if (flag)
|
||||
{
|
||||
bool flag2 = rowId - 16 <= EClassJob.Gladiator;
|
||||
flag = flag2;
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!_gatheringPointRegistry.TryGetGatheringPointId(itemId, classJob, out GatheringPointId _))
|
||||
{
|
||||
_logger.LogInformation("No gathering point found for {ClassJob}.", classJob);
|
||||
return;
|
||||
}
|
||||
ushort collectability = _gatheringData.GetRecommendedCollectability(itemId);
|
||||
int quantityToGather = ((collectability > 0) ? 6 : int.MaxValue);
|
||||
if (collectability != 0)
|
||||
{
|
||||
AgentSatisfactionSupply* ptr = AgentSatisfactionSupply.Instance();
|
||||
if (ptr->IsAgentActive())
|
||||
int num2 = num;
|
||||
int num3 = -1338961879;
|
||||
int num4 = num2;
|
||||
int num5;
|
||||
int num6;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
int maxTurnIns = ((ptr->NpcInfo.SatisfactionRank == 1) ? 3 : 6);
|
||||
quantityToGather = Math.Min(ptr->NpcData.RemainingAllowances, ((AgentSatisfactionSupply2*)ptr)->CalculateTurnInsToNextRank(maxTurnIns));
|
||||
case 16:
|
||||
flag2 = true;
|
||||
num = -1338961860;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
uint id = ptr->NpcInfo.Id;
|
||||
num3 = 1;
|
||||
num4 = (int)id;
|
||||
npcState = _200F_206E_206E_206C_206B_202B_202A_206F_200F_206C_206A_200C_206E_206E_206E_202B_206B_206D_200C_206A_200F_206E_206F_200D_206F_200F_202E_202C_202E_202A_202C_200E_202C_200C_200E_206C_206A_202B_202D_206B_202E(~(~num4 + num3));
|
||||
num = ((ptr->NpcInfo.SatisfactionRank == 1) ? (-1338961874) : (-1338961864));
|
||||
break;
|
||||
}
|
||||
string text = string.Empty;
|
||||
if (!_questFunctions.IsClassJobUnlocked(classJob))
|
||||
case 20:
|
||||
num = ((!_gameFunctions.IsOccupied()) ? (-1338961877) : (-1338961862));
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
text = $"{classJob} not unlocked";
|
||||
num = (_gatheringPointRegistry.TryGetGatheringPointId(itemId, classJob, out GatheringPointId _) ? (-1338961882) : (-1338961875));
|
||||
break;
|
||||
}
|
||||
else if (quantityToGather == 0)
|
||||
case 12:
|
||||
text2 = string.Empty;
|
||||
num = (_questFunctions.IsClassJobUnlocked(classJob) ? (-1338961873) : (-1338961861));
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
case 6:
|
||||
num = ((quantityToGather != 0) ? (-1338961884) : (-1338961881));
|
||||
break;
|
||||
case 25:
|
||||
return;
|
||||
case 19:
|
||||
text2 = 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>(-631894183);
|
||||
num = -1338961877;
|
||||
break;
|
||||
case 5:
|
||||
flag2 = false;
|
||||
num = -1338961860;
|
||||
break;
|
||||
case 23:
|
||||
return;
|
||||
case 2:
|
||||
text = _202B_206C_206F_202D_202C_206C_206C_206C_200E_206B_202C_206A_200F_206A_206F_200C_200C_200E_206E_202E_200B_200F_206F_206D_206C_206D_206E_200E_202A_206A_202D_202B_206F_200F_206D_200E_202A_200B_200C_200E_202E(verb, 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>(-608478114));
|
||||
num = (_200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(text2) ? (-1338961888) : (-1338961885));
|
||||
break;
|
||||
case 9:
|
||||
{
|
||||
text = "No allowances";
|
||||
}
|
||||
else if (quantityToGather > _gameFunctions.GetFreeInventorySlots())
|
||||
{
|
||||
text = "Inventory full";
|
||||
}
|
||||
else if (_gameFunctions.IsOccupied())
|
||||
{
|
||||
text = "Can't be used while interacting";
|
||||
}
|
||||
string text2 = verb + " with Questionable";
|
||||
if (!string.IsNullOrEmpty(text))
|
||||
{
|
||||
text2 = text2 + " (" + text + ")";
|
||||
}
|
||||
args.AddMenuItem(new MenuItem
|
||||
{
|
||||
Prefix = SeIconChar.Hyadelyn,
|
||||
PrefixColor = 52,
|
||||
Name = text2,
|
||||
OnClicked = delegate
|
||||
MenuItem menuItem = _206C_200F_200F_202C_202B_206F_206B_202A_202A_206D_202E_206E_206E_200C_200F_206E_200E_206A_202D_202A_206E_206A_202C_206E_202C_200E_202A_206A_200B_200B_202E_200F_202C_200D_202C_206E_200C_202B_206F_206C_202E();
|
||||
_200F_202B_206E_202E_200E_202E_206B_202A_206D_202C_206B_202C_206C_202B_202A_206A_202A_200C_202B_200B_200F_206D_202B_200D_200E_202D_200E_206B_202C_200B_206C_200F_206D_200E_202E_200C_200E_202B_200F_202C_202E(menuItem, (SeIconChar?)SeIconChar.Hyadelyn);
|
||||
_202A_206C_200E_206B_206C_206C_206E_200C_200E_202C_202E_200C_200F_206D_202E_200C_202E_206C_202A_202E_200F_206B_206A_202D_206B_200F_200D_200C_200D_200D_206E_200C_200C_200E_200C_206B_200D_202C_202E(menuItem, (ushort)52);
|
||||
_200E_206C_206D_202C_206A_200D_206A_202C_202D_202C_202E_200E_200C_200B_202A_202C_200C_206B_206E_206B_200F_200B_206A_206C_206F_206E_206F_200B_202C_200B_200C_200B_206F_206E_200B_200D_206B_206C_202A_200E_202E(menuItem, _202D_206A_202C_206F_202B_202B_206B_206B_206F_202A_202E_206C_202A_202B_206D_200F_206D_206E_206F_202B_200D_202D_202D_206F_200D_200F_202E_206B_202D_200E_200D_206F_206B_202C_200B_200D_206C_206F_206B_202C_202E(text));
|
||||
_202C_206D_200F_202E_200F_200B_206A_200F_202B_206A_202B_206C_206E_202A_206E_202D_206D_200F_202B_206E_206B_206E_200D_200C_200E_200C_200D_200F_200E_206F_202D_206F_206D_206A_206D_206F_200D_202D_202D_202C_202E(menuItem, (Action<IMenuItemClickedArgs>)delegate
|
||||
{
|
||||
StartGathering(npcId, itemId, quantityToGather, collectability, classJob);
|
||||
},
|
||||
IsEnabled = string.IsNullOrEmpty(text)
|
||||
});
|
||||
});
|
||||
_206E_202A_202E_200F_202D_200D_202B_202D_206C_202B_200E_202B_206D_202B_202E_202C_200E_202D_200D_200C_202E_200D_202D_202C_200E_202A_206D_200C_202C_206C_206B_202C_200B_202A_202C_200C_200C_206B_206E_206A_202E(menuItem, _200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(text2));
|
||||
_200E_202A_200E_200B_202C_200E_206E_200C_206B_206E_202B_202E_206C_200D_200B_200D_202B_206F_200C_202D_202A_200D_200E_206E_206B_206C_202A_206A_202B_202B_206D_206D_206A_206E_206A_202D_202C_202E_200C_206E_202E(args, menuItem);
|
||||
return;
|
||||
}
|
||||
case 7:
|
||||
num5 = 3;
|
||||
goto IL_0299;
|
||||
case 15:
|
||||
collectability = _gatheringData.GetRecommendedCollectability(itemId);
|
||||
num = ((collectability != 0) ? (-1338961870) : (-1338961858));
|
||||
break;
|
||||
case 4:
|
||||
_206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_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>(956356199), new object[1] { classJob });
|
||||
return;
|
||||
case 14:
|
||||
text2 = 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>(782238798);
|
||||
num = -1338961877;
|
||||
break;
|
||||
case 18:
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(13, 1);
|
||||
defaultInterpolatedStringHandler.AppendFormatted(classJob);
|
||||
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>(162231008));
|
||||
text2 = defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
num = -1338961877;
|
||||
break;
|
||||
}
|
||||
case 24:
|
||||
text2 = 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>(-1616176717);
|
||||
num = -1338961877;
|
||||
break;
|
||||
case 8:
|
||||
num = ((!flag) ? (-1338961879) : (-1338961872));
|
||||
break;
|
||||
case 17:
|
||||
num5 = 6;
|
||||
goto IL_0299;
|
||||
case 10:
|
||||
text = _206E_200F_206C_202A_206A_206D_200B_202D_200F_202E_206C_206E_200B_200E_202A_206D_200C_206D_202A_206F_202C_202D_202C_200E_200B_202B_202A_200E_202D_206A_202D_202A_200D_202E_202C_202A_200F_200D_206B_206C_202E(text, 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>(-1495931675), text2, 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>(1735737295));
|
||||
num = -1338961888;
|
||||
break;
|
||||
case 27:
|
||||
quantityToGather = 6;
|
||||
ptr = AgentSatisfactionSupply.Instance();
|
||||
num = ((!ptr->IsAgentActive()) ? (-1338961883) : (-1338961878));
|
||||
break;
|
||||
case 26:
|
||||
num = -1338961880;
|
||||
break;
|
||||
case 21:
|
||||
flag = flag2;
|
||||
num = -1338961887;
|
||||
break;
|
||||
case 22:
|
||||
num = ((rowId - 16 > EClassJob.Gladiator) ? (-1338961876) : (-1338961863));
|
||||
break;
|
||||
case 11:
|
||||
rowId = (EClassJob)_200B_206E_202D_206D_200F_200C_200D_206B_202D_200F_202B_206A_206F_200F_200E_202B_200E_206D_202C_202E_206C_206F_200B_200E_200E_206D_200F_202C_200E_206D_206D_202E_202C_200F_200E_206C_200F_202A_202D_206C_202E(character).RowId;
|
||||
flag = classJob != rowId;
|
||||
num = ((!flag) ? (-1338961887) : (-1338961857));
|
||||
break;
|
||||
case 13:
|
||||
{
|
||||
num = ((quantityToGather <= _gameFunctions.GetFreeInventorySlots()) ? (-1338961859) : (-1338961871));
|
||||
break;
|
||||
}
|
||||
IL_0299:
|
||||
num6 = num5;
|
||||
quantityToGather = _206E_202E_206A_206F_200F_206B_206E_206F_202A_200C_200B_206A_200C_206D_206E_200E_200E_206A_200B_200D_202C_202E_200E_202C_206E_206E_202A_206B_206A_206B_200F_206B_206B_206A_202B_202D_206F_206E_206C_206C_202E((int)ptr->NpcData.RemainingAllowances, _200B_206A_202A_202D_202C_206C_202D_202C_206D_202E_200F_206C_202D_206F_202A_206C_206D_206E_202E_200D_202C_202D_206F_206E_200C_200F_202C_206F_206A_200F_206A_206D_206C_200B_202D_206A_200F_202D_200E_200F_202E((ushort)npcState.SatisfactionCurrent, (ushort)npcState.SatisfactionMax, num6));
|
||||
num = -1338961883;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void StartGathering(uint npcId, uint itemId, int quantity, ushort collectability, EClassJob classJob)
|
||||
{
|
||||
SatisfactionSupplyInfo satisfactionSupplyInfo = (SatisfactionSupplyInfo)_questData.GetAllByIssuerDataId(npcId).Single((IQuestInfo x) => x is SatisfactionSupplyInfo);
|
||||
if (_questRegistry.TryGetQuest(satisfactionSupplyInfo.QuestId, out Quest quest))
|
||||
Questionable.Model.Quest quest;
|
||||
int num = ((!_questRegistry.TryGetQuest(satisfactionSupplyInfo.QuestId, out quest)) ? (-1785451051) : (-1785451044));
|
||||
EExtendedClassJob eExtendedClassJob = default(EExtendedClassJob);
|
||||
QuestStep questStep = default(QuestStep);
|
||||
QuestSequence questSequence = default(QuestSequence);
|
||||
while (true)
|
||||
{
|
||||
QuestSequence questSequence = quest.FindSequence(0);
|
||||
QuestStep questStep = questSequence.Steps.Single((QuestStep x) => x.InteractionType == EInteractionType.SwitchClass);
|
||||
questStep.TargetClass = classJob switch
|
||||
int num2 = num;
|
||||
int num3 = -1785451052;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
EClassJob.Miner => EExtendedClassJob.Miner,
|
||||
EClassJob.Botanist => EExtendedClassJob.Botanist,
|
||||
_ => throw new ArgumentOutOfRangeException("classJob", classJob, null),
|
||||
};
|
||||
QuestStep questStep2 = questSequence.Steps.Single((QuestStep x) => x.InteractionType == EInteractionType.Gather);
|
||||
int num = 1;
|
||||
List<GatheredItem> list = new List<GatheredItem>(num);
|
||||
CollectionsMarshal.SetCount(list, num);
|
||||
CollectionsMarshal.AsSpan(list)[0] = new GatheredItem
|
||||
case 3:
|
||||
num = -1785451050;
|
||||
break;
|
||||
case 0:
|
||||
eExtendedClassJob = EExtendedClassJob.Miner;
|
||||
num = -1785451056;
|
||||
break;
|
||||
case 5:
|
||||
num = -1785451044;
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
ItemId = itemId,
|
||||
ItemCount = quantity,
|
||||
Collectability = collectability
|
||||
};
|
||||
questStep2.ItemsToGather = list;
|
||||
_questController.SetGatheringQuest(quest);
|
||||
_questController.StartGatheringQuest("SatisfactionSupply prepare gathering");
|
||||
}
|
||||
else
|
||||
{
|
||||
_chatGui.PrintError($"No associated quest ({satisfactionSupplyInfo.QuestId}).", "Questionable");
|
||||
_206E_206F_200D_202A_206B_202D_202A_206C_202E_200D_200B_200C_202D_206E_206E_202A_202B_206C_202B_200D_200C_200D_200B_206D_206D_200B_202C_202A_206E_200D_200D_202A_206D_206E_202A_202E_206E_202A_206A_206F_202E(questStep, eExtendedClassJob);
|
||||
QuestStep questStep2 = _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(questSequence).Single((QuestStep x) => _003C_003Ec._200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.Gather);
|
||||
int num5 = 1;
|
||||
List<GatheredItem> list = new List<GatheredItem>(num5);
|
||||
CollectionsMarshal.SetCount(list, num5);
|
||||
ref GatheredItem reference = ref CollectionsMarshal.AsSpan(list)[0];
|
||||
GatheredItem gatheredItem = _206A_206F_200E_200E_206A_206E_202B_202B_206F_200B_200F_206E_200B_206E_200C_200E_206C_202C_202D_206A_202E_200E_206C_206D_202C_200B_206C_206C_202D_206E_200D_202C_200B_202D_200E_200F_202C_206E_206A_200C_202E();
|
||||
_202D_200F_206F_202A_200F_202E_206C_206B_200F_200C_202C_206C_200D_202E_202D_202A_206A_200B_206F_206F_200B_200B_200E_202E_200E_206C_202A_202D_202A_206B_206A_202D_200E_206A_202C_202C_206D_200B_202B_206A_202E(gatheredItem, itemId);
|
||||
_202C_200B_200D_206C_206A_202C_202A_206D_202C_206F_200B_200D_206F_202E_206E_202E_206D_206B_200F_202A_202A_206F_200C_202A_206E_200B_202D_206C_206A_206C_206C_206E_206F_206D_206E_200F_202D_200D_200C_200E_202E(gatheredItem, quantity);
|
||||
_206A_206C_200E_206B_206D_200D_200B_200F_200F_202C_206F_200E_200C_206F_202B_206D_206B_202C_206F_202D_206F_202A_202B_206B_206C_200C_206C_202A_200E_200C_200F_200C_202C_206D_202C_206B_206B_206B_200F_206B_202E(gatheredItem, collectability);
|
||||
reference = gatheredItem;
|
||||
_206A_200B_202E_202E_206F_202C_206A_206C_206B_202A_200D_202A_206D_202C_202A_202C_202A_202C_202A_206F_202C_202D_200C_206F_200D_206C_202E_206E_206E_200E_200D_206E_206B_200C_206A_202A_200B_200F_202C_206B_202E(questStep2, list);
|
||||
_questController.SetGatheringQuest(quest);
|
||||
_questController.StartGatheringQuest(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>(1798633897));
|
||||
return;
|
||||
}
|
||||
case 8:
|
||||
questSequence = quest.FindSequence(0);
|
||||
questStep = _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(questSequence).Single((QuestStep x) => _003C_003Ec._200D_202A_206C_200F_200E_202D_206F_206E_200D_200E_200F_202B_206A_206C_202B_202E_206C_206B_200F_206E_202D_202D_202E_206F_202D_200B_206F_202B_200F_200C_206A_206C_202C_202E_202C_200C_206B_206C_200C_206A_202E(x) == EInteractionType.SwitchClass);
|
||||
num = ((classJob == EClassJob.Miner) ? (-1785451052) : (-1785451054));
|
||||
break;
|
||||
case 2:
|
||||
throw _206E_206B_202C_206A_200C_200E_202A_206A_200B_206F_202D_200D_200B_200E_200C_200F_206A_200E_200B_200D_202D_202A_200D_200D_202E_206F_206E_202E_202B_202A_202A_202E_206E_206B_206F_206C_202A_200C_200D_202C_202E(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>(688705615), (object)classJob, (string)null);
|
||||
case 6:
|
||||
num = ((classJob == EClassJob.Botanist) ? (-1785451053) : (-1785451049));
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
IChatGui chatGui = _chatGui;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(23, 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>(-1157681140));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(satisfactionSupplyInfo.QuestId);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(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>(126419176));
|
||||
_202C_206D_206D_206D_206E_202C_206A_202A_200E_200C_206E_206F_206F_200F_200E_206A_200D_200F_200C_200D_206E_200B_202C_200C_206D_206C_200C_200F_206E_206F_202D_202D_206E_206A_206F_206E_206E_206F_200B_202C_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);
|
||||
return;
|
||||
}
|
||||
case 7:
|
||||
eExtendedClassJob = EExtendedClassJob.Botanist;
|
||||
num = -1785451056;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_contextMenu.OnMenuOpened -= MenuOpened;
|
||||
_202E_202B_202D_200F_206F_206B_200D_200B_200D_202C_206C_200F_200B_206B_202E_200D_206C_200E_206E_200B_200D_200D_202B_206A_200B_206E_206D_206B_202C_206D_200D_206B_206C_202E_200E_200E_206E_200C_200E_206A_202E(_contextMenu, (IContextMenu.OnMenuOpenedDelegate)MenuOpened);
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static void _200F_206F_200F_206C_202E_200D_206B_206E_200B_206A_202A_206E_202C_200F_200B_206D_200C_206E_206F_202B_202E_202C_200C_206A_200C_206E_202D_200C_200F_200E_202A_202C_206E_206A_200B_206C_206F_202D_200D_202A_202E(IContextMenu P_0, IContextMenu.OnMenuOpenedDelegate P_1)
|
||||
{
|
||||
P_0.OnMenuOpened += P_1;
|
||||
}
|
||||
|
||||
static string _206F_200E_206E_206C_206D_206E_206C_202B_202C_206C_200D_202D_200D_202C_206D_206F_200C_202C_200D_202E_200E_202C_206A_200E_202D_202B_202B_202D_200D_206F_206B_206A_202A_200E_202B_206D_206E_206D_206B_206B_202E(IMenuArgs P_0)
|
||||
{
|
||||
return P_0.AddonName;
|
||||
}
|
||||
|
||||
static void _206F_200F_202B_206E_200F_200B_202E_202C_200D_202A_206B_206C_202D_202C_202C_200D_206D_202A_200F_200D_202E_206B_202D_200B_202E_202A_202E_202C_206A_200E_202D_206B_206D_200C_206E_206D_200C_200D_206E_200F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogTrace(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206C_206A_200B_202B_202B_206D_200C_200B_206F_206B_200B_200B_200B_206D_206B_202A_202D_202C_206E_202C_206C_206D_200C_206D_206D_206D_200D_206E_202C_206F_202D_202E_202A_206B_202A_200C_206D_206C_200D_202C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
unsafe static bool _200F_206B_200B_202D_200D_206B_202A_200F_202A_200D_202B_202C_202B_206D_202D_202C_202C_202A_200F_200E_200C_202D_200D_202D_206E_202A_200D_200C_206F_200F_206A_200E_202A_206D_206B_200B_202E_206C_200C_202D_202E(AtkUnitBase* P_0)
|
||||
{
|
||||
return LAddon.IsAddonReady(P_0);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _200F_206F_202D_200D_202D_202C_206E_200B_206A_206F_202A_206C_202E_206F_202C_200C_202A_200E_200D_200C_206C_202B_202B_200E_202C_202C_206B_206D_202E_206E_206D_202B_200C_200C_206F_206D_202A_200B_200B_206C_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static RowRef<ClassJob> _200B_206E_202D_206D_200F_200C_200D_206B_202D_200F_202B_206A_206F_200F_200E_202B_200E_206D_202C_202E_206C_206F_200B_200E_200E_206D_200F_202C_200E_206D_206D_202E_202C_200F_200E_206C_200F_202A_202D_206C_202E(ICharacter P_0)
|
||||
{
|
||||
return P_0.ClassJob;
|
||||
}
|
||||
|
||||
static SatisfactionSupplyActions.NpcState _200F_206E_206E_206C_206B_202B_202A_206F_200F_206C_206A_200C_206E_206E_206E_202B_206B_206D_200C_206A_200F_206E_206F_200D_206F_200F_202E_202C_202E_202A_202C_200E_202C_200C_200E_206C_206A_202B_202D_206B_202E(int P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.GetNpcState(P_0);
|
||||
}
|
||||
|
||||
static int _200B_206A_202A_202D_202C_206C_202D_202C_206D_202E_200F_206C_202D_206F_202A_206C_206D_206E_202E_200D_202C_202D_206F_206E_200C_200F_202C_206F_206A_200F_206A_206D_206C_200B_202D_206A_200F_202D_200E_200F_202E(ushort P_0, ushort P_1, int P_2)
|
||||
{
|
||||
return SatisfactionSupplyHelper.CalculateTurnInsToNextRank(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static int _206E_202E_206A_206F_200F_206B_206E_206F_202A_200C_200B_206A_200C_206D_206E_200E_200E_206A_200B_200D_202C_202E_200E_202C_206E_206E_202A_206B_206A_206B_200F_206B_206B_206A_202B_202D_206F_206E_206C_206C_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Min(P_0, P_1);
|
||||
}
|
||||
|
||||
static string _202B_206C_206F_202D_202C_206C_206C_206C_200E_206B_202C_206A_200F_206A_206F_200C_200C_200E_206E_202E_200B_200F_206F_206D_206C_206D_206E_200E_202A_206A_202D_202B_206F_200F_206D_200E_202A_200B_200C_200E_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 + P_1;
|
||||
}
|
||||
|
||||
static bool _200D_206D_206D_202B_202D_200E_202D_200D_200B_200D_200D_202C_206C_206F_206B_202C_200D_202C_202C_202B_200C_202B_206E_202E_206E_200C_202A_200B_206C_200F_202E_206D_200C_200E_202C_206A_202B_206E_200B_202E_202E(string P_0)
|
||||
{
|
||||
return string.IsNullOrEmpty(P_0);
|
||||
}
|
||||
|
||||
static string _206E_200F_206C_202A_206A_206D_200B_202D_200F_202E_206C_206E_200B_200E_202A_206D_200C_206D_202A_206F_202C_202D_202C_200E_200B_202B_202A_200E_202D_206A_202D_202A_200D_202E_202C_202A_200F_200D_206B_206C_202E(string P_0, string P_1, string P_2, string P_3)
|
||||
{
|
||||
return P_0 + P_1 + P_2 + P_3;
|
||||
}
|
||||
|
||||
static MenuItem _206C_200F_200F_202C_202B_206F_206B_202A_202A_206D_202E_206E_206E_200C_200F_206E_200E_206A_202D_202A_206E_206A_202C_206E_202C_200E_202A_206A_200B_200B_202E_200F_202C_200D_202C_206E_200C_202B_206F_206C_202E()
|
||||
{
|
||||
return new MenuItem();
|
||||
}
|
||||
|
||||
static void _200F_202B_206E_202E_200E_202E_206B_202A_206D_202C_206B_202C_206C_202B_202A_206A_202A_200C_202B_200B_200F_206D_202B_200D_200E_202D_200E_206B_202C_200B_206C_200F_206D_200E_202E_200C_200E_202B_200F_202C_202E(MenuItem P_0, SeIconChar? P_1)
|
||||
{
|
||||
P_0.Prefix = P_1;
|
||||
}
|
||||
|
||||
static void _202A_206C_200E_206B_206C_206C_206E_200C_200E_202C_202E_200C_200F_206D_202E_200C_202E_206C_202A_202E_200F_206B_206A_202D_206B_200F_200D_200C_200D_200D_206E_200C_200C_200E_200C_206B_200D_202C_202E(MenuItem P_0, ushort P_1)
|
||||
{
|
||||
P_0.PrefixColor = P_1;
|
||||
}
|
||||
|
||||
static SeString _202D_206A_202C_206F_202B_202B_206B_206B_206F_202A_202E_206C_202A_202B_206D_200F_206D_206E_206F_202B_200D_202D_202D_206F_200D_200F_202E_206B_202D_200E_200D_206F_206B_202C_200B_200D_206C_206F_206B_202C_202E(string P_0)
|
||||
{
|
||||
return P_0;
|
||||
}
|
||||
|
||||
static void _200E_206C_206D_202C_206A_200D_206A_202C_202D_202C_202E_200E_200C_200B_202A_202C_200C_206B_206E_206B_200F_200B_206A_206C_206F_206E_206F_200B_202C_200B_200C_200B_206F_206E_200B_200D_206B_206C_202A_200E_202E(MenuItem P_0, SeString P_1)
|
||||
{
|
||||
P_0.Name = P_1;
|
||||
}
|
||||
|
||||
static void _202C_206D_200F_202E_200F_200B_206A_200F_202B_206A_202B_206C_206E_202A_206E_202D_206D_200F_202B_206E_206B_206E_200D_200C_200E_200C_200D_200F_200E_206F_202D_206F_206D_206A_206D_206F_200D_202D_202D_202C_202E(MenuItem P_0, Action<IMenuItemClickedArgs> P_1)
|
||||
{
|
||||
P_0.OnClicked = P_1;
|
||||
}
|
||||
|
||||
static void _206E_202A_202E_200F_202D_200D_202B_202D_206C_202B_200E_202B_206D_202B_202E_202C_200E_202D_200D_200C_202E_200D_202D_202C_200E_202A_206D_200C_202C_206C_206B_202C_200B_202A_202C_200C_200C_206B_206E_206A_202E(MenuItem P_0, bool P_1)
|
||||
{
|
||||
P_0.IsEnabled = P_1;
|
||||
}
|
||||
|
||||
static void _200E_202A_200E_200B_202C_200E_206E_200C_206B_206E_202B_202E_206C_200D_200B_200D_202B_206F_200C_202D_202A_200D_200E_206E_206B_206C_202A_206A_202B_202B_206D_206D_206A_206E_206A_202D_202C_202E_200C_206E_202E(IMenuOpenedArgs P_0, MenuItem P_1)
|
||||
{
|
||||
P_0.AddMenuItem(P_1);
|
||||
}
|
||||
|
||||
static List<QuestStep> _202D_202E_202E_200D_206D_206F_206E_200E_200E_206D_206D_202C_200B_206C_206D_206F_206D_206E_200E_206E_206B_202A_202E_206E_202C_202C_202B_202E_206A_206A_206F_200B_202D_206C_202A_200D_202C_200F_206E_202B_202E(QuestSequence P_0)
|
||||
{
|
||||
return P_0.Steps;
|
||||
}
|
||||
|
||||
static ArgumentOutOfRangeException _206E_206B_202C_206A_200C_200E_202A_206A_200B_206F_202D_200D_200B_200E_200C_200F_206A_200E_200B_200D_202D_202A_200D_200D_202E_206F_206E_202E_202B_202A_202A_202E_206E_206B_206F_206C_202A_200C_200D_202C_202E(string P_0, object P_1, string P_2)
|
||||
{
|
||||
return new ArgumentOutOfRangeException(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206E_206F_200D_202A_206B_202D_202A_206C_202E_200D_200B_200C_202D_206E_206E_202A_202B_206C_202B_200D_200C_200D_200B_206D_206D_200B_202C_202A_206E_200D_200D_202A_206D_206E_202A_202E_206E_202A_206A_206F_202E(QuestStep P_0, EExtendedClassJob P_1)
|
||||
{
|
||||
P_0.TargetClass = P_1;
|
||||
}
|
||||
|
||||
static GatheredItem _206A_206F_200E_200E_206A_206E_202B_202B_206F_200B_200F_206E_200B_206E_200C_200E_206C_202C_202D_206A_202E_200E_206C_206D_202C_200B_206C_206C_202D_206E_200D_202C_200B_202D_200E_200F_202C_206E_206A_200C_202E()
|
||||
{
|
||||
return new GatheredItem();
|
||||
}
|
||||
|
||||
static void _202D_200F_206F_202A_200F_202E_206C_206B_200F_200C_202C_206C_200D_202E_202D_202A_206A_200B_206F_206F_200B_200B_200E_202E_200E_206C_202A_202D_202A_206B_206A_202D_200E_206A_202C_202C_206D_200B_202B_206A_202E(GatheredItem P_0, uint P_1)
|
||||
{
|
||||
P_0.ItemId = P_1;
|
||||
}
|
||||
|
||||
static void _202C_200B_200D_206C_206A_202C_202A_206D_202C_206F_200B_200D_206F_202E_206E_202E_206D_206B_200F_202A_202A_206F_200C_202A_206E_200B_202D_206C_206A_206C_206C_206E_206F_206D_206E_200F_202D_200D_200C_200E_202E(GatheredItem P_0, int P_1)
|
||||
{
|
||||
P_0.ItemCount = P_1;
|
||||
}
|
||||
|
||||
static void _206A_206C_200E_206B_206D_200D_200B_200F_200F_202C_206F_200E_200C_206F_202B_206D_206B_202C_206F_202D_206F_202A_202B_206B_206C_200C_206C_202A_200E_200C_200F_200C_202C_206D_202C_206B_206B_206B_200F_206B_202E(GatheredItem P_0, ushort P_1)
|
||||
{
|
||||
P_0.Collectability = P_1;
|
||||
}
|
||||
|
||||
static void _206A_200B_202E_202E_206F_202C_206A_206C_206B_202A_200D_202A_206D_202C_202A_202C_202A_202C_202A_206F_202C_202D_200C_206F_200D_206C_202E_206E_206E_200E_200D_206E_206B_200C_206A_202A_200B_200F_202C_206B_202E(QuestStep P_0, List<GatheredItem> P_1)
|
||||
{
|
||||
P_0.ItemsToGather = P_1;
|
||||
}
|
||||
|
||||
static void _202C_206D_206D_206D_206E_202C_206A_202A_200E_200C_206E_206F_206F_200F_200E_206A_200D_200F_200C_200D_206E_200B_202C_200C_206D_206C_200C_200F_206E_206F_202D_202D_206E_206A_206F_206E_206E_206F_200B_202C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
|
||||
{
|
||||
P_0.PrintError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _202E_202B_202D_200F_206F_206B_200D_200B_200D_202C_206C_200F_200B_206B_202E_200D_206C_200E_206E_200B_200D_200D_202B_206A_200B_206E_206D_206B_202C_206D_200D_206B_206C_202E_200E_200E_206E_200C_200E_206A_202E(IContextMenu P_0, IContextMenu.OnMenuOpenedDelegate P_1)
|
||||
{
|
||||
P_0.OnMenuOpened -= P_1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
1981
Questionable/Questionable.Controller/CustomDeliveryController.cs
Normal file
1981
Questionable/Questionable.Controller/CustomDeliveryController.cs
Normal file
File diff suppressed because it is too large
Load diff
577
Questionable/Questionable.Controller/DefinitionRegistry.cs
Normal file
577
Questionable/Questionable.Controller/DefinitionRegistry.cs
Normal file
|
|
@ -0,0 +1,577 @@
|
|||
#define RELEASE
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Dalamud.Plugin;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Utils;
|
||||
using Questionable.Validation;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal abstract class DefinitionRegistry<TDefinition> where TDefinition : class
|
||||
{
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
|
||||
private readonly IDefinitionSchemaValidator _schemaValidator;
|
||||
|
||||
private readonly QuestValidator _questValidator;
|
||||
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly Dictionary<ushort, TDefinition> _definitions = new Dictionary<ushort, TDefinition>();
|
||||
|
||||
public IReadOnlyDictionary<ushort, TDefinition> Definitions => _definitions;
|
||||
|
||||
protected abstract string TypeLabel { get; }
|
||||
|
||||
protected abstract string ConfigDirectoryName { get; }
|
||||
|
||||
protected abstract string ProjectDirectoryName { get; }
|
||||
|
||||
protected abstract EPathType PathType { get; }
|
||||
|
||||
protected DefinitionRegistry(IDalamudPluginInterface pluginInterface, IDefinitionSchemaValidator schemaValidator, QuestValidator questValidator, ILogger logger)
|
||||
{
|
||||
_pluginInterface = pluginInterface;
|
||||
_schemaValidator = schemaValidator;
|
||||
_questValidator = questValidator;
|
||||
_logger = logger;
|
||||
Reload();
|
||||
}
|
||||
|
||||
protected abstract IReadOnlyDictionary<ushort, TDefinition> GetAssemblyDefinitions();
|
||||
|
||||
protected virtual DateTime? GetExpiry(TDefinition definition)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
protected virtual string? GetName(TDefinition definition)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Reload()
|
||||
{
|
||||
_definitions.Clear();
|
||||
_schemaValidator.Reset();
|
||||
LoadFromAssembly();
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(_202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(_206D_206F_202D_200C_206F_200D_206C_206C_200F_202A_202E_206D_200F_202C_200D_202D_200D_202B_200B_200F_200F_200D_202B_202C_206C_200B_206D_206A_202C_202C_206F_206A_206A_200C_202A_206A_206D_200E_206A_200C_202E(_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)_200D_206A_206C_200C_202C_200E_202B_200F_202D_202C_206F_206F_200D_206C_202E_206D_206E_206B_206B_202A_206F_202E_200F_200F_206D_200B_200C_202C_200F_200F_206F_206C_200D_206E_202C_200E_200C_206D_200C_206C_202E(_pluginInterface)), ConfigDirectoryName)));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex, 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>(-1480922246), new object[1] { TypeLabel });
|
||||
}
|
||||
IEnumerator<ValidationIssue> enumerator = _schemaValidator.Validate().GetEnumerator();
|
||||
try
|
||||
{
|
||||
int num = -698035048;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -698035048;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (_202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E((IEnumerator)enumerator) ? (-698035047) : (-698035045));
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
ValidationIssue current = enumerator.Current;
|
||||
_questValidator.AddValidationIssue(current);
|
||||
num = -698035048;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = -698035048;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_008e;
|
||||
}
|
||||
continue;
|
||||
end_IL_008e:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? 1453964763 : 1453964760);
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
int num3 = 1453964762;
|
||||
int num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 1453964760;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_0128;
|
||||
case 2:
|
||||
_202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)enumerator);
|
||||
num = 1453964763;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_0128:
|
||||
break;
|
||||
}
|
||||
}
|
||||
RemoveExpiredDefinitions();
|
||||
_202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_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>(1196622981), new object[2] { _definitions.Count, TypeLabel });
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[Conditional("RELEASE")]
|
||||
private void LoadFromAssembly()
|
||||
{
|
||||
IReadOnlyDictionary<ushort, TDefinition> assemblyDefinitions = GetAssemblyDefinitions();
|
||||
IEnumerator<KeyValuePair<ushort, TDefinition>> enumerator = assemblyDefinitions.GetEnumerator();
|
||||
try
|
||||
{
|
||||
int num = -618996398;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -618996400;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = (_202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E((IEnumerator)enumerator) ? (-618996399) : (-618996400));
|
||||
break;
|
||||
case 1:
|
||||
var (key, value) = (KeyValuePair<ushort, TDefinition>)(ref enumerator.Current);
|
||||
_definitions[key] = value;
|
||||
num = -618996398;
|
||||
break;
|
||||
case 3:
|
||||
num = -618996398;
|
||||
break;
|
||||
case 0:
|
||||
goto end_IL_001a;
|
||||
}
|
||||
continue;
|
||||
end_IL_001a:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? 476280246 : 476280245);
|
||||
while (true)
|
||||
{
|
||||
int num6 = num;
|
||||
int num3 = 476280247;
|
||||
int num4 = num6;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
goto end_IL_00ce;
|
||||
case 2:
|
||||
_202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)enumerator);
|
||||
num = 476280246;
|
||||
break;
|
||||
case 0:
|
||||
num = 476280245;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_00ce:
|
||||
break;
|
||||
}
|
||||
}
|
||||
_202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_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>(416518745), new object[2] { assemblyDefinitions.Count, TypeLabel });
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[Conditional("DEBUG")]
|
||||
private void LoadFromProjectDirectory()
|
||||
{
|
||||
DirectoryInfo directoryInfo = _200F_206E_206C_202B_200C_200D_202A_202A_206C_202B_202B_200D_202E_200D_206D_206E_206D_206F_206C_202E_202C_202B_200D_206D_200B_202A_206D_206C_206F_206D_200B_200E_200C_202C_206C_206B_202A_200C_202C_202D_202E(_206B_202E_200E_206D_206B_206F_206D_206E_200B_202A_206D_202D_202E_206B_200E_202C_200C_200E_206D_200C_206F_206D_200D_206E_206B_200B_206C_206F_206A_202A_200C_200F_200D_200D_206A_200C_200D_200B_202A_202E_202E(_pluginInterface));
|
||||
object obj;
|
||||
if (directoryInfo == null)
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
DirectoryInfo directoryInfo2 = _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(directoryInfo);
|
||||
obj = ((directoryInfo2 != null) ? _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(directoryInfo2) : null);
|
||||
}
|
||||
DirectoryInfo directoryInfo3 = (DirectoryInfo)obj;
|
||||
int num = ((directoryInfo3 != null) ? 949795038 : 949795037);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 949795039;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_007c;
|
||||
case 2:
|
||||
return;
|
||||
case 1:
|
||||
{
|
||||
DirectoryInfo directory = _202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(_206C_200F_202D_202C_202C_202A_206A_202C_200E_206F_200E_200B_202E_206A_202B_202B_200D_206C_202A_206E_200B_200F_200D_202D_202E_206E_206F_200E_202C_202D_206A_200F_200D_206A_200C_200E_200F_200F_202E_206A_202E(_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)directoryInfo3), 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>(-896958366), ProjectDirectoryName));
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(directory);
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_definitions.Clear();
|
||||
_200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex, 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>(1538126235), new object[1] { TypeLabel });
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_007c:
|
||||
num = 949795037;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void LoadFromDirectory(DirectoryInfo directory)
|
||||
{
|
||||
int num = (_202A_206B_200D_200C_202E_206A_206E_206A_206D_206E_200D_200F_206B_200E_206D_200C_200F_206E_200E_202B_200B_200F_200F_202C_206F_206A_200E_200E_206A_200D_202D_202D_206A_200F_206E_202D_206F_202C_206A_202E((FileSystemInfo)directory) ? 1970314603 : 1970314600);
|
||||
TDefinition val = default(TDefinition);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1970314601;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004f;
|
||||
case 1:
|
||||
_202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_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>(1174512965), new object[2] { TypeLabel, directory });
|
||||
return;
|
||||
case 2:
|
||||
{
|
||||
FileInfo[] array = _206C_200E_206E_206B_206D_202A_206C_202C_200B_206B_200F_200B_206B_202E_200D_202C_206E_206F_200D_202A_202B_206F_206A_200B_202E_206F_202D_200C_206E_206D_200B_200D_202C_200B_206C_206A_206E_206D_200D_200E_202E(directory, 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>(-1831198397));
|
||||
for (int num5 = 0; num5 < array.Length; num5 = (num4 | num3) + (num4 & num3))
|
||||
{
|
||||
FileInfo fileInfo = array[num5];
|
||||
ushort? num6 = ExtractIdFromName(_200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E((FileSystemInfo)fileInfo));
|
||||
if (num6.HasValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileStream fileStream = _206D_202B_206D_202A_202D_200F_206D_206D_202C_200F_202E_200C_206D_202D_206A_200F_202D_200E_206A_206C_202B_200B_202C_206F_202B_200E_206B_200F_206C_200C_206C_202C_202C_206E_206F_200F_202C_202A_202A_200D_202E(fileInfo);
|
||||
try
|
||||
{
|
||||
JsonNode jsonNode = _202B_202E_200B_206F_202C_202D_202C_206C_206D_206C_200C_202E_200B_206E_206C_202E_200C_206B_206B_202E_206F_206B_200E_200C_200C_206B_206F_202E_200C_202C_200E_200C_200F_206D_202E_206A_200C_200C_206C_200C_202E((Stream)fileStream, (JsonNodeOptions?)null, default(JsonDocumentOptions));
|
||||
num = ((jsonNode != null) ? (-48815400) : (-48815395));
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = -48815396;
|
||||
num4 = num7;
|
||||
int num8 = num4 + num3;
|
||||
int num9 = num4 & num3;
|
||||
switch (num8 - (num9 + num9))
|
||||
{
|
||||
case 0:
|
||||
num = -48815395;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_00fd;
|
||||
case 4:
|
||||
_schemaValidator.Enqueue(num6.Value, jsonNode);
|
||||
val = jsonNode.Deserialize<TDefinition>();
|
||||
num = ((val == null) ? (-48815393) : (-48815394));
|
||||
break;
|
||||
case 2:
|
||||
_definitions[num6.Value] = val;
|
||||
num = -48815393;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_00fd;
|
||||
}
|
||||
continue;
|
||||
end_IL_00fd:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = ((fileStream == null) ? (-392038256) : (-392038253));
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = -392038254;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -392038253;
|
||||
break;
|
||||
case 2:
|
||||
goto end_IL_01d6;
|
||||
case 1:
|
||||
_202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E((IDisposable)fileStream);
|
||||
num = -392038256;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_01d6:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonException ex)
|
||||
{
|
||||
_200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, (Exception)ex, 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>(-1372108018), new object[2]
|
||||
{
|
||||
TypeLabel,
|
||||
_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)fileInfo)
|
||||
});
|
||||
_questValidator.AddValidationIssue(new ValidationIssue
|
||||
{
|
||||
PathType = PathType,
|
||||
Id = num6.Value.ToString(_202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E()),
|
||||
Location = null,
|
||||
Type = EIssueType.InvalidJsonSyntax,
|
||||
Severity = EIssueSeverity.Error,
|
||||
Description = _206E_200B_206E_202A_200F_206A_200F_200B_206B_200F_206C_202E_200F_206F_200E_202E_200D_200C_202C_202C_200B_206A_206C_202D_202C_206F_206C_202D_200D_200B_200F_206D_200E_206C_202C_206F_206E_206E_206A_202C_202E(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>(1049555621), _200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E((FileSystemInfo)fileInfo), 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>(-437343681), _202A_202D_206C_206F_202B_202C_202D_206D_200D_206A_200F_202B_202B_202C_200F_200D_206F_200C_200E_202A_206B_206A_206F_202D_200B_200B_206D_206C_200B_200C_206C_200B_200E_206B_202A_200C_202B_200C_206B_206F_202E((Exception)ex))
|
||||
});
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
_200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(_logger, ex2, 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>(1347495695), new object[2]
|
||||
{
|
||||
TypeLabel,
|
||||
_206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E((FileSystemInfo)fileInfo)
|
||||
});
|
||||
}
|
||||
}
|
||||
int num11 = num5;
|
||||
num3 = 1;
|
||||
num4 = num11;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_004f:
|
||||
num = 1970314600;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void RemoveExpiredDefinitions()
|
||||
{
|
||||
using List<ushort>.Enumerator enumerator = (from kvp in _definitions.Where(delegate(KeyValuePair<ushort, TDefinition> kvp)
|
||||
{
|
||||
DateTime? expiry = GetExpiry(kvp.Value);
|
||||
int num5 = ((!expiry.HasValue) ? (-748929161) : (-748929164));
|
||||
while (true)
|
||||
{
|
||||
int num6 = num5;
|
||||
int num7 = -748929162;
|
||||
int num8 = num6;
|
||||
switch ((num8 | num7) - (num8 & num7))
|
||||
{
|
||||
case 0:
|
||||
goto IL_0058;
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
{
|
||||
DateTime valueOrDefault = expiry.GetValueOrDefault();
|
||||
return ExpiryUtils.NormalizeExpiry(valueOrDefault) < DateTime.UtcNow;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_0058:
|
||||
num5 = -748929164;
|
||||
}
|
||||
})
|
||||
select kvp.Key).ToList().GetEnumerator();
|
||||
int num = 1782167825;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1782167824;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 3:
|
||||
num = 1782167825;
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
ushort current = enumerator.Current;
|
||||
_202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(_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>(-767454481), new object[3]
|
||||
{
|
||||
TypeLabel,
|
||||
current,
|
||||
GetName(_definitions[current]) ?? current.ToString(_202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E())
|
||||
});
|
||||
_definitions.Remove(current);
|
||||
num = 1782167825;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
num = (enumerator.MoveNext() ? 1782167826 : 1782167824);
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static ushort? ExtractIdFromName(string fileName)
|
||||
{
|
||||
ushort result;
|
||||
int num = (ushort.TryParse(_202E_200D_200F_206D_206E_200C_206E_200B_200F_206A_206E_206F_200D_206D_206A_202B_206C_200B_202C_200B_206B_200E_206A_200E_200F_206D_202E_202A_202C_202E_200C_202C_202A_200C_200C_206F_206F_206D_200B_206E_202E(_200E_200D_200F_206D_200B_202D_200E_200D_206C_200C_206C_206A_202C_206E_202E_200B_206E_202A_206C_200D_202D_200D_200F_200E_200D_200E_206A_202E_200F_200C_206B_206A_200B_202D_206E_206F_202D_206E_202E_206A_202E(fileName), '_', 2, StringSplitOptions.None)[0], out result) ? 271957257 : 271957258);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 271957259;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
return result;
|
||||
case 1:
|
||||
return null;
|
||||
case 0:
|
||||
goto IL_006e;
|
||||
}
|
||||
continue;
|
||||
IL_006e:
|
||||
num = 271957258;
|
||||
}
|
||||
}
|
||||
|
||||
static DirectoryInfo _200D_206A_206C_200C_202C_200E_202B_200F_202D_202C_206F_206F_200D_206C_202E_206D_206E_206B_206B_202A_206F_202E_200F_200F_206D_200B_200C_202C_200F_200F_206F_206C_200D_206E_202C_200E_200C_206D_200C_206C_202E(IDalamudPluginInterface P_0)
|
||||
{
|
||||
return P_0.ConfigDirectory;
|
||||
}
|
||||
|
||||
static string _206E_206A_206B_206F_200F_206D_206F_206B_206B_206E_200F_200C_200E_202D_200D_206E_200C_206C_206D_206B_202A_206A_206D_202E_206D_202D_202C_200E_206F_206C_200D_206C_206A_202A_206E_206B_200C_202E_200E_200F_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.FullName;
|
||||
}
|
||||
|
||||
static string _206D_206F_202D_200C_206F_200D_206C_206C_200F_202A_202E_206D_200F_202C_200D_202D_200D_202B_200B_200F_200F_200D_202B_202C_206C_200B_206D_206A_202C_202C_206F_206A_206A_200C_202A_206A_206D_200E_206A_200C_202E(string P_0, string P_1)
|
||||
{
|
||||
return Path.Combine(P_0, P_1);
|
||||
}
|
||||
|
||||
static DirectoryInfo _202E_200D_200D_206F_200C_202D_200F_206D_200F_202D_200D_202C_202D_206B_200E_200B_200E_206D_202D_206D_202A_200D_202E_200C_206D_202E_202B_206A_206A_206D_206B_206A_206F_200F_200F_200F_206B_206E_202E_206E_202E(string P_0)
|
||||
{
|
||||
return new DirectoryInfo(P_0);
|
||||
}
|
||||
|
||||
static void _200D_206C_202C_202D_200E_202D_200C_206D_202B_200C_206E_202B_200E_202D_206A_206F_206A_202D_200B_200C_200C_200E_202A_200F_206D_200E_206E_206B_206C_200D_202C_200D_202D_206C_202A_200C_206F_202B_206B_202B_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static bool _202C_206B_202D_200B_202E_206B_202D_202B_202C_200F_202E_206C_202A_200C_202C_200F_202B_202A_200D_202A_206C_206C_202E_206B_200C_202D_200C_200C_202C_200D_202E_206C_202B_200C_202C_200F_200C_206B_202D_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _202D_206A_200B_206C_202C_200F_202B_206E_200E_202E_206C_202D_202A_206A_202D_206F_206D_206B_200F_200F_202B_202A_202B_200E_206C_206F_206D_200E_200E_200B_202B_206F_202B_202E_206F_202B_200C_202C_200C_202E_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static void _202C_206E_206B_202D_202B_202B_206C_202E_206B_206A_206E_202C_200B_202B_200F_200B_202B_206B_200D_200E_200C_200B_202B_202B_200F_202B_200F_202A_206E_200E_206F_200C_206D_206B_206D_200F_206D_206C_206E_202C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static FileInfo _206B_202E_200E_206D_206B_206F_206D_206E_200B_202A_206D_202D_202E_206B_200E_202C_200C_200E_206D_200C_206F_206D_200D_206E_206B_200B_206C_206F_206A_202A_200C_200F_200D_200D_206A_200C_200D_200B_202A_202E_202E(IDalamudPluginInterface P_0)
|
||||
{
|
||||
return P_0.AssemblyLocation;
|
||||
}
|
||||
|
||||
static DirectoryInfo _200F_206E_206C_202B_200C_200D_202A_202A_206C_202B_202B_200D_202E_200D_206D_206E_206D_206F_206C_202E_202C_202B_200D_206D_200B_202A_206D_206C_206F_206D_200B_200E_200C_202C_206C_206B_202A_200C_202C_202D_202E(FileInfo P_0)
|
||||
{
|
||||
return P_0.Directory;
|
||||
}
|
||||
|
||||
static DirectoryInfo _206F_206E_202B_200F_202D_202D_202E_200C_206C_200E_202D_202B_206B_200C_206C_200B_206B_206E_202A_200E_200D_200E_202A_202C_202E_206D_202E_202D_202A_202E_202C_206A_202E_202E_206D_202E_202E_202C_206F_200D_202E(DirectoryInfo P_0)
|
||||
{
|
||||
return P_0.Parent;
|
||||
}
|
||||
|
||||
static string _206C_200F_202D_202C_202C_202A_206A_202C_200E_206F_200E_200B_202E_206A_202B_202B_200D_206C_202A_206E_200B_200F_200D_202D_202E_206E_206F_200E_202C_202D_206A_200F_200D_206A_200C_200E_200F_200F_202E_206A_202E(string P_0, string P_1, string P_2)
|
||||
{
|
||||
return Path.Combine(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _202A_206B_200D_200C_202E_206A_206E_206A_206D_206E_200D_200F_206B_200E_206D_200C_200F_206E_200E_202B_200B_200F_200F_202C_206F_206A_200E_200E_206A_200D_202D_202D_206A_200F_206E_202D_206F_202C_206A_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.Exists;
|
||||
}
|
||||
|
||||
static FileInfo[] _206C_200E_206E_206B_206D_202A_206C_202C_200B_206B_200F_200B_206B_202E_200D_202C_206E_206F_200D_202A_202B_206F_206A_200B_202E_206F_202D_200C_206E_206D_200B_200D_202C_200B_206C_206A_206E_206D_200D_200E_202E(DirectoryInfo P_0, string P_1)
|
||||
{
|
||||
return P_0.GetFiles(P_1);
|
||||
}
|
||||
|
||||
static string _200D_206F_200D_202C_206E_202A_206B_202C_206A_200D_206F_200C_206A_200B_202B_200F_206F_202E_206A_200F_206B_202B_206E_202D_200B_200B_206B_202B_206D_206D_202A_200C_202E_202C_206B_202B_200F_206D_206D_202A_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.Name;
|
||||
}
|
||||
|
||||
static FileStream _206D_202B_206D_202A_202D_200F_206D_206D_202C_200F_202E_200C_206D_202D_206A_200F_202D_200E_206A_206C_202B_200B_202C_206F_202B_200E_206B_200F_206C_200C_206C_202C_202C_206E_206F_200F_202C_202A_202A_200D_202E(FileInfo P_0)
|
||||
{
|
||||
return P_0.OpenRead();
|
||||
}
|
||||
|
||||
static JsonNode _202B_202E_200B_206F_202C_202D_202C_206C_206D_206C_200C_202E_200B_206E_206C_202E_200C_206B_206B_202E_206F_206B_200E_200C_200C_206B_206F_202E_200C_202C_200E_200C_200F_206D_202E_206A_200C_200C_206C_200C_202E(Stream P_0, JsonNodeOptions? P_1, JsonDocumentOptions P_2)
|
||||
{
|
||||
return JsonNode.Parse(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static CultureInfo _202A_206B_200D_200C_206D_206C_200E_206D_202C_206A_206F_206A_206A_200D_206F_202A_202D_206D_202B_206E_206E_206D_202E_200B_206E_200F_202E_202D_200E_206A_200E_206E_200F_200F_206D_200F_202A_202E_206B_202C_202E()
|
||||
{
|
||||
return CultureInfo.InvariantCulture;
|
||||
}
|
||||
|
||||
static string _202A_202D_206C_206F_202B_202C_202D_206D_200D_206A_200F_202B_202B_202C_200F_200D_206F_200C_200E_202A_206B_206A_206F_202D_200B_200B_206D_206C_200B_200C_206C_200B_200E_206B_202A_200C_202B_200C_206B_206F_202E(Exception P_0)
|
||||
{
|
||||
return P_0.Message;
|
||||
}
|
||||
|
||||
static string _206E_200B_206E_202A_200F_206A_200F_200B_206B_200F_206C_202E_200F_206F_200E_202E_200D_200C_202C_202C_200B_206A_206C_202D_202C_206F_206C_202D_200D_200B_200F_206D_200E_206C_202C_206F_206E_206E_206A_202C_202E(string P_0, string P_1, string P_2, string P_3)
|
||||
{
|
||||
return P_0 + P_1 + P_2 + P_3;
|
||||
}
|
||||
|
||||
static string _200E_200D_200F_206D_200B_202D_200E_200D_206C_200C_206C_206A_202C_206E_202E_200B_206E_202A_206C_200D_202D_200D_200F_200E_200D_200E_206A_202E_200F_200C_206B_206A_200B_202D_206E_206F_202D_206E_202E_206A_202E(string P_0)
|
||||
{
|
||||
return Path.GetFileNameWithoutExtension(P_0);
|
||||
}
|
||||
|
||||
static string[] _202E_200D_200F_206D_206E_200C_206E_200B_200F_206A_206E_206F_200D_206D_206A_202B_206C_200B_202C_200B_206B_200E_206A_200E_200F_206D_202E_202A_202C_202E_200C_202C_202A_200C_200C_206F_206F_206D_200B_206E_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3)
|
||||
{
|
||||
return P_0.Split(P_1, P_2, P_3);
|
||||
}
|
||||
}
|
||||
17
Questionable/Questionable.Controller/EQuestResolutionType.cs
Normal file
17
Questionable/Questionable.Controller/EQuestResolutionType.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
namespace Questionable.Controller;
|
||||
|
||||
internal enum EQuestResolutionType
|
||||
{
|
||||
Simulated,
|
||||
NextQuest,
|
||||
GatheringQuest,
|
||||
ManualPriority,
|
||||
InProgressClassQuest,
|
||||
NewClassQuest,
|
||||
MsqImmediate,
|
||||
TrackedQuest,
|
||||
AutoPriority,
|
||||
MsqFallback,
|
||||
LevelingMode,
|
||||
NoQuest
|
||||
}
|
||||
8
Questionable/Questionable.Controller/ERepairDecision.cs
Normal file
8
Questionable/Questionable.Controller/ERepairDecision.cs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
namespace Questionable.Controller;
|
||||
|
||||
internal enum ERepairDecision
|
||||
{
|
||||
NotNeeded,
|
||||
Enqueued,
|
||||
BlockDuty
|
||||
}
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
|
|
@ -11,6 +12,7 @@ using Questionable.Controller.Steps.Movement;
|
|||
using Questionable.Controller.Steps.Shared;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.Navigation;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
|
|
@ -20,9 +22,7 @@ internal sealed class FateController : MiniTaskController<FateController>
|
|||
|
||||
private readonly GameFunctions _gameFunctions;
|
||||
|
||||
private readonly IClientState _clientState;
|
||||
|
||||
private readonly ILogger<FateController> _logger;
|
||||
private readonly SmartNavRouteEnqueuer _routeEnqueuer;
|
||||
|
||||
private FateDefinition? _currentFate;
|
||||
|
||||
|
|
@ -36,6 +36,8 @@ internal sealed class FateController : MiniTaskController<FateController>
|
|||
|
||||
public FateDefinition? CurrentFate => _currentFate;
|
||||
|
||||
public TaskQueue TaskQueue => _taskQueue;
|
||||
|
||||
public int CompletedCycles => _completedCycles;
|
||||
|
||||
public int? CycleLimit => _cycleLimit;
|
||||
|
|
@ -44,122 +46,292 @@ internal sealed class FateController : MiniTaskController<FateController>
|
|||
{
|
||||
get
|
||||
{
|
||||
if (!IsRunning)
|
||||
int num = (IsRunning ? (-1577720551) : (-1577720550));
|
||||
while (true)
|
||||
{
|
||||
return TimeSpan.Zero;
|
||||
int num2 = num;
|
||||
int num3 = -1577720549;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
return DateTime.UtcNow - _startTime;
|
||||
case 1:
|
||||
return TimeSpan.Zero;
|
||||
case 0:
|
||||
goto IL_005d;
|
||||
}
|
||||
continue;
|
||||
IL_005d:
|
||||
num = -1577720550;
|
||||
}
|
||||
return DateTime.UtcNow - _startTime;
|
||||
}
|
||||
}
|
||||
|
||||
public FateController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, ILogger<FateController> logger, MovementController movementController, GameFunctions gameFunctions, IClientState clientState)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||
public FateController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, ILogger<FateController> logger, MovementController movementController, GameFunctions gameFunctions, SmartNavRouteEnqueuer routeEnqueuer)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger)
|
||||
{
|
||||
_movementController = movementController;
|
||||
_gameFunctions = gameFunctions;
|
||||
_clientState = clientState;
|
||||
_logger = logger;
|
||||
_routeEnqueuer = routeEnqueuer;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Start(FateDefinition fate, int? cycleLimit = null)
|
||||
{
|
||||
_currentFate = fate;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = cycleLimit;
|
||||
_startTime = DateTime.UtcNow;
|
||||
_logger.LogInformation("Starting FATE farming: {FateName} (limit: {Limit})", fate.Name, cycleLimit?.ToString(CultureInfo.InvariantCulture) ?? "unlimited");
|
||||
_202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_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>(1566011469), new object[2]
|
||||
{
|
||||
_200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(fate),
|
||||
cycleLimit?.ToString(_206F_200E_200D_202A_200F_200B_206A_202D_200D_202D_206A_206D_206E_206C_200B_200F_200E_206C_206B_206F_200B_200F_206B_202D_202A_206F_206E_200E_200E_200D_202B_202C_206D_206F_200E_206C_202B_206A_206B_206B_202E()) ?? 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>(1353267636)
|
||||
});
|
||||
EnqueueFateCycle();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Update()
|
||||
{
|
||||
if (_currentFate == null || _movementController.IsPathfinding || _movementController.IsPathRunning)
|
||||
int num = ((_currentFate != null) ? 799509446 : 799509451);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_taskQueue.AllTasksComplete)
|
||||
{
|
||||
_completedCycles++;
|
||||
if (_cycleLimit.HasValue && _completedCycles >= _cycleLimit.Value)
|
||||
int num2 = num;
|
||||
int num3 = 799509447;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
_logger.LogInformation("FATE cycle limit reached ({Cycles}/{Limit})", _completedCycles, _cycleLimit.Value);
|
||||
Stop("Cycle limit reached");
|
||||
case 8:
|
||||
num = ((!_gameFunctions.IsOccupied()) ? 799509443 : 799509442);
|
||||
break;
|
||||
case 2:
|
||||
_202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_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>(-1655536442), new object[2] { _completedCycles, _cycleLimit.Value });
|
||||
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>(1011465347));
|
||||
return;
|
||||
case 12:
|
||||
return;
|
||||
case 6:
|
||||
{
|
||||
int completedCycles = _completedCycles;
|
||||
num3 = 1;
|
||||
num4 = completedCycles;
|
||||
_completedCycles = (num4 | num3) + (num4 & num3);
|
||||
num = ((!_cycleLimit.HasValue) ? 799509440 : 799509453);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num = ((!_movementController.IsPathRunning) ? 799509455 : 799509454);
|
||||
break;
|
||||
case 5:
|
||||
return;
|
||||
case 10:
|
||||
num = ((_completedCycles < _cycleLimit.Value) ? 799509440 : 799509445);
|
||||
break;
|
||||
case 4:
|
||||
num = ((!_taskQueue.AllTasksComplete) ? 799509452 : 799509441);
|
||||
break;
|
||||
case 7:
|
||||
EnqueueFateCycle();
|
||||
num = 799509452;
|
||||
break;
|
||||
case 0:
|
||||
num = 799509451;
|
||||
break;
|
||||
case 11:
|
||||
UpdateCurrentTask();
|
||||
return;
|
||||
case 1:
|
||||
num = (_movementController.IsPathfinding ? 799509454 : 799509444);
|
||||
break;
|
||||
case 9:
|
||||
return;
|
||||
}
|
||||
EnqueueFateCycle();
|
||||
}
|
||||
UpdateCurrentTask();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void EnqueueFateCycle()
|
||||
{
|
||||
if (_currentFate != null)
|
||||
int num = ((_currentFate != null) ? (-147335237) : (-147335233));
|
||||
while (true)
|
||||
{
|
||||
_logger.LogInformation("Enqueuing FATE cycle for {FateName}", _currentFate.Name);
|
||||
if (_clientState.TerritoryType != _currentFate.TerritoryId)
|
||||
int num2 = num;
|
||||
int num3 = -147335238;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
_taskQueue.Enqueue(new AetheryteShortcut.Task(null, null, _currentFate.Aetheryte, _currentFate.TerritoryId));
|
||||
}
|
||||
if (_currentFate.RequiredStatusId.HasValue && _currentFate.TransformNpcDataId.HasValue && _currentFate.TransformNpcPosition.HasValue && !_gameFunctions.HasStatus(_currentFate.RequiredStatusId.Value))
|
||||
case 4:
|
||||
num = -147335233;
|
||||
break;
|
||||
case 3:
|
||||
num = (_gameFunctions.HasStatus(_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value) ? (-147335235) : (-147335238));
|
||||
break;
|
||||
case 6:
|
||||
num = ((!_202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(_currentFate).HasValue) ? (-147335235) : (-147335239));
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
_logger.LogInformation("Player missing required status {StatusId}, enqueuing transform", _currentFate.RequiredStatusId.Value);
|
||||
_taskQueue.Enqueue(new MoveTask(_currentFate.TerritoryId, _currentFate.TransformNpcPosition.Value, null, 3f));
|
||||
_200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_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>(534849822), new object[1] { _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value });
|
||||
_taskQueue.Enqueue(new MoveTask(_206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(_currentFate).Value, null, MountRequired: false, DismountRequired: false, 3f));
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
uint value = _currentFate.TransformNpcDataId.Value;
|
||||
EStatus? requiredStatusId = _currentFate.RequiredStatusId;
|
||||
taskQueue.Enqueue(new Interact.Task(value, null, EInteractionType.Interact, SkipMarkerCheck: true, null, null, null, null, requiredStatusId));
|
||||
uint value = _202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(_currentFate).Value;
|
||||
EStatus? completionStatusId = _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate);
|
||||
taskQueue.Enqueue(new Interact.Task(value, null, EInteractionType.Interact, SkipMarkerCheck: true, null, null, null, null, completionStatusId));
|
||||
_taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(2L)));
|
||||
_taskQueue.Enqueue(new MoveTask(_206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(_currentFate), null, MountRequired: false, DismountRequired: false, 5f));
|
||||
num = -147335235;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
_200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_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>(-371117818), new object[1] { _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(_currentFate) });
|
||||
_routeEnqueuer.Enqueue(_taskQueue, _206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(_currentFate), _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(_currentFate), 5f);
|
||||
num = ((!_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).HasValue) ? (-147335235) : (-147335240));
|
||||
break;
|
||||
case 2:
|
||||
num = ((!_202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(_currentFate).HasValue) ? (-147335235) : (-147335236));
|
||||
break;
|
||||
case 7:
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
_taskQueue.Enqueue(new FateFarming.WaitForFateTargets(_202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(_currentFate)));
|
||||
_taskQueue.Enqueue(new FateFarming.SyncFateLevel());
|
||||
_taskQueue.Enqueue(new FateFarming.FateActionLoop(_202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(_currentFate), _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate)));
|
||||
_taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L)));
|
||||
return;
|
||||
case 5:
|
||||
return;
|
||||
}
|
||||
_taskQueue.Enqueue(new MoveTask(_currentFate.TerritoryId, _currentFate.Position, null, 5f));
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
_taskQueue.Enqueue(new FateFarming.WaitForFateTargets(_currentFate.Targets));
|
||||
_taskQueue.Enqueue(new FateFarming.SyncFateLevel());
|
||||
_taskQueue.Enqueue(new FateFarming.FateActionLoop(_currentFate.Targets, _currentFate.RequiredStatusId));
|
||||
_taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L)));
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Replan()
|
||||
{
|
||||
int num = ((_currentFate != null) ? 1044869375 : 1044869372);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1044869374;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
_202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_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>(522631181), new object[1] { _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(_currentFate) });
|
||||
_taskQueue.Reset();
|
||||
EnqueueFateCycle();
|
||||
return;
|
||||
case 2:
|
||||
return;
|
||||
case 0:
|
||||
goto IL_0082;
|
||||
}
|
||||
continue;
|
||||
IL_0082:
|
||||
num = 1044869372;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override void Stop(string label)
|
||||
{
|
||||
if (_currentFate != null)
|
||||
base.Stop(label);
|
||||
int num = ((_currentFate == null) ? 1034562538 : 1034562541);
|
||||
while (true)
|
||||
{
|
||||
_logger.LogInformation("Stopping FATE farming: {Label} (completed {Cycles} cycles)", label, _completedCycles);
|
||||
if (_currentFate.StopAction.HasValue && _currentFate.RequiredStatusId.HasValue && _gameFunctions.HasStatus(_currentFate.RequiredStatusId.Value))
|
||||
int num2 = num;
|
||||
int num3 = 1034562539;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
_logger.LogInformation("Using stop action {Action} to remove transformation", _currentFate.StopAction.Value);
|
||||
_gameFunctions.UseAction(_currentFate.StopAction.Value);
|
||||
case 2:
|
||||
_202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_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>(-757113622), new object[1] { _206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).Value });
|
||||
_gameFunctions.UseAction(_206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).Value);
|
||||
num = 1034562543;
|
||||
break;
|
||||
case 0:
|
||||
num = ((!_gameFunctions.HasStatus(_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).Value)) ? 1034562543 : 1034562537);
|
||||
break;
|
||||
case 5:
|
||||
num = ((!_202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(_currentFate).HasValue) ? 1034562543 : 1034562539);
|
||||
break;
|
||||
case 6:
|
||||
_202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_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>(-1276129984), new object[2] { label, _completedCycles });
|
||||
num = ((!_206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(_currentFate).HasValue) ? 1034562543 : 1034562542);
|
||||
break;
|
||||
case 4:
|
||||
_routeEnqueuer.ClearDestination();
|
||||
_currentFate = null;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = null;
|
||||
_taskQueue.Reset();
|
||||
num = 1034562538;
|
||||
break;
|
||||
case 1:
|
||||
return;
|
||||
case 3:
|
||||
num = 1034562541;
|
||||
break;
|
||||
}
|
||||
_currentFate = null;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = null;
|
||||
_taskQueue.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
public override IList<string> GetRemainingTaskNames()
|
||||
static string _200D_206B_202C_206C_206E_206F_202E_206E_200D_202C_202D_200B_200E_206F_200B_202D_200B_202D_200D_202D_200D_200D_202E_200F_206D_202D_200F_200D_206A_202C_202A_200E_206F_206D_200E_206F_202B_206A_200F_200F_202E(FateDefinition P_0)
|
||||
{
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
if (task != null)
|
||||
{
|
||||
string text = task.ToString() ?? "?";
|
||||
IList<string> remainingTaskNames = base.GetRemainingTaskNames();
|
||||
int num = 1 + remainingTaskNames.Count;
|
||||
List<string> list = new List<string>(num);
|
||||
CollectionsMarshal.SetCount(list, num);
|
||||
Span<string> span = CollectionsMarshal.AsSpan(list);
|
||||
int num2 = 0;
|
||||
span[num2] = text;
|
||||
num2++;
|
||||
{
|
||||
foreach (string item in remainingTaskNames)
|
||||
{
|
||||
span[num2] = item;
|
||||
num2++;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
return base.GetRemainingTaskNames();
|
||||
return P_0.Name;
|
||||
}
|
||||
|
||||
static CultureInfo _206F_200E_200D_202A_200F_200B_206A_202D_200D_202D_206A_206D_206E_206C_200B_200F_200E_206C_206B_206F_200B_200F_206B_202D_202A_206F_206E_200E_200E_200D_202B_202C_206D_206F_200E_206C_202B_206A_206B_206B_202E()
|
||||
{
|
||||
return CultureInfo.InvariantCulture;
|
||||
}
|
||||
|
||||
static void _202B_200F_202C_200F_202A_206F_200B_206A_202B_200B_202D_202D_202B_200D_206B_206C_202C_200C_200B_206A_202E_206C_200F_206B_206B_206C_202A_202D_200D_200E_206A_200F_202B_202D_206D_206A_206A_200E_206F_206E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogInformation(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200F_202D_200C_206D_206E_206B_200D_200C_200C_206F_202D_200F_200E_206A_200E_200B_206E_206C_206D_200B_200D_206A_206B_200B_206E_202E_202C_200C_200D_206B_206D_206C_206E_202A_200E_200E_200F_200F_202E_200F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static ushort _206F_206F_200C_206C_200E_206E_202B_202B_206D_200D_206D_202B_206D_206D_206A_202B_206D_206D_206E_202A_206F_206C_202D_206B_206D_202A_206F_200F_206F_206B_200E_206D_202A_202B_202A_206F_202A_202B_200E_200F_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.TerritoryId;
|
||||
}
|
||||
|
||||
static Vector3 _206B_200F_200F_202B_206B_206C_200C_206A_206A_202D_202A_202B_206A_206F_202D_200D_200D_206B_202D_202B_202C_200F_200F_206A_202C_202D_206B_202C_206C_206C_202E_202E_206A_202E_202D_200F_200E_206A_200F_206D_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.Position;
|
||||
}
|
||||
|
||||
static EStatus? _202D_202B_202E_200E_206C_200F_206D_206B_200D_200E_206E_206D_206B_206C_206C_200F_206F_200B_202A_206F_206B_202D_200D_200F_206F_206B_200F_200C_206F_202C_206F_206F_200D_200E_200C_202C_200B_206F_202E_206E_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.RequiredStatusId;
|
||||
}
|
||||
|
||||
static uint? _202A_200C_202E_202B_206C_206A_202E_206C_206D_202C_200E_200D_206D_206C_200C_200D_200B_200C_200E_200D_206C_206F_200E_206C_200F_206F_206E_206B_202E_206E_200D_206B_206F_206C_206D_206F_206A_202D_206A_200F_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.TransformNpcDataId;
|
||||
}
|
||||
|
||||
static Vector3? _202A_206E_202D_200E_202D_200E_206D_202A_202C_202B_202B_202E_206B_200B_202D_206C_202C_206D_200E_206E_202C_200E_200B_206F_202E_206A_206F_206F_200C_206A_202A_200C_200E_202A_206B_200D_200C_206C_206B_200E_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.TransformNpcPosition;
|
||||
}
|
||||
|
||||
static List<FateActionTarget> _202C_200D_200B_206B_206C_200F_206E_202D_206F_206A_206D_202C_206D_202A_202C_202D_200E_202B_202D_202A_202D_202B_200E_200F_202A_206D_206D_202D_206A_206E_200B_202A_206B_206A_206E_206B_206B_202A_206E_206A_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.Targets;
|
||||
}
|
||||
|
||||
static EAction? _206B_200F_206B_202A_206A_202B_206C_206F_206C_202E_202A_200C_206F_206F_202C_206C_206D_206E_206B_206B_206B_200F_200D_206A_202E_202B_202C_206B_206B_206D_206A_206D_200E_202C_202E_206C_206C_202E_200D_200D_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.StopAction;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,148 +1,78 @@
|
|||
#define RELEASE
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.FatePaths;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.Windows.QuestComponents;
|
||||
using Questionable.Validation;
|
||||
using Questionable.Validation.Validators;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class FateDefinitionRegistry
|
||||
internal sealed class FateDefinitionRegistry : DefinitionRegistry<FateDefinition>
|
||||
{
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
|
||||
private readonly ILogger<FateDefinitionRegistry> _logger;
|
||||
|
||||
private readonly Dictionary<ushort, FateDefinition> _definitions = new Dictionary<ushort, FateDefinition>();
|
||||
|
||||
public IReadOnlyDictionary<ushort, FateDefinition> Definitions => _definitions;
|
||||
|
||||
public FateDefinitionRegistry(IDalamudPluginInterface pluginInterface, ILogger<FateDefinitionRegistry> logger)
|
||||
protected override string TypeLabel
|
||||
{
|
||||
_pluginInterface = pluginInterface;
|
||||
_logger = logger;
|
||||
Reload();
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
_definitions.Clear();
|
||||
LoadFromAssembly();
|
||||
try
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "FateDefinitions")));
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_logger.LogError(exception, "Failed to load FATE definitions from user directory (some may have been successfully loaded)");
|
||||
}
|
||||
RemoveExpiredDefinitions();
|
||||
_logger.LogInformation("Loaded {Count} FATE definitions in total", _definitions.Count);
|
||||
}
|
||||
|
||||
[Conditional("RELEASE")]
|
||||
private void LoadFromAssembly()
|
||||
{
|
||||
_logger.LogInformation("Loading FATE definitions from assembly");
|
||||
IReadOnlyDictionary<ushort, FateDefinition> definitions = AssemblyFateDefinitionLoader.GetDefinitions();
|
||||
_logger.LogInformation("AssemblyFateDefinitionLoader returned {Count} definitions", definitions.Count);
|
||||
foreach (var (key, value) in definitions)
|
||||
{
|
||||
_definitions[key] = value;
|
||||
}
|
||||
_logger.LogInformation("Loaded {Count} FATE definitions from assembly", _definitions.Count);
|
||||
}
|
||||
|
||||
[Conditional("DEBUG")]
|
||||
private void LoadFromProjectDirectory()
|
||||
{
|
||||
DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent;
|
||||
if (directoryInfo == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
DirectoryInfo directoryInfo2 = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "FatePaths"));
|
||||
if (directoryInfo2.Exists)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(directoryInfo2);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_definitions.Clear();
|
||||
_logger.LogError(exception, "Failed to load FATE definitions from project directory");
|
||||
}
|
||||
return 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>(70009244);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadFromDirectory(DirectoryInfo directory)
|
||||
protected override string ConfigDirectoryName
|
||||
{
|
||||
if (!directory.Exists)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
_logger.LogInformation("Not loading FATE definitions from {DirectoryName} (doesn't exist)", directory);
|
||||
return;
|
||||
}
|
||||
FileInfo[] files = directory.GetFiles("*.json");
|
||||
foreach (FileInfo fileInfo in files)
|
||||
{
|
||||
try
|
||||
{
|
||||
ushort? num = ExtractIdFromName(fileInfo.Name);
|
||||
if (!num.HasValue)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
using FileStream utf8Json = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read);
|
||||
FateDefinition fateDefinition = JsonSerializer.Deserialize<FateDefinition>(utf8Json);
|
||||
if (fateDefinition != null)
|
||||
{
|
||||
_definitions[num.Value] = fateDefinition;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_logger.LogError(exception, "Unable to load FATE definition file {FileName}", fileInfo.FullName);
|
||||
}
|
||||
return 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>(223633553);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveExpiredDefinitions()
|
||||
protected override string ProjectDirectoryName
|
||||
{
|
||||
foreach (ushort item in (from kvp in _definitions.Where<KeyValuePair<ushort, FateDefinition>>(delegate(KeyValuePair<ushort, FateDefinition> kvp)
|
||||
{
|
||||
DateTime? eventExpiry = kvp.Value.EventExpiry;
|
||||
if (eventExpiry.HasValue)
|
||||
{
|
||||
DateTime valueOrDefault = eventExpiry.GetValueOrDefault();
|
||||
return EventInfoComponent.NormalizeExpiry(valueOrDefault) < DateTime.UtcNow;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
select kvp.Key).ToList())
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
_logger.LogInformation("Removing expired FATE definition {Id} '{Name}'", item, _definitions[item].Name);
|
||||
_definitions.Remove(item);
|
||||
return 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>(1573744777);
|
||||
}
|
||||
}
|
||||
|
||||
private static ushort? ExtractIdFromName(string fileName)
|
||||
protected override EPathType PathType => EPathType.Fate;
|
||||
|
||||
public FateDefinitionRegistry(IDalamudPluginInterface pluginInterface, FateSchemaValidator fateSchemaValidator, QuestValidator questValidator, ILogger<FateDefinitionRegistry> logger)
|
||||
: base(pluginInterface, (IDefinitionSchemaValidator)fateSchemaValidator, questValidator, (ILogger)logger)
|
||||
{
|
||||
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
|
||||
if (!fileNameWithoutExtension.Contains('_', StringComparison.Ordinal))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (ushort.TryParse(fileNameWithoutExtension.Split('_', 2)[0], out var result))
|
||||
{
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override IReadOnlyDictionary<ushort, FateDefinition> GetAssemblyDefinitions()
|
||||
{
|
||||
return _206E_200D_202D_200F_206F_202C_202C_202E_200E_202B_202C_200F_206C_206F_206F_206A_206F_206D_206F_206D_200B_202C_206B_206F_206F_206C_202E_202C_200F_206B_202B_202C_206F_206B_200F_200D_206A_202D_202E_206D_202E();
|
||||
}
|
||||
|
||||
protected override DateTime? GetExpiry(FateDefinition definition)
|
||||
{
|
||||
return _206A_202B_200B_202E_206A_206B_206F_206D_202D_202A_202E_202B_200B_206D_206D_206B_206C_200E_206B_202E_202A_206E_206A_200C_202D_200E_200C_202B_202D_202B_202C_202B_200C_202A_202E_200B_202D_202C_200D_202C_202E(definition);
|
||||
}
|
||||
|
||||
protected override string? GetName(FateDefinition definition)
|
||||
{
|
||||
return _206D_200D_206C_202B_202C_206C_206B_202B_200D_206F_206E_202D_206E_200F_206A_206B_200D_200E_200D_200C_206F_206A_200F_200F_202C_206A_206F_200D_202D_206F_206A_200C_206E_202D_206E_200E_200D_200F_206E_202C_202E(definition);
|
||||
}
|
||||
|
||||
static IReadOnlyDictionary<ushort, FateDefinition> _206E_200D_202D_200F_206F_202C_202C_202E_200E_202B_202C_200F_206C_206F_206F_206A_206F_206D_206F_206D_200B_202C_206B_206F_206F_206C_202E_202C_200F_206B_202B_202C_206F_206B_200F_200D_206A_202D_202E_206D_202E()
|
||||
{
|
||||
return AssemblyFateDefinitionLoader.GetDefinitions();
|
||||
}
|
||||
|
||||
static DateTime? _206A_202B_200B_202E_206A_206B_206F_206D_202D_202A_202E_202B_200B_206D_206D_206B_206C_200E_206B_202E_202A_206E_206A_200C_202D_200E_200C_202B_202D_202B_202C_202B_200C_202A_202E_200B_202D_202C_200D_202C_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.EventExpiry;
|
||||
}
|
||||
|
||||
static string _206D_200D_206C_202B_202C_206C_206B_202B_200D_206F_206E_202D_206E_200F_206A_206B_200D_200E_200D_200C_206F_206A_200F_200F_202C_206A_206F_200D_202D_206F_206A_200C_206E_202D_206E_200E_200D_200F_206E_202C_202E(FateDefinition P_0)
|
||||
{
|
||||
return P_0.Name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
830
Questionable/Questionable.Controller/FishingController.cs
Normal file
830
Questionable/Questionable.Controller/FishingController.cs
Normal file
|
|
@ -0,0 +1,830 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||
using LLib.Fishing;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.CustomDelivery;
|
||||
using Questionable.Controller.Steps;
|
||||
using Questionable.Controller.Steps.Common;
|
||||
using Questionable.Data;
|
||||
using Questionable.External;
|
||||
using Questionable.Navigation;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class FishingController : MiniTaskController<FishingController>
|
||||
{
|
||||
public sealed record FishingRequest(uint ItemId, int Quantity, ushort Collectability)
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private Type EqualityContract
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return _202A_200B_206F_202C_206E_206F_206E_202B_206A_200F_200D_206F_202A_200C_200C_206B_202A_206B_206B_202A_206A_206C_200D_206A_206C_202E_200F_202B_202D_202C_206D_202C_200C_200F_206D_202C_202C_200E_202B_202D_202E(typeof(FishingRequest).TypeHandle);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _200C_206F_200E_200F_202B_200D_200E_206F_206F_202B_206C_200C_202C_200B_202B_200D_200B_200F_206E_206F_202A_200C_202C_206E_200B_200C_206E_206B_202D_206E_200D_200E_202E_206F_200F_206C_206E_206A_200F_206E_202E();
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(stringBuilder, 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>(-149753861));
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(stringBuilder, 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>(698284764));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? (-649209154) : (-649209155));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -649209156;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -649209155;
|
||||
break;
|
||||
case 1:
|
||||
_200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(stringBuilder, ' ');
|
||||
num = -649209154;
|
||||
break;
|
||||
case 2:
|
||||
_200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(stringBuilder, '}');
|
||||
return _200B_200E_200E_200C_206C_200B_206B_206F_202B_200C_200C_206B_200F_200C_200D_200B_200B_202D_206C_202D_200D_200E_200D_200E_206F_206A_206F_202C_202A_206A_206E_206E_206B_206A_206A_206B_202C_200F_206C_200C_202E((object)stringBuilder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_202B_202C_200F_200F_206D_206C_202C_202A_202E_206E_202C_200F_202B_206F_206E_206B_206E_202B_200E_200B_202A_206C_200E_202B_202E_200C_202A_206D_200C_202E_200E_200F_200C_200F_200E_202B_206A_202E_202B_206B_202E();
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, 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>(-1176260912));
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, ItemId.ToString());
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, 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>(-563538637));
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, Quantity.ToString());
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, 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>(1025003851));
|
||||
_200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(builder, Collectability.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(FishingRequest? other)
|
||||
{
|
||||
int num = (((object)this == other) ? 677274432 : 677274436);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 677274434;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 677274436;
|
||||
break;
|
||||
case 4:
|
||||
num = ((!_200C_200C_202C_206E_200D_202B_200B_202E_202B_200F_206F_200B_202D_202B_200B_202E_202A_200B_200B_206E_200B_206A_206B_206D_206B_202A_200C_206F_202A_206E_206F_202E_206A_206E_202E_206D_200F_200B_202D_202A_202E(EqualityContract, other.EqualityContract)) ? 677274435 : 677274437);
|
||||
break;
|
||||
case 3:
|
||||
num = ((!EqualityComparer<int>.Default.Equals(Quantity, other.Quantity)) ? 677274435 : 677274439);
|
||||
break;
|
||||
case 5:
|
||||
return EqualityComparer<ushort>.Default.Equals(Collectability, other.Collectability);
|
||||
case 7:
|
||||
num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? 677274435 : 677274433);
|
||||
break;
|
||||
case 1:
|
||||
return false;
|
||||
case 6:
|
||||
num = (((object)other == null) ? 677274435 : 677274438);
|
||||
break;
|
||||
case 2:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<FishingRequest>.Equals(FishingRequest? other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static Type _202A_200B_206F_202C_206E_206F_206E_202B_206A_200F_200D_206F_202A_200C_200C_206B_202A_206B_206B_202A_206A_206C_200D_206A_206C_202E_200F_202B_202D_202C_206D_202C_200C_200F_206D_202C_202C_200E_202B_202D_202E(RuntimeTypeHandle P_0)
|
||||
{
|
||||
return Type.GetTypeFromHandle(P_0);
|
||||
}
|
||||
|
||||
static StringBuilder _200C_206F_200E_200F_202B_200D_200E_206F_206F_202B_206C_200C_202C_200B_202B_200D_200B_200F_206E_206F_202A_200C_202C_206E_200B_200C_206E_206B_202D_206E_200D_200E_202E_206F_200F_206C_206E_206A_200F_206E_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _200B_206F_202D_200E_202C_202A_200F_202D_200D_206F_206A_200E_200C_202C_206F_200C_202B_200E_200C_200D_202C_202E_202A_202B_202B_200C_202B_202D_200D_200E_206E_206F_200B_202C_206C_206C_206F_206F_206D_206B_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _200C_206B_202B_206F_202D_206B_206E_200F_206B_200E_202A_206E_206E_202C_200E_200E_202B_206E_202E_200D_202B_200B_202D_206F_206E_200C_200C_206D_200B_206E_200B_200C_200D_206C_202B_200E_200E_202E_200F_206C_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _200B_200E_200E_200C_206C_200B_206B_206F_202B_200C_200C_206B_200F_200C_200D_200B_200B_202D_206C_202D_200D_200E_200D_200E_206F_206A_206F_202C_202A_206A_206E_206E_206B_206A_206A_206B_202C_200F_206C_200C_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static void _202B_202C_200F_200F_206D_206C_202C_202A_202E_206E_202C_200F_202B_206F_206E_206B_206E_202B_200E_200B_202A_206C_200E_202B_202E_200C_202A_206D_200C_202E_200E_200F_200C_200F_200E_202B_206A_202E_202B_206B_202E()
|
||||
{
|
||||
RuntimeHelpers.EnsureSufficientExecutionStack();
|
||||
}
|
||||
|
||||
static bool _200C_200C_202C_206E_200D_202B_200B_202E_202B_200F_206F_200B_202D_202B_200B_202E_202A_200B_200B_206E_200B_206A_206B_206D_206B_202A_200C_206F_202A_206E_206F_202E_206A_206E_202E_206D_200F_200B_202D_202A_202E(Type P_0, Type P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
}
|
||||
}
|
||||
|
||||
public enum EFishingState
|
||||
{
|
||||
Idle,
|
||||
Navigating,
|
||||
Orienting,
|
||||
Preparing,
|
||||
Fishing,
|
||||
Complete
|
||||
}
|
||||
|
||||
private const long FishingTimeoutMs = 180000L;
|
||||
|
||||
private const uint CollectorsGloveActionId = 4101u;
|
||||
|
||||
private const uint CollectorsGloveStatusId = 805u;
|
||||
|
||||
private const uint CastActionId = 289u;
|
||||
|
||||
private const uint VersatileLureId = 29717u;
|
||||
|
||||
private const int LurePurchaseQuantity = 99;
|
||||
|
||||
private readonly FishingData _fishingData;
|
||||
|
||||
private readonly AutoHookIpc _autoHookIpc;
|
||||
|
||||
private readonly VendorResolverService _vendorResolver;
|
||||
|
||||
private readonly NavmeshIpc _navmeshIpc;
|
||||
|
||||
private readonly SmartNavRouteEnqueuer _routeEnqueuer;
|
||||
|
||||
private readonly IObjectTable _objectTable;
|
||||
|
||||
private readonly ICondition _condition;
|
||||
|
||||
private FishingRequest? _currentRequest;
|
||||
|
||||
private long _fishStartMs;
|
||||
|
||||
private int _lastFishCount;
|
||||
|
||||
private long _actionThrottle;
|
||||
|
||||
private bool _baitReady;
|
||||
|
||||
public EFishingState State { get; private set; }
|
||||
|
||||
public bool IsRunning
|
||||
{
|
||||
get
|
||||
{
|
||||
int num = ((State == EFishingState.Idle) ? (-112078876) : (-112078873));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -112078874;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_0046;
|
||||
case 2:
|
||||
return false;
|
||||
case 1:
|
||||
return State != EFishingState.Complete;
|
||||
}
|
||||
continue;
|
||||
IL_0046:
|
||||
num = -112078873;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public TaskQueue TaskQueue => _taskQueue;
|
||||
|
||||
public uint? CurrentItemId => _currentRequest?.ItemId;
|
||||
|
||||
public FishingController(FishingData fishingData, AutoHookIpc autoHookIpc, VendorResolverService vendorResolver, NavmeshIpc navmeshIpc, SmartNavRouteEnqueuer routeEnqueuer, IObjectTable objectTable, IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, ILogger<FishingController> logger)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger)
|
||||
{
|
||||
_fishingData = fishingData;
|
||||
_autoHookIpc = autoHookIpc;
|
||||
_vendorResolver = vendorResolver;
|
||||
_navmeshIpc = navmeshIpc;
|
||||
_routeEnqueuer = routeEnqueuer;
|
||||
_objectTable = objectTable;
|
||||
_condition = condition;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public bool Start(FishingRequest request)
|
||||
{
|
||||
int num = ((State == EFishingState.Idle) ? (-974820956) : (-974820954));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -974820958;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 3:
|
||||
_200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_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>(1404409549), Array.Empty<object>());
|
||||
return false;
|
||||
case 6:
|
||||
num = (_autoHookIpc.IsAvailable() ? (-974820957) : (-974820959));
|
||||
break;
|
||||
case 5:
|
||||
State = EFishingState.Navigating;
|
||||
return true;
|
||||
case 0:
|
||||
_currentRequest = null;
|
||||
return false;
|
||||
case 2:
|
||||
num = -974820954;
|
||||
break;
|
||||
case 1:
|
||||
_currentRequest = request;
|
||||
_actionThrottle = 0L;
|
||||
_baitReady = false;
|
||||
_taskQueue.Reset();
|
||||
num = (TryEnqueueApproach(request) ? (-974820953) : (-974820958));
|
||||
break;
|
||||
case 4:
|
||||
_200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_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>(1205637689), new object[1] { State });
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe bool TryEnqueueApproach(FishingRequest request)
|
||||
{
|
||||
FishingSpotInfo? spot;
|
||||
int num = (_fishingData.TryGetFishingSpot(request.ItemId, out spot) ? (-407149571) : (-407149573));
|
||||
FishingSpotInfo value = default(FishingSpotInfo);
|
||||
Vector3 vector = default(Vector3);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -407149570;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
_200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_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>(1931468190), Array.Empty<object>());
|
||||
return false;
|
||||
case 4:
|
||||
num = (EnqueueLurePurchase() ? (-407149572) : (-407149569));
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
value = spot.Value;
|
||||
Vector3 vector2 = new Vector3(value.X, 0f, value.Z);
|
||||
vector = _navmeshIpc.GetPointOnFloor(vector2, unlandable: false) ?? vector2;
|
||||
_202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_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>(-1546765915), new object[4] { request.ItemId, value.SpotId, value.TerritoryId, vector });
|
||||
num = ((InventoryManager.Instance()->GetInventoryItemCount(29717u, isHq: false, checkEquipped: true, checkArmory: true, 0) > 0) ? (-407149572) : (-407149574));
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
_200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_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>(281781333), new object[1] { request.ItemId });
|
||||
return false;
|
||||
case 2:
|
||||
EnqueueNavigateTo(value.TerritoryId, vector);
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
return true;
|
||||
case 0:
|
||||
num = -407149573;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected override void OnRetryStep()
|
||||
{
|
||||
int num = ((!(_currentRequest == null)) ? 1913182215 : 1913182210);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1913182211;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 1913182210;
|
||||
break;
|
||||
case 1:
|
||||
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>(-600131236));
|
||||
return;
|
||||
case 3:
|
||||
State = EFishingState.Navigating;
|
||||
return;
|
||||
case 4:
|
||||
_202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_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>(665668477), Array.Empty<object>());
|
||||
_baitReady = false;
|
||||
num = (TryEnqueueApproach(_currentRequest) ? 1913182208 : 1913182209);
|
||||
break;
|
||||
case 2:
|
||||
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>(1698802452));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public EFishingState Update()
|
||||
{
|
||||
int num = ((State == EFishingState.Idle) ? (-1688940603) : (-1688940605));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1688940604;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 4:
|
||||
num = -1688940607;
|
||||
break;
|
||||
case 2:
|
||||
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>(-975449559));
|
||||
return EFishingState.Idle;
|
||||
case 6:
|
||||
return UpdateOrienting();
|
||||
case 7:
|
||||
num = ((State != EFishingState.Complete) ? (-1688940593) : (-1688940603));
|
||||
break;
|
||||
case 10:
|
||||
goto IL_00b0;
|
||||
case 5:
|
||||
return State;
|
||||
case 0:
|
||||
num = -1688940605;
|
||||
break;
|
||||
case 11:
|
||||
num = ((!(_currentRequest == null)) ? (-1688940595) : (-1688940602));
|
||||
break;
|
||||
case 1:
|
||||
return State;
|
||||
case 3:
|
||||
goto IL_00f7;
|
||||
case 8:
|
||||
goto IL_00fe;
|
||||
case 9:
|
||||
{
|
||||
switch (State)
|
||||
{
|
||||
case EFishingState.Orienting:
|
||||
break;
|
||||
case EFishingState.Preparing:
|
||||
goto IL_00b0;
|
||||
case EFishingState.Fishing:
|
||||
goto IL_00f7;
|
||||
case EFishingState.Navigating:
|
||||
goto IL_00fe;
|
||||
default:
|
||||
goto IL_0124;
|
||||
}
|
||||
goto case 6;
|
||||
}
|
||||
IL_0124:
|
||||
num = -1688940608;
|
||||
break;
|
||||
IL_00fe:
|
||||
return UpdateNavigating();
|
||||
IL_00f7:
|
||||
return UpdateFishing();
|
||||
IL_00b0:
|
||||
return UpdatePreparing();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private EFishingState UpdateNavigating()
|
||||
{
|
||||
int num = ((!_taskQueue.AllTasksComplete) ? (-1280253675) : (-1280253674));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1280253673;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004d;
|
||||
case 1:
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(2136190681), Array.Empty<object>());
|
||||
State = EFishingState.Orienting;
|
||||
return State;
|
||||
case 2:
|
||||
UpdateCurrentTask();
|
||||
return State;
|
||||
}
|
||||
continue;
|
||||
IL_004d:
|
||||
num = -1280253674;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe EFishingState UpdateOrienting()
|
||||
{
|
||||
IPlayerCharacter playerCharacter = _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(_objectTable);
|
||||
int num = ((playerCharacter != null) ? (-1536188772) : (-1536188775));
|
||||
Vector3 vector = default(Vector3);
|
||||
(float, Vector3)? tuple = default((float, Vector3)?);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1536188776;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
_200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_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>(-1988024988), new object[1] { vector });
|
||||
Stop(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>(1777525514));
|
||||
return State;
|
||||
case 0:
|
||||
{
|
||||
Vector3 item = tuple.Value.Item2;
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(-245731895), new object[1] { item });
|
||||
ActionManager.Instance()->AutoFaceTargetPosition(&item, 0uL);
|
||||
State = EFishingState.Preparing;
|
||||
return State;
|
||||
}
|
||||
case 4:
|
||||
vector = _206F_206A_206A_200E_206E_200B_206E_202A_206D_206B_206F_206F_202E_206C_200D_200B_200C_206D_206B_202C_200C_202B_202A_202B_200B_200D_206F_202A_200F_202B_206A_206F_206C_206E_202A_202B_202D_202A_202C_202B_202E((IGameObject)playerCharacter);
|
||||
tuple = _202D_206F_206C_206C_206D_202A_206E_206F_206E_206A_202C_200C_200D_202A_202E_206D_206E_206E_206F_200D_206D_200D_206C_200D_200E_200D_206B_200C_206D_206C_206C_206D_202E_202D_206E_206C_206E_206D_206C_202E_202E(vector, 36);
|
||||
num = (tuple.HasValue ? (-1536188776) : (-1536188774));
|
||||
break;
|
||||
case 3:
|
||||
num = -1536188775;
|
||||
break;
|
||||
case 1:
|
||||
return State;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe EFishingState UpdatePreparing()
|
||||
{
|
||||
int num = (CanUseActionNow() ? (-747465758) : (-747465753));
|
||||
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -747465756;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 12:
|
||||
num = ((_currentRequest.Collectability <= 0) ? (-747465748) : (-747465747));
|
||||
break;
|
||||
case 7:
|
||||
{
|
||||
BattleChara* ptr = (BattleChara*)_200F_202E_200E_206A_202B_200E_206D_206B_200F_202E_206B_206B_200C_202A_206B_206F_206E_202D_202D_200F_202B_202D_206A_200C_206D_200D_202B_200B_206F_202C_206E_200D_206E_200D_206D_206A_202C_206C_206B_206C_202E((IGameObject)playerCharacter);
|
||||
num = (ptr->GetStatusManager()->HasStatus(805u) ? (-747465748) : (-747465755));
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
return State;
|
||||
case 5:
|
||||
num = ((!_autoHookIpc.SwapBaitById(29717u)) ? (-747465754) : (-747465746));
|
||||
break;
|
||||
case 11:
|
||||
return State;
|
||||
case 8:
|
||||
_autoHookIpc.SetPluginState(enabled: true);
|
||||
_autoHookIpc.SetAutoStartFishing(enabled: true);
|
||||
_fishStartMs = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E();
|
||||
_lastFishCount = GetItemCount();
|
||||
State = EFishingState.Fishing;
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(1666126604), Array.Empty<object>());
|
||||
return State;
|
||||
case 9:
|
||||
playerCharacter = _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(_objectTable);
|
||||
num = ((playerCharacter == null) ? (-747465748) : (-747465757));
|
||||
break;
|
||||
case 4:
|
||||
num = -747465753;
|
||||
break;
|
||||
case 6:
|
||||
num = (_baitReady ? (-747465752) : (-747465759));
|
||||
break;
|
||||
case 1:
|
||||
num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 4101u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-747465745) : (-747465756));
|
||||
break;
|
||||
case 10:
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(-1055152276), Array.Empty<object>());
|
||||
_baitReady = true;
|
||||
_actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 500;
|
||||
return State;
|
||||
case 2:
|
||||
_200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_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>(-1448574380), Array.Empty<object>());
|
||||
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>(-1247119621));
|
||||
return State;
|
||||
case 0:
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(1852976997), Array.Empty<object>());
|
||||
ActionManager.Instance()->UseAction(ActionType.Action, 4101u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null);
|
||||
_actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 1000;
|
||||
num = -747465745;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe EFishingState UpdateFishing()
|
||||
{
|
||||
int itemCount = GetItemCount();
|
||||
int num = ((itemCount <= _lastFishCount) ? (-1919966564) : (-1919966563));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1919966576;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
return State;
|
||||
case 0:
|
||||
num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Fishing) ? (-1919966565) : (-1919966569));
|
||||
break;
|
||||
case 2:
|
||||
_200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_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>(1428296655), new object[1] { 180000L });
|
||||
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>(1371551999));
|
||||
return State;
|
||||
case 7:
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(273212512), Array.Empty<object>());
|
||||
State = EFishingState.Complete;
|
||||
DisableAutoHookAutoStart();
|
||||
num = -1919966565;
|
||||
break;
|
||||
case 12:
|
||||
num = ((_200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() - _fishStartMs <= 180000) ? (-1919966568) : (-1919966574));
|
||||
break;
|
||||
case 3:
|
||||
num = ((ActionManager.Instance()->GetActionStatus(ActionType.Action, 289u, 3758096384uL, checkRecastActive: true, checkCastingActive: true, null) != 0) ? (-1919966575) : (-1919966571));
|
||||
break;
|
||||
case 13:
|
||||
_lastFishCount = itemCount;
|
||||
_fishStartMs = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E();
|
||||
num = -1919966564;
|
||||
break;
|
||||
case 4:
|
||||
num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Fishing) ? (-1919966575) : (-1919966567));
|
||||
break;
|
||||
case 5:
|
||||
_206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_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>(1571582558), Array.Empty<object>());
|
||||
ActionManager.Instance()->UseAction(ActionType.Action, 289u, 3758096384uL, 0u, ActionManager.UseActionMode.None, 0u, null);
|
||||
_actionThrottle = _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() + 2000;
|
||||
num = -1919966575;
|
||||
break;
|
||||
case 9:
|
||||
num = (_206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(_condition, ConditionFlag.Casting) ? (-1919966575) : (-1919966570));
|
||||
break;
|
||||
case 6:
|
||||
num = ((!CanUseActionNow()) ? (-1919966575) : (-1919966573));
|
||||
break;
|
||||
case 8:
|
||||
num = ((!HasEnoughItems()) ? (-1919966572) : (-1919966576));
|
||||
break;
|
||||
case 11:
|
||||
return State;
|
||||
case 10:
|
||||
num = -1919966563;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override void Stop(string label)
|
||||
{
|
||||
base.Stop(label);
|
||||
int num = ((State != EFishingState.Idle) ? 1276475840 : 1276475841);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1276475840;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
_202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_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>(447789808), new object[1] { label });
|
||||
DisableAutoHookAutoStart();
|
||||
_routeEnqueuer.ClearDestination();
|
||||
_taskQueue.Reset();
|
||||
_currentRequest = null;
|
||||
State = EFishingState.Idle;
|
||||
num = 1276475843;
|
||||
break;
|
||||
case 1:
|
||||
num = ((!(_currentRequest != null)) ? 1276475843 : 1276475840);
|
||||
break;
|
||||
case 3:
|
||||
return;
|
||||
case 2:
|
||||
num = 1276475841;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DisableAutoHookAutoStart()
|
||||
{
|
||||
try
|
||||
{
|
||||
_autoHookIpc.SetAutoStartFishing(enabled: false);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
private bool HasEnoughItems()
|
||||
{
|
||||
int num = ((!(_currentRequest == null)) ? 1490081139 : 1490081136);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1490081137;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004e;
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
return GetItemCount() >= _currentRequest.Quantity;
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = 1490081136;
|
||||
}
|
||||
}
|
||||
|
||||
private unsafe int GetItemCount()
|
||||
{
|
||||
int num = ((!(_currentRequest == null)) ? 1670490552 : 1670490555);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1670490553;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004e;
|
||||
case 1:
|
||||
return InventoryManager.Instance()->GetInventoryItemCount(_currentRequest.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Collectability);
|
||||
case 2:
|
||||
return 0;
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = 1670490555;
|
||||
}
|
||||
}
|
||||
|
||||
private bool CanUseActionNow()
|
||||
{
|
||||
return _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E() >= _actionThrottle;
|
||||
}
|
||||
|
||||
private void EnqueueNavigateTo(ushort territoryId, Vector3 position)
|
||||
{
|
||||
_routeEnqueuer.Enqueue(_taskQueue, territoryId, position);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private bool EnqueueLurePurchase()
|
||||
{
|
||||
VendorResolverService.VendorInfo? vendorInfo = _vendorResolver.ResolveVendor(29717u);
|
||||
int num = (vendorInfo.HasValue ? 496459254 : 496459255);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 496459254;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
_202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_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>(-26952727), new object[2]
|
||||
{
|
||||
99,
|
||||
vendorInfo.Value.VendorNpcId
|
||||
});
|
||||
EnqueueNavigateTo(vendorInfo.Value.TerritoryId, vendorInfo.Value.Position);
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
_taskQueue.Enqueue(new VendorPurchaseTask(vendorInfo.Value.VendorNpcId, new global::_003C_003Ez__ReadOnlySingleElementList<VendorPurchaseTask.PurchaseItem>(new VendorPurchaseTask.PurchaseItem(29717u, 99)), vendorInfo.Value.DialogOptionIndex));
|
||||
return true;
|
||||
case 1:
|
||||
_200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_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>(570039642), Array.Empty<object>());
|
||||
return false;
|
||||
case 2:
|
||||
goto IL_0128;
|
||||
}
|
||||
continue;
|
||||
IL_0128:
|
||||
num = 496459255;
|
||||
}
|
||||
}
|
||||
|
||||
static void _200F_206C_202B_206E_206B_206F_202C_200E_202D_200C_206E_200E_206A_202C_206F_202C_200F_202B_202C_202C_200F_202A_202E_206A_206E_202B_200D_206E_206B_202C_200D_202D_200E_206B_206D_202E_202A_206C_206E_202C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200B_206E_200F_206F_202D_200B_202B_200B_202E_202D_206D_202E_206C_206F_206C_200E_200F_202E_206C_206A_202A_206B_202D_206E_202E_206C_200D_200F_202B_200B_200C_200B_206F_202C_200F_202A_206F_202C_206C_202B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _202D_200F_200D_202D_202C_202A_200E_200D_206F_200D_200E_206E_206B_206E_200B_202E_202D_202B_202A_206F_206B_206C_206A_206B_206B_202E_202A_202B_206A_200B_206D_206E_206E_206F_206A_206E_206A_200B_206D_206F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogInformation(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206E_202B_206A_202A_202E_206E_206A_206D_206A_200B_202B_206A_202D_202B_200C_206D_200F_206F_206D_206A_202B_202A_200F_202C_202A_202E_206F_200C_200E_206B_206A_200D_200C_206D_200F_202E_200C_206E_206D_206E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _200F_202D_206D_206D_206C_206E_200B_202D_200E_202C_206B_202C_206C_206B_206D_200F_206C_200D_200C_202E_202B_200C_206A_206F_206A_202B_200D_200D_206B_206D_202B_200D_206B_200C_202B_202B_206B_200C_202A_202A_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static Vector3 _206F_206A_206A_200E_206E_200B_206E_202A_206D_206B_206F_206F_202E_206C_200D_200B_200C_206D_206B_202C_200C_202B_202A_202B_200B_200D_206F_202A_200F_202B_206A_206F_206C_206E_202A_202B_202D_202A_202C_202B_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.Position;
|
||||
}
|
||||
|
||||
static (float, Vector3)? _202D_206F_206C_206C_206D_202A_206E_206F_206E_206A_202C_200C_200D_202A_202E_206D_206E_206E_206F_200D_206D_200D_206C_200D_200E_200D_206B_200C_206D_206C_206C_206D_202E_202D_206E_206C_206E_206D_206C_202E_202E(Vector3 P_0, int P_1)
|
||||
{
|
||||
return WaterSurfaceDetector.FindFishableRotation(P_0, P_1);
|
||||
}
|
||||
|
||||
static long _200B_206B_202C_202E_206D_206F_202A_206D_206B_206B_206F_206A_206C_202B_206B_200B_200F_206E_200B_200B_200C_200D_200F_202A_206E_206A_200B_206C_206A_200E_200B_202A_202A_202B_200D_202C_206A_206D_206D_206D_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static nint _200F_202E_200E_206A_202B_200E_206D_206B_200F_202E_206B_206B_200C_202A_206B_206F_206E_202D_202D_200F_202B_202D_206A_200C_206D_200D_202B_200B_206F_202C_206E_200D_206E_200D_206D_206A_202C_206C_206B_206C_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.Address;
|
||||
}
|
||||
|
||||
static bool _206D_200F_206C_200C_200E_202C_202C_206E_206A_202E_206B_206A_206E_200C_206B_202D_200B_202D_206D_200C_206B_202B_200B_206F_202D_206E_202A_200F_200B_202D_200F_206E_200F_206A_202E_200C_206C_200B_206B_206F_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,15 @@
|
|||
#define RELEASE
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Dalamud.Plugin;
|
||||
using LLib.GameData;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
|
@ -13,139 +17,502 @@ using Questionable.Data;
|
|||
using Questionable.GatheringPaths;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Gathering;
|
||||
using Questionable.Validation;
|
||||
using Questionable.Validation.Validators;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class GatheringPointRegistry : IDisposable
|
||||
internal sealed class GatheringPointRegistry
|
||||
{
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass16_0
|
||||
{
|
||||
public uint itemId;
|
||||
|
||||
private readonly QuestRegistry _questRegistry;
|
||||
public GatheringPointRegistry _003C_003E4__this;
|
||||
|
||||
internal bool _003CTryGetGatheringPointId_003Eb__0(KeyValuePair<GatheringPointId, GatheringRoot> x)
|
||||
{
|
||||
return _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId);
|
||||
}
|
||||
|
||||
internal bool _003CTryGetGatheringPointId_003Eb__2(GatheringPointId x)
|
||||
{
|
||||
return _003C_003E4__this._gatheringData.MinerGatheringPoints.Contains(x);
|
||||
}
|
||||
|
||||
internal bool _003CTryGetGatheringPointId_003Eb__3(KeyValuePair<GatheringPointId, GatheringRoot> x)
|
||||
{
|
||||
return _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId);
|
||||
}
|
||||
|
||||
internal bool _003CTryGetGatheringPointId_003Eb__5(GatheringPointId x)
|
||||
{
|
||||
return _003C_003E4__this._gatheringData.BotanistGatheringPoints.Contains(x);
|
||||
}
|
||||
|
||||
static List<uint> _202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(GatheringRoot P_0)
|
||||
{
|
||||
return P_0.ExtraQuestItems;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
|
||||
private readonly GatheringData _gatheringData;
|
||||
|
||||
private readonly ILogger<QuestRegistry> _logger;
|
||||
private readonly GatheringSchemaValidator _gatheringSchemaValidator;
|
||||
|
||||
private readonly Dictionary<GatheringPointId, GatheringRoot> _gatheringPoints = new Dictionary<GatheringPointId, GatheringRoot>();
|
||||
private readonly QuestValidator _questValidator;
|
||||
|
||||
public GatheringPointRegistry(IDalamudPluginInterface pluginInterface, QuestRegistry questRegistry, GatheringData gatheringData, ILogger<QuestRegistry> logger)
|
||||
private readonly ILogger<GatheringPointRegistry> _logger;
|
||||
|
||||
private volatile Dictionary<GatheringPointId, GatheringRoot> _gatheringPoints = new Dictionary<GatheringPointId, GatheringRoot>();
|
||||
|
||||
public GatheringPointRegistry(IDalamudPluginInterface pluginInterface, GatheringData gatheringData, GatheringSchemaValidator gatheringSchemaValidator, QuestValidator questValidator, ILogger<GatheringPointRegistry> logger)
|
||||
{
|
||||
_pluginInterface = pluginInterface;
|
||||
_questRegistry = questRegistry;
|
||||
_gatheringData = gatheringData;
|
||||
_gatheringSchemaValidator = gatheringSchemaValidator;
|
||||
_questValidator = questValidator;
|
||||
_logger = logger;
|
||||
_questRegistry.Reloaded += OnReloaded;
|
||||
}
|
||||
|
||||
private void OnReloaded(object? sender, EventArgs e)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public Dictionary<GatheringPointId, GatheringRoot> Build()
|
||||
{
|
||||
Reload();
|
||||
Dictionary<GatheringPointId, GatheringRoot> dictionary = new Dictionary<GatheringPointId, GatheringRoot>();
|
||||
_gatheringSchemaValidator.Reset();
|
||||
LoadGatheringPointsFromAssembly(dictionary);
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(dictionary, _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)_202C_200E_206E_206B_200B_200D_206A_202C_202A_202A_206A_206E_200F_200D_206C_200F_206A_200C_206A_200F_200B_206A_206D_202A_200D_206F_206D_202C_200F_200C_200E_202A_202C_200E_202A_202C_200E_200C_200C_206D_202E(_pluginInterface)), 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>(-1200409228))));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_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>(1765916983), Array.Empty<object>());
|
||||
}
|
||||
IEnumerator<ValidationIssue> enumerator = _gatheringSchemaValidator.Validate().GetEnumerator();
|
||||
try
|
||||
{
|
||||
int num = 629723332;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 629723333;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 629723335 : 629723334);
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
ValidationIssue current = enumerator.Current;
|
||||
_questValidator.AddValidationIssue(current);
|
||||
num = 629723332;
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
num = 629723332;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_0086;
|
||||
}
|
||||
continue;
|
||||
end_IL_0086:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? 914645726 : 914645725);
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
int num3 = 914645724;
|
||||
int num4 = num7;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
goto end_IL_0129;
|
||||
case 1:
|
||||
_200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator);
|
||||
num = 914645726;
|
||||
break;
|
||||
case 0:
|
||||
num = 914645725;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_0129:
|
||||
break;
|
||||
}
|
||||
}
|
||||
_200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_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>(509143359), new object[1] { dictionary.Count });
|
||||
return dictionary;
|
||||
}
|
||||
|
||||
public void Publish(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints)
|
||||
{
|
||||
_gatheringPoints = gatheringPoints;
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
_gatheringPoints.Clear();
|
||||
LoadGatheringPointsFromAssembly();
|
||||
Publish(Build());
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[Conditional("RELEASE")]
|
||||
private void LoadGatheringPointsFromAssembly(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints)
|
||||
{
|
||||
IEnumerator<KeyValuePair<ushort, GatheringRoot>> enumerator = _202B_206E_202A_202D_206C_200E_202E_206E_202D_202B_206F_200D_206F_206B_200E_202E_200F_206C_202B_200C_200C_200D_206D_206D_202C_200C_200B_200D_202D_200C_206B_206E_202C_200C_202B_206B_206D_206A_202E_202D_202E().GetEnumerator();
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "GatheringPoints")));
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_logger.LogError(exception, "Failed to load gathering points from user directory (some may have been successfully loaded)");
|
||||
}
|
||||
_logger.LogInformation("Loaded {Count} gathering points in total", _gatheringPoints.Count);
|
||||
}
|
||||
|
||||
[Conditional("RELEASE")]
|
||||
private void LoadGatheringPointsFromAssembly()
|
||||
{
|
||||
_logger.LogInformation("Loading gathering points from assembly");
|
||||
IReadOnlyDictionary<ushort, GatheringRoot> locations = AssemblyGatheringLocationLoader.GetLocations();
|
||||
_logger.LogInformation("AssemblyGatheringLocationLoader returned {Count} locations", locations.Count);
|
||||
foreach (var (value, value2) in locations)
|
||||
{
|
||||
_gatheringPoints[new GatheringPointId(value)] = value2;
|
||||
}
|
||||
_logger.LogInformation("Loaded {Count} gathering points from assembly", _gatheringPoints.Count);
|
||||
}
|
||||
|
||||
[Conditional("DEBUG")]
|
||||
private void LoadGatheringPointsFromProjectDirectory()
|
||||
{
|
||||
DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent;
|
||||
_logger.LogInformation("Looking for gathering paths in solution directory: {SolutionDirectory}", directoryInfo?.FullName ?? "(null)");
|
||||
if (directoryInfo != null)
|
||||
{
|
||||
DirectoryInfo directoryInfo2 = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "GatheringPaths"));
|
||||
_logger.LogInformation("Gathering paths project directory: {PathProjectDirectory}, Exists: {Exists}", directoryInfo2.FullName, directoryInfo2.Exists);
|
||||
if (!directoryInfo2.Exists)
|
||||
int num = 136315747;
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
foreach (string value in ExpansionData.ExpansionFolders.Values)
|
||||
int num2 = num;
|
||||
int num3 = 136315744;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
LoadFromDirectory(new DirectoryInfo(Path.Combine(directoryInfo2.FullName, value)));
|
||||
case 0:
|
||||
num = 136315747;
|
||||
break;
|
||||
case 3:
|
||||
num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 136315746 : 136315745);
|
||||
break;
|
||||
case 2:
|
||||
var (num8, value) = (KeyValuePair<ushort, GatheringRoot>)(ref enumerator.Current);
|
||||
gatheringPoints[_206A_200B_206E_202D_202C_206C_206B_200E_202B_200B_200B_200D_206E_202B_206A_200D_206E_206E_200F_206E_200E_202B_200E_202D_200C_206F_200C_206E_206C_200F_206A_206F_206D_200B_200E_200B_200E_200E_206B_200E_202E(num8)] = value;
|
||||
num = 136315747;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_0017;
|
||||
}
|
||||
return;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_gatheringPoints.Clear();
|
||||
_logger.LogError(exception, "Failed to load gathering points from project directory");
|
||||
return;
|
||||
continue;
|
||||
end_IL_0017:
|
||||
break;
|
||||
}
|
||||
}
|
||||
_logger.LogWarning("Could not determine solution directory from assembly location: {AssemblyLocation}", _pluginInterface.AssemblyLocation.FullName);
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? 1026507161 : 1026507162);
|
||||
while (true)
|
||||
{
|
||||
int num9 = num;
|
||||
int num3 = 1026507163;
|
||||
int num4 = num9;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = 1026507162;
|
||||
break;
|
||||
case 1:
|
||||
_200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator);
|
||||
num = 1026507161;
|
||||
break;
|
||||
case 2:
|
||||
goto end_IL_00cc;
|
||||
}
|
||||
continue;
|
||||
end_IL_00cc:
|
||||
break;
|
||||
}
|
||||
}
|
||||
_200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_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>(1162006669), new object[1] { gatheringPoints.Count });
|
||||
}
|
||||
|
||||
private void LoadGatheringPointFromStream(string fileName, Stream stream)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[Conditional("DEBUG")]
|
||||
private void LoadGatheringPointsFromProjectDirectory(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints)
|
||||
{
|
||||
DirectoryInfo directoryInfo = _200E_206A_200F_206A_206F_202B_202A_200C_200C_206B_206D_200D_200C_200E_206F_200D_206B_206E_206E_202B_206F_206F_206D_206F_206F_200F_200E_202A_202B_200B_206A_206A_206E_202B_202D_202A_206B_200E_200C_200F_202E(_200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(_pluginInterface));
|
||||
object obj;
|
||||
if (directoryInfo == null)
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
DirectoryInfo directoryInfo2 = _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(directoryInfo);
|
||||
obj = ((directoryInfo2 != null) ? _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(directoryInfo2) : null);
|
||||
}
|
||||
DirectoryInfo directoryInfo3 = (DirectoryInfo)obj;
|
||||
int num = ((directoryInfo3 != null) ? 750633398 : 750633399);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 750633398;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
goto IL_0081;
|
||||
case 1:
|
||||
_206D_200C_202C_206C_206D_206B_202C_202B_202D_206D_200B_206D_202A_200C_202C_206A_202D_200C_200C_200D_206F_200C_202A_206A_200F_200C_202C_200D_202A_200F_202B_200E_206E_202C_202C_202E_202E_206A_202A_200F_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>(-793417510), new object[1] { _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)_200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(_pluginInterface)) });
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
DirectoryInfo directoryInfo4 = _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_200D_200B_202E_200F_202A_206D_200C_206A_202A_206D_206F_202D_200B_206C_206D_202D_202C_202E_200D_206A_202A_206E_200D_206F_206C_202D_206F_200E_202D_202B_200D_202D_202D_206B_202E_200C_206D_200E_202A_202B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)directoryInfo3), 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>(-1542749489), 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>(-1860611895)));
|
||||
try
|
||||
{
|
||||
IEnumerator<string> enumerator = ExpansionData.ExpansionFolders.Values.GetEnumerator();
|
||||
try
|
||||
{
|
||||
num = 1661986268;
|
||||
while (true)
|
||||
{
|
||||
int num7 = num;
|
||||
num3 = 1661986269;
|
||||
num4 = num7;
|
||||
int num8 = num4 + num3;
|
||||
int num9 = num4 & num3;
|
||||
switch (num8 - (num9 + num9))
|
||||
{
|
||||
case 0:
|
||||
num = 1661986268;
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
string current = enumerator.Current;
|
||||
LoadFromDirectory(gatheringPoints, _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(_202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(_202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)directoryInfo4), current)));
|
||||
num = 1661986268;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
num = (_206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E((IEnumerator)enumerator) ? 1661986271 : 1661986270);
|
||||
break;
|
||||
case 3:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = ((enumerator == null) ? 867053132 : 867053133);
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = 867053132;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = 867053133;
|
||||
break;
|
||||
case 1:
|
||||
_200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)enumerator);
|
||||
num = 867053132;
|
||||
break;
|
||||
case 0:
|
||||
goto end_IL_01ac;
|
||||
}
|
||||
continue;
|
||||
end_IL_01ac:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
gatheringPoints.Clear();
|
||||
_202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E((ILogger)_logger, ex, 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>(1894668085), Array.Empty<object>());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_0081:
|
||||
num = 750633399;
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadGatheringPointFromStream(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints, string fileName, Stream stream)
|
||||
{
|
||||
GatheringPointId gatheringPointId = ExtractGatheringPointIdFromName(fileName);
|
||||
if (!(gatheringPointId == null))
|
||||
int num = ((!_206F_206D_202E_206E_202B_200B_200F_206F_206E_206F_202A_206F_206C_206E_200E_206F_200E_202B_206F_202A_206B_202E_200F_202A_202D_206C_202A_206E_206F_206F_200C_206A_206F_202E_206B_202A_200E_206C_200F_202E(gatheringPointId, (GatheringPointId)null)) ? 1532040796 : 1532040799);
|
||||
JsonNode jsonNode = default(JsonNode);
|
||||
while (true)
|
||||
{
|
||||
_gatheringPoints[gatheringPointId] = JsonSerializer.Deserialize<GatheringRoot>(stream);
|
||||
int num2 = num;
|
||||
int num3 = 1532040798;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
return;
|
||||
case 3:
|
||||
num = 1532040799;
|
||||
break;
|
||||
case 2:
|
||||
jsonNode = _200B_206C_202C_202B_206F_200D_202A_206D_206E_206B_206F_202C_200B_202B_200C_200F_206F_206F_202D_200C_206E_202C_206E_200D_200F_200F_200D_200F_206C_202E_206A_206F_200D_202D_202A_202B_206F_206B_206F_206B_202E(stream, (JsonNodeOptions?)null, default(JsonDocumentOptions));
|
||||
num = ((jsonNode != null) ? 1532040794 : 1532040798);
|
||||
break;
|
||||
case 4:
|
||||
_gatheringSchemaValidator.Enqueue(_200B_200E_202E_202B_206C_200E_200B_206D_200B_200D_206C_206F_200E_202E_206C_206D_202B_206E_200B_200C_200C_200F_200D_200D_206B_200E_206A_206E_206D_202A_202C_202A_206E_200F_200F_200F_206D_206D_200E_200F_202E(gatheringPointId), jsonNode);
|
||||
gatheringPoints[gatheringPointId] = jsonNode.Deserialize<GatheringRoot>();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadFromDirectory(DirectoryInfo directory)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void LoadFromDirectory(Dictionary<GatheringPointId, GatheringRoot> gatheringPoints, DirectoryInfo directory)
|
||||
{
|
||||
if (!directory.Exists)
|
||||
int num = (_200E_202A_206F_200B_206E_206E_206D_200D_200B_202C_202C_206E_206D_206D_206E_202C_206E_200C_202A_206D_206E_200D_200B_206E_202C_202C_202B_200C_202D_200F_200D_200F_206C_202A_200D_206E_206B_202A_206A_206A_202E((FileSystemInfo)directory) ? (-2030197123) : (-2030197122));
|
||||
DirectoryInfo[] array2 = default(DirectoryInfo[]);
|
||||
while (true)
|
||||
{
|
||||
_logger.LogInformation("Not loading gathering points from {DirectoryName} (doesn't exist)", directory);
|
||||
return;
|
||||
}
|
||||
FileInfo[] files = directory.GetFiles("*.json");
|
||||
foreach (FileInfo fileInfo in files)
|
||||
{
|
||||
try
|
||||
int num2 = num;
|
||||
int num3 = -2030197121;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
using FileStream stream = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read);
|
||||
LoadGatheringPointFromStream(fileInfo.Name, stream);
|
||||
}
|
||||
catch (Exception innerException)
|
||||
case 0:
|
||||
goto IL_0051;
|
||||
case 1:
|
||||
_200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_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>(-1603379103), new object[1] { directory });
|
||||
return;
|
||||
case 2:
|
||||
{
|
||||
throw new InvalidDataException("Unable to load file " + fileInfo.FullName, innerException);
|
||||
FileInfo[] array = _206F_202B_202A_202E_202C_206C_200F_200E_206A_202A_202A_200B_202C_206D_202E_206F_202A_200B_206A_206F_206F_202B_206E_200E_202E_200F_200F_202C_206D_200F_206D_206A_206B_202B_206F_206A_200D_200F_200F_202A_202E(directory, 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>(1350212695));
|
||||
int num7;
|
||||
for (num7 = 0; num7 < array.Length; num7 = (num4 | num3) + (num4 & num3))
|
||||
{
|
||||
FileInfo fileInfo = array[num7];
|
||||
try
|
||||
{
|
||||
FileStream fileStream = _200C_206E_206C_206F_206C_206E_206E_200B_202D_200B_200E_200D_206F_202A_200F_206E_206D_202A_200B_200E_202B_202D_206B_206E_206B_202C_202C_206B_202A_202C_202A_202B_206A_200C_202A_206A_200F_202A_202D_202B_202E(fileInfo);
|
||||
try
|
||||
{
|
||||
LoadGatheringPointFromStream(gatheringPoints, _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo), fileStream);
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = ((fileStream == null) ? (-1087514602) : (-1087514603));
|
||||
while (true)
|
||||
{
|
||||
int num8 = num;
|
||||
num3 = -1087514601;
|
||||
num4 = num8;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -1087514603;
|
||||
break;
|
||||
case 2:
|
||||
_200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E((IDisposable)fileStream);
|
||||
num = -1087514602;
|
||||
break;
|
||||
case 1:
|
||||
goto end_IL_00d1;
|
||||
}
|
||||
continue;
|
||||
end_IL_00d1:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JsonException ex)
|
||||
{
|
||||
GatheringPointId gatheringPointId = ExtractGatheringPointIdFromName(_200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo));
|
||||
_202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E((ILogger)_logger, (Exception)ex, 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>(-1786995802), new object[1] { _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)fileInfo) });
|
||||
_questValidator.AddValidationIssue(new ValidationIssue
|
||||
{
|
||||
PathType = EPathType.Gathering,
|
||||
Id = (((object)gatheringPointId != null) ? _202D_200D_200C_202A_206C_200F_202A_206E_206F_206E_206F_206F_202C_202C_202B_206F_202D_200B_202A_206E_202C_202D_200C_202D_202B_200C_202A_206C_200F_200F_202B_202B_200C_202C_202B_202E_200B_200B_202C_206A_202E(gatheringPointId).ToString(_206E_206F_206D_206A_202C_206E_206B_202E_206E_206E_202E_200D_206D_200D_200C_202D_206E_202A_200D_202A_202D_206A_202D_206B_206B_202D_202B_206E_206B_202E_202B_200F_206F_200F_200D_202E_200B_206E_206E_200E_202E()) : null),
|
||||
Location = null,
|
||||
Type = EIssueType.InvalidJsonSyntax,
|
||||
Severity = EIssueSeverity.Error,
|
||||
Description = _206D_202D_206D_200C_202D_206E_206F_200B_202D_200E_202D_206D_206B_206E_202D_206F_202B_200E_200C_206C_206A_206E_202C_206F_206F_206A_206A_206B_206E_206D_202B_200B_206A_200B_206A_200D_202C_200C_200C_202B_202E(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>(1207352804), _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E((FileSystemInfo)fileInfo), 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>(-2035955381), _202C_202D_206A_206B_200E_206A_206D_206E_200C_206B_200D_202E_202B_200F_200E_206E_202C_206A_206A_206F_206B_202A_202A_206C_200D_200E_206D_200C_200E_206F_206F_200D_200C_202A_200C_206F_202E_200D_206B_202C_202E((Exception)ex))
|
||||
});
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
throw _200E_206E_206C_200D_200F_206A_202A_200B_200E_202A_202D_200F_200D_200E_202B_200C_206C_206E_206F_200F_202A_206B_202A_200E_202B_206D_202B_202E_200E_200B_202D_200C_206B_200C_200F_202C_200E_200D_202B_206E_202E(_206C_202D_202C_206C_202B_202B_206A_202A_202E_206D_206B_202D_202A_206A_202A_202B_202C_206B_202B_206A_200F_200F_202B_206A_206A_206D_206F_202B_200D_202B_202D_200E_202D_206F_200B_206A_200E_202D_200F_206C_202E(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>(-912896990), _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E((FileSystemInfo)fileInfo)), ex2);
|
||||
}
|
||||
int num9 = num7;
|
||||
num3 = 1;
|
||||
num4 = num9;
|
||||
}
|
||||
num = 1535846665;
|
||||
while (true)
|
||||
{
|
||||
int num10 = num;
|
||||
num3 = 1535846664;
|
||||
num4 = num10;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = 1535846665;
|
||||
break;
|
||||
case 3:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
DirectoryInfo directory2 = array2[num7];
|
||||
LoadFromDirectory(gatheringPoints, directory2);
|
||||
int num11 = num7;
|
||||
num3 = 1;
|
||||
num4 = num11;
|
||||
num7 = (num4 | num3) + (num4 & num3);
|
||||
num = 1535846668;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
array2 = _200D_206D_200B_202E_206E_202D_200E_206F_202D_206A_202C_200B_200B_200F_200E_200D_206E_202B_200E_200B_200B_202E_206C_202D_206C_202E_200B_202D_202C_200B_200C_206F_202A_206F_202B_206E_202D_202C_200B_206C_202E(directory);
|
||||
num7 = 0;
|
||||
num = 1535846668;
|
||||
break;
|
||||
case 4:
|
||||
num = ((num7 < array2.Length) ? 1535846664 : 1535846667);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DirectoryInfo[] directories = directory.GetDirectories();
|
||||
foreach (DirectoryInfo directory2 in directories)
|
||||
{
|
||||
LoadFromDirectory(directory2);
|
||||
}
|
||||
continue;
|
||||
IL_0051:
|
||||
num = -2030197122;
|
||||
}
|
||||
}
|
||||
|
||||
private static GatheringPointId? ExtractGatheringPointIdFromName(string resourceName)
|
||||
{
|
||||
string text = resourceName.Substring(0, resourceName.Length - ".json".Length);
|
||||
text = text.Substring(text.LastIndexOf('.') + 1);
|
||||
if (!text.Contains('_', StringComparison.Ordinal))
|
||||
string text = _202C_206E_202D_202B_202B_206B_202A_206A_200F_202E_206D_202C_206B_202C_200F_206B_206B_206A_206E_202C_206B_206C_202E_202A_206D_206D_206A_206F_202D_206E_200B_200E_200D_202C_206C_206D_200E_206D_200F_206D_202E(resourceName);
|
||||
text = _202A_202E_202D_202A_206E_206B_206B_200F_202C_202C_200F_202E_200C_206E_200F_200C_202B_200C_202A_200B_202B_200E_206F_206B_200B_200C_200C_202B_200C_202D_202D_206A_202B_200E_200F_206C_202D_200D_200D_202D_202E(text, _202A_202A_206A_206B_206F_206E_200D_206C_206C_202B_202D_200E_202E_200D_206A_202A_202E_206F_200B_202E_206B_206B_200E_200E_200E_206B_202C_202D_202A_200E_206A_206B_200B_202E_200F_200F_200E_206C_206F_206E_202E(text, '.') + 1);
|
||||
int num = (_202B_200B_206B_200E_200E_200B_206C_200C_200B_202B_206A_202C_206E_206A_206A_202C_206A_202E_206D_202D_200F_200B_200E_202B_206D_206E_202B_202B_206D_202B_206D_200B_202B_200B_206A_200D_200D_202C_206B_200D_202E(text, '_', StringComparison.Ordinal) ? (-863946065) : (-863946068));
|
||||
while (true)
|
||||
{
|
||||
return null;
|
||||
int num2 = num;
|
||||
int num3 = -863946066;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_0061;
|
||||
case 2:
|
||||
return null;
|
||||
case 1:
|
||||
return _206C_200E_206B_206B_200F_202D_202C_202E_202E_206A_202D_206A_202B_200B_202B_200D_206C_206C_200B_200B_206A_202A_206A_200E_200B_206A_206A_202A_202C_206C_202B_200B_202A_202A_200C_206B_206F_200B_206C_202E(_206D_202C_206B_200F_206A_200D_202D_202C_206D_206B_206E_206B_206F_202D_202B_200F_206E_202B_206D_202E_206C_202A_202D_200B_206D_200E_206C_202D_200C_206A_206E_202B_200E_200F_200C_206B_200E_202D_206E_202C_202E(text, '_', 2, StringSplitOptions.None)[0]);
|
||||
}
|
||||
continue;
|
||||
IL_0061:
|
||||
num = -863946068;
|
||||
}
|
||||
return GatheringPointId.FromString(text.Split('_', 2)[0]);
|
||||
}
|
||||
|
||||
public bool TryGetGatheringPoint(GatheringPointId gatheringPointId, [NotNullWhen(true)] out GatheringRoot? gatheringRoot)
|
||||
|
|
@ -155,34 +522,225 @@ internal sealed class GatheringPointRegistry : IDisposable
|
|||
|
||||
public bool TryGetGatheringPointId(uint itemId, EClassJob classJobId, [NotNullWhen(true)] out GatheringPointId? gatheringPointId)
|
||||
{
|
||||
switch (classJobId)
|
||||
Dictionary<GatheringPointId, GatheringRoot> gatheringPoints = _gatheringPoints;
|
||||
int num = ((classJobId != EClassJob.Miner) ? 627004165 : 627004160);
|
||||
while (true)
|
||||
{
|
||||
case EClassJob.Miner:
|
||||
if (_gatheringData.TryGetMinerGatheringPointByItemId(itemId, out gatheringPointId))
|
||||
int num2 = num;
|
||||
int num3 = 627004163;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 5:
|
||||
return true;
|
||||
}
|
||||
gatheringPointId = (from x in _gatheringPoints
|
||||
where x.Value.ExtraQuestItems.Contains(itemId)
|
||||
select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.MinerGatheringPoints.Contains(x));
|
||||
return gatheringPointId != null;
|
||||
case EClassJob.Botanist:
|
||||
if (_gatheringData.TryGetBotanistGatheringPointByItemId(itemId, out gatheringPointId))
|
||||
{
|
||||
case 2:
|
||||
gatheringPointId = null;
|
||||
return false;
|
||||
case 6:
|
||||
num = ((classJobId != EClassJob.Botanist) ? 627004161 : 627004171);
|
||||
break;
|
||||
case 8:
|
||||
num = ((!_gatheringData.TryGetBotanistGatheringPointByItemId(itemId, out gatheringPointId)) ? 627004163 : 627004166);
|
||||
break;
|
||||
case 4:
|
||||
return true;
|
||||
case 7:
|
||||
num = 627004160;
|
||||
break;
|
||||
case 1:
|
||||
gatheringPointId = (from x in gatheringPoints
|
||||
where _003C_003Ec__DisplayClass16_0._202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId)
|
||||
select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.MinerGatheringPoints.Contains(x));
|
||||
return _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(gatheringPointId, (GatheringPointId)null);
|
||||
case 0:
|
||||
gatheringPointId = (from x in gatheringPoints
|
||||
where _003C_003Ec__DisplayClass16_0._202A_202A_200D_206A_200E_202D_206E_206A_202A_200F_206D_200F_206C_206A_200B_202B_206A_202A_206F_200B_200D_206A_200E_200F_202A_200C_200E_200F_202C_200B_206C_200B_202C_200C_200B_206C_206F_206E_200F_200C_202E(x.Value).Contains(itemId)
|
||||
select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.BotanistGatheringPoints.Contains(x));
|
||||
return _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(gatheringPointId, (GatheringPointId)null);
|
||||
case 3:
|
||||
num = ((!_gatheringData.TryGetMinerGatheringPointByItemId(itemId, out gatheringPointId)) ? 627004162 : 627004167);
|
||||
break;
|
||||
}
|
||||
gatheringPointId = (from x in _gatheringPoints
|
||||
where x.Value.ExtraQuestItems.Contains(itemId)
|
||||
select x.Key).FirstOrDefault((GatheringPointId x) => _gatheringData.BotanistGatheringPoints.Contains(x));
|
||||
return gatheringPointId != null;
|
||||
default:
|
||||
gatheringPointId = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
static DirectoryInfo _202C_200E_206E_206B_200B_200D_206A_202C_202A_202A_206A_206E_200F_200D_206C_200F_206A_200C_206A_200F_200B_206A_206D_202A_200D_206F_206D_202C_200F_200C_200E_202A_202C_200E_202A_202C_200E_200C_200C_206D_202E(IDalamudPluginInterface P_0)
|
||||
{
|
||||
_questRegistry.Reloaded -= OnReloaded;
|
||||
return P_0.ConfigDirectory;
|
||||
}
|
||||
|
||||
static string _202B_200C_206B_202C_202D_202A_200C_206A_200F_202B_206A_206B_200D_206D_202A_206F_200C_202A_200F_200B_202C_206D_200B_200B_200F_206F_206E_202B_200D_206D_202D_206E_206A_202C_206F_202D_206F_206E_202E_206E_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.FullName;
|
||||
}
|
||||
|
||||
static string _202A_206B_206E_206A_200F_206F_202E_202E_206E_200B_206F_202A_202C_200D_200C_200F_206A_206E_200F_202E_206A_200E_206A_202A_200B_202B_200B_206D_200E_202A_206D_202E_206E_206C_202C_202A_202E_202C_200F_206B_202E(string P_0, string P_1)
|
||||
{
|
||||
return Path.Combine(P_0, P_1);
|
||||
}
|
||||
|
||||
static DirectoryInfo _202C_202B_202C_206E_200E_206B_200F_206E_202A_200B_200F_206A_200D_200D_202E_206E_202A_206D_200E_200E_200D_202C_206D_206B_206B_200B_206D_200B_206A_202C_206C_206D_200C_202B_200F_200F_206E_200D_206A_206B_202E(string P_0)
|
||||
{
|
||||
return new DirectoryInfo(P_0);
|
||||
}
|
||||
|
||||
static void _202D_202E_206E_206B_206F_200B_200E_206C_206E_206E_200B_202B_200E_206A_202B_200F_206D_206C_202A_206D_200F_202B_206D_200C_206E_206C_206E_206F_202A_206F_200E_200D_200E_202C_206C_200F_200D_206A_206F_202D_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static bool _206E_200E_200E_202D_202D_202D_200F_202B_202E_206E_206C_202A_202E_206C_202D_206B_206C_206A_202C_200C_206C_206B_206F_200B_206B_200D_206F_200B_206E_206B_202E_200D_202D_206F_200C_200E_200D_202B_200D_200C_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _200C_206B_206C_202A_200E_200D_206E_202B_200D_202D_200C_200C_206B_200F_200C_202A_206E_200D_206D_202A_200F_202A_202B_200D_200C_202E_200B_206B_206C_200D_202B_206D_206E_206F_202C_206D_202B_202C_202B_206F_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static void _200F_206D_202C_206A_202E_200E_206A_202E_206D_200B_200E_202B_206A_206E_202B_206B_202B_200B_206E_200D_206F_206F_206B_200D_202A_200F_206A_200D_206E_202A_206C_202E_206F_202C_202E_200C_206B_200B_206F_202D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static IReadOnlyDictionary<ushort, GatheringRoot> _202B_206E_202A_202D_206C_200E_202E_206E_202D_202B_206F_200D_206F_206B_200E_202E_200F_206C_202B_200C_200C_200D_206D_206D_202C_200C_200B_200D_202D_200C_206B_206E_202C_200C_202B_206B_206D_206A_202E_202D_202E()
|
||||
{
|
||||
return AssemblyGatheringLocationLoader.GetLocations();
|
||||
}
|
||||
|
||||
static GatheringPointId _206A_200B_206E_202D_202C_206C_206B_200E_202B_200B_200B_200D_206E_202B_206A_200D_206E_206E_200F_206E_200E_202B_200E_202D_200C_206F_200C_206E_206C_200F_206A_206F_206D_200B_200E_200B_200E_200E_206B_200E_202E(ushort P_0)
|
||||
{
|
||||
return new GatheringPointId(P_0);
|
||||
}
|
||||
|
||||
static FileInfo _200C_202C_206D_202E_202C_202B_200C_206F_200E_206C_206F_202E_200B_206F_200F_206C_206C_206F_206B_202A_200F_200C_200B_200C_200D_202D_200E_202A_206F_206F_200F_200C_200F_206E_200F_206F_200F_200F_202E_206B_202E(IDalamudPluginInterface P_0)
|
||||
{
|
||||
return P_0.AssemblyLocation;
|
||||
}
|
||||
|
||||
static DirectoryInfo _200E_206A_200F_206A_206F_202B_202A_200C_200C_206B_206D_200D_200C_200E_206F_200D_206B_206E_206E_202B_206F_206F_206D_206F_206F_200F_200E_202A_202B_200B_206A_206A_206E_202B_202D_202A_206B_200E_200C_200F_202E(FileInfo P_0)
|
||||
{
|
||||
return P_0.Directory;
|
||||
}
|
||||
|
||||
static DirectoryInfo _200C_206E_202A_200D_200B_202E_206B_200E_200C_200E_206F_202B_202C_200E_200F_206E_202B_200F_200B_202E_202E_206F_202D_206E_202B_200C_202C_206E_200C_206B_206B_200F_202E_206F_200C_200D_200E_200B_200F_200E_202E(DirectoryInfo P_0)
|
||||
{
|
||||
return P_0.Parent;
|
||||
}
|
||||
|
||||
static void _206D_200C_202C_206C_206D_206B_202C_202B_202D_206D_200B_206D_202A_200C_202C_206A_202D_200C_200C_200D_206F_200C_202A_206A_200F_200C_202C_200D_202A_200F_202B_200E_206E_202C_202C_202E_202E_206A_202A_200F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static string _200D_200B_202E_200F_202A_206D_200C_206A_202A_206D_206F_202D_200B_206C_206D_202D_202C_202E_200D_206A_202A_206E_200D_206F_206C_202D_206F_200E_202D_202B_200D_202D_202D_206B_202E_200C_206D_200E_202A_202B_202E(string P_0, string P_1, string P_2)
|
||||
{
|
||||
return Path.Combine(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206F_206D_202E_206E_202B_200B_200F_206F_206E_206F_202A_206F_206C_206E_200E_206F_200E_202B_206F_202A_206B_202E_200F_202A_202D_206C_202A_206E_206F_206F_200C_206A_206F_202E_206B_202A_200E_206C_200F_202E(GatheringPointId P_0, GatheringPointId P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
}
|
||||
|
||||
static JsonNode _200B_206C_202C_202B_206F_200D_202A_206D_206E_206B_206F_202C_200B_202B_200C_200F_206F_206F_202D_200C_206E_202C_206E_200D_200F_200F_200D_200F_206C_202E_206A_206F_200D_202D_202A_202B_206F_206B_206F_206B_202E(Stream P_0, JsonNodeOptions? P_1, JsonDocumentOptions P_2)
|
||||
{
|
||||
return JsonNode.Parse(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static ushort _200B_200E_202E_202B_206C_200E_200B_206D_200B_200D_206C_206F_200E_202E_206C_206D_202B_206E_200B_200C_200C_200F_200D_200D_206B_200E_206A_206E_206D_202A_202C_202A_206E_200F_200F_200F_206D_206D_200E_200F_202E(GatheringPointId P_0)
|
||||
{
|
||||
return P_0.Value;
|
||||
}
|
||||
|
||||
static bool _200E_202A_206F_200B_206E_206E_206D_200D_200B_202C_202C_206E_206D_206D_206E_202C_206E_200C_202A_206D_206E_200D_200B_206E_202C_202C_202B_200C_202D_200F_200D_200F_206C_202A_200D_206E_206B_202A_206A_206A_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.Exists;
|
||||
}
|
||||
|
||||
static FileInfo[] _206F_202B_202A_202E_202C_206C_200F_200E_206A_202A_202A_200B_202C_206D_202E_206F_202A_200B_206A_206F_206F_202B_206E_200E_202E_200F_200F_202C_206D_200F_206D_206A_206B_202B_206F_206A_200D_200F_200F_202A_202E(DirectoryInfo P_0, string P_1)
|
||||
{
|
||||
return P_0.GetFiles(P_1);
|
||||
}
|
||||
|
||||
static FileStream _200C_206E_206C_206F_206C_206E_206E_200B_202D_200B_200E_200D_206F_202A_200F_206E_206D_202A_200B_200E_202B_202D_206B_206E_206B_202C_202C_206B_202A_202C_202A_202B_206A_200C_202A_206A_200F_202A_202D_202B_202E(FileInfo P_0)
|
||||
{
|
||||
return P_0.OpenRead();
|
||||
}
|
||||
|
||||
static string _200D_200D_200E_200D_206D_206B_202B_206D_202A_200D_200F_200D_206C_206E_200C_206C_206F_202B_200B_206D_200F_206F_206A_202D_202C_202C_206B_206C_202D_202E_202B_206C_206F_200F_202D_206B_206A_206A_200D_202E_202E(FileSystemInfo P_0)
|
||||
{
|
||||
return P_0.Name;
|
||||
}
|
||||
|
||||
static ushort _202D_200D_200C_202A_206C_200F_202A_206E_206F_206E_206F_206F_202C_202C_202B_206F_202D_200B_202A_206E_202C_202D_200C_202D_202B_200C_202A_206C_200F_200F_202B_202B_200C_202C_202B_202E_200B_200B_202C_206A_202E(GatheringPointId P_0)
|
||||
{
|
||||
return P_0.Value;
|
||||
}
|
||||
|
||||
static CultureInfo _206E_206F_206D_206A_202C_206E_206B_202E_206E_206E_202E_200D_206D_200D_200C_202D_206E_202A_200D_202A_202D_206A_202D_206B_206B_202D_202B_206E_206B_202E_202B_200F_206F_200F_200D_202E_200B_206E_206E_200E_202E()
|
||||
{
|
||||
return CultureInfo.InvariantCulture;
|
||||
}
|
||||
|
||||
static string _202C_202D_206A_206B_200E_206A_206D_206E_200C_206B_200D_202E_202B_200F_200E_206E_202C_206A_206A_206F_206B_202A_202A_206C_200D_200E_206D_200C_200E_206F_206F_200D_200C_202A_200C_206F_202E_200D_206B_202C_202E(Exception P_0)
|
||||
{
|
||||
return P_0.Message;
|
||||
}
|
||||
|
||||
static string _206D_202D_206D_200C_202D_206E_206F_200B_202D_200E_202D_206D_206B_206E_202D_206F_202B_200E_200C_206C_206A_206E_202C_206F_206F_206A_206A_206B_206E_206D_202B_200B_206A_200B_206A_200D_202C_200C_200C_202B_202E(string P_0, string P_1, string P_2, string P_3)
|
||||
{
|
||||
return P_0 + P_1 + P_2 + P_3;
|
||||
}
|
||||
|
||||
static string _206C_202D_202C_206C_202B_202B_206A_202A_202E_206D_206B_202D_202A_206A_202A_202B_202C_206B_202B_206A_200F_200F_202B_206A_206A_206D_206F_202B_200D_202B_202D_200E_202D_206F_200B_206A_200E_202D_200F_206C_202E(string P_0, string P_1)
|
||||
{
|
||||
return P_0 + P_1;
|
||||
}
|
||||
|
||||
static InvalidDataException _200E_206E_206C_200D_200F_206A_202A_200B_200E_202A_202D_200F_200D_200E_202B_200C_206C_206E_206F_200F_202A_206B_202A_200E_202B_206D_202B_202E_200E_200B_202D_200C_206B_200C_200F_202C_200E_200D_202B_206E_202E(string P_0, Exception P_1)
|
||||
{
|
||||
return new InvalidDataException(P_0, P_1);
|
||||
}
|
||||
|
||||
static DirectoryInfo[] _200D_206D_200B_202E_206E_202D_200E_206F_202D_206A_202C_200B_200B_200F_200E_200D_206E_202B_200E_200B_200B_202E_206C_202D_206C_202E_200B_202D_202C_200B_200C_206F_202A_206F_202B_206E_202D_202C_200B_206C_202E(DirectoryInfo P_0)
|
||||
{
|
||||
return P_0.GetDirectories();
|
||||
}
|
||||
|
||||
static string _202C_206E_202D_202B_202B_206B_202A_206A_200F_202E_206D_202C_206B_202C_200F_206B_206B_206A_206E_202C_206B_206C_202E_202A_206D_206D_206A_206F_202D_206E_200B_200E_200D_202C_206C_206D_200E_206D_200F_206D_202E(string P_0)
|
||||
{
|
||||
return Path.GetFileNameWithoutExtension(P_0);
|
||||
}
|
||||
|
||||
static int _202A_202A_206A_206B_206F_206E_200D_206C_206C_202B_202D_200E_202E_200D_206A_202A_202E_206F_200B_202E_206B_206B_200E_200E_200E_206B_202C_202D_202A_200E_206A_206B_200B_202E_200F_200F_200E_206C_206F_206E_202E(string P_0, char P_1)
|
||||
{
|
||||
return P_0.LastIndexOf(P_1);
|
||||
}
|
||||
|
||||
static string _202A_202E_202D_202A_206E_206B_206B_200F_202C_202C_200F_202E_200C_206E_200F_200C_202B_200C_202A_200B_202B_200E_206F_206B_200B_200C_200C_202B_200C_202D_202D_206A_202B_200E_200F_206C_202D_200D_200D_202D_202E(string P_0, int P_1)
|
||||
{
|
||||
return P_0.Substring(P_1);
|
||||
}
|
||||
|
||||
static bool _202B_200B_206B_200E_200E_200B_206C_200C_200B_202B_206A_202C_206E_206A_206A_202C_206A_202E_206D_202D_200F_200B_200E_202B_206D_206E_202B_202B_206D_202B_206D_200B_202B_200B_206A_200D_200D_202C_206B_200D_202E(string P_0, char P_1, StringComparison P_2)
|
||||
{
|
||||
return P_0.Contains(P_1, P_2);
|
||||
}
|
||||
|
||||
static string[] _206D_202C_206B_200F_206A_200D_202D_202C_206D_206B_206E_206B_206F_202D_202B_200F_206E_202B_206D_202E_206C_202A_202D_200B_206D_200E_206C_202D_200C_206A_206E_202B_200E_200F_200C_206B_200E_202D_206E_202C_202E(string P_0, char P_1, int P_2, StringSplitOptions P_3)
|
||||
{
|
||||
return P_0.Split(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static GatheringPointId _206C_200E_206B_206B_200F_202D_202C_202E_202E_206A_202D_206A_202B_200B_202B_200D_206C_206C_200B_200B_206A_202A_206A_200E_200B_206A_206A_202A_202C_206C_202B_200B_202A_202A_200C_206B_206F_200B_206C_202E(string P_0)
|
||||
{
|
||||
return GatheringPointId.FromString(P_0);
|
||||
}
|
||||
|
||||
static bool _206F_202A_200D_200C_202A_206E_202A_200F_206B_202D_200F_206F_200B_202E_206C_206C_202D_202E_202E_206C_206E_206E_202C_200D_200C_200B_200F_202B_200F_206C_202D_200F_202A_200F_200F_200F_200B_202D_202B_200E_202E(GatheringPointId P_0, GatheringPointId P_1)
|
||||
{
|
||||
return P_0 != P_1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
419
Questionable/Questionable.Controller/GearRepairService.cs
Normal file
419
Questionable/Questionable.Controller/GearRepairService.cs
Normal file
|
|
@ -0,0 +1,419 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Services;
|
||||
using LLib.GameData;
|
||||
using LLib.Gear;
|
||||
using Lumina.Excel;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
using Questionable.Controller.Steps.Common;
|
||||
using Questionable.Data;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.Navigation;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class GearRepairService(Configuration configuration, ICondition condition, IClientState clientState, IObjectTable objectTable, IDataManager dataManager, MenderDataService menderDataService, SmartNavRouteEnqueuer routeEnqueuer, AetheryteFunctions aetheryteFunctions, IChatGui chatGui, ILogger<GearRepairService> logger)
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass19_0
|
||||
{
|
||||
public ExcelSheet<ClassJob> classJobSheet;
|
||||
|
||||
internal byte _003CCanSelfRepair_003Eb__0(uint classJobId)
|
||||
{
|
||||
ClassJob row;
|
||||
int num = (classJobSheet.TryGetRow(classJobId, out row) ? (-528090726) : (-528090727));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -528090725;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004e;
|
||||
case 2:
|
||||
return 0;
|
||||
case 1:
|
||||
return (byte)_200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E((int)row.ExpArrayIndex);
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = -528090727;
|
||||
}
|
||||
}
|
||||
|
||||
static short _200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E(int P_0)
|
||||
{
|
||||
return PlayerStateHelper.GetClassJobLevel(P_0);
|
||||
}
|
||||
}
|
||||
|
||||
private const int CriticalConditionPercent = 10;
|
||||
|
||||
private const long AttemptCooldownMs = 300000L;
|
||||
|
||||
private const long WarningCooldownMs = 300000L;
|
||||
|
||||
private long _nextAttemptAtMs;
|
||||
|
||||
private long _nextWarningAtMs;
|
||||
|
||||
public void ResetAttemptCooldown()
|
||||
{
|
||||
_nextAttemptAtMs = 0L;
|
||||
_nextWarningAtMs = 0L;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public ERepairDecision EvaluateAndEnqueue(EInteractionType upcomingType, TaskQueue taskQueue)
|
||||
{
|
||||
int num = (((uint)(upcomingType - 19) > 1u) ? 1929941200 : 1929941198);
|
||||
int? num7 = default(int?);
|
||||
bool flag2 = default(bool);
|
||||
bool flag4 = default(bool);
|
||||
bool flag3 = default(bool);
|
||||
bool flag = default(bool);
|
||||
string failureReason = default(string);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1929941195;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
int num8;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 3:
|
||||
_206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_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>(776424222), new object[1] { num7.Value });
|
||||
return ERepairDecision.BlockDuty;
|
||||
case 22:
|
||||
num7 = _200E_202E_202C_202C_200D_206E_200B_202B_200E_202E_202A_202C_202D_202B_202D_202B_200E_206C_206F_206E_206C_202C_202E_200C_202A_202C_202C_206D_206C_202B_200B_206C_202D_202E_200D_200E_206C_200C_206A_206C_202E();
|
||||
num = ((!num7.HasValue) ? 1929941188 : 1929941209);
|
||||
break;
|
||||
case 27:
|
||||
flag2 = false;
|
||||
num = 1929941208;
|
||||
break;
|
||||
case 10:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 20:
|
||||
num = ((!flag4) ? 1929941210 : 1929941192);
|
||||
break;
|
||||
case 19:
|
||||
flag3 = flag2;
|
||||
num = (((uint)(upcomingType - 30) > 1u) ? 1929941194 : 1929941193);
|
||||
break;
|
||||
case 12:
|
||||
num = (flag ? 1929941197 : 1929941202);
|
||||
break;
|
||||
case 14:
|
||||
num = ((_202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() < _nextWarningAtMs) ? 1929941185 : 1929941190);
|
||||
break;
|
||||
case 13:
|
||||
{
|
||||
_nextWarningAtMs = _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() + 300000;
|
||||
IChatGui chatGui = chatGui;
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(46, 2);
|
||||
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>(1964571551));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(num7.Value);
|
||||
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>(1599790962));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(failureReason);
|
||||
_200D_206B_206B_202C_200D_206C_200E_200D_202E_202C_206B_202D_206B_206C_206F_200D_200F_206D_200E_206C_206F_206B_202E_200B_200C_202E_202E_202B_206F_206C_206C_202A_206D_202A_200C_206B_200B_200F_202C_206C_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);
|
||||
num = 1929941185;
|
||||
break;
|
||||
}
|
||||
case 26:
|
||||
num8 = ((num7.Value < 10) ? 1 : 0);
|
||||
goto IL_026c;
|
||||
case 7:
|
||||
num = ((!flag3) ? 1929941212 : 1929941201);
|
||||
break;
|
||||
case 15:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 23:
|
||||
num8 = 0;
|
||||
goto IL_026c;
|
||||
case 17:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 28:
|
||||
num = ((!TryEnqueueRepair(taskQueue, num7.Value, out failureReason)) ? 1929941184 : 1929941203);
|
||||
break;
|
||||
case 25:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 24:
|
||||
return ERepairDecision.Enqueued;
|
||||
case 18:
|
||||
num = ((num7.Value < configuration.General.RepairThresholdPercent) ? 1929941196 : 1929941188);
|
||||
break;
|
||||
case 11:
|
||||
num = ((!flag4) ? 1929941189 : 1929941195);
|
||||
break;
|
||||
case 1:
|
||||
flag2 = false;
|
||||
num = 1929941199;
|
||||
break;
|
||||
case 0:
|
||||
_206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_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>(-1917801143), new object[2] { num7.Value, failureReason });
|
||||
return ERepairDecision.BlockDuty;
|
||||
case 5:
|
||||
flag2 = true;
|
||||
num = 1929941208;
|
||||
break;
|
||||
case 2:
|
||||
flag2 = true;
|
||||
num = 1929941199;
|
||||
break;
|
||||
case 16:
|
||||
num = ((!_202A_206F_206D_206C_200E_200C_206D_206A_200E_202A_206E_206F_206C_200C_200E_200F_202B_202B_206B_202C_200F_206C_202C_206C_202E_206C_206F_206C_200F_206E_200D_200E_202B_206B_202A_202D_202A_200C_202B_206A_202E(condition, ConditionFlag.InCombat)) ? 1929941213 : 1929941214);
|
||||
break;
|
||||
case 9:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 6:
|
||||
num = (configuration.General.RepairGear ? 1929941211 : 1929941186);
|
||||
break;
|
||||
case 21:
|
||||
return ERepairDecision.NotNeeded;
|
||||
case 4:
|
||||
flag = flag2;
|
||||
num = (flag3 ? 1929941197 : 1929941191);
|
||||
break;
|
||||
case 8:
|
||||
{
|
||||
num = 1929941198;
|
||||
break;
|
||||
}
|
||||
IL_026c:
|
||||
flag4 = (byte)num8 != 0;
|
||||
num = ((_202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() >= _nextAttemptAtMs) ? 1929941207 : 1929941215);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private bool TryEnqueueRepair(TaskQueue taskQueue, int lowestCondition, out string failureReason)
|
||||
{
|
||||
int num = ((!CanSelfRepair()) ? (-1145158930) : (-1145158934));
|
||||
MenderNpc menderNpc = default(MenderNpc);
|
||||
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
||||
MenderNpc current = default(MenderNpc);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1145158932;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 1:
|
||||
if (aetheryteFunctions.IsTeleportUnlocked())
|
||||
{
|
||||
num = -1145158935;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
_206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_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>(1341197987), new object[2] { lowestCondition, menderNpc.DataId });
|
||||
routeEnqueuer.Enqueue(taskQueue, menderNpc.TerritoryId, menderNpc.Position, 3f);
|
||||
taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
taskQueue.Enqueue(new RepairGear.MenderRepairTask(menderNpc));
|
||||
MarkAttempt();
|
||||
failureReason = string.Empty;
|
||||
return true;
|
||||
case 2:
|
||||
playerCharacter = _206D_202E_206C_206D_200F_202E_200C_200C_202B_202B_200D_200F_206A_206E_206F_206C_202E_206A_202D_202C_206B_206D_200B_206D_206A_202E_200D_200C_202D_200D_206C_200D_206C_206B_202C_206E_206B_206F_202C_202D_202E(objectTable);
|
||||
num = ((playerCharacter == null) ? (-1145158931) : (-1145158929));
|
||||
continue;
|
||||
case 3:
|
||||
menderNpc = menderDataService.FindNearestInTerritory((ushort)_200E_206C_200F_200D_202E_206C_202D_206E_206C_206A_200C_202E_200E_206F_200F_200B_202B_202C_206A_202A_202A_200D_206F_206C_202C_202C_202A_202B_206D_206F_202B_202D_202D_202A_200E_200D_200D_202E_206E_206E_202E(clientState), _206C_202C_202B_206E_202C_200B_202C_202B_202D_202D_206D_206A_206A_202C_202E_206F_200C_202D_206A_202C_202B_202D_200F_206A_206A_202A_202E_202C_202B_202C_206B_200F_202D_202A_206B_206B_200F_202D_202D_202C_202E((IGameObject)playerCharacter));
|
||||
num = (((object)menderNpc == null) ? (-1145158931) : (-1145158932));
|
||||
continue;
|
||||
case 6:
|
||||
_206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_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>(517880176), new object[1] { lowestCondition });
|
||||
taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
taskQueue.Enqueue(new RepairGear.SelfRepairTask());
|
||||
MarkAttempt();
|
||||
failureReason = string.Empty;
|
||||
return true;
|
||||
case 4:
|
||||
num = -1145158934;
|
||||
continue;
|
||||
case 5:
|
||||
{
|
||||
IEnumerator<MenderNpc> enumerator = MenderDataService.CityFallbacks.GetEnumerator();
|
||||
try
|
||||
{
|
||||
num = -1950756902;
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
num3 = -1950756902;
|
||||
num4 = num5;
|
||||
int num6 = num4 + num3;
|
||||
int num7 = num4 & num3;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 0:
|
||||
num = (_206B_200F_206D_206D_206B_206B_200B_206D_202A_206D_202A_206B_206E_200D_206E_202D_200D_206E_206A_206F_206A_202B_202E_200B_202A_206A_206A_206D_202D_202B_206C_206F_202D_206D_206F_202C_202A_202D_200B_202E_202E((IEnumerator)enumerator) ? (-1950756901) : (-1950756903));
|
||||
break;
|
||||
case 1:
|
||||
current = enumerator.Current;
|
||||
num = ((!routeEnqueuer.TryEnqueueRouted(taskQueue, current.TerritoryId, current.Position)) ? (-1950756902) : (-1950756898));
|
||||
break;
|
||||
case 4:
|
||||
_206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_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>(90066395), new object[2] { lowestCondition, current.DataId });
|
||||
taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
taskQueue.Enqueue(new RepairGear.MenderRepairTask(current));
|
||||
MarkAttempt();
|
||||
failureReason = string.Empty;
|
||||
return true;
|
||||
case 2:
|
||||
num = -1950756902;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_01c7;
|
||||
}
|
||||
continue;
|
||||
end_IL_01c7:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = ((enumerator == null) ? (-462922479) : (-462922478));
|
||||
while (true)
|
||||
{
|
||||
int num8 = num;
|
||||
num3 = -462922477;
|
||||
num4 = num8;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -462922478;
|
||||
break;
|
||||
case 2:
|
||||
goto end_IL_02f5;
|
||||
case 1:
|
||||
_200C_206C_200E_200B_202C_206C_206A_200E_200D_206F_206F_200D_200E_200E_200C_206A_206C_206F_200E_200B_206E_202E_202C_202D_200B_202D_202A_200D_206F_200E_202C_200B_202D_200B_200D_206B_206B_202D_206F_200C_202E((IDisposable)enumerator);
|
||||
num = -462922479;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_02f5:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
failureReason = 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>(1806822311);
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool CanSelfRepair()
|
||||
{
|
||||
ExcelSheet<ClassJob> classJobSheet = dataManager.GetExcelSheet<ClassJob>();
|
||||
return _206B_200B_200F_206D_202B_200D_206D_200E_202E_200D_200E_200C_200D_200C_206A_200D_202D_202B_206C_202C_206C_206C_206B_206B_206C_206E_200C_206F_206C_206F_200C_202C_202D_200F_206E_202E_206A_202B_206D_200C_202E(dataManager, (Func<uint, byte>)delegate(uint classJobId)
|
||||
{
|
||||
ClassJob row;
|
||||
int num = (classJobSheet.TryGetRow(classJobId, out row) ? (-528090726) : (-528090727));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -528090725;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004e;
|
||||
case 2:
|
||||
return 0;
|
||||
case 1:
|
||||
return (byte)_003C_003Ec__DisplayClass19_0._200C_206B_202B_202B_206C_200B_202D_206C_206D_206C_206E_202E_202E_202B_200B_206F_202B_202C_202A_200D_206E_202E_206C_200F_202C_206B_200D_206A_202E_202C_200B_206D_206C_200F_200E_206C_200F_206E_200D_202A_202E((int)row.ExpArrayIndex);
|
||||
}
|
||||
continue;
|
||||
IL_004e:
|
||||
num = -528090727;
|
||||
}
|
||||
}, configuration.General.RepairThresholdPercent);
|
||||
}
|
||||
|
||||
private void MarkAttempt()
|
||||
{
|
||||
_nextAttemptAtMs = _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E() + 300000;
|
||||
}
|
||||
|
||||
static bool _202A_206F_206D_206C_200E_200C_206D_206A_200E_202A_206E_206F_206C_200C_200E_200F_202B_202B_206B_202C_200F_206C_202C_206C_202E_206C_206F_206C_200F_206E_200D_200E_202B_206B_202A_202D_202A_200C_202B_206A_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
|
||||
static int? _200E_202E_202C_202C_200D_206E_200B_202B_200E_202E_202A_202C_202D_202B_202D_202B_200E_206C_206F_206E_206C_202C_202E_200C_202A_202C_202C_206D_206C_202B_200B_206C_202D_202E_200D_200E_206C_200C_206A_206C_202E()
|
||||
{
|
||||
return GearConditionHelper.GetLowestConditionPercent();
|
||||
}
|
||||
|
||||
static long _202B_206C_202A_202A_206E_202C_200C_202A_202A_200E_200B_200D_206B_202D_206A_200B_200D_200E_200B_200F_206F_202C_202C_200F_200E_202E_206F_202E_202E_206B_202C_202D_200F_200C_200B_206F_206E_202E_206A_202A_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static void _206A_200F_206D_200B_202C_200B_206D_206C_202E_202E_200F_200F_202B_200D_200D_206F_200B_206B_206D_202E_202D_206C_206A_202D_202A_206A_202B_200D_206D_206B_206C_206D_206F_202E_200D_202A_202C_202E_206A_206E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200D_206B_206B_202C_200D_206C_200E_200D_202E_202C_206B_202D_206B_206C_206F_200D_200F_206D_200E_206C_206F_206B_202E_200B_200C_202E_202E_202B_206F_206C_206C_202A_206D_202A_200C_206B_200B_200F_202C_206C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
|
||||
{
|
||||
P_0.Print(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static void _206A_206D_202D_200F_200E_202D_206E_206C_206B_202E_202D_200E_200D_200E_206B_206D_206B_200E_202D_206A_202B_200E_200B_202B_200F_206F_202C_200D_200B_202E_202E_206D_206C_202B_206F_206E_200F_206B_200D_206A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogInformation(P_1, P_2);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _206D_202E_206C_206D_200F_202E_200C_200C_202B_202B_200D_200F_206A_206E_206F_206C_202E_206A_202D_202C_206B_206D_200B_206D_206A_202E_200D_200C_202D_200D_206C_200D_206C_206B_202C_206E_206B_206F_202C_202D_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static uint _200E_206C_200F_200D_202E_206C_202D_206E_206C_206A_200C_202E_200E_206F_200F_200B_202B_202C_206A_202A_202A_200D_206F_206C_202C_202C_202A_202B_206D_206F_202B_202D_202D_202A_200E_200D_200D_202E_206E_206E_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static Vector3 _206C_202C_202B_206E_202C_200B_202C_202B_202D_202D_206D_206A_206A_202C_202E_206F_200C_202D_206A_202C_202B_202D_200F_206A_206A_202A_202E_202C_202B_202C_206B_200F_202D_202A_206B_206B_200F_202D_202D_202C_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.Position;
|
||||
}
|
||||
|
||||
static bool _206B_200F_206D_206D_206B_206B_200B_206D_202A_206D_202A_206B_206E_200D_206E_202D_200D_206E_206A_206F_206A_202B_202E_200B_202A_206A_206A_206D_202D_202B_206C_206F_202D_206D_206F_202C_202A_202D_200B_202E_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _200C_206C_200E_200B_202C_206C_206A_200E_200D_206F_206F_200D_200E_200E_200C_206A_206C_206F_200E_200B_206E_202E_202C_202D_200B_202D_202A_200D_206F_200E_202C_200B_202D_200B_200D_206B_206B_202D_206F_200C_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static bool _206B_200B_200F_206D_202B_200D_206D_200E_202E_200D_200E_200C_200D_200C_206A_200D_202D_202B_206C_202C_206C_206C_206B_206B_206C_206E_200C_206F_206C_206F_200C_202C_202D_200F_206E_202E_206A_202B_206D_200C_202E(IDataManager P_0, Func<uint, byte> P_1, int P_2)
|
||||
{
|
||||
return RepairActions.CanSelfRepairAny(P_0, P_1, P_2);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Hooking;
|
||||
using Dalamud.Plugin.Services;
|
||||
|
|
@ -39,11 +42,54 @@ internal sealed class InterruptHandler : IDisposable
|
|||
[FieldOffset(6)]
|
||||
public ushort Value;
|
||||
|
||||
public byte AttackType => (byte)(Param1 & 0xF);
|
||||
public byte AttackType
|
||||
{
|
||||
get
|
||||
{
|
||||
byte param = Param1;
|
||||
int num = 15;
|
||||
int num2 = param;
|
||||
return (byte)(num2 + num - (num2 | num));
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override string ToString()
|
||||
{
|
||||
return $"Type: {Type}, p0: {Param0:D3}, p1: {Param1:D3}, p2: {Param2:D3} 0x{Param2:X2} '{Convert.ToString(Param2, 2).PadLeft(8, '0')}', mult: {Mult:D3}, flags: {Flags:D3} | {Convert.ToString(Flags, 2).PadLeft(8, '0')}, value: {Value:D6} ATTACK TYPE: {AttackType}";
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(73, 11);
|
||||
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>(-725035009));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Type);
|
||||
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>(-496390848));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Param0, 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>(609308249));
|
||||
defaultInterpolatedStringHandler.AppendLiteral(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>(877514922));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Param1, 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>(1055630216));
|
||||
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>(25938555));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Param2, 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>(609308249));
|
||||
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>(-845350805));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Param2, 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>(-1875656278));
|
||||
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>(-1021698688));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(_202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(_202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(Param2, 2), 8, '0'));
|
||||
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>(-884985363));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Mult, 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>(-645152765));
|
||||
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>(-1045548845));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Flags, 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>(-645152765));
|
||||
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>(594831569));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(_202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(_202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(Flags, 2), 8, '0'));
|
||||
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>(1435755758));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Value, 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>(123427143));
|
||||
defaultInterpolatedStringHandler.AppendLiteral(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>(739800108));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(AttackType);
|
||||
return defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
}
|
||||
|
||||
static string _202E_200D_200B_206B_200C_206D_200D_202E_206B_206E_202C_206B_202A_206A_202A_206B_202A_206E_202D_200C_206A_200E_200F_202C_206F_206B_200C_200F_202C_202E_206E_200F_206E_206C_200D_206A_200C_202E_206C_202E_202E(byte P_0, int P_1)
|
||||
{
|
||||
return Convert.ToString(P_0, P_1);
|
||||
}
|
||||
|
||||
static string _202B_202B_200B_202E_206A_206E_202A_202A_202E_206D_202E_200B_206A_206D_200B_200C_200F_200B_202B_202C_206A_200F_200D_200D_202C_200C_206B_202D_202C_202C_202B_206B_202E_206F_200F_206D_200B_200E_200E_206B_202E(string P_0, int P_1, char P_2)
|
||||
{
|
||||
return P_0.PadLeft(P_1, P_2);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -127,7 +173,7 @@ internal sealed class InterruptHandler : IDisposable
|
|||
Interrupt = 75
|
||||
}
|
||||
|
||||
private readonly Hook<ProcessActionEffect> _processActionEffectHook;
|
||||
private readonly Hook<ProcessActionEffect>? _processActionEffectHook;
|
||||
|
||||
private readonly IClientState _clientState;
|
||||
|
||||
|
|
@ -137,49 +183,187 @@ internal sealed class InterruptHandler : IDisposable
|
|||
|
||||
private readonly ILogger<InterruptHandler> _logger;
|
||||
|
||||
public event EventHandler? Interrupted;
|
||||
[CompilerGenerated]
|
||||
private EventHandler? m_Interrupted;
|
||||
|
||||
public event EventHandler? Interrupted
|
||||
{
|
||||
[CompilerGenerated]
|
||||
add
|
||||
{
|
||||
EventHandler eventHandler = this.m_Interrupted;
|
||||
int num = -1990188142;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1990188141;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -1990188142;
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 1:
|
||||
{
|
||||
EventHandler eventHandler2 = eventHandler;
|
||||
EventHandler value2 = (EventHandler)_200D_200C_206C_200D_202D_202E_206A_202A_206E_202A_200C_202C_200E_200C_200D_206C_202C_200E_200B_206D_200D_200C_206B_206B_200E_206B_202B_200B_206A_200F_206E_200B_200B_206E_202A_206A_206D_202D_206B_202A_202E((Delegate)eventHandler2, (Delegate)value);
|
||||
eventHandler = Interlocked.CompareExchange(ref this.m_Interrupted, value2, eventHandler2);
|
||||
num = (((object)eventHandler != eventHandler2) ? (-1990188142) : (-1990188143));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
[CompilerGenerated]
|
||||
remove
|
||||
{
|
||||
EventHandler eventHandler = this.m_Interrupted;
|
||||
int num = -2074209311;
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -2074209312;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num = -2074209311;
|
||||
break;
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
{
|
||||
EventHandler eventHandler2 = eventHandler;
|
||||
EventHandler value2 = (EventHandler)_202C_200E_200C_202C_200E_202C_206F_202C_206A_206E_206E_206F_202E_200C_206F_200C_200F_202C_202D_206A_200F_202A_200F_202C_202A_202D_200B_206A_206B_202D_200B_200D_206F_200B_202B_200E_202A_200F_206B_202E_202E((Delegate)eventHandler2, (Delegate)value);
|
||||
eventHandler = Interlocked.CompareExchange(ref this.m_Interrupted, value2, eventHandler2);
|
||||
num = (((object)eventHandler != eventHandler2) ? (-2074209311) : (-2074209312));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public unsafe InterruptHandler(IGameInteropProvider gameInteropProvider, IClientState clientState, IObjectTable objectTable, TerritoryData territoryData, ILogger<InterruptHandler> logger)
|
||||
{
|
||||
_clientState = clientState;
|
||||
_objectTable = objectTable;
|
||||
_territoryData = territoryData;
|
||||
_logger = logger;
|
||||
_processActionEffectHook = gameInteropProvider.HookFromAddress<ProcessActionEffect>(ActionEffectHandler.Addresses.Receive.Value, HandleProcessActionEffect);
|
||||
_processActionEffectHook.Enable();
|
||||
try
|
||||
{
|
||||
_processActionEffectHook = gameInteropProvider.HookFromAddress<ProcessActionEffect>(ActionEffectHandler.Addresses.Receive.Value, HandleProcessActionEffect);
|
||||
_processActionEffectHook.Enable();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_202C_200C_206A_202B_206A_202E_206E_206A_202D_206C_200D_200E_206E_200C_200E_206F_200D_200B_200C_206B_206D_206C_202E_202B_206C_206F_202A_206D_202B_206F_200E_200D_200D_202A_206E_200E_202E_206A_206F_202E_202E((ILogger)_logger, ex, 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>(-1192049200), Array.Empty<object>());
|
||||
_processActionEffectHook = null;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private unsafe void HandleProcessActionEffect(uint sourceId, Character* sourceCharacter, Vector3* pos, EffectHeader* effectHeader, EffectEntry* effectArray, ulong* effectTail)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_territoryData.IsDutyInstance(_clientState.TerritoryType))
|
||||
int num = (_territoryData.IsDutyInstance(_200C_206D_206C_206B_206C_206E_202D_206F_202A_200B_206E_206C_202D_202D_202C_202B_202E_202B_200C_206B_202D_200D_200E_206A_200F_206F_206C_206D_206D_202E_202C_206D_202D_206C_200D_206D_202B_200F_206F_200C_202E(_clientState)) ? (-1304675561) : (-1304675555));
|
||||
EActionEffectType type = default(EActionEffectType);
|
||||
bool flag = default(bool);
|
||||
bool flag2 = default(bool);
|
||||
int num8 = default(int);
|
||||
EffectEntry* ptr = default(EffectEntry*);
|
||||
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
IGameObject gameObject = _objectTable[0];
|
||||
for (int i = 0; i < effectHeader->TargetCount; i++)
|
||||
{
|
||||
int num = (int)(effectTail[i] & 0xFFFFFFFFu);
|
||||
EffectEntry* ptr = effectArray + 8 * i;
|
||||
bool flag = (uint)num == gameObject?.GameObjectId;
|
||||
if (flag)
|
||||
int num2 = num;
|
||||
int num3 = -1304675562;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
EActionEffectType type = ptr->Type;
|
||||
bool flag2 = ((type == EActionEffectType.Damage || type - 5 <= EActionEffectType.Miss) ? true : false);
|
||||
flag = flag2;
|
||||
}
|
||||
if (flag)
|
||||
{
|
||||
_logger.LogTrace("Damage action effect on self, from {SourceId} ({EffectType})", sourceId, ptr->Type);
|
||||
this.Interrupted?.Invoke(this, EventArgs.Empty);
|
||||
case 9:
|
||||
num = ((type - 5 > EActionEffectType.Miss) ? (-1304675562) : (-1304675567));
|
||||
break;
|
||||
case 4:
|
||||
flag = flag2;
|
||||
num = -1304675556;
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
int num11 = (int)(effectTail[num8] & 0xFFFFFFFFu);
|
||||
ptr = effectArray + 8 * num8;
|
||||
flag = (uint)num11 == ((playerCharacter != null) ? new ulong?(_206C_202B_200E_206A_206E_200C_202D_200F_202E_206C_206F_202D_200F_202A_200B_202E_202D_200B_206B_206A_200F_202A_200E_202C_200D_206C_202E_206C_200B_200F_202E_206E_206F_202A_202E_200E_206E_206B_206D_202A_202E((IGameObject)playerCharacter)) : ((ulong?)null));
|
||||
num = ((!flag) ? (-1304675556) : (-1304675564));
|
||||
break;
|
||||
}
|
||||
case 8:
|
||||
num = -1304675555;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
_202A_202E_206C_206E_200D_202E_202E_206F_206B_202E_200C_200D_202A_200B_206E_206A_202D_200F_200D_202D_200B_200D_200D_206C_202B_206C_202A_202A_200E_202D_206A_206A_202C_200F_206B_202A_202E_202E_202E_200E_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>(1232681813), new object[2]
|
||||
{
|
||||
sourceId,
|
||||
ptr->Type
|
||||
});
|
||||
EventHandler? eventHandler = this.Interrupted;
|
||||
if (eventHandler == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
eventHandler(this, EventArgs.Empty);
|
||||
num = -1304675561;
|
||||
break;
|
||||
}
|
||||
case 12:
|
||||
num = ((num8 < effectHeader->TargetCount) ? (-1304675565) : (-1304675561));
|
||||
break;
|
||||
case 2:
|
||||
type = ptr->Type;
|
||||
num = ((type == EActionEffectType.Damage) ? (-1304675567) : (-1304675553));
|
||||
break;
|
||||
case 7:
|
||||
flag2 = true;
|
||||
num = -1304675566;
|
||||
break;
|
||||
case 0:
|
||||
flag2 = false;
|
||||
num = -1304675566;
|
||||
break;
|
||||
case 10:
|
||||
num = ((!flag) ? (-1304675568) : (-1304675563));
|
||||
break;
|
||||
case 11:
|
||||
playerCharacter = _202E_200F_202B_200C_202B_202C_202D_200F_206B_200F_206E_200C_202E_200F_202E_202D_206E_200C_206E_206F_206D_206A_202D_200E_206A_200E_202B_206B_202A_202D_202C_200F_200E_200C_202C_200E_206E_206D_202B_202E_202E(_objectTable);
|
||||
num8 = 0;
|
||||
num = -1304675558;
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
int num7 = num8;
|
||||
num3 = 1;
|
||||
num4 = num7;
|
||||
int num9 = num4 ^ num3;
|
||||
int num10 = num4 & num3;
|
||||
num8 = num9 + (num10 + num10);
|
||||
num = -1304675558;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogWarning(exception, "Unable to process action effect");
|
||||
_200D_200E_202A_206E_200C_200D_202E_200D_202C_206E_200F_200D_206F_202E_200C_200C_200E_202E_202E_206B_206A_206E_206B_202B_200C_200C_206E_206B_200C_202D_202C_202B_200E_202B_202A_206E_200B_202C_206A_206F_202E((ILogger)_logger, ex, 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>(-1383878648), Array.Empty<object>());
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
@ -189,7 +373,73 @@ internal sealed class InterruptHandler : IDisposable
|
|||
|
||||
public void Dispose()
|
||||
{
|
||||
_processActionEffectHook.Disable();
|
||||
_processActionEffectHook.Dispose();
|
||||
int num = ((_processActionEffectHook == null) ? (-1959940168) : (-1959940165));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1959940166;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -1959940165;
|
||||
break;
|
||||
case 1:
|
||||
_processActionEffectHook.Disable();
|
||||
_processActionEffectHook.Dispose();
|
||||
num = -1959940168;
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
}
|
||||
|
||||
static void _202C_200C_206A_202B_206A_202E_206E_206A_202D_206C_200D_200E_206E_200C_200E_206F_200D_200B_200C_206B_206D_206C_202E_202B_206C_206F_202A_206D_202B_206F_200E_200D_200D_202A_206E_200E_202E_206A_206F_202E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogError(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static Delegate _200D_200C_206C_200D_202D_202E_206A_202A_206E_202A_200C_202C_200E_200C_200D_206C_202C_200E_200B_206D_200D_200C_206B_206B_200E_206B_202B_200B_206A_200F_206E_200B_200B_206E_202A_206A_206D_202D_206B_202A_202E(Delegate P_0, Delegate P_1)
|
||||
{
|
||||
return Delegate.Combine(P_0, P_1);
|
||||
}
|
||||
|
||||
static Delegate _202C_200E_200C_202C_200E_202C_206F_202C_206A_206E_206E_206F_202E_200C_206F_200C_200F_202C_202D_206A_200F_202A_200F_202C_202A_202D_200B_206A_206B_202D_200B_200D_206F_200B_202B_200E_202A_200F_206B_202E_202E(Delegate P_0, Delegate P_1)
|
||||
{
|
||||
return Delegate.Remove(P_0, P_1);
|
||||
}
|
||||
|
||||
static uint _200C_206D_206C_206B_206C_206E_202D_206F_202A_200B_206E_206C_202D_202D_202C_202B_202E_202B_200C_206B_202D_200D_200E_206A_200F_206F_206C_206D_206D_202E_202C_206D_202D_206C_200D_206D_202B_200F_206F_200C_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static IPlayerCharacter _202E_200F_202B_200C_202B_202C_202D_200F_206B_200F_206E_200C_202E_200F_202E_202D_206E_200C_206E_206F_206D_206A_202D_200E_206A_200E_202B_206B_202A_202D_202C_200F_200E_200C_202C_200E_206E_206D_202B_202E_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static ulong _206C_202B_200E_206A_206E_200C_202D_200F_202E_206C_206F_202D_200F_202A_200B_202E_202D_200B_206B_206A_200F_202A_200E_202C_200D_206C_202E_206C_200B_200F_202E_206E_206F_202A_202E_200E_206E_206B_206D_202A_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.GameObjectId;
|
||||
}
|
||||
|
||||
static void _202A_202E_206C_206E_200D_202E_202E_206F_206B_202E_200C_200D_202A_200B_206E_206A_202D_200F_200D_202D_200B_200D_200D_206C_202B_206C_202A_202A_200E_202D_206A_206A_202C_200F_206B_202A_202E_202E_202E_200E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogTrace(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _200D_200E_202A_206E_200C_200D_202E_200D_202C_206E_200F_200D_206F_202E_200C_200C_200E_202E_202E_206B_206A_206E_206B_202B_200C_200C_206E_206B_200C_202D_202C_202B_200E_202B_202A_206E_200B_202C_206A_206F_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2, P_3);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
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;
|
||||
|
|
@ -8,6 +10,7 @@ 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;
|
||||
|
|
@ -21,6 +24,55 @@ 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;
|
||||
|
|
@ -31,7 +83,9 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
|
||||
private readonly InterruptHandler _interruptHandler;
|
||||
|
||||
private readonly ILogger<T> _logger;
|
||||
private readonly Configuration _configuration;
|
||||
|
||||
protected readonly ILogger<T> _logger;
|
||||
|
||||
private readonly Regex _actionCanceledText;
|
||||
|
||||
|
|
@ -39,21 +93,30 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
|
||||
private readonly string _cantExecuteDueToStatusText;
|
||||
|
||||
protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, ILogger<T> logger)
|
||||
private ITask? _lastInterruptedTask;
|
||||
|
||||
private int _interruptRetryCount;
|
||||
|
||||
private int _retryStepCount;
|
||||
|
||||
protected MiniTaskController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, ILogger<T> logger)
|
||||
{
|
||||
_chatGui = chatGui;
|
||||
_logger = logger;
|
||||
_serviceProvider = serviceProvider;
|
||||
_interruptHandler = interruptHandler;
|
||||
_condition = condition;
|
||||
_configuration = configuration;
|
||||
_eventCanceledText = dataManager.GetString(1318u, (LogMessage x) => x.Text);
|
||||
_actionCanceledText = dataManager.GetRegex(1314u, (LogMessage x) => x.Text);
|
||||
_cantExecuteDueToStatusText = dataManager.GetString(7728u, (LogMessage x) => x.Text);
|
||||
_interruptHandler.Interrupted += HandleInterruption;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected virtual void UpdateCurrentTask()
|
||||
{
|
||||
int num;
|
||||
if (_taskQueue.CurrentTaskExecutor == null)
|
||||
{
|
||||
if (!_taskQueue.TryDequeue(out ITask task))
|
||||
|
|
@ -62,85 +125,280 @@ internal abstract class MiniTaskController<T> : IDisposable
|
|||
}
|
||||
try
|
||||
{
|
||||
_logger.LogInformation("Starting task {TaskName}", task.ToString());
|
||||
ITaskExecutor requiredKeyedService = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task.GetType());
|
||||
if (requiredKeyedService.Start(task))
|
||||
_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)
|
||||
{
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService;
|
||||
return;
|
||||
int num2 = num;
|
||||
int num3 = -231627346;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
_logger.LogTrace("Task {TaskName} was skipped", task.ToString());
|
||||
return;
|
||||
}
|
||||
catch (Exception exception)
|
||||
catch (Exception ex)
|
||||
{
|
||||
_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");
|
||||
_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));
|
||||
return;
|
||||
}
|
||||
}
|
||||
ITaskExecutor currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
ITask currentTask = currentTaskExecutor.CurrentTask;
|
||||
ETaskResult eTaskResult;
|
||||
try
|
||||
{
|
||||
if (_taskQueue.CurrentTaskExecutor.WasInterrupted())
|
||||
num = ((!currentTaskExecutor.WasInterrupted()) ? 235217046 : 235217045);
|
||||
while (true)
|
||||
{
|
||||
InterruptQueueWithCombat();
|
||||
return;
|
||||
}
|
||||
eTaskResult = _taskQueue.CurrentTaskExecutor.Update();
|
||||
}
|
||||
catch (Exception exception2)
|
||||
{
|
||||
_logger.LogError(exception2, "Failed to update task {TaskName}", _taskQueue.CurrentTaskExecutor.CurrentTask.ToString());
|
||||
_chatGui.PrintError($"Failed to update task '{_taskQueue.CurrentTaskExecutor.CurrentTask}', please check /xllog for details.", "Questionable", 576);
|
||||
Stop("Task failed to update");
|
||||
return;
|
||||
}
|
||||
switch (eTaskResult)
|
||||
{
|
||||
case ETaskResult.StillRunning:
|
||||
break;
|
||||
case ETaskResult.SkipRemainingTasksForStep:
|
||||
{
|
||||
_logger.LogInformation("{Task} → {Result}, skipping remaining tasks for step", _taskQueue.CurrentTaskExecutor.CurrentTask, eTaskResult);
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
ITask task3;
|
||||
while (_taskQueue.TryDequeue(out task3))
|
||||
{
|
||||
if ((task3 is ILastTask || task3 is Gather.SkipMarker) ? true : false)
|
||||
int num5 = num;
|
||||
int num3 = 235217046;
|
||||
int num4 = num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
ITaskExecutor requiredKeyedService2 = _serviceProvider.GetRequiredKeyedService<ITaskExecutor>(task3.GetType());
|
||||
requiredKeyedService2.Start(task3);
|
||||
_taskQueue.CurrentTaskExecutor = requiredKeyedService2;
|
||||
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
|
||||
});
|
||||
_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;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ETaskResult.TaskComplete:
|
||||
case ETaskResult.CreateNewTasks:
|
||||
_logger.LogInformation("{Task} → {Result}, remaining tasks: {RemainingTaskCount}", _taskQueue.CurrentTaskExecutor.CurrentTask, eTaskResult, _taskQueue.RemainingTasks.Count());
|
||||
OnTaskComplete(_taskQueue.CurrentTaskExecutor.CurrentTask);
|
||||
if (eTaskResult == ETaskResult.CreateNewTasks && _taskQueue.CurrentTaskExecutor is IExtraTaskCreator extraTaskCreator)
|
||||
{
|
||||
_taskQueue.EnqueueAll(extraTaskCreator.CreateExtraTasks());
|
||||
}
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
break;
|
||||
case ETaskResult.NextStep:
|
||||
catch (MovementController.PathfindingFailedException)
|
||||
{
|
||||
_logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTaskExecutor.CurrentTask, eTaskResult);
|
||||
ILastTask task2 = (ILastTask)_taskQueue.CurrentTaskExecutor.CurrentTask;
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
OnNextStep(task2);
|
||||
break;
|
||||
throw;
|
||||
}
|
||||
case ETaskResult.End:
|
||||
_logger.LogInformation("{Task} → {Result}", _taskQueue.CurrentTaskExecutor.CurrentTask, eTaskResult);
|
||||
_taskQueue.CurrentTaskExecutor = null;
|
||||
Stop("Task end");
|
||||
break;
|
||||
catch (Exception ex3)
|
||||
{
|
||||
_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));
|
||||
return;
|
||||
}
|
||||
num = ((_taskQueue.CurrentTaskExecutor == currentTaskExecutor) ? (-1790042060) : (-1790042062));
|
||||
bool flag = default(bool);
|
||||
ITask task2 = default(ITask);
|
||||
IExtraTaskCreator extraTaskCreator = default(IExtraTaskCreator);
|
||||
while (true)
|
||||
{
|
||||
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))
|
||||
{
|
||||
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]
|
||||
{
|
||||
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:
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -148,104 +406,354 @@ 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));
|
||||
}
|
||||
|
||||
protected void ResetStepRetryCounter()
|
||||
{
|
||||
_retryStepCount = 0;
|
||||
}
|
||||
|
||||
protected virtual void OnNextStep(ILastTask task)
|
||||
{
|
||||
}
|
||||
|
||||
public abstract void Stop(string label);
|
||||
public virtual void Stop(string label)
|
||||
{
|
||||
IStoppableTaskExecutor stoppableTaskExecutor = _taskQueue.CurrentTaskExecutor as IStoppableTaskExecutor;
|
||||
int num = ((stoppableTaskExecutor == null) ? (-478245129) : (-478245132));
|
||||
while (true)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public virtual IList<string> GetRemainingTaskNames()
|
||||
{
|
||||
return _taskQueue.RemainingTasks.Select((ITask x) => x.ToString() ?? "?").ToList();
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
int num = ((task == null) ? 45674528 : 45674531);
|
||||
while (true)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void InterruptQueueWithCombat()
|
||||
{
|
||||
_logger.LogWarning("Interrupted, attempting to resolve (if in combat)");
|
||||
if (_condition[ConditionFlag.InCombat])
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
int num = ((task != _lastInterruptedTask) ? (-2089841709) : (-2089841711));
|
||||
List<ITask> list = default(List<ITask>);
|
||||
while (true)
|
||||
{
|
||||
List<ITask> list = new List<ITask>();
|
||||
if (_condition[ConditionFlag.Mounted])
|
||||
int num2 = num;
|
||||
int num3 = -2089841710;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
list.Add(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
|
||||
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));
|
||||
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;
|
||||
}
|
||||
}
|
||||
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()
|
||||
{
|
||||
if (!(_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor))
|
||||
int num = ((_taskQueue.CurrentTaskExecutor is SinglePlayerDuty.WaitSinglePlayerDutyExecutor) ? 1044838736 : 1044838739);
|
||||
while (true)
|
||||
{
|
||||
_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();
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void LogTasksAfterInterruption()
|
||||
{
|
||||
_logger.LogInformation("Remaining tasks after interruption:");
|
||||
foreach (ITask remainingTask in _taskQueue.RemainingTasks)
|
||||
_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.LogInformation("- {TaskName}", remainingTask);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnErrorToast(ref SeString message, ref bool isHandled)
|
||||
{
|
||||
if (_taskQueue.AllTasksComplete)
|
||||
int num = ((!_taskQueue.AllTasksComplete) ? 573119934 : 573119925);
|
||||
IToastAware toastAware = default(IToastAware);
|
||||
while (true)
|
||||
{
|
||||
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())
|
||||
int num2 = num;
|
||||
int num3 = 573119928;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (!_condition[ConditionFlag.InFlight])
|
||||
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)
|
||||
{
|
||||
ITaskExecutor? currentTaskExecutor = _taskQueue.CurrentTaskExecutor;
|
||||
if (currentTaskExecutor != null && currentTaskExecutor.ShouldInterruptOnDamage())
|
||||
int num2 = num;
|
||||
int num3 = 759202619;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -254,4 +762,75 @@ 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1844
Questionable/Questionable.Controller/QuestPriorityResolver.cs
Normal file
1844
Questionable/Questionable.Controller/QuestPriorityResolver.cs
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
274
Questionable/Questionable.Controller/QuestResolution.cs
Normal file
274
Questionable/Questionable.Controller/QuestResolution.cs
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model.Questing;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal readonly record struct QuestResolution
|
||||
{
|
||||
public required EQuestResolutionType Type { get; init; }
|
||||
|
||||
public ElementId? QuestId { get; init; }
|
||||
|
||||
public byte Sequence { get; init; }
|
||||
|
||||
public MainScenarioQuestState MsqState { get; init; }
|
||||
|
||||
public required string DebugReason { get; init; }
|
||||
|
||||
public int LevelingTargetLevel { get; init; }
|
||||
|
||||
public string? LevelingQuestName { get; init; }
|
||||
|
||||
public bool HasQuest
|
||||
{
|
||||
get
|
||||
{
|
||||
int num = ((!_206C_200E_200F_206F_200C_200D_206E_200E_202A_206B_206A_206E_206A_202B_206E_202D_200E_200E_206A_200B_200B_206F_206C_202A_202C_200B_200B_206C_206E_206D_200D_206D_206B_200F_206B_206D_206D_202A_206F_200F_202E(QuestId, (ElementId?)null)) ? 206897557 : 206897558);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 206897556;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
return _200C_200F_202A_206B_200E_202E_206F_206C_206D_202C_202B_206B_206D_200C_206B_200E_206E_202C_202B_202B_200D_200C_202A_200F_202E_202D_206E_202A_202E_200E_200C_206C_200F_202D_202A_202B_202C_206C_200F_202E_202E(QuestId) != 0;
|
||||
case 0:
|
||||
goto IL_005f;
|
||||
}
|
||||
continue;
|
||||
IL_005f:
|
||||
num = 206897558;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsSlotBased
|
||||
{
|
||||
get
|
||||
{
|
||||
EQuestResolutionType type = Type;
|
||||
int num = (((uint)type > 2u) ? 551053514 : 551053515);
|
||||
bool result = default(bool);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 551053514;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num = 551053515;
|
||||
break;
|
||||
case 1:
|
||||
result = true;
|
||||
num = 551053513;
|
||||
break;
|
||||
case 0:
|
||||
result = false;
|
||||
num = 551053513;
|
||||
break;
|
||||
case 3:
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static QuestResolution Slot(EQuestResolutionType type, QuestController.QuestProgress progress, string reason)
|
||||
{
|
||||
return new QuestResolution
|
||||
{
|
||||
Type = type,
|
||||
QuestId = progress.Quest.Id,
|
||||
Sequence = progress.Sequence,
|
||||
MsqState = MainScenarioQuestState.Available,
|
||||
DebugReason = reason
|
||||
};
|
||||
}
|
||||
|
||||
public static QuestResolution ForQuest(EQuestResolutionType type, ElementId questId, byte sequence, MainScenarioQuestState msqState, string reason)
|
||||
{
|
||||
return new QuestResolution
|
||||
{
|
||||
Type = type,
|
||||
QuestId = questId,
|
||||
Sequence = sequence,
|
||||
MsqState = msqState,
|
||||
DebugReason = reason
|
||||
};
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public static QuestResolution Leveling(int targetLevel, string? questName, MainScenarioQuestState msqState)
|
||||
{
|
||||
QuestResolution result = new QuestResolution
|
||||
{
|
||||
Type = EQuestResolutionType.LevelingMode,
|
||||
MsqState = msqState
|
||||
};
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(17, 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>(842342782));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(targetLevel);
|
||||
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>(1386602519));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(questName);
|
||||
result.DebugReason = defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
result.LevelingTargetLevel = targetLevel;
|
||||
result.LevelingQuestName = questName;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static QuestResolution None(MainScenarioQuestState msqState, string reason)
|
||||
{
|
||||
return new QuestResolution
|
||||
{
|
||||
Type = EQuestResolutionType.NoQuest,
|
||||
MsqState = msqState,
|
||||
DebugReason = reason
|
||||
};
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _206D_206A_202A_200C_206C_202B_206D_206B_200D_206D_206E_206D_202D_200D_206B_200E_202C_200D_202E_202C_202A_206D_200E_200E_206D_206E_206B_202D_200B_206E_200B_202A_206A_206E_206E_202A_200E_206E_202A_202A_202E();
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(stringBuilder, 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>(-1454729843));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(stringBuilder, 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>(117284107));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? 497105174 : 497105175);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 497105174;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
_206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(stringBuilder, '}');
|
||||
return _202B_202D_206D_200C_200C_206C_206A_206E_206D_206C_200B_206B_202E_200E_202D_206B_206C_200F_206E_206D_206E_200C_200B_206D_206A_202A_202D_200D_200E_202A_206E_202C_200D_202A_202C_200D_206D_200E_202C_200F_202E((object?)stringBuilder);
|
||||
case 1:
|
||||
_206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(stringBuilder, ' ');
|
||||
num = 497105174;
|
||||
break;
|
||||
case 2:
|
||||
num = 497105175;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(2142299818));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, Type.ToString());
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(1355464271));
|
||||
_200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)QuestId);
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(-1883281888));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, Sequence.ToString());
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(-1661504935));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, MsqState.ToString());
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(-940584201));
|
||||
_200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)DebugReason);
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(-436279056));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, LevelingTargetLevel.ToString());
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(2055448933));
|
||||
_200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(builder, (object?)LevelingQuestName);
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(-660514735));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, HasQuest.ToString());
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, 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>(1071893673));
|
||||
_206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(builder, IsSlotBased.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(QuestResolution other)
|
||||
{
|
||||
int num = ((!EqualityComparer<EQuestResolutionType>.Default.Equals(Type, other.Type)) ? 408097635 : 408097637);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 408097635;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 5:
|
||||
num = ((!EqualityComparer<byte>.Default.Equals(Sequence, other.Sequence)) ? 408097635 : 408097632);
|
||||
break;
|
||||
case 1:
|
||||
num = ((!EqualityComparer<string>.Default.Equals(DebugReason, other.DebugReason)) ? 408097635 : 408097633);
|
||||
break;
|
||||
case 4:
|
||||
return EqualityComparer<string>.Default.Equals(LevelingQuestName, other.LevelingQuestName);
|
||||
case 2:
|
||||
num = ((!EqualityComparer<int>.Default.Equals(LevelingTargetLevel, other.LevelingTargetLevel)) ? 408097635 : 408097639);
|
||||
break;
|
||||
case 0:
|
||||
return false;
|
||||
case 7:
|
||||
num = 408097637;
|
||||
break;
|
||||
case 3:
|
||||
num = ((!EqualityComparer<MainScenarioQuestState>.Default.Equals(MsqState, other.MsqState)) ? 408097635 : 408097634);
|
||||
break;
|
||||
case 6:
|
||||
num = ((!EqualityComparer<ElementId>.Default.Equals(QuestId, other.QuestId)) ? 408097635 : 408097638);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<QuestResolution>.Equals(QuestResolution other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static bool _206C_200E_200F_206F_200C_200D_206E_200E_202A_206B_206A_206E_206A_202B_206E_202D_200E_200E_206A_200B_200B_206F_206C_202A_202C_200B_200B_206C_206E_206D_200D_206D_206B_200F_206B_206D_206D_202A_206F_200F_202E(ElementId? P_0, ElementId? P_1)
|
||||
{
|
||||
return P_0 != P_1;
|
||||
}
|
||||
|
||||
static ushort _200C_200F_202A_206B_200E_202E_206F_206C_206D_202C_202B_206B_206D_200C_206B_200E_206E_202C_202B_202B_200D_200C_202A_200F_202E_202D_206E_202A_202E_200E_200C_206C_200F_202D_202A_202B_202C_206C_200F_202E_202E(ElementId? P_0)
|
||||
{
|
||||
return P_0.Value;
|
||||
}
|
||||
|
||||
static StringBuilder? _206D_206A_202A_200C_206C_202B_206D_206B_200D_206D_206E_206D_202D_200D_206B_200E_202C_200D_202E_202C_202A_206D_200E_200E_206D_206E_206B_202D_200B_206E_200B_202A_206A_206E_206E_202A_200E_206E_202A_202A_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder? _206C_200B_206D_202C_206A_202D_202E_206B_202A_200C_206D_200F_206D_206B_202A_206F_200F_206E_202B_202E_206C_206A_200C_202E_202A_206A_202B_206A_206C_206A_206E_200D_202A_206A_200D_202E_200D_206D_202E_206A_202E(StringBuilder? P_0, string? P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder? _206B_206E_200B_206A_202D_206B_202C_206D_206B_202C_202C_206D_202E_206F_200C_206D_200E_206F_202B_200F_206B_200D_202C_206F_206D_206A_206E_202A_202B_206C_200E_202A_202B_200B_200E_206D_206A_200E_206F_200E_202E(StringBuilder? P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string? _202B_202D_206D_200C_200C_206C_206A_206E_206D_206C_200B_206B_202E_200E_202D_206B_206C_200F_206E_206D_206E_200C_200B_206D_206A_202A_202D_200D_200E_202A_206E_202C_200D_202A_202C_200D_206D_200E_202C_200F_202E(object? P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static StringBuilder? _200C_206D_206F_206A_200F_206C_200E_200F_202B_206A_202D_202E_202D_202E_206E_200C_202A_202C_202C_206B_206F_200D_202C_202B_200E_202E_206C_206B_202E_200C_200B_206A_200C_202B_202A_206E_206E_206B_206E_200F_202E(StringBuilder? P_0, object? P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
}
|
||||
120
Questionable/Questionable.Controller/QuestSlots.cs
Normal file
120
Questionable/Questionable.Controller/QuestSlots.cs
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Questionable.Model;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal readonly record struct QuestSlots(QuestController.QuestProgress? Simulated, QuestController.QuestProgress? Next, QuestController.QuestProgress? Gathering, List<Quest> ManualPriorityQuests, QuestController.EAutomationType AutomationType)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _200F_206A_206A_206F_200F_202E_200B_200B_206C_202B_200B_206F_206C_206E_202B_202D_202B_200C_200B_206D_206C_202B_200F_202D_206F_206B_200E_200E_200F_202A_200D_200E_202A_206E_202E_206A_200F_206B_202B_206C_202E();
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(stringBuilder, 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>(1514472868));
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(stringBuilder, 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>(1664411125));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? (-1459143822) : (-1459143823));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1459143821;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
_206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(stringBuilder, '}');
|
||||
return _202C_200B_200F_200D_200D_202D_206D_200B_206B_206A_200D_200F_206A_200B_206F_200B_206C_200C_206F_206F_202C_206B_200D_202C_200B_206F_206D_202D_202B_202E_202C_206E_202A_200E_200E_202B_200B_206A_206C_206D_202E((object?)stringBuilder);
|
||||
case 2:
|
||||
_206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(stringBuilder, ' ');
|
||||
num = -1459143822;
|
||||
break;
|
||||
case 0:
|
||||
num = -1459143823;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, 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>(1870703456));
|
||||
_202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Simulated);
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, 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>(-1249651831));
|
||||
_202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Next);
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, 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>(-132265683));
|
||||
_202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)Gathering);
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, 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>(1954093048));
|
||||
_202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(builder, (object?)ManualPriorityQuests);
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, 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>(1435515341));
|
||||
_202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(builder, AutomationType.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(QuestSlots other)
|
||||
{
|
||||
int num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Simulated, other.Simulated)) ? (-365980673) : (-365980680));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -365980676;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -365980680;
|
||||
break;
|
||||
case 4:
|
||||
num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Next, other.Next)) ? (-365980673) : (-365980674));
|
||||
break;
|
||||
case 2:
|
||||
num = ((!EqualityComparer<QuestController.QuestProgress>.Default.Equals(Gathering, other.Gathering)) ? (-365980673) : (-365980675));
|
||||
break;
|
||||
case 1:
|
||||
num = ((!EqualityComparer<List<Quest>>.Default.Equals(ManualPriorityQuests, other.ManualPriorityQuests)) ? (-365980673) : (-365980679));
|
||||
break;
|
||||
case 3:
|
||||
return false;
|
||||
case 5:
|
||||
return EqualityComparer<QuestController.EAutomationType>.Default.Equals(AutomationType, other.AutomationType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<QuestSlots>.Equals(QuestSlots other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder? _200F_206A_206A_206F_200F_202E_200B_200B_206C_202B_200B_206F_206C_206E_202B_202D_202B_200C_200B_206D_206C_202B_200F_202D_206F_206B_200E_200E_200F_202A_200D_200E_202A_206E_202E_206A_200F_206B_202B_206C_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder? _202E_200E_200F_202C_206F_200B_206D_202E_206E_202C_206B_200B_200C_202E_206C_202E_206F_200F_206E_200C_202E_202B_200B_206E_206A_202D_202C_200E_206A_202C_202C_206A_202B_200D_206D_200F_206A_202E_202D_202B_202E(StringBuilder? P_0, string? P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder? _206B_202E_206C_202E_200B_202D_206A_202C_200B_202C_206E_202C_200C_200F_202C_206C_202D_200E_202A_202C_206A_206A_206E_206C_202B_202A_200E_202C_202E_200E_206C_200C_206B_202D_206F_206F_202D_206F_202A_206F_202E(StringBuilder? P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string? _202C_200B_200F_200D_200D_202D_206D_200B_206B_206A_200D_200F_206A_200B_206F_200B_206C_200C_206F_206F_202C_206B_200D_202C_200B_206F_206D_202D_202B_202E_202C_206E_202A_200E_200E_202B_200B_206A_206C_206D_202E(object? P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static StringBuilder? _202D_202B_206A_206E_206A_200E_202D_206B_200F_202E_206B_202D_200E_200B_200B_200E_202C_200F_206C_200D_200C_202D_202A_202B_202C_206B_206F_206D_206E_200F_206D_200F_202C_206B_202E_202A_200E_206C_200F_200C_202E(StringBuilder? P_0, object? P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,28 +1,105 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
using Questionable.Controller.Steps.Common;
|
||||
using Questionable.Controller.Steps.Interactions;
|
||||
using Questionable.Controller.Steps.Movement;
|
||||
using Questionable.Controller.Steps.Shared;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.Navigation;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyController>
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass23_0
|
||||
{
|
||||
public SeasonalDutyController _003C_003E4__this;
|
||||
|
||||
public SeasonalDutyDefinition duty;
|
||||
|
||||
internal bool _003CEnqueueDutyCycle_003Eb__0()
|
||||
{
|
||||
return _200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(_003C_003E4__this._clientState) != _202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(_003C_003E4__this._currentDuty);
|
||||
}
|
||||
|
||||
static uint _200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static ushort _202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.DutyTerritoryId;
|
||||
}
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
private sealed class _003C_003Ec__DisplayClass23_1
|
||||
{
|
||||
public bool interacted;
|
||||
|
||||
public _003C_003Ec__DisplayClass23_0 CS_0024_003C_003E8__locals1;
|
||||
|
||||
internal bool _003CEnqueueDutyCycle_003Eb__1()
|
||||
{
|
||||
int num = ((_206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(CS_0024_003C_003E8__locals1._003C_003E4__this._clientState) != _206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(CS_0024_003C_003E8__locals1._003C_003E4__this._currentDuty)) ? 1413699678 : 1413699677);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1413699679;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 1413699677;
|
||||
break;
|
||||
case 4:
|
||||
return false;
|
||||
case 2:
|
||||
return true;
|
||||
case 1:
|
||||
num = (interacted ? 1413699675 : 1413699676);
|
||||
break;
|
||||
case 3:
|
||||
interacted = CS_0024_003C_003E8__locals1._003C_003E4__this._gameFunctions.InteractWith(_202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(CS_0024_003C_003E8__locals1.duty));
|
||||
num = 1413699675;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uint _206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static ushort _206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.DutyTerritoryId;
|
||||
}
|
||||
|
||||
static uint _202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.NpcDataId;
|
||||
}
|
||||
}
|
||||
|
||||
private readonly MovementController _movementController;
|
||||
|
||||
private readonly GameFunctions _gameFunctions;
|
||||
|
||||
private readonly IClientState _clientState;
|
||||
|
||||
private readonly ILogger<SeasonalDutyController> _logger;
|
||||
private readonly SmartNavRouteEnqueuer _routeEnqueuer;
|
||||
|
||||
private SeasonalDutyDefinition? _currentDuty;
|
||||
|
||||
|
|
@ -34,6 +111,8 @@ internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyCo
|
|||
|
||||
public bool IsRunning => _currentDuty != null;
|
||||
|
||||
public TaskQueue TaskQueue => _taskQueue;
|
||||
|
||||
public SeasonalDutyDefinition? CurrentDuty => _currentDuty;
|
||||
|
||||
public int CompletedCycles => _completedCycles;
|
||||
|
|
@ -44,127 +123,280 @@ internal sealed class SeasonalDutyController : MiniTaskController<SeasonalDutyCo
|
|||
{
|
||||
get
|
||||
{
|
||||
if (!IsRunning)
|
||||
int num = (IsRunning ? (-1081163331) : (-1081163330));
|
||||
while (true)
|
||||
{
|
||||
return TimeSpan.Zero;
|
||||
int num2 = num;
|
||||
int num3 = -1081163332;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
return DateTime.UtcNow - _startTime;
|
||||
case 2:
|
||||
return TimeSpan.Zero;
|
||||
case 0:
|
||||
goto IL_005f;
|
||||
}
|
||||
continue;
|
||||
IL_005f:
|
||||
num = -1081163330;
|
||||
}
|
||||
return DateTime.UtcNow - _startTime;
|
||||
}
|
||||
}
|
||||
|
||||
public SeasonalDutyController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, ILogger<SeasonalDutyController> logger, MovementController movementController, GameFunctions gameFunctions, IClientState clientState)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, logger)
|
||||
public SeasonalDutyController(IChatGui chatGui, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, ILogger<SeasonalDutyController> logger, MovementController movementController, GameFunctions gameFunctions, IClientState clientState, SmartNavRouteEnqueuer routeEnqueuer)
|
||||
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger)
|
||||
{
|
||||
_movementController = movementController;
|
||||
_gameFunctions = gameFunctions;
|
||||
_clientState = clientState;
|
||||
_logger = logger;
|
||||
_routeEnqueuer = routeEnqueuer;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Start(SeasonalDutyDefinition duty, int? cycleLimit = null)
|
||||
{
|
||||
_currentDuty = duty;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = cycleLimit;
|
||||
_startTime = DateTime.UtcNow;
|
||||
_logger.LogInformation("Starting seasonal duty farming: {DutyName} (limit: {Limit})", duty.Name, cycleLimit?.ToString(CultureInfo.InvariantCulture) ?? "unlimited");
|
||||
_202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_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>(116039114), new object[2]
|
||||
{
|
||||
_202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(duty),
|
||||
cycleLimit?.ToString(_206D_202D_200B_202D_200D_200B_206D_200B_200B_202C_200F_206C_202A_202B_206A_202E_206D_202A_206E_202C_206C_206F_206C_202E_202A_202B_202E_206F_200E_206C_206C_206A_202B_200E_206C_200C_202A_206E_206E_202B_202E()) ?? 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>(274217194)
|
||||
});
|
||||
EnqueueDutyCycle();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public void Update()
|
||||
{
|
||||
if (_currentDuty == null || _movementController.IsPathfinding || _movementController.IsPathRunning)
|
||||
int num = ((_currentDuty != null) ? 11397495 : 11397490);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_taskQueue.AllTasksComplete)
|
||||
{
|
||||
_completedCycles++;
|
||||
if (_cycleLimit.HasValue && _completedCycles >= _cycleLimit.Value)
|
||||
int num2 = num;
|
||||
int num3 = 11397493;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
_logger.LogInformation("Seasonal duty cycle limit reached ({Cycles}/{Limit})", _completedCycles, _cycleLimit.Value);
|
||||
Stop("Cycle limit reached");
|
||||
case 6:
|
||||
num = 11397490;
|
||||
break;
|
||||
case 8:
|
||||
_202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_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>(1317227354), new object[2] { _completedCycles, _cycleLimit.Value });
|
||||
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>(-443148850));
|
||||
return;
|
||||
case 11:
|
||||
return;
|
||||
case 5:
|
||||
return;
|
||||
case 4:
|
||||
num = ((!_taskQueue.AllTasksComplete) ? 11397492 : 11397493);
|
||||
break;
|
||||
case 10:
|
||||
EnqueueDutyCycle();
|
||||
num = 11397492;
|
||||
break;
|
||||
case 12:
|
||||
num = ((!_gameFunctions.IsOccupied()) ? 11397489 : 11397502);
|
||||
break;
|
||||
case 2:
|
||||
num = (_movementController.IsPathfinding ? 11397488 : 11397494);
|
||||
break;
|
||||
case 1:
|
||||
UpdateCurrentTask();
|
||||
return;
|
||||
case 7:
|
||||
return;
|
||||
case 0:
|
||||
{
|
||||
int completedCycles = _completedCycles;
|
||||
num3 = 1;
|
||||
num4 = completedCycles;
|
||||
int num7 = num4 ^ num3;
|
||||
int num8 = num4 & num3;
|
||||
_completedCycles = num7 + (num8 + num8);
|
||||
num = ((!_cycleLimit.HasValue) ? 11397503 : 11397500);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num = ((!_movementController.IsPathRunning) ? 11397497 : 11397488);
|
||||
break;
|
||||
case 9:
|
||||
num = ((_completedCycles < _cycleLimit.Value) ? 11397503 : 11397501);
|
||||
break;
|
||||
}
|
||||
EnqueueDutyCycle();
|
||||
}
|
||||
UpdateCurrentTask();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private void EnqueueDutyCycle()
|
||||
{
|
||||
if (_currentDuty == null)
|
||||
int num = ((_currentDuty != null) ? (-363396158) : (-363396154));
|
||||
SeasonalDutyDefinition duty = default(SeasonalDutyDefinition);
|
||||
while (true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
SeasonalDutyDefinition duty = _currentDuty;
|
||||
_logger.LogInformation("Enqueuing seasonal duty cycle for {DutyName}", duty.Name);
|
||||
if (_clientState.TerritoryType != duty.DutyTerritoryId)
|
||||
{
|
||||
if (_clientState.TerritoryType != duty.TerritoryId)
|
||||
int num2 = num;
|
||||
int num3 = -363396158;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
_taskQueue.Enqueue(new AetheryteShortcut.Task(null, null, duty.Aetheryte, duty.TerritoryId));
|
||||
}
|
||||
if (duty.AethernetShortcut != null)
|
||||
case 2:
|
||||
num = -363396154;
|
||||
break;
|
||||
case 4:
|
||||
return;
|
||||
case 1:
|
||||
{
|
||||
_taskQueue.Enqueue(new AethernetShortcut.Task(duty.AethernetShortcut.From, duty.AethernetShortcut.To));
|
||||
}
|
||||
_taskQueue.Enqueue(new MoveTask(duty.TerritoryId, duty.NpcPosition, null, 3f));
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
bool interacted = false;
|
||||
_taskQueue.Enqueue(new WaitCondition.Task(delegate
|
||||
{
|
||||
if (_clientState.TerritoryType == _currentDuty.DutyTerritoryId)
|
||||
_routeEnqueuer.Enqueue(_taskQueue, _200E_202B_202B_206F_202B_202A_200E_200F_200B_200E_202C_206B_206E_202E_200D_206B_200D_202C_206E_200D_200B_200B_202C_206C_206C_202E_200D_202E_200B_200D_206E_206B_202E_202D_200F_202D_202C_206C_206B_200D_202E(duty), _202B_202A_202B_202B_206E_200E_202E_206A_200D_206A_202E_200E_200B_206B_206E_200B_202D_200F_206E_202B_200B_206D_206C_206F_206B_202C_200E_200B_200B_200B_206C_206D_202B_206A_200F_202B_206F_200C_206B_202C_202E(duty));
|
||||
_taskQueue.Enqueue(new Mount.UnmountTask());
|
||||
bool interacted = false;
|
||||
TaskQueue taskQueue = _taskQueue;
|
||||
Func<bool> predicate = delegate
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!interacted)
|
||||
{
|
||||
interacted = _gameFunctions.InteractWith(duty.NpcDataId);
|
||||
}
|
||||
return false;
|
||||
}, $"InteractAndWait(territory: {duty.DutyTerritoryId})"));
|
||||
int num5 = ((_003C_003Ec__DisplayClass23_1._206D_206A_206F_200E_200E_206D_202D_200C_200E_202B_206D_200D_202E_200C_206E_206E_202A_202A_206F_206F_200E_206B_206B_206A_206C_202C_200B_206A_206B_206F_200B_206F_200B_200F_202E_202A_200F_202B_206A_206F_202E(_clientState) != _003C_003Ec__DisplayClass23_1._206F_200F_206C_202A_200E_200E_200E_206A_202C_202E_200D_206B_206D_206D_202E_202E_206F_206E_206F_202A_206D_200E_206A_200D_200D_206E_200F_200D_200F_202E_206D_202A_206D_206E_200C_206E_200E_202D_206C_202A_202E(_currentDuty)) ? 1413699678 : 1413699677);
|
||||
while (true)
|
||||
{
|
||||
int num6 = num5;
|
||||
int num7 = 1413699679;
|
||||
int num8 = num6;
|
||||
int num9 = num8 + num7;
|
||||
int num10 = num8 & num7;
|
||||
switch (num9 - (num10 + num10))
|
||||
{
|
||||
case 0:
|
||||
num5 = 1413699677;
|
||||
break;
|
||||
case 4:
|
||||
return false;
|
||||
case 2:
|
||||
return true;
|
||||
case 1:
|
||||
num5 = (interacted ? 1413699675 : 1413699676);
|
||||
break;
|
||||
case 3:
|
||||
interacted = _gameFunctions.InteractWith(_003C_003Ec__DisplayClass23_1._202C_206D_200D_200C_202E_200F_206C_206F_202B_206F_202C_206C_206C_206E_200B_206A_206A_206A_206F_200F_202D_200F_206A_206F_200D_202D_200F_206A_206C_206C_206A_202E_202E_206C_202B_206D_200B_206B_206B_206A_202E(duty));
|
||||
num5 = 1413699675;
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(28, 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>(-439033438));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(_200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty));
|
||||
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>(444206578));
|
||||
taskQueue.Enqueue(new WaitCondition.Task(predicate, defaultInterpolatedStringHandler.ToStringAndClear()));
|
||||
num = -363396159;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
_taskQueue.Enqueue(new ClearObjectsWithAction.ClearTask(_206C_206A_202C_202D_202E_200F_200B_200F_206E_202E_200E_202E_206E_206B_200F_206C_206E_202B_202B_200D_200C_206A_200D_200F_206C_206D_200E_202D_206F_200E_206A_206C_206E_202A_202E_206A_200E_200F_206A_206B_202E(duty), _200F_202B_206A_202A_200E_200F_200B_206E_200B_206F_202C_200E_206C_202E_202E_200C_200E_200C_206B_202B_206A_206A_200B_202B_206D_202D_206E_206F_200B_200F_202E_206A_206E_206F_202B_202E_200F_206D_206B_206B_202E(duty), _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty), _206D_206F_202E_200F_200E_200F_202A_206C_206B_202B_206A_206C_200D_206F_206F_206C_200B_206A_202C_206D_202E_202B_206C_206D_206F_206F_202C_206E_206F_206E_200C_202E_200F_200F_200C_206B_202D_202D_202D_200F_202E(duty), _200C_202C_200C_202A_206F_206E_200F_202C_206A_202C_200B_200D_202D_202A_206E_206E_206F_202B_202E_206F_202A_202B_200F_200B_206B_206B_200C_202B_206C_202C_202D_206D_202B_206B_200E_200D_202A_202D_202E_200C_202E(duty)));
|
||||
_taskQueue.Enqueue(new WaitCondition.Task(() => _003C_003Ec__DisplayClass23_0._200C_200D_200B_206D_202E_206E_200B_202A_200C_202D_206E_206B_200D_206F_202E_202D_206D_206B_202A_202D_200C_206B_202A_206A_200F_200D_202A_206B_202D_206F_200C_200D_206E_202B_206F_202D_202B_202D_200E_206B_202E(_clientState) != _003C_003Ec__DisplayClass23_0._202B_206B_206C_202A_206B_202C_200B_200F_200C_200D_200D_206E_206D_206B_206F_206E_200F_206D_200F_202C_206A_202E_200D_206B_202E_202D_200C_206D_206E_202C_206A_202A_202E_206C_202B_202D_200F_206B_200D_202E(_currentDuty), 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>(1272006970)));
|
||||
_taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L)));
|
||||
return;
|
||||
case 0:
|
||||
duty = _currentDuty;
|
||||
_206C_200B_206D_200F_206F_200B_206A_202C_206B_200C_206B_202C_200B_206E_202D_200E_206C_206B_200B_202C_200B_202D_206C_206D_200E_206A_200F_200B_206B_200F_202D_202B_200B_200F_206E_206D_206A_206F_206C_200E_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>(1169265253), new object[1] { _202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(duty) });
|
||||
num = ((_206B_206B_206A_206B_206B_206A_200E_206B_206C_206F_200C_200D_202C_206E_200D_200C_206F_206E_206B_202C_206A_202C_202C_206B_202B_206C_202C_200C_200B_200C_202B_202D_206A_200F_200F_202E_202B_200F_206F_200D_202E(_clientState) == _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(duty)) ? (-363396159) : (-363396157));
|
||||
break;
|
||||
}
|
||||
}
|
||||
_taskQueue.Enqueue(new ClearObjectsWithAction.ClearTask(duty.DataIds, duty.Action, duty.DutyTerritoryId, duty.StopDistance, duty.WaypointPositions));
|
||||
_taskQueue.Enqueue(new WaitCondition.Task(() => _clientState.TerritoryType != _currentDuty.DutyTerritoryId, "Wait(duty end)"));
|
||||
_taskQueue.Enqueue(new WaitAtEnd.WaitDelay(TimeSpan.FromSeconds(3L)));
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override void Stop(string label)
|
||||
{
|
||||
if (_currentDuty != null)
|
||||
base.Stop(label);
|
||||
int num = ((_currentDuty == null) ? (-485245230) : (-485245231));
|
||||
while (true)
|
||||
{
|
||||
_logger.LogInformation("Stopping seasonal duty farming: {Label} (completed {Cycles} cycles)", label, _completedCycles);
|
||||
_currentDuty = null;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = null;
|
||||
_taskQueue.Reset();
|
||||
int num2 = num;
|
||||
int num3 = -485245232;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = -485245231;
|
||||
break;
|
||||
case 1:
|
||||
_202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_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>(478807852), new object[2] { label, _completedCycles });
|
||||
_routeEnqueuer.ClearDestination();
|
||||
_currentDuty = null;
|
||||
_completedCycles = 0;
|
||||
_cycleLimit = null;
|
||||
_taskQueue.Reset();
|
||||
num = -485245230;
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override IList<string> GetRemainingTaskNames()
|
||||
static string _202D_202B_202E_202C_202B_202B_200C_202D_200E_206E_202B_200D_206F_202B_202E_200E_206B_200D_206F_202C_200E_200E_206B_206C_206F_202E_200F_206C_206C_200E_200F_202B_200D_202D_202B_206A_200F_200D_206E_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
ITask task = _taskQueue.CurrentTaskExecutor?.CurrentTask;
|
||||
if (task != null)
|
||||
{
|
||||
string text = task.ToString() ?? "?";
|
||||
IList<string> remainingTaskNames = base.GetRemainingTaskNames();
|
||||
int num = 1 + remainingTaskNames.Count;
|
||||
List<string> list = new List<string>(num);
|
||||
CollectionsMarshal.SetCount(list, num);
|
||||
Span<string> span = CollectionsMarshal.AsSpan(list);
|
||||
int num2 = 0;
|
||||
span[num2] = text;
|
||||
num2++;
|
||||
{
|
||||
foreach (string item in remainingTaskNames)
|
||||
{
|
||||
span[num2] = item;
|
||||
num2++;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
return base.GetRemainingTaskNames();
|
||||
return P_0.Name;
|
||||
}
|
||||
|
||||
static CultureInfo _206D_202D_200B_202D_200D_200B_206D_200B_200B_202C_200F_206C_202A_202B_206A_202E_206D_202A_206E_202C_206C_206F_206C_202E_202A_202B_202E_206F_200E_206C_206C_206A_202B_200E_206C_200C_202A_206E_206E_202B_202E()
|
||||
{
|
||||
return CultureInfo.InvariantCulture;
|
||||
}
|
||||
|
||||
static void _202A_200D_200F_206C_200B_206E_206F_206D_202C_200B_202D_200B_206D_200E_200E_200C_206D_206E_206D_206F_202D_200C_206A_200E_206D_200F_200C_200C_200C_200D_200E_202A_200D_200C_206C_200C_206C_200D_206D_206A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogInformation(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206C_200B_206D_200F_206F_200B_206A_202C_206B_200C_206B_202C_200B_206E_202D_200E_206C_206B_200B_202C_200B_202D_206C_206D_200E_206A_200F_200B_206B_200F_202D_202B_200B_200F_206E_206D_206A_206F_206C_200E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static uint _206B_206B_206A_206B_206B_206A_200E_206B_206C_206F_200C_200D_202C_206E_200D_200C_206F_206E_206B_202C_206A_202C_202C_206B_202B_206C_202C_200C_200B_200C_202B_202D_206A_200F_200F_202E_202B_200F_206F_200D_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static ushort _200E_200C_200B_202A_202B_200E_200C_200D_200D_202B_200E_200F_200F_202B_200C_202B_202C_202D_202B_202E_202D_202A_206E_202D_206A_206B_200D_206B_200E_202A_206F_200B_206D_206F_206F_200F_200D_202C_202E_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.DutyTerritoryId;
|
||||
}
|
||||
|
||||
static ushort _200E_202B_202B_206F_202B_202A_200E_200F_200B_200E_202C_206B_206E_202E_200D_206B_200D_202C_206E_200D_200B_200B_202C_206C_206C_202E_200D_202E_200B_200D_206E_206B_202E_202D_200F_202D_202C_206C_206B_200D_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.TerritoryId;
|
||||
}
|
||||
|
||||
static Vector3 _202B_202A_202B_202B_206E_200E_202E_206A_200D_206A_202E_200E_200B_206B_206E_200B_202D_200F_206E_202B_200B_206D_206C_206F_206B_202C_200E_200B_200B_200B_206C_206D_202B_206A_200F_202B_206F_200C_206B_202C_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.NpcPosition;
|
||||
}
|
||||
|
||||
static List<uint> _206C_206A_202C_202D_202E_200F_200B_200F_206E_202E_200E_202E_206E_206B_200F_206C_206E_202B_202B_200D_200C_206A_200D_200F_206C_206D_200E_202D_206F_200E_206A_206C_206E_202A_202E_206A_200E_200F_206A_206B_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.DataIds;
|
||||
}
|
||||
|
||||
static EAction _200F_202B_206A_202A_200E_200F_200B_206E_200B_206F_202C_200E_206C_202E_202E_200C_200E_200C_206B_202B_206A_206A_200B_202B_206D_202D_206E_206F_200B_200F_202E_206A_206E_206F_202B_202E_200F_206D_206B_206B_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.Action;
|
||||
}
|
||||
|
||||
static float _206D_206F_202E_200F_200E_200F_202A_206C_206B_202B_206A_206C_200D_206F_206F_206C_200B_206A_202C_206D_202E_202B_206C_206D_206F_206F_202C_206E_206F_206E_200C_202E_200F_200F_200C_206B_202D_202D_202D_200F_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.StopDistance;
|
||||
}
|
||||
|
||||
static List<Vector3> _200C_202C_200C_202A_206F_206E_200F_202C_206A_202C_200B_200D_202D_202A_206E_206E_206F_202B_202E_206F_202A_202B_200F_200B_206B_206B_200C_202B_206C_202C_202D_206D_202B_206B_200E_200D_202A_202D_202E_200C_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.WaypointPositions;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,148 +1,78 @@
|
|||
#define RELEASE
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Model.Questing;
|
||||
using Questionable.SeasonalDutyPaths;
|
||||
using Questionable.Windows.QuestComponents;
|
||||
using Questionable.Validation;
|
||||
using Questionable.Validation.Validators;
|
||||
|
||||
namespace Questionable.Controller;
|
||||
|
||||
internal sealed class SeasonalDutyDefinitionRegistry
|
||||
internal sealed class SeasonalDutyDefinitionRegistry : DefinitionRegistry<SeasonalDutyDefinition>
|
||||
{
|
||||
private readonly IDalamudPluginInterface _pluginInterface;
|
||||
|
||||
private readonly ILogger<SeasonalDutyDefinitionRegistry> _logger;
|
||||
|
||||
private readonly Dictionary<ushort, SeasonalDutyDefinition> _definitions = new Dictionary<ushort, SeasonalDutyDefinition>();
|
||||
|
||||
public IReadOnlyDictionary<ushort, SeasonalDutyDefinition> Definitions => _definitions;
|
||||
|
||||
public SeasonalDutyDefinitionRegistry(IDalamudPluginInterface pluginInterface, ILogger<SeasonalDutyDefinitionRegistry> logger)
|
||||
protected override string TypeLabel
|
||||
{
|
||||
_pluginInterface = pluginInterface;
|
||||
_logger = logger;
|
||||
Reload();
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
_definitions.Clear();
|
||||
LoadFromAssembly();
|
||||
try
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
LoadFromDirectory(new DirectoryInfo(Path.Combine(_pluginInterface.ConfigDirectory.FullName, "SeasonalDutyDefinitions")));
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_logger.LogError(exception, "Failed to load seasonal duty definitions from user directory (some may have been successfully loaded)");
|
||||
}
|
||||
RemoveExpiredDefinitions();
|
||||
_logger.LogInformation("Loaded {Count} seasonal duty definitions in total", _definitions.Count);
|
||||
}
|
||||
|
||||
[Conditional("RELEASE")]
|
||||
private void LoadFromAssembly()
|
||||
{
|
||||
_logger.LogInformation("Loading seasonal duty definitions from assembly");
|
||||
IReadOnlyDictionary<ushort, SeasonalDutyDefinition> definitions = AssemblySeasonalDutyDefinitionLoader.GetDefinitions();
|
||||
_logger.LogInformation("AssemblySeasonalDutyDefinitionLoader returned {Count} definitions", definitions.Count);
|
||||
foreach (var (key, value) in definitions)
|
||||
{
|
||||
_definitions[key] = value;
|
||||
}
|
||||
_logger.LogInformation("Loaded {Count} seasonal duty definitions from assembly", _definitions.Count);
|
||||
}
|
||||
|
||||
[Conditional("DEBUG")]
|
||||
private void LoadFromProjectDirectory()
|
||||
{
|
||||
DirectoryInfo directoryInfo = _pluginInterface.AssemblyLocation.Directory?.Parent?.Parent;
|
||||
if (directoryInfo == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
DirectoryInfo directoryInfo2 = new DirectoryInfo(Path.Combine(directoryInfo.FullName, "SeasonalDutyPaths"));
|
||||
if (directoryInfo2.Exists)
|
||||
{
|
||||
try
|
||||
{
|
||||
LoadFromDirectory(directoryInfo2);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_definitions.Clear();
|
||||
_logger.LogError(exception, "Failed to load seasonal duty definitions from project directory");
|
||||
}
|
||||
return 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>(-1124229794);
|
||||
}
|
||||
}
|
||||
|
||||
private void LoadFromDirectory(DirectoryInfo directory)
|
||||
protected override string ConfigDirectoryName
|
||||
{
|
||||
if (!directory.Exists)
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
_logger.LogInformation("Not loading seasonal duty definitions from {DirectoryName} (doesn't exist)", directory);
|
||||
return;
|
||||
}
|
||||
FileInfo[] files = directory.GetFiles("*.json");
|
||||
foreach (FileInfo fileInfo in files)
|
||||
{
|
||||
try
|
||||
{
|
||||
ushort? num = ExtractIdFromName(fileInfo.Name);
|
||||
if (!num.HasValue)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
using FileStream utf8Json = new FileStream(fileInfo.FullName, FileMode.Open, FileAccess.Read);
|
||||
SeasonalDutyDefinition seasonalDutyDefinition = JsonSerializer.Deserialize<SeasonalDutyDefinition>(utf8Json);
|
||||
if (seasonalDutyDefinition != null)
|
||||
{
|
||||
_definitions[num.Value] = seasonalDutyDefinition;
|
||||
}
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
_logger.LogError(exception, "Unable to load seasonal duty definition file {FileName}", fileInfo.FullName);
|
||||
}
|
||||
return 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>(393634060);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveExpiredDefinitions()
|
||||
protected override string ProjectDirectoryName
|
||||
{
|
||||
foreach (ushort item in (from kvp in _definitions.Where<KeyValuePair<ushort, SeasonalDutyDefinition>>(delegate(KeyValuePair<ushort, SeasonalDutyDefinition> kvp)
|
||||
{
|
||||
DateTime? eventExpiry = kvp.Value.EventExpiry;
|
||||
if (eventExpiry.HasValue)
|
||||
{
|
||||
DateTime valueOrDefault = eventExpiry.GetValueOrDefault();
|
||||
return EventInfoComponent.NormalizeExpiry(valueOrDefault) < DateTime.UtcNow;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
select kvp.Key).ToList())
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
get
|
||||
{
|
||||
_logger.LogInformation("Removing expired seasonal duty definition {Id} '{Name}'", item, _definitions[item].Name);
|
||||
_definitions.Remove(item);
|
||||
return 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>(-1200839821);
|
||||
}
|
||||
}
|
||||
|
||||
private static ushort? ExtractIdFromName(string fileName)
|
||||
protected override EPathType PathType => EPathType.SeasonalDuty;
|
||||
|
||||
public SeasonalDutyDefinitionRegistry(IDalamudPluginInterface pluginInterface, SeasonalDutySchemaValidator seasonalDutySchemaValidator, QuestValidator questValidator, ILogger<SeasonalDutyDefinitionRegistry> logger)
|
||||
: base(pluginInterface, (IDefinitionSchemaValidator)seasonalDutySchemaValidator, questValidator, (ILogger)logger)
|
||||
{
|
||||
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);
|
||||
if (!fileNameWithoutExtension.Contains('_', StringComparison.Ordinal))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if (ushort.TryParse(fileNameWithoutExtension.Split('_', 2)[0], out var result))
|
||||
{
|
||||
return result;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override IReadOnlyDictionary<ushort, SeasonalDutyDefinition> GetAssemblyDefinitions()
|
||||
{
|
||||
return _206F_206D_202B_206C_202C_206F_206C_200C_202A_200F_200E_202E_206B_200F_206C_202E_202A_206F_202A_206D_206D_202D_200E_206F_200E_206E_206C_206D_202E_206F_202A_202B_200D_206C_202C_206B_200C_202A_206A_202E();
|
||||
}
|
||||
|
||||
protected override DateTime? GetExpiry(SeasonalDutyDefinition definition)
|
||||
{
|
||||
return _206D_206E_202D_206B_200B_202E_202E_200E_206C_202C_202C_200C_202A_202C_206E_206A_202B_206D_206E_206B_202D_200C_206C_206F_200B_202E_206F_206E_202D_202E_202B_202C_200C_206E_200D_202D_202E_200E_206B_202E(definition);
|
||||
}
|
||||
|
||||
protected override string? GetName(SeasonalDutyDefinition definition)
|
||||
{
|
||||
return _200E_202A_200E_202E_202D_206B_202D_200F_200C_206E_206F_206A_200C_202D_206A_200F_206F_202C_202C_200F_202D_206D_200E_200B_206A_200D_202A_202D_200F_200F_206A_200E_200B_200C_200B_202D_200C_200C_206D_200C_202E(definition);
|
||||
}
|
||||
|
||||
static IReadOnlyDictionary<ushort, SeasonalDutyDefinition> _206F_206D_202B_206C_202C_206F_206C_200C_202A_200F_200E_202E_206B_200F_206C_202E_202A_206F_202A_206D_206D_202D_200E_206F_200E_206E_206C_206D_202E_206F_202A_202B_200D_206C_202C_206B_200C_202A_206A_202E()
|
||||
{
|
||||
return AssemblySeasonalDutyDefinitionLoader.GetDefinitions();
|
||||
}
|
||||
|
||||
static DateTime? _206D_206E_202D_206B_200B_202E_202E_200E_206C_202C_202C_200C_202A_202C_206E_206A_202B_206D_206E_206B_202D_200C_206C_206F_200B_202E_206F_206E_202D_202E_202B_202C_200C_206E_200D_202D_202E_200E_206B_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.EventExpiry;
|
||||
}
|
||||
|
||||
static string _200E_202A_200E_202E_202D_206B_202D_200F_200C_206E_206F_206A_200C_202D_206A_200F_206F_202C_202C_200F_202D_206D_200E_200B_206A_200D_202A_202D_200F_200F_206A_200E_200B_200C_200B_202D_200C_200C_206D_200C_202E(SeasonalDutyDefinition P_0)
|
||||
{
|
||||
return P_0.Name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue