1
0
Fork 0
forked from aly/qstbak

muffin v7.5.6

This commit is contained in:
alydev 2026-08-17 20:27:25 +10:00
parent 6266f9e6b7
commit addf2d530f
619 changed files with 264792 additions and 446022 deletions

View file

@ -6,6 +6,7 @@ internal enum ETaskResult
TaskComplete,
SkipRemainingTasksForStep,
CreateNewTasks,
RetryStep,
NextStep,
End
}

View file

@ -16,5 +16,7 @@ internal interface ITaskExecutor
bool WasInterrupted();
bool HasTimedOut(float timeoutSeconds);
ETaskResult Update();
}

View file

@ -20,26 +20,57 @@ internal sealed class InteractionProgressContext
public unsafe static InteractionProgressContext Create(bool checkSequence)
{
if (!checkSequence)
int num = (checkSequence ? (-177703781) : (-177703782));
while (true)
{
ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal;
int num2 = num;
int num3 = -177703781;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -177703782;
break;
case 1:
ActionManager.Instance()->CastTimeElapsed = ActionManager.Instance()->CastTimeTotal;
num = -177703781;
break;
case 0:
return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence);
}
}
return new InteractionProgressContext(checkSequence, ActionManager.Instance()->LastUsedActionSequence);
}
private unsafe static (bool, InteractionProgressContext?) FromActionUseInternal(Func<bool> func)
{
int lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence;
if (!func())
int num = (func() ? 1923074249 : 1923074254);
while (true)
{
return (false, null);
int num2 = num;
int num3 = 1923074253;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 4:
{
int lastUsedActionSequence2 = ActionManager.Instance()->LastUsedActionSequence;
num = ((lastUsedActionSequence != lastUsedActionSequence2) ? 1923074253 : 1923074252);
break;
}
case 3:
return (false, null);
case 1:
return (true, null);
case 2:
num = 1923074254;
break;
case 0:
return (true, Create(checkSequence: true));
}
}
int lastUsedActionSequence2 = ActionManager.Instance()->LastUsedActionSequence;
if (lastUsedActionSequence == lastUsedActionSequence2)
{
return (true, null);
}
return (true, Create(checkSequence: true));
}
public static InteractionProgressContext? FromActionUse(Func<bool> func)
@ -50,63 +81,147 @@ internal sealed class InteractionProgressContext
public static InteractionProgressContext? FromActionUseOrDefault(Func<bool> func)
{
(bool, InteractionProgressContext) tuple = FromActionUseInternal(func);
if (!tuple.Item1)
int num = (tuple.Item1 ? 1006213129 : 1006213130);
while (true)
{
return null;
int num2 = num;
int num3 = 1006213128;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_004d;
case 2:
return null;
case 1:
return tuple.Item2 ?? Create(checkSequence: false);
}
continue;
IL_004d:
num = 1006213130;
}
return tuple.Item2 ?? Create(checkSequence: false);
}
public unsafe void Update()
{
if (!_firstUpdateDone)
int num = (_firstUpdateDone ? 862506309 : 862506305);
int lastUsedActionSequence = default(int);
while (true)
{
int lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence;
if (!CheckSequence && lastUsedActionSequence > CurrentSequence)
int num2 = num;
int num3 = 862506308;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
num = ((lastUsedActionSequence <= CurrentSequence) ? 862506308 : 862506304);
break;
case 1:
return;
case 2:
num = 862506305;
break;
case 5:
lastUsedActionSequence = ActionManager.Instance()->LastUsedActionSequence;
num = (CheckSequence ? 862506308 : 862506311);
break;
case 0:
_firstUpdateDone = true;
num = 862506309;
break;
case 4:
CheckSequence = true;
CurrentSequence = lastUsedActionSequence;
num = 862506308;
break;
}
_firstUpdateDone = true;
}
}
public unsafe bool WasSuccessful()
{
if (CheckSequence && (CurrentSequence != ActionManager.Instance()->LastUsedActionSequence || CurrentSequence != ActionManager.Instance()->LastHandledActionSequence))
int num = ((!CheckSequence) ? (-1110443467) : (-1110443470));
while (true)
{
return false;
int num2 = num;
int num3 = -1110443469;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 6:
num = ((!(ActionManager.Instance()->CastTimeElapsed > 0f)) ? (-1110443465) : (-1110443472));
break;
case 4:
return false;
case 5:
num = -1110443470;
break;
case 0:
num = ((CurrentSequence == ActionManager.Instance()->LastHandledActionSequence) ? (-1110443467) : (-1110443471));
break;
case 2:
return false;
case 1:
num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-1110443471) : (-1110443469));
break;
case 3:
return _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f;
}
}
if (ActionManager.Instance()->CastTimeElapsed > 0f)
{
return Math.Abs(ActionManager.Instance()->CastTimeElapsed - ActionManager.Instance()->CastTimeTotal) < 0.001f;
}
return false;
}
public unsafe bool WasInterrupted()
{
if (CheckSequence && CurrentSequence == ActionManager.Instance()->LastHandledActionSequence && CurrentSequence == ActionManager.Instance()->LastUsedActionSequence)
int num = ((!CheckSequence) ? (-139740651) : (-139740650));
while (true)
{
return false;
int num2 = num;
int num3 = -139740649;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 5:
num = -139740650;
break;
case 4:
num = ((CurrentSequence != ActionManager.Instance()->LastUsedActionSequence) ? (-139740651) : (-139740649));
break;
case 3:
return false;
case 0:
return false;
case 2:
num = ((ActionManager.Instance()->CastTimeElapsed != 0f) ? (-139740652) : (-139740655));
break;
case 6:
return ActionManager.Instance()->CastTimeTotal > 0f;
case 1:
num = ((CurrentSequence != ActionManager.Instance()->LastHandledActionSequence) ? (-139740651) : (-139740653));
break;
}
}
if (ActionManager.Instance()->CastTimeElapsed == 0f)
{
return ActionManager.Instance()->CastTimeTotal > 0f;
}
return false;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 3);
defaultInterpolatedStringHandler.AppendLiteral("IPCtx(");
defaultInterpolatedStringHandler.AppendFormatted(CheckSequence ? ((object)CurrentSequence) : "-");
defaultInterpolatedStringHandler.AppendLiteral(" - ");
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>(-1617315869));
defaultInterpolatedStringHandler.AppendFormatted(CheckSequence ? ((object)CurrentSequence) : 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>(792471175));
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>(-1687715325));
defaultInterpolatedStringHandler.AppendFormatted(WasSuccessful());
defaultInterpolatedStringHandler.AppendLiteral(", ");
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>(1403263077));
defaultInterpolatedStringHandler.AppendFormatted(WasInterrupted());
defaultInterpolatedStringHandler.AppendLiteral(")");
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>(424561659));
return defaultInterpolatedStringHandler.ToStringAndClear();
}
static float _206A_200C_206C_200B_202A_200D_200B_206E_200F_206B_202B_202E_202B_200B_206F_200C_206C_206D_202E_206A_206E_202B_202B_202B_202C_202C_200D_200C_202E_202C_202E_206E_200E_200D_200C_202C_200F_200F_202A_202D_202E(float P_0)
{
return Math.Abs(P_0);
}
}

View file

@ -1,15 +1,21 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Component.GUI;
using LLib.GameUI;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Shared;
using Questionable.Data;
using Questionable.Functions;
using Questionable.Model;
using Questionable.Model.Common;
using Questionable.Model.Questing;
using SmartNav.Data;
using SmartNav.Model;
namespace Questionable.Controller.Steps;
@ -17,53 +23,301 @@ internal static class QuestCleanUp
{
internal sealed class CheckAlliedSocietyMount(GameFunctions gameFunctions, AetheryteData aetheryteData, AlliedSocietyData alliedSocietyData, ILogger<CheckAlliedSocietyMount> logger) : SimpleTaskFactory()
{
public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
if (sequence.Sequence == 0)
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<(QuestSequence Sequence, int StepId, QuestStep Step), bool> _003C_003E9__5_0;
public static Func<QuestSequence, IEnumerable<QuestStep>> _003C_003E9__5_2;
internal bool _003CCreateTask_003Eb__5_0((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
return null;
}
ushort? mountId = gameFunctions.GetMountId();
if (mountId.HasValue)
{
ushort valueOrDefault = mountId.GetValueOrDefault();
if (alliedSocietyData.Mounts.TryGetValue(valueOrDefault, out AlliedSocietyMountConfiguration mountConfiguration))
EAction? eAction = _200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(x.Step);
int num = ((!eAction.HasValue) ? (-1478106214) : (-1478106210));
while (true)
{
logger.LogInformation("We are on a known allied society mount with id = {MountId}", valueOrDefault);
EAetheryteLocation eAetheryteLocation = step.AetheryteShortcut ?? mountConfiguration.ClosestAetheryte;
AetheryteShortcut.Task result = new AetheryteShortcut.Task(null, quest.Id, eAetheryteLocation, aetheryteData.TerritoryIds[eAetheryteLocation]);
if (sequence.Sequence == byte.MaxValue)
int num2 = num;
int num3 = -1478106214;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
logger.LogInformation("Mount can't be used to finish quest, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte);
return result;
case 5:
num = -1478106210;
break;
case 1:
return false;
case 3:
return true;
case 4:
{
EAction valueOrDefault = eAction.GetValueOrDefault();
num = (_202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(valueOrDefault) ? (-1478106215) : (-1478106214));
break;
}
if (!quest.AllSteps().Any<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
EAction? action = x.Step.Action;
if (action.HasValue)
{
EAction valueOrDefault2 = action.GetValueOrDefault();
if (valueOrDefault2.RequiresMount())
{
return true;
}
}
return x.Step.InteractionType == EInteractionType.Combat && x.Step.KillEnemyDataIds.Contains(8593u);
}))
{
logger.LogInformation("Quest doesn't use any mount actions, teleporting to {Aetheryte}", mountConfiguration.ClosestAetheryte);
return result;
}
if (!(from x in quest.AllSequences()
where x.Sequence > 0 && x.Sequence < sequence.Sequence
select x).SelectMany((QuestSequence x) => x.Steps).ToList().Any((QuestStep x) => x.DataId.HasValue && mountConfiguration.IssuerDataIds.Contains(x.DataId.Value)))
{
logger.LogInformation("Haven't talked to mount NPC for this allied society quest; {Aetheryte}", mountConfiguration.ClosestAetheryte);
return result;
case 2:
return _202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(x.Step).Contains(8593u);
case 0:
num = ((_202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(x.Step) != EInteractionType.Combat) ? (-1478106213) : (-1478106216));
break;
}
}
}
return null;
internal IEnumerable<QuestStep> _003CCreateTask_003Eb__5_2(QuestSequence x)
{
return _206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(x);
}
static EAction? _200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(QuestStep P_0)
{
return P_0.Action;
}
static bool _202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(EAction P_0)
{
return P_0.RequiresMount();
}
static EInteractionType _202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(QuestStep P_0)
{
return P_0.InteractionType;
}
static List<uint> _202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(QuestStep P_0)
{
return P_0.KillEnemyDataIds;
}
static List<QuestStep> _206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(QuestSequence P_0)
{
return P_0.Steps;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass5_0
{
public QuestSequence sequence;
public AlliedSocietyMountConfiguration mountConfiguration;
internal bool _003CCreateTask_003Eb__1(QuestSequence x)
{
int num = ((_206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) <= 0) ? (-1832592614) : (-1832592615));
while (true)
{
int num2 = num;
int num3 = -1832592616;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return false;
case 1:
return _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) < _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(sequence);
case 0:
goto IL_005f;
}
continue;
IL_005f:
num = -1832592615;
}
}
internal bool _003CCreateTask_003Eb__3(QuestStep x)
{
int num = ((!_206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).HasValue) ? 2029163806 : 2029163805);
while (true)
{
int num2 = num;
int num3 = 2029163804;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0050;
case 1:
return mountConfiguration.IssuerDataIds.Contains(_206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).Value);
case 2:
return false;
}
continue;
IL_0050:
num = 2029163805;
}
}
static byte _206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
static uint? _206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(QuestStep P_0)
{
return P_0.DataId;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override ITask? CreateTask(Quest quest, QuestSequence sequence, QuestStep step)
{
int num = ((_200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(sequence) != 0) ? 1124122820 : 1124122829);
AlliedSocietyMountConfiguration mountConfiguration = default(AlliedSocietyMountConfiguration);
ushort? mountId = default(ushort?);
ushort valueOrDefault = default(ushort);
AetheryteTeleport.Task result = default(AetheryteTeleport.Task);
while (true)
{
int num2 = num;
int num3 = 1124122821;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 6:
num = (quest.AllSequences().Where(delegate(QuestSequence x)
{
int num5 = ((_003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) <= 0) ? (-1832592614) : (-1832592615));
while (true)
{
int num6 = num5;
int num7 = -1832592616;
int num8 = num6;
int num9 = num8 + num7;
int num10 = num8 & num7;
switch (num9 - (num10 + num10))
{
case 2:
return false;
case 1:
return _003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(x) < _003C_003Ec__DisplayClass5_0._206B_200E_206E_200F_200F_200E_200C_206B_206B_202B_200C_206E_200D_206B_206A_200E_206C_202D_200B_206E_200E_202E_206D_200B_200E_206F_206E_202A_202D_206D_202A_202D_202C_202E_200B_206F_200D_202B_202D_206B_202E(sequence);
case 0:
goto IL_005f;
}
continue;
IL_005f:
num5 = -1832592615;
}
}).SelectMany((QuestSequence x) => _003C_003Ec._206A_200D_206B_202B_200B_206F_200C_206D_206E_206D_206B_202B_200C_202C_200E_206D_202E_206E_200C_200E_206E_202C_206A_206E_200F_206D_200B_206C_202C_202B_206C_206A_200E_202C_200B_206E_206E_200B_202C_202B_202E(x))
.ToList()
.Any(delegate(QuestStep x)
{
int num5 = ((!_003C_003Ec__DisplayClass5_0._206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).HasValue) ? 2029163806 : 2029163805);
while (true)
{
int num6 = num5;
int num7 = 2029163804;
int num8 = num6;
int num9 = num8 + num7;
int num10 = num8 & num7;
switch (num9 - (num10 + num10))
{
case 0:
goto IL_0050;
case 1:
return mountConfiguration.IssuerDataIds.Contains(_003C_003Ec__DisplayClass5_0._206A_200C_202B_206E_206A_200B_206E_206B_206C_206B_200D_202C_200D_202B_206E_200B_202D_200F_206E_206E_202E_202C_200B_206B_206C_200F_202C_200C_206A_200E_206E_202D_200C_202C_202E_202C_200E_202E_200E_200D_202E(x).Value);
case 2:
return false;
}
continue;
IL_0050:
num5 = 2029163805;
}
}) ? 1124122821 : 1124122831);
break;
case 4:
_202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_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>(-849084313), Array.Empty<object>());
return new Mount.UnmountTask();
case 1:
mountId = gameFunctions.GetMountId();
num = ((!mountId.HasValue) ? 1124122821 : 1124122816);
break;
case 8:
return null;
case 5:
valueOrDefault = mountId.GetValueOrDefault();
num = ((!alliedSocietyData.Mounts.TryGetValue(valueOrDefault, out mountConfiguration)) ? 1124122821 : 1124122823);
break;
case 9:
num = 1124122829;
break;
case 3:
_202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_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>(614679233), new object[1] { mountConfiguration.ClosestAetheryte });
return result;
case 2:
{
_202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_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>(1718232248), new object[1] { valueOrDefault });
EAetheryteLocation closestAetheryte = mountConfiguration.ClosestAetheryte;
result = new AetheryteTeleport.Task(closestAetheryte, _206C_206A_206C_206C_206F_200B_200E_202A_202C_206C_200F_206D_206A_200D_202B_200F_206E_206F_206B_202A_206C_202C_206C_200F_202D_206D_202D_200D_202E_206C_200D_202E_206B_202A_206F_202D_202B_200C_206E_202D_202E(aetheryteData)[closestAetheryte]);
num = ((_200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(sequence) != byte.MaxValue) ? 1124122818 : 1124122822);
break;
}
case 0:
return null;
case 7:
num = (quest.AllSteps().Any<(QuestSequence, int, QuestStep)>(delegate((QuestSequence Sequence, int StepId, QuestStep Step) x)
{
EAction? eAction = _003C_003Ec._200F_200C_200F_206A_206E_202D_206E_200E_200F_200F_206A_200B_200F_200F_200C_206B_206B_200E_202C_200F_200C_202A_206C_206D_202A_206F_202D_202D_200B_200B_206D_206E_206D_206E_202E_206A_202C_202D_206E_200E_202E(x.Step);
int num5 = ((!eAction.HasValue) ? (-1478106214) : (-1478106210));
while (true)
{
int num6 = num5;
int num7 = -1478106214;
int num8 = num6;
int num9 = num8 + num7;
int num10 = num8 & num7;
switch (num9 - (num10 + num10))
{
case 5:
num5 = -1478106210;
break;
case 1:
return false;
case 3:
return true;
case 4:
{
EAction valueOrDefault2 = eAction.GetValueOrDefault();
num5 = (_003C_003Ec._202A_200C_202B_202B_202A_200B_200C_200E_206A_202D_206C_200E_206E_202B_206A_202E_206A_202E_202B_206F_206E_206B_206A_206B_200F_200C_200B_206A_202B_200C_202E_202C_206A_206D_202B_206E_200F_202D_200D_200C_202E(valueOrDefault2) ? (-1478106215) : (-1478106214));
break;
}
case 2:
return _003C_003Ec._202D_206A_202E_202E_200B_200B_202C_200B_206B_200D_206C_202A_206C_200D_206B_200E_206B_200E_206E_202A_206D_200B_202C_206C_206D_206B_200E_200F_206F_200D_202B_206B_202D_202C_202D_200B_200E_206C_200C_206E_202E(x.Step).Contains(8593u);
case 0:
num5 = ((_003C_003Ec._202D_206F_206C_202B_206B_202E_200F_206B_206E_200E_200E_202E_206D_206E_202A_202C_202A_202E_200E_206D_202D_206A_200F_200F_200F_202B_206E_206C_202A_206A_202E_206E_202B_206D_200E_200F_202B_200C_200C_206D_202E(x.Step) != EInteractionType.Combat) ? (-1478106213) : (-1478106216));
break;
}
}
}) ? 1124122819 : 1124122817);
break;
case 10:
_202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_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>(-1364311746), new object[1] { mountConfiguration.ClosestAetheryte });
return result;
}
}
}
static byte _200C_200B_206A_206E_202A_200C_206B_200B_200E_202C_200B_206C_206D_200D_200C_200B_200F_200F_206F_206C_206E_206A_202D_206E_202A_202C_206D_206E_206D_200E_200B_202B_206B_202D_200F_202E_200F_202D_206F_202A_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
static void _202D_206D_200B_206E_202D_206D_200C_202E_202B_206A_202D_202B_200B_206A_206B_206B_202D_200D_202D_206E_206E_206F_206E_200F_206A_206F_206B_200F_202D_200E_202B_200B_206D_200C_202C_206D_200F_202C_202D_200C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static ReadOnlyDictionary<EAetheryteLocation, ushort> _206C_206A_206C_206C_206F_200B_200E_202A_202C_206C_200F_206D_206A_200D_202B_200F_206E_206F_206B_202A_206C_202C_206C_200F_202D_206D_202D_200D_202E_206C_200D_202E_206B_202A_206F_202D_202B_200C_206E_202D_202E(AetheryteData P_0)
{
return P_0.TerritoryIds;
}
}
@ -71,31 +325,175 @@ internal static class QuestCleanUp
{
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
if (IsAddonOpen("GatheringMasterpiece"))
while (true)
{
yield return new CloseGatheringAddonTask("GatheringMasterpiece");
}
if (IsAddonOpen("Gathering"))
{
yield return new CloseGatheringAddonTask("Gathering");
int num = ((!IsAddonOpen(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>(206776723))) ? 1381266981 : 1381266983);
while (true)
{
int num2 = num;
int num3 = 1381266980;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
default:
continue;
case 6:
num = 1381266979;
continue;
case 8:
break;
case 1:
num = ((!IsAddonOpen(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>(2006049295))) ? 1381266979 : 1381266976);
continue;
case 2:
num = 1381266981;
continue;
case 0:
num = 1381266977;
continue;
case 5:
yield break;
case 3:
yield return new CloseGatheringAddonTask(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>(206776723));
goto case 2;
case 4:
yield return new CloseGatheringAddonTask(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>(-2015501527));
goto case 6;
case 7:
yield break;
}
break;
}
}
}
IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
//ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks
return this.CreateAllTasks(quest, sequence, step);
}
private unsafe bool IsAddonOpen(string name)
{
if (gameGui.TryGetAddonByName<AtkUnitBase>(name, out var addonPtr))
AtkUnitBase* addonPtr;
int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(name, out addonPtr)) ? 1615612648 : 1615612651);
while (true)
{
return addonPtr->IsVisible;
int num2 = num;
int num3 = 1615612650;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
return false;
case 1:
return addonPtr->IsVisible;
case 0:
goto IL_0057;
}
continue;
IL_0057:
num = 1615612651;
}
return false;
}
}
internal sealed record CloseGatheringAddonTask(string AddonName) : ITask
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206A_200B_200B_202E_200D_206D_206D_206D_206B_202E_206E_200F_202A_202B_206A_200C_202E_202C_206B_206E_202A_206D_206C_202E_206D_200C_200F_200B_200D_200E_202C_202E_200D_200E_202A_202E_202D_200B_200B_200E_202E(typeof(CloseGatheringAddonTask).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
return "CloseAddon(" + AddonName + ")";
return _202B_202E_202E_202E_202D_200B_202D_202B_202D_206B_206A_200D_202B_200B_206E_202D_206D_202A_200D_200C_206B_206D_202E_200E_200E_202B_202A_202B_206F_200F_200B_206D_200C_202B_200D_200D_202B_200D_206E_202E_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>(-927770525), AddonName, 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>(555647321));
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200C_206C_206F_200B_206F_202D_200F_206D_202B_206A_206E_202D_206F_206B_206A_206A_206C_206E_206C_200E_202B_200F_202D_200D_202C_202B_206B_202E_202C_206D_202D_200B_206E_200C_202D_200F_200B_200C_202A_202D_202E();
_202C_206D_202A_202B_200F_202E_202B_200B_200D_206A_202A_206E_200B_200E_200F_206E_206A_202C_202C_206E_206D_206C_200C_202D_202A_202C_206B_202B_202B_206C_206A_206C_206C_206A_206E_206D_206E_200C_200D_200F_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>(709999480));
_202A_206A_206E_202E_202D_200D_202C_202E_200E_206C_202D_200C_200E_200C_200C_202E_206A_202C_202C_202B_206F_206D_202E_200B_206F_202A_202A_206D_206F_200B_202B_206B_206D_206C_202D_200C_202A_200D_206E_200E_202E(builder, (object)AddonName);
return true;
}
[CompilerGenerated]
public bool Equals(CloseGatheringAddonTask? other)
{
int num = (((object)this == other) ? (-344901136) : (-344901135));
while (true)
{
int num2 = num;
int num3 = -344901132;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
return EqualityComparer<string>.Default.Equals(AddonName, other.AddonName);
case 4:
return true;
case 2:
num = -344901135;
break;
case 0:
num = ((!_200C_202E_200B_202D_202E_202C_202B_200F_202D_206C_200F_202D_206B_202C_202D_202B_206E_206D_202B_206C_200B_206D_206A_200F_202D_202C_200F_206F_202B_206B_200C_206B_200F_202B_206D_202D_206B_200B_202D_202E_202E(EqualityContract, other.EqualityContract)) ? (-344901131) : (-344901129));
break;
case 1:
return false;
case 5:
num = (((object)other == null) ? (-344901131) : (-344901132));
break;
}
}
}
bool IEquatable<CloseGatheringAddonTask>.Equals(CloseGatheringAddonTask? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _206A_200B_200B_202E_200D_206D_206D_206D_206B_202E_206E_200F_202A_202B_206A_200C_202E_202C_206B_206E_202A_206D_206C_202E_206D_200C_200F_200B_200D_200E_202C_202E_200D_200E_202A_202E_202D_200B_200B_200E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static string _202B_202E_202E_202E_202D_200B_202D_202B_202D_206B_206A_200D_202B_200B_206E_202D_206D_202A_200D_200C_206B_206D_202E_200E_200E_202B_202A_202B_206F_200F_200B_206D_200C_202B_200D_200D_202B_200D_206E_202E_202E(string P_0, string P_1, string P_2)
{
return P_0 + P_1 + P_2;
}
static void _200C_206C_206F_200B_206F_202D_200F_206D_202B_206A_206E_202D_206F_206B_206A_206A_206C_206E_206C_200E_202B_200F_202D_200D_202C_202B_206B_202E_202C_206D_202D_200B_206E_200C_202D_200F_200B_200C_202A_202D_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _202C_206D_202A_202B_200F_202E_202B_200B_200D_206A_202A_206E_200B_200E_200F_206E_206A_202C_202C_206E_206D_206C_200C_202D_202A_202C_206B_202B_202B_206C_206A_206C_206C_206A_206E_206D_206E_200C_200D_200F_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _202A_206A_206E_202E_202D_200D_202C_202E_200E_206C_202D_200C_200E_200C_200C_202E_206A_202C_202C_202B_206F_206D_202E_200B_206F_202A_202A_206D_206F_200B_202B_206B_206D_206C_202D_200C_202A_200D_206E_200E_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _200C_202E_200B_202D_202E_202C_202B_200F_202D_206C_200F_202D_206B_202C_202D_202B_206E_206D_202B_206C_200B_206D_206A_200F_202D_202C_200F_206F_202B_206B_200C_206B_200F_202B_206D_202D_206B_200B_202D_202E_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
@ -103,12 +501,27 @@ internal static class QuestCleanUp
{
protected unsafe override bool Start()
{
if (gameGui.TryGetAddonByName<AtkUnitBase>(base.Task.AddonName, out var addonPtr))
AtkUnitBase* addonPtr;
int num = ((!gameGui.TryGetAddonByName<AtkUnitBase>(base.Task.AddonName, out addonPtr)) ? 2057944997 : 2057944996);
while (true)
{
addonPtr->FireCallbackInt(-1);
return true;
int num2 = num;
int num3 = 2057944997;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
return false;
case 1:
addonPtr->FireCallbackInt(-1);
return true;
case 2:
goto IL_0064;
}
continue;
IL_0064:
num = 2057944996;
}
return false;
}
public override ETaskResult Update()

View file

@ -10,10 +10,46 @@ internal abstract class SimpleTaskFactory : ITaskFactory
public IEnumerable<ITask> CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
ITask task = CreateTask(quest, sequence, step);
if (task != null)
int num = 1047990270;
ITask task = default(ITask);
while (true)
{
yield return task;
int num2 = num;
int num3 = 1047990264;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
num = 1047990265;
break;
case 5:
yield break;
case 2:
yield break;
case 4:
num = 1047990269;
break;
case 6:
task = CreateTask(quest, sequence, step);
num = ((task == null) ? 1047990269 : 1047990264);
break;
case 0:
yield return task;
num = 1047990265;
break;
case 1:
{
int num5;
num = ((num5 == 1) ? 1047990268 : 1047990266);
break;
}
}
}
}
IEnumerable<ITask> ITaskFactory.CreateAllTasks(Quest quest, QuestSequence sequence, QuestStep step)
{
//ILSpy generated this explicit interface implementation from .override directive in CreateAllTasks
return this.CreateAllTasks(quest, sequence, step);
}
}

View file

@ -1,11 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Dalamud.Plugin.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps.Interactions;
using Questionable.Controller.Steps.Movement;
using Questionable.Controller.Steps.Shared;
using Questionable.Data;
using Questionable.Model;
@ -15,6 +19,174 @@ namespace Questionable.Controller.Steps;
internal sealed class TaskCreator
{
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<ITask, string> _003C_003E9__6_3;
public static Predicate<ITask> _003C_003E9__6_4;
public static Func<ITask, bool> _003C_003E9__6_2;
public static Func<ITask, string> _003C_003E9__6_0;
internal string _003CCreateTasks_003Eb__6_3(ITask y)
{
return _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y);
}
internal bool _003CCreateTasks_003Eb__6_4(ITask x)
{
int num = ((x is MoveTask) ? 506921039 : 506921036);
bool result = default(bool);
while (true)
{
int num2 = num;
int num3 = 506921038;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 4:
num = 506921036;
break;
case 3:
return result;
case 0:
result = false;
num = 506921037;
break;
case 1:
result = true;
num = 506921037;
break;
case 2:
num = ((!(x is LandTask)) ? 506921038 : 506921039);
break;
}
}
}
internal bool _003CCreateTasks_003Eb__6_2(ITask y)
{
return y is SinglePlayerDuty.StartSinglePlayerDuty;
}
internal string _003CCreateTasks_003Eb__6_0(ITask x)
{
return _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)x);
}
static string _202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E(object P_0)
{
return P_0.ToString();
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass6_0
{
public Quest quest;
public QuestSequence sequence;
public QuestStep step;
public TaskCreator _003C_003E4__this;
[MethodImpl(MethodImplOptions.NoInlining)]
internal IEnumerable<ITask> _003CCreateTasks_003Eb__1(ITaskFactory x)
{
List<ITask> list = x.CreateAllTasks(quest, sequence, step).ToList();
int num = ((list.Count <= 0) ? 1319758247 : 1319758242);
string text = default(string);
while (true)
{
int num2 = num;
int num3 = 1319758243;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 4:
return list;
case 5:
_206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_206D_202E((ILogger)_003C_003E4__this._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>(695947620), new object[2]
{
text,
_202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_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>(1403263077), list.Select((ITask y) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y)))
});
num = 1319758247;
break;
case 1:
num = ((!_202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E((ILogger)_003C_003E4__this._logger, LogLevel.Trace)) ? 1319758247 : 1319758241);
break;
case 2:
text = _200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(_202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)) ?? _200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E((MemberInfo)_202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x));
num = ((!_200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(text, '.', StringComparison.Ordinal)) ? 1319758246 : 1319758243);
break;
case 0:
text = _200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(text, _202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(text, '.') + 1);
num = 1319758246;
break;
case 3:
num = 1319758242;
break;
}
}
}
static bool _202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E(ILogger P_0, LogLevel P_1)
{
return P_0.IsEnabled(P_1);
}
static Type _202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E(object P_0)
{
return P_0.GetType();
}
static string _200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(Type P_0)
{
return P_0.FullName;
}
static string _200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E(MemberInfo P_0)
{
return P_0.Name;
}
static bool _200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(string P_0, char P_1, StringComparison P_2)
{
return P_0.Contains(P_1, P_2);
}
static int _202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(string P_0, char P_1)
{
return P_0.LastIndexOf(P_1);
}
static string _200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(string P_0, int P_1)
{
return P_0.Substring(P_1);
}
static string _202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_202E(string P_0, IEnumerable<string> P_1)
{
return string.Join(P_0, P_1);
}
static void _206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_206D_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogTrace(P_1, P_2);
}
}
private readonly IServiceProvider _serviceProvider;
private readonly TerritoryData _territoryData;
@ -34,60 +206,350 @@ internal sealed class TaskCreator
_logger = logger;
}
public IReadOnlyList<ITask> CreateTasks(Quest quest, byte sequenceNumber, QuestSequence? sequence, QuestStep? step)
[MethodImpl(MethodImplOptions.NoInlining)]
public IReadOnlyList<ITask> CreateTasks(Quest quest, byte sequenceNumber, QuestSequence? sequence, QuestStep? step, bool isSimulation = false)
{
List<ITask> list2;
if (sequence == null)
int num = ((sequence != null) ? (-1823507682) : (-1823507683));
List<ITask> list;
SinglePlayerDuty.StartSinglePlayerDuty startSinglePlayerDuty = default(SinglePlayerDuty.StartSinglePlayerDuty);
TerritoryData.ContentFinderConditionData contentFinderConditionData = default(TerritoryData.ContentFinderConditionData);
int num9 = default(int);
uint valueOrDefault = default(uint);
uint? num8 = default(uint?);
while (true)
{
_chatGui.PrintError($"Path for quest '{quest.Info.Name}' ({quest.Id}) does not contain sequence {sequenceNumber}, please report this.", "Questionable", 576);
int num = 1;
List<ITask> list = new List<ITask>(num);
CollectionsMarshal.SetCount(list, num);
CollectionsMarshal.AsSpan(list)[0] = new WaitAtEnd.WaitNextStepOrSequence();
list2 = list;
}
else if (step == null)
{
int num = 1;
List<ITask> list3 = new List<ITask>(num);
CollectionsMarshal.SetCount(list3, num);
CollectionsMarshal.AsSpan(list3)[0] = new WaitAtEnd.WaitNextStepOrSequence();
list2 = list3;
}
else
{
using IServiceScope serviceScope = _serviceProvider.CreateScope();
list2 = serviceScope.ServiceProvider.GetRequiredService<IEnumerable<ITaskFactory>>().SelectMany(delegate(ITaskFactory x)
int num2 = num;
int num3 = -1823507684;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
List<ITask> list4 = x.CreateAllTasks(quest, sequence, step).ToList();
if (list4.Count > 0 && _logger.IsEnabled(LogLevel.Trace))
default:
continue;
case 0:
num = -1823507683;
continue;
case 2:
num = ((step != null) ? (-1823507688) : (-1823507681));
continue;
case 1:
{
IChatGui chatGui = _chatGui;
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(68, 3);
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>(112819953));
defaultInterpolatedStringHandler.AppendFormatted(quest.Info.Name);
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>(-151888444));
defaultInterpolatedStringHandler.AppendFormatted(quest.Id);
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>(457619416));
defaultInterpolatedStringHandler.AppendFormatted(sequenceNumber);
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>(-1870384358));
_206D_202E_200E_206F_202C_202B_200D_206E_206B_200B_206E_200E_200E_206A_200D_202A_200E_202B_206A_206F_200E_200F_202C_206D_206F_206C_206A_200E_206C_200C_200B_200D_206F_206E_206A_206E_200F_206D_206A_200C_202E(chatGui, defaultInterpolatedStringHandler.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);
int num17 = 1;
List<ITask> list5 = new List<ITask>(num17);
CollectionsMarshal.SetCount(list5, num17);
CollectionsMarshal.AsSpan(list5)[0] = new WaitAtEnd.WaitNextStepOrSequence();
list = list5;
break;
}
case 3:
{
int num17 = 1;
List<ITask> list4 = new List<ITask>(num17);
CollectionsMarshal.SetCount(list4, num17);
CollectionsMarshal.AsSpan(list4)[0] = new WaitAtEnd.WaitNextStepOrSequence();
list = list4;
break;
}
case 4:
{
IServiceScope serviceScope = _202C_202E_206F_206C_202E_200F_206B_202A_200F_202E_200B_200D_206E_206A_200C_206C_200E_200C_200F_200C_202C_206F_206B_206A_202A_202C_206D_206E_206B_206F_202B_202A_202C_202A_202D_202E_206F_206D_202B_206A_202E(_serviceProvider);
try
{
string text = x.GetType().FullName ?? x.GetType().Name;
if (text.Contains('.', StringComparison.Ordinal))
list = _202E_202C_202D_206A_200C_206C_200E_202A_202D_202B_206A_206F_206B_200B_200D_200B_200E_200D_202A_202D_200D_200B_202D_206E_206F_202A_200C_206F_206F_200B_200B_200B_202D_206D_200C_206F_206D_206A_206A_206A_202E(serviceScope).GetRequiredService<IEnumerable<ITaskFactory>>().SelectMany([MethodImpl(MethodImplOptions.NoInlining)] (ITaskFactory x) =>
{
text = text.Substring(text.LastIndexOf('.') + 1);
List<ITask> list6 = x.CreateAllTasks(quest, sequence, step).ToList();
int num21 = ((list6.Count <= 0) ? 1319758247 : 1319758242);
string text3 = default(string);
while (true)
{
int num22 = num21;
int num23 = 1319758243;
int num24 = num22;
int num25 = num24 + num23;
int num26 = num24 & num23;
switch (num25 - (num26 + num26))
{
case 4:
return list6;
case 5:
_003C_003Ec__DisplayClass6_0._206C_200C_202A_202E_200F_200B_206B_200F_206F_200B_202E_206A_206A_202D_200B_200E_206D_202E_206C_206B_200B_202B_206F_200B_200D_200B_202E_200F_202B_200D_206C_206B_200D_202E_200C_202A_206B_202E_202C_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>(695947620), new object[2]
{
text3,
_003C_003Ec__DisplayClass6_0._202E_202E_206A_206C_206E_202D_200D_206E_206B_200D_202E_202E_202A_200C_202B_200F_206E_206D_206E_206D_202A_206D_202C_206A_200F_200D_200E_206F_200F_200F_202D_202E_200D_206E_206E_202B_206B_202E_200F_200D_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>(1403263077), list6.Select((ITask y) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)y)))
});
num21 = 1319758247;
break;
case 1:
num21 = ((!_003C_003Ec__DisplayClass6_0._202A_206E_200D_206D_206C_200C_200D_206D_206F_206C_200C_206E_206F_200F_206F_206A_206F_200F_206B_206D_202B_202A_200E_206C_202A_206D_200C_206F_200D_206C_202E_200B_200B_202E_200D_206E_200E_206B_206A_202C_202E((ILogger)_logger, LogLevel.Trace)) ? 1319758247 : 1319758241);
break;
case 2:
text3 = _003C_003Ec__DisplayClass6_0._200F_202A_200F_206C_202C_200E_202C_200B_200F_200F_200C_200B_200C_202D_200E_206D_202D_206C_200B_200D_206E_206F_206B_200E_202D_202B_206D_202B_206F_200B_206A_206B_200F_200C_200E_202A_206E_206A_200F_202D_202E(_003C_003Ec__DisplayClass6_0._202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x)) ?? _003C_003Ec__DisplayClass6_0._200E_202E_202A_200B_202B_206C_200F_202A_206C_200E_202D_200E_206F_202A_200F_200E_206F_202C_202C_202C_200D_206A_200B_206C_206B_202C_202D_202C_206D_200B_202D_202E_206D_202C_202A_202E_206A_200E_202B_206E_202E((MemberInfo)_003C_003Ec__DisplayClass6_0._202B_206C_200D_200E_200B_206A_202B_206C_206C_202E_202A_202B_206B_206C_202C_202A_202A_202C_200D_202E_202D_200D_206D_206E_202A_200D_202E_202A_202A_200C_206A_206D_202A_202A_202E_202B_202E_202A_202D_206A_202E((object)x));
num21 = ((!_003C_003Ec__DisplayClass6_0._200D_202B_206B_202B_202E_202E_202B_200E_206C_202A_202D_202B_200C_202B_206C_200B_202D_202D_202D_206E_206E_206F_206F_202A_200E_202B_200C_200D_200C_202D_202B_202E_200E_200E_202E_202B_200E_206C_202B_200C_202E(text3, '.', StringComparison.Ordinal)) ? 1319758246 : 1319758243);
break;
case 0:
text3 = _003C_003Ec__DisplayClass6_0._200F_202D_200F_202D_206D_206D_206D_200D_200C_202B_206E_202E_202E_206B_200F_200F_206D_206E_206C_202B_202B_206C_206A_200C_206A_202A_206E_206E_200D_206F_202B_202E_200C_206F_200C_206A_202D_206A_200D_206A_202E(text3, _003C_003Ec__DisplayClass6_0._202B_200E_200F_200B_202D_206F_200B_200E_200F_206B_202B_200B_202A_200C_202D_200B_202B_202A_206B_200F_206E_206D_206D_202E_200F_202B_206C_200C_202D_202D_200B_202E_206D_206C_206C_200F_206C_200E_200C_202C_202E(text3, '.') + 1);
num21 = 1319758246;
break;
case 3:
num21 = 1319758242;
break;
}
}
}).ToList();
num = ((!isSimulation) ? (-675834383) : (-675834384));
while (true)
{
int num5 = num;
num3 = -675834382;
num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 4:
num = ((!_territoryData.TryGetContentFinderCondition(startSinglePlayerDuty.ContentFinderConditionId, out contentFinderConditionData)) ? (-675834379) : (-675834374));
break;
case 8:
num = ((_202B_202A_200B_206E_200B_206B_202D_202A_202A_206B_200E_202D_202C_206F_206D_206C_202B_202C_202A_200B_200B_202B_206B_202D_206A_202B_200E_200B_206A_200D_202C_200B_206B_200E_202C_200F_200F_206E_206E_206A_202E(_clientState) != contentFinderConditionData.TerritoryId) ? (-675834379) : (-675834382));
break;
case 9:
num9 = list.FindLastIndex(delegate(ITask x)
{
int num21 = ((x is MoveTask) ? 506921039 : 506921036);
bool result = default(bool);
while (true)
{
int num22 = num21;
int num23 = 506921038;
int num24 = num22;
int num25 = num24 + num23;
int num26 = num24 & num23;
switch (num25 - (num26 + num26))
{
case 4:
num21 = 506921036;
break;
case 3:
return result;
case 0:
result = false;
num21 = 506921037;
break;
case 1:
result = true;
num21 = 506921037;
break;
case 2:
num21 = ((!(x is LandTask)) ? 506921038 : 506921039);
break;
}
}
});
num = ((num9 < 0) ? (-675834383) : (-675834381));
break;
case 10:
valueOrDefault = num8.GetValueOrDefault();
num = ((!_206B_202C_206F_200C_202A_200B_200D_206C_206F_206F_200F_200B_200C_202D_206D_206D_206F_202E_206B_200C_206C_206A_200F_202D_202C_206F_206D_206A_200F_206B_206D_200C_206D_206A_200D_206A_200F_200C_206C_200D_202E(step).HasValue) ? (-675834383) : (-675834373));
break;
case 3:
startSinglePlayerDuty = list.Where((ITask y) => y is SinglePlayerDuty.StartSinglePlayerDuty).Cast<SinglePlayerDuty.StartSinglePlayerDuty>().FirstOrDefault();
num = ((!(startSinglePlayerDuty != null)) ? (-675834379) : (-675834378));
break;
case 0:
{
int num13 = list.IndexOf(startSinglePlayerDuty);
ILogger<TaskCreator> logger = _logger;
string 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>(-604584645);
object[] array = new object[2];
num3 = 1;
num4 = num13;
array[0] = (num4 | num3) + (num4 & num3);
array[1] = list.Count;
_202E_206B_206B_202C_202D_206C_206E_202D_202C_200C_206E_206B_200C_206F_206D_206B_206F_200C_200D_202D_202B_206B_202E_202A_202D_202B_206D_200D_202E_206A_200C_200B_206C_200E_200F_202E_206E_206C_200C_206B_202E((ILogger)logger, text, array);
List<ITask> list3 = list;
num3 = 1;
num4 = num13;
int num14 = num4 ^ num3;
int num15 = num4 & num3;
list3.RemoveRange(0, num14 + (num15 + num15));
_206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_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>(896688647), new object[2]
{
list.FirstOrDefault(),
list.Count
});
num = -675834379;
break;
}
case 6:
num = -675834384;
break;
case 1:
{
List<ITask> list2 = list;
int num10 = num9;
num3 = 1;
num4 = num10;
int num11 = num4 ^ num3;
int num12 = num4 & num3;
list2.Insert(num11 + (num12 + num12), new SkipMissingObject.Task(valueOrDefault, quest.Id, _206E_200F_200D_200F_206D_202B_200C_202E_206F_202E_206B_200B_200B_206B_200E_202C_206D_200E_202E_200D_200D_206D_206E_206A_202A_202C_202E_206E_200D_206B_200F_206E_200B_202E_200E_200E_200E_206E_200C_206A_202E(sequence)));
num = -675834383;
break;
}
case 2:
num = ((step == null) ? (-675834383) : (-675834377));
break;
case 5:
num8 = _200B_200D_202D_202C_200B_200E_206D_206D_206C_200D_206C_202C_202B_206E_202C_206E_200C_200F_200D_206D_206E_206B_202A_200D_206B_200C_200D_202D_200D_206C_206D_202C_202E_206D_202D_206D_200F_202C_206B_200C_202E(step);
num = ((!num8.HasValue) ? (-675834383) : (-675834376));
break;
case 7:
goto end_IL_020b;
}
continue;
end_IL_020b:
break;
}
_logger.LogTrace("Factory {FactoryName} created Task {TaskNames}", text, string.Join(", ", list4.Select((ITask y) => y.ToString())));
}
return list4;
}).ToList();
SinglePlayerDuty.StartSinglePlayerDuty startSinglePlayerDuty = list2.Where((ITask y) => y is SinglePlayerDuty.StartSinglePlayerDuty).Cast<SinglePlayerDuty.StartSinglePlayerDuty>().FirstOrDefault();
if (startSinglePlayerDuty != null && _territoryData.TryGetContentFinderCondition(startSinglePlayerDuty.ContentFinderConditionId, out TerritoryData.ContentFinderConditionData contentFinderConditionData) && _clientState.TerritoryType == contentFinderConditionData.TerritoryId)
finally
{
num = ((serviceScope == null) ? 1744804945 : 1744804946);
while (true)
{
int num16 = num;
num3 = 1744804947;
num4 = num16;
switch ((num4 | num3) - (num4 & num3))
{
case 2:
goto end_IL_0503;
case 1:
_200C_202B_200D_206A_206F_202D_206D_206D_206A_202B_202B_202D_202E_206C_200E_200C_200E_200F_206F_200F_200D_200F_206E_206C_202A_200E_206C_206A_206C_202E_206E_206A_206A_200C_202C_206E_206C_206E_200E_206C_202E((IDisposable)serviceScope);
num = 1744804945;
break;
case 0:
num = 1744804946;
break;
}
continue;
end_IL_0503:
break;
}
}
break;
}
}
break;
}
num = ((list.Count != 0) ? 1667642531 : 1667642529);
while (true)
{
int num18 = num;
int num3 = 1667642530;
int num4 = num18;
int num19 = num4 + num3;
int num20 = num4 & num3;
switch (num19 - (num20 + num20))
{
int num2 = list2.IndexOf(startSinglePlayerDuty);
_logger.LogWarning("Skipping {SkippedTaskCount} out of {TotalCount} tasks, questionable was started while in single player duty", num2 + 1, list2.Count);
list2.RemoveRange(0, num2 + 1);
_logger.LogInformation("Next actual task: {NextTask}, total tasks left: {RemainingTaskCount}", list2.FirstOrDefault(), list2.Count);
case 0:
num = 1667642529;
break;
case 1:
{
ILogger<TaskCreator> logger2 = _logger;
string 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>(1018938481);
object[] obj = new object[4] { quest.Id, sequenceNumber, null, null };
int? obj2;
if (step == null)
{
obj2 = null;
}
else
{
QuestSequence? questSequence = sequence;
obj2 = ((questSequence != null) ? new int?(_206A_206B_202A_206C_200E_206D_202A_202C_202E_206E_200F_202E_206B_206A_200F_202D_206F_202E_202A_202C_206F_200B_202E_206E_200F_202E_200C_206C_206A_200E_202D_200E_206A_202B_206B_200E_200E_206C_206A_202E(questSequence).IndexOf(step)) : ((int?)null));
}
obj[2] = obj2;
obj[3] = _200C_206C_202D_206D_200B_202C_202E_206A_202B_202B_206C_200E_200C_206F_206F_200C_200C_200F_206F_200D_206C_206E_206B_200B_202A_202E_206F_206A_202B_200E_202A_206D_206B_206A_200E_206F_202E_202D_206B_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>(-1095822044), list.Select((ITask x) => _003C_003Ec._202E_206F_206D_200D_200C_206F_206A_202C_206D_202D_200D_206F_202A_202C_202B_206C_202C_200B_206B_200F_202A_206D_200C_200B_206C_206E_202C_200F_202E_202D_202E_202E_200D_206E_202C_200F_206D_200B_200E_202E((object)x)));
_206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E((ILogger)logger2, text2, obj);
num = 1667642528;
break;
}
case 2:
return list;
case 3:
_206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_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>(-1026915460), Array.Empty<object>());
num = 1667642528;
break;
}
}
if (list2.Count == 0)
{
_logger.LogInformation("Nothing to execute for step?");
}
else
{
_logger.LogInformation("Tasks for {QuestId}, {Sequence}, {Step}: {Tasks}", quest.Id, sequenceNumber, (step == null) ? ((int?)null) : sequence?.Steps.IndexOf(step), string.Join(", ", list2.Select((ITask x) => x.ToString())));
}
return list2;
}
static void _206D_202E_200E_206F_202C_202B_200D_206E_206B_200B_206E_200E_200E_206A_200D_202A_200E_202B_206A_206F_200E_200F_202C_206D_206F_206C_206A_200E_206C_200C_200B_200D_206F_206E_206A_206E_200F_206D_206A_200C_202E(IChatGui P_0, string P_1, string P_2, ushort? P_3)
{
P_0.PrintError(P_1, P_2, P_3);
}
static IServiceScope _202C_202E_206F_206C_202E_200F_206B_202A_200F_202E_200B_200D_206E_206A_200C_206C_200E_200C_200F_200C_202C_206F_206B_206A_202A_202C_206D_206E_206B_206F_202B_202A_202C_202A_202D_202E_206F_206D_202B_206A_202E(IServiceProvider P_0)
{
return P_0.CreateScope();
}
static IServiceProvider _202E_202C_202D_206A_200C_206C_200E_202A_202D_202B_206A_206F_206B_200B_200D_200B_200E_200D_202A_202D_200D_200B_202D_206E_206F_202A_200C_206F_206F_200B_200B_200B_202D_206D_200C_206F_206D_206A_206A_206A_202E(IServiceScope P_0)
{
return P_0.ServiceProvider;
}
static uint? _200B_200D_202D_202C_200B_200E_206D_206D_206C_200D_206C_202C_202B_206E_202C_206E_200C_200F_200D_206D_206E_206B_202A_200D_206B_200C_200D_202D_200D_206C_206D_202C_202E_206D_202D_206D_200F_202C_206B_200C_202E(QuestStep P_0)
{
return P_0.DataId;
}
static Vector3? _206B_202C_206F_200C_202A_200B_200D_206C_206F_206F_200F_200B_200C_202D_206D_206D_206F_202E_206B_200C_206C_206A_200F_202D_202C_206F_206D_206A_200F_206B_206D_200C_206D_206A_200D_206A_200F_200C_206C_200D_202E(QuestStep P_0)
{
return P_0.Position;
}
static byte _206E_200F_200D_200F_206D_202B_200C_202E_206F_202E_206B_200B_200B_206B_200E_202C_206D_200E_202E_200D_200D_206D_206E_206A_202A_202C_202E_206E_200D_206B_200F_206E_200B_202E_200E_200E_200E_206E_200C_206A_202E(QuestSequence P_0)
{
return P_0.Sequence;
}
static uint _202B_202A_200B_206E_200B_206B_202D_202A_202A_206B_200E_202D_202C_206F_206D_206C_202B_202C_202A_200B_200B_202B_206B_202D_206A_202B_200E_200B_206A_200D_202C_200B_206B_200E_202C_200F_200F_206E_206E_206A_202E(IClientState P_0)
{
return P_0.TerritoryType;
}
static void _202E_206B_206B_202C_202D_206C_206E_202D_202C_200C_206E_206B_200C_206F_206D_206B_206F_200C_200D_202D_202B_206B_202E_202A_202D_202B_206D_200D_202E_206A_200C_200B_206C_200E_200F_202E_206E_206C_200C_206B_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogWarning(P_1, P_2);
}
static void _206B_206E_200C_206E_200C_206F_200D_206F_200F_202D_200E_206E_206B_206E_206E_206E_206F_206D_200D_200B_202B_200F_206E_202B_206E_200D_206F_200B_206E_200C_206D_202C_202B_202C_206F_200E_200C_202A_202E_200F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static void _200C_202B_200D_206A_206F_202D_206D_206D_206A_202B_202B_202D_202E_206C_200E_200C_200E_200F_206F_200F_200D_200F_206E_206C_202A_200E_206C_206A_206C_202E_206E_206A_206A_200C_202C_206E_206C_206E_200E_206C_202E(IDisposable P_0)
{
P_0.Dispose();
}
static List<QuestStep> _206A_206B_202A_206C_200E_206D_202A_202C_202E_206E_200F_202E_206B_206A_200F_202D_206F_202E_202A_202C_206F_200B_202E_206E_200F_202E_200C_206C_206A_200E_202D_200E_206A_202B_206B_200E_200E_206C_206A_202E(QuestSequence P_0)
{
return P_0.Steps;
}
static string _200C_206C_202D_206D_200B_202C_202E_206A_202B_202B_206C_200E_200C_206F_206F_200C_200C_200F_206F_200D_206C_206E_206B_200B_202A_202E_206F_206A_202B_200E_202A_206D_206B_206A_200E_206F_202E_202D_206B_202E(string P_0, IEnumerable<string> P_1)
{
return string.Join(P_0, P_1);
}
}

View file

@ -1,9 +1,12 @@
using System;
using System.Runtime.CompilerServices;
namespace Questionable.Controller.Steps;
internal abstract class TaskExecutor<T> : ITaskExecutor where T : class, ITask
{
private long _lastProgressAt;
protected T Task { get; set; }
public InteractionProgressContext? ProgressContext { get; set; }
@ -13,33 +16,142 @@ internal abstract class TaskExecutor<T> : ITaskExecutor where T : class, ITask
public virtual bool WasInterrupted()
{
InteractionProgressContext progressContext = ProgressContext;
if (progressContext != null)
int num = ((progressContext == null) ? 1406481972 : 1406481975);
while (true)
{
progressContext.Update();
return progressContext.WasInterrupted();
int num2 = num;
int num3 = 1406481974;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0048;
case 1:
progressContext.Update();
return progressContext.WasInterrupted();
case 2:
return false;
}
continue;
IL_0048:
num = 1406481975;
}
return false;
}
bool ITaskExecutor.WasInterrupted()
{
//ILSpy generated this explicit interface implementation from .override directive in WasInterrupted
return this.WasInterrupted();
}
public virtual bool HasTimedOut(float timeoutSeconds)
{
int num = ((ProgressContext != null) ? (-1028990417) : (-1028990418));
while (true)
{
int num2 = num;
int num3 = -1028990417;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
return _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E() - _lastProgressAt > (long)(timeoutSeconds * 1000f);
case 1:
return false;
case 2:
goto IL_0061;
}
continue;
IL_0061:
num = -1028990418;
}
}
bool ITaskExecutor.HasTimedOut(float timeoutSeconds)
{
//ILSpy generated this explicit interface implementation from .override directive in HasTimedOut
return this.HasTimedOut(timeoutSeconds);
}
protected void ResetProgressTimer()
{
_lastProgressAt = _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E();
}
public Type GetTaskType()
{
return typeof(T);
return _200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(typeof(T).TypeHandle);
}
Type ITaskExecutor.GetTaskType()
{
//ILSpy generated this explicit interface implementation from .override directive in GetTaskType
return this.GetTaskType();
}
protected abstract bool Start();
[MethodImpl(MethodImplOptions.NoInlining)]
public bool Start(ITask task)
{
if (task is T task2)
T val = task as T;
int num = ((val == null) ? 746010718 : 746010717);
while (true)
{
Task = task2;
ProgressContext = null;
return Start();
int num2 = num;
int num3 = 746010719;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
{
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(19, 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>(78496127));
defaultInterpolatedStringHandler.AppendFormatted(_202D_202E_206C_206C_202A_202B_200F_202D_200F_200C_206F_206B_206B_206D_200C_206F_200E_200E_202B_202C_206A_200E_206B_200F_206D_202B_200C_202D_202B_202E_200F_200F_206E_202E_206C_200B_202E_200D_202C_200F_202E((object)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>(-718265658));
defaultInterpolatedStringHandler.AppendFormatted(_200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(typeof(T).TypeHandle));
throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear());
}
case 2:
Task = val;
ProgressContext = null;
_lastProgressAt = _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E();
return Start();
case 0:
goto IL_00ce;
}
continue;
IL_00ce:
num = 746010717;
}
throw new TaskException($"Unable to cast {task.GetType()} to {typeof(T)}");
}
bool ITaskExecutor.Start(ITask task)
{
//ILSpy generated this explicit interface implementation from .override directive in Start
return this.Start(task);
}
public abstract ETaskResult Update();
public abstract bool ShouldInterruptOnDamage();
static long _200F_202B_202E_202E_206A_202A_202D_202A_202B_202A_200D_206F_206A_202A_206D_202C_206B_200F_206E_200B_200D_206E_202C_202E_202E_200B_202B_200D_202E_206F_206D_206F_202E_200E_202C_202C_202C_200C_206C_206B_202E()
{
return Environment.TickCount64;
}
static Type _200D_206E_206F_200E_206B_202A_202D_200C_202E_202B_206D_206F_200D_206A_202D_200E_206D_200E_206F_200F_206E_202A_200D_206F_200F_200C_206F_202C_206D_206F_206C_206F_200D_200B_202E_200D_202C_206C_202D_206D_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static Type _202D_202E_206C_206C_202A_202B_200F_202D_200F_200C_206F_206B_206B_206D_200C_206F_200E_200E_202B_202C_206A_200E_206B_200F_206D_202B_200C_202D_202B_202E_200F_200F_206E_202E_206C_200B_202E_200D_202C_200F_202E(object P_0)
{
return P_0.GetType();
}
}

View file

@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Questionable.Controller.Steps.Interactions;
namespace Questionable.Controller.Steps;
@ -10,6 +11,8 @@ internal sealed class TaskQueue
private readonly List<ITask> _tasks = new List<ITask>();
private int _levelingTaskCount;
public ITaskExecutor? CurrentTaskExecutor { get; set; }
public IEnumerable<ITask> RemainingTasks => _tasks;
@ -18,37 +21,109 @@ internal sealed class TaskQueue
{
get
{
if (CurrentTaskExecutor == null)
int num = ((CurrentTaskExecutor != null) ? (-477523234) : (-477523233));
while (true)
{
return _tasks.Count == 0;
int num2 = num;
int num3 = -477523234;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
goto IL_0048;
case 1:
return _tasks.Count == 0;
case 0:
return false;
}
continue;
IL_0048:
num = -477523233;
}
return false;
}
}
public bool HasLevelingTasks => _levelingTaskCount > 0;
public void Enqueue(ITask task)
{
_tasks.Add(task);
int num = ((!IsLevelingTask(task)) ? 171339134 : 171339133);
while (true)
{
int num2 = num;
int num3 = 171339135;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
return;
case 2:
{
int levelingTaskCount = _levelingTaskCount;
num3 = 1;
num4 = levelingTaskCount;
_levelingTaskCount = (num4 | num3) + (num4 & num3);
num = 171339134;
break;
}
case 0:
num = 171339133;
break;
}
}
}
public void EnqueueAll(IEnumerable<ITask> tasks)
{
_tasks.InsertRange(0, tasks);
_levelingTaskCount = _tasks.Count(IsLevelingTask);
}
public bool TryDequeue([NotNullWhen(true)] out ITask? task)
{
task = _tasks.FirstOrDefault();
if (task == null)
int num = ((task != null) ? (-2044560893) : (-2044560894));
while (true)
{
return false;
int num2 = num;
int num3 = -2044560889;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = -2044560894;
break;
case 1:
{
int levelingTaskCount = _levelingTaskCount;
num3 = 1;
num4 = levelingTaskCount;
_levelingTaskCount = ~(~num4 + num3);
num = -2044560895;
break;
}
case 5:
return false;
case 3:
_completedTasks.Add(task);
num = -2044560889;
break;
case 0:
_tasks.RemoveAt(0);
num = ((!IsLevelingTask(task)) ? (-2044560895) : (-2044560890));
break;
case 4:
num = ((!task.ShouldRedoOnInterrupt()) ? (-2044560889) : (-2044560892));
break;
case 6:
return true;
}
}
if (task.ShouldRedoOnInterrupt())
{
_completedTasks.Add(task);
}
_tasks.RemoveAt(0);
return true;
}
public bool TryPeek([NotNullWhen(true)] out ITask? task)
@ -62,6 +137,7 @@ internal sealed class TaskQueue
_tasks.Clear();
_completedTasks.Clear();
CurrentTaskExecutor = null;
_levelingTaskCount = 0;
}
public void InterruptWith(List<ITask> interruptionTasks)
@ -74,5 +150,37 @@ internal sealed class TaskQueue
List<ITask> source = list;
Reset();
_tasks.AddRange(source.Where((ITask x) => x != null).Cast<ITask>());
_levelingTaskCount = _tasks.Count(IsLevelingTask);
}
private static bool IsLevelingTask(ITask task)
{
int num = ((task is Duty.StartLevelingModeTask) ? (-425833563) : (-425833568));
bool result = default(bool);
while (true)
{
int num2 = num;
int num3 = -425833564;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
result = true;
num = -425833562;
break;
case 2:
return result;
case 3:
result = false;
num = -425833562;
break;
case 0:
num = -425833568;
break;
case 4:
num = ((!(task is Duty.WaitLevelingModeTask)) ? (-425833561) : (-425833563));
break;
}
}
}
}