qstbak/Questionable/Questionable.Controller/GatheringController.cs
2026-08-17 20:27:25 +10:00

1222 lines
57 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using LLib;
using Lumina.Excel.Sheets;
using Lumina.Text.ReadOnly;
using Microsoft.Extensions.Logging;
using Questionable.Controller.Steps;
using Questionable.Controller.Steps.Common;
using Questionable.Controller.Steps.Gathering;
using Questionable.Controller.Steps.Interactions;
using Questionable.Controller.Steps.Movement;
using Questionable.External;
using Questionable.Functions;
using Questionable.Model.Gathering;
using Questionable.Model.Questing;
namespace Questionable.Controller;
internal sealed class GatheringController : MiniTaskController<GatheringController>
{
internal sealed class CurrentRequest
{
public required GatheringRequest Data { get; init; }
public required GatheringRoot Root { get; init; }
public required List<GatheringNode> Nodes { get; init; }
public int CurrentIndex { get; set; }
}
public sealed record GatheringRequest(GatheringPointId GatheringPointId, uint ItemId, uint AlternativeItemId, int Quantity, ushort Collectability = 0)
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _202C_206B_202D_202B_206C_200E_200F_202C_206F_206A_206C_206D_206F_202A_200F_206E_206F_206F_206C_202B_202C_200D_200F_200F_206F_202C_202B_206B_206C_206D_202E_202D_206C_206C_200F_206E_202A_202E_200C_202C_202E(typeof(GatheringRequest).TypeHandle);
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
public override string ToString()
{
StringBuilder stringBuilder = _200E_200F_200E_202E_206A_206F_202E_206F_206E_200C_206E_202A_206A_202C_206E_200C_206A_202E_200B_206B_200C_202E_206D_202D_200C_206E_206F_202C_202D_200C_200E_202E_206B_200B_200C_202B_200D_206C_206B_206D_202E();
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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>(1742836955));
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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)) ? (-1894192642) : (-1894192643));
while (true)
{
int num2 = num;
int num3 = -1894192641;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 1:
_206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(stringBuilder, '}');
return _200F_200E_200C_202C_206F_202B_202B_202A_200B_206A_200B_202A_200D_200E_200C_206D_202E_202A_202A_206F_202A_200D_200E_200D_206B_202A_202A_200D_202E_200B_202E_202C_200C_206E_200E_202B_206E_200F_200B_202C_202E((object)stringBuilder);
case 2:
_206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(stringBuilder, ' ');
num = -1894192642;
break;
case 0:
num = -1894192643;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_200C_200B_200B_200B_206A_200F_202B_202A_206B_206F_200C_202C_202B_206A_202B_206A_200E_206C_200F_200F_202A_200E_202E_202B_206E_200E_200E_200C_200B_206A_202D_206B_206D_200F_202E_206D_206B_200E_206A_206F_202E();
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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>(-520775500));
_202D_202D_202E_206F_206D_206B_200C_200E_200C_202E_206A_200E_206B_200E_202E_206C_200D_202D_206B_200F_206B_200D_206F_206B_206C_202B_200D_200F_200C_206E_200E_206D_206B_206C_206D_206D_200F_200E_200C_202C_202E(builder, (object)GatheringPointId);
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_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>(1061931861));
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, ItemId.ToString());
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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>(1080842268));
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, AlternativeItemId.ToString());
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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>(-141714243));
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, Quantity.ToString());
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_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>(-2022024950));
_200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(builder, Collectability.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(GatheringRequest? other)
{
int num = (((object)this == other) ? (-561631960) : (-561631959));
while (true)
{
int num2 = num;
int num3 = -561631967;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 3:
return EqualityComparer<ushort>.Default.Equals(Collectability, other.Collectability);
case 2:
num = ((!EqualityComparer<uint>.Default.Equals(AlternativeItemId, other.AlternativeItemId)) ? (-561631964) : (-561631968));
break;
case 6:
num = ((!EqualityComparer<Questionable.Model.Gathering.GatheringPointId>.Default.Equals(GatheringPointId, other.GatheringPointId)) ? (-561631964) : (-561631967));
break;
case 8:
num = (((object)other == null) ? (-561631964) : (-561631962));
break;
case 5:
return false;
case 7:
num = ((!_206A_200F_202D_202C_202B_200C_206D_200D_202B_206D_202B_206D_206F_206F_200F_200F_200F_202E_200D_200E_200D_200B_202E_200E_206C_202E_200B_200E_202A_206C_200F_206A_206F_202A_206D_206F_206C_200E_206F_206B_202E(EqualityContract, other.EqualityContract)) ? (-561631964) : (-561631961));
break;
case 9:
return true;
case 0:
num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-561631964) : (-561631965));
break;
case 1:
num = ((!EqualityComparer<int>.Default.Equals(Quantity, other.Quantity)) ? (-561631964) : (-561631966));
break;
case 4:
num = -561631959;
break;
}
}
}
bool IEquatable<GatheringRequest>.Equals(GatheringRequest? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _202C_206B_202D_202B_206C_200E_200F_202C_206F_206A_206C_206D_206F_202A_200F_206E_206F_206F_206C_202B_202C_200D_200F_200F_206F_202C_202B_206B_206C_206D_202E_202D_206C_206C_200F_206E_202A_202E_200C_202C_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static StringBuilder _200E_200F_200E_202E_206A_206F_202E_206F_206E_200C_206E_202A_206A_202C_206E_200C_206A_202E_200B_206B_200C_202E_206D_202D_200C_206E_206F_202C_202D_200C_200E_202E_206B_200B_200C_202B_200D_206C_206B_206D_202E()
{
return new StringBuilder();
}
static StringBuilder _200B_202A_202E_206E_200B_206C_202D_206B_206B_206B_200B_206F_200B_200B_200E_206E_200D_200C_202C_200D_200C_202E_200C_206B_200E_206F_202B_202A_200E_200C_200F_200B_202E_202A_200C_202E_206C_206F_206D_200F_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static StringBuilder _206E_202E_206E_200C_200E_202C_200E_206F_200B_202C_200D_202C_206D_200B_206E_206D_202D_206A_206C_206A_202A_206F_200D_202A_200F_202B_200D_202A_202B_200E_206E_200C_200B_206E_202C_206C_206E_206D_206D_202E_202E(StringBuilder P_0, char P_1)
{
return P_0.Append(P_1);
}
static string _200F_200E_200C_202C_206F_202B_202B_202A_200B_206A_200B_202A_200D_200E_200C_206D_202E_202A_202A_206F_202A_200D_200E_200D_206B_202A_202A_200D_202E_200B_202E_202C_200C_206E_200E_202B_206E_200F_200B_202C_202E(object P_0)
{
return P_0.ToString();
}
static void _200C_200B_200B_200B_206A_200F_202B_202A_206B_206F_200C_202C_202B_206A_202B_206A_200E_206C_200F_200F_202A_200E_202E_202B_206E_200E_200E_200C_200B_206A_202D_206B_206D_200F_202E_206D_206B_200E_206A_206F_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _202D_202D_202E_206F_206D_206B_200C_200E_200C_202E_206A_200E_206B_200E_202E_206C_200D_202D_206B_200F_206B_200D_206F_206B_206C_202B_200D_200F_200C_206E_200E_206D_206B_206C_206D_206D_200F_200E_200C_202C_202E(StringBuilder P_0, object P_1)
{
return P_0.Append(P_1);
}
static bool _206A_200F_202D_202C_202B_200C_206D_200D_202B_206D_202B_206D_206F_206F_200F_200F_200F_202E_200D_200E_200D_200B_202E_200E_206C_202E_200B_200E_202A_206C_200F_206A_206F_202A_206D_206F_206C_200E_206F_206B_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
public enum EStatus
{
Gathering,
Moving,
Complete
}
[Serializable]
[CompilerGenerated]
private sealed class _003C_003Ec
{
public static readonly _003C_003Ec _003C_003E9 = new _003C_003Ec();
public static Func<LogMessage, ReadOnlySeString?> _003C_003E9__10_0;
public static Func<GatheringNode, int> _003C_003E9__15_1;
public static Func<GatheringNodeGroup, IEnumerable<GatheringNode>> _003C_003E9__15_0;
public static Func<GatheringLocation, float> _003C_003E9__22_0;
public static Func<GatheringLocation, float> _003C_003E9__22_1;
public static Func<GatheringLocation, float> _003C_003E9__22_2;
public static Func<IGameObject, bool> _003C_003E9__26_2;
internal ReadOnlySeString? _003C_002Ector_003Eb__10_0(LogMessage x)
{
return x.Text;
}
internal IEnumerable<GatheringNode> _003CStart_003Eb__15_0(GatheringNodeGroup x)
{
return from y in _202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(x)
orderby _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count
select y;
}
internal int _003CStart_003Eb__15_1(GatheringNode y)
{
return _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count;
}
internal float _003CGoToNextNode_003Eb__22_0(GatheringLocation x)
{
return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).X;
}
internal float _003CGoToNextNode_003Eb__22_1(GatheringLocation x)
{
return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Y;
}
internal float _003CGoToNextNode_003Eb__22_2(GatheringLocation x)
{
return _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Z;
}
internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__26_2(IGameObject x)
{
return x == null;
}
static List<GatheringNode> _202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(GatheringNodeGroup P_0)
{
return P_0.Nodes;
}
static List<GatheringLocation> _206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(GatheringNode P_0)
{
return P_0.Locations;
}
static Vector3 _206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(GatheringLocation P_0)
{
return P_0.Position;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass25_0
{
public GatheringNode node;
internal bool _003CHasNodeDisappeared_003Eb__0(IGameObject x)
{
int num = ((_206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(x) != ObjectKind.GatheringPoint) ? 1567152944 : 1567152945);
while (true)
{
int num2 = num;
int num3 = 1567152944;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 1567152945;
break;
case 0:
return false;
case 1:
num = ((!_200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(x)) ? 1567152944 : 1567152947);
break;
case 3:
return _202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(x) == _202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(node);
}
}
}
static ObjectKind _206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(IGameObject P_0)
{
return P_0.ObjectKind;
}
static bool _200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(IGameObject P_0)
{
return P_0.IsTargetable;
}
static uint _202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(IGameObject P_0)
{
return P_0.BaseId;
}
static uint _202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(GatheringNode P_0)
{
return P_0.DataId;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass26_0
{
public GatheringNode currentNode;
internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__0(IGameObject x)
{
int num = ((_202D_206E_206C_206B_200F_200B_206F_206B_206D_206F_206B_202E_200C_200B_202E_202C_202D_200F_200D_202A_202B_206D_202C_200C_206C_200F_206D_206A_202B_206B_200C_202E_200D_202A_206F_202A_202B_200B_200C_206D_202E(x) != ObjectKind.GatheringPoint) ? 774671159 : 774671157);
while (true)
{
int num2 = num;
int num3 = 774671156;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
return _206F_200F_200C_200E_200F_206C_206F_200C_200D_202D_200B_206B_202B_206C_202B_206F_206F_200E_200C_200D_206C_200B_200E_206D_206D_206F_200D_202E_206E_202E_206C_206C_202A_200C_202D_206E_206E_200F_200D_200C_202E(x);
case 1:
num = ((_206C_200C_202C_202E_200F_202E_202E_206A_206C_202E_202D_206D_200C_206A_202B_202C_206F_206B_200C_200B_206A_202D_206E_206F_202A_202B_200D_202E_202E_200E_206B_200F_202A_200C_200E_202A_206F_206B_202C_202E_202E(x) != _206B_202B_206F_202B_206B_206C_200C_206F_206F_206E_200F_206F_200C_206F_202C_206F_206F_206D_202A_200F_206C_206A_200C_206E_200C_200E_200E_202C_206B_200B_200B_206C_202D_206A_200E_200B_200F_200C_202C_200C_202E(currentNode)) ? 774671159 : 774671158);
break;
case 0:
num = 774671157;
break;
case 3:
return false;
}
}
}
static ObjectKind _202D_206E_206C_206B_200F_200B_206F_206B_206D_206F_206B_202E_200C_200B_202E_202C_202D_200F_200D_202A_202B_206D_202C_200C_206C_200F_206D_206A_202B_206B_200C_202E_200D_202A_206F_202A_202B_200B_200C_206D_202E(IGameObject P_0)
{
return P_0.ObjectKind;
}
static uint _206C_200C_202C_202E_200F_202E_202E_206A_206C_202E_202D_206D_200C_206A_202B_202C_206F_206B_200C_200B_206A_202D_206E_206F_202A_202B_200D_202E_202E_200E_206B_200F_202A_200C_200E_202A_206F_206B_202C_202E_202E(IGameObject P_0)
{
return P_0.BaseId;
}
static uint _206B_202B_206F_202B_206B_206C_200C_206F_206F_206E_200F_206F_200C_206F_202C_206F_206F_206D_202A_200F_206C_206A_200C_206E_200C_200E_200E_202C_206B_200B_200B_206C_202D_206A_200E_200B_200F_200C_202C_200C_202E(GatheringNode P_0)
{
return P_0.DataId;
}
static bool _206F_200F_200C_200E_200F_206C_206F_200C_200D_202D_200B_206B_202B_206C_202B_206F_206F_200E_200C_200D_206C_200B_200E_206D_206D_206F_200D_202E_206E_202E_206C_206C_202A_200C_202D_206E_206E_200F_200D_200C_202E(IGameObject P_0)
{
return P_0.IsTargetable;
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass26_1
{
public GatheringNode currentNode;
public GatheringController _003C_003E4__this;
internal IGameObject _003CFindNextTargetableNodeAndUpdateIndex_003Eb__1(GatheringLocation x)
{
_003C_003Ec__DisplayClass26_2 CS_0024_003C_003E8__locals2 = new _003C_003Ec__DisplayClass26_2
{
CS_0024_003C_003E8__locals1 = this,
x = x
};
return _003C_003E4__this._objectTable.FirstOrDefault(delegate(IGameObject y)
{
int num = ((_003C_003Ec__DisplayClass26_2._200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(CS_0024_003C_003E8__locals2.CS_0024_003C_003E8__locals1.currentNode) != _003C_003Ec__DisplayClass26_2._202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(y)) ? 347949283 : 347949280);
while (true)
{
int num2 = num;
int num3 = 347949282;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0058;
case 2:
return Vector3.Distance(_003C_003Ec__DisplayClass26_2._200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(CS_0024_003C_003E8__locals2.x), _003C_003Ec__DisplayClass26_2._200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(y)) < 0.1f;
case 1:
return false;
}
continue;
IL_0058:
num = 347949280;
}
});
}
}
[CompilerGenerated]
private sealed class _003C_003Ec__DisplayClass26_2
{
public GatheringLocation x;
public _003C_003Ec__DisplayClass26_1 CS_0024_003C_003E8__locals1;
internal bool _003CFindNextTargetableNodeAndUpdateIndex_003Eb__3(IGameObject y)
{
int num = ((_200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(CS_0024_003C_003E8__locals1.currentNode) != _202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(y)) ? 347949283 : 347949280);
while (true)
{
int num2 = num;
int num3 = 347949282;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0058;
case 2:
return Vector3.Distance(_200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(x), _200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(y)) < 0.1f;
case 1:
return false;
}
continue;
IL_0058:
num = 347949280;
}
}
static uint _200E_200F_206E_206B_200F_202D_202E_200D_202C_202D_206C_200F_206F_202C_206B_206C_202D_206A_200C_202B_206D_200E_200E_202A_200B_206A_202A_206E_202B_206D_206F_206D_200D_206B_206F_200C_202A_202A_200E_200C_202E(GatheringNode P_0)
{
return P_0.DataId;
}
static uint _202B_202D_202C_200C_200F_206B_206A_206E_202A_202A_202B_206C_200D_200E_206D_206B_206C_206E_200C_202A_206F_206F_206D_202E_200B_206A_200B_200D_206F_206C_202D_200E_202E_200D_202C_202D_202C_202D_200F_202E_202E(IGameObject P_0)
{
return P_0.BaseId;
}
static Vector3 _200D_206F_202A_206E_202B_200D_202E_200D_202D_200F_202D_200E_202E_202C_202B_200E_202E_200E_202C_206E_200F_206C_206A_200B_200B_206B_202C_206F_200E_200E_200C_206D_202A_200B_200B_202B_206A_200E_200F_206D_202E(GatheringLocation P_0)
{
return P_0.Position;
}
static Vector3 _200C_202E_206B_202E_206A_202C_206F_206E_206E_202D_202B_206E_200C_202E_200F_200C_202C_206D_200E_200B_200C_206E_206D_206F_206D_206F_206E_206E_202E_202D_200C_202B_200E_202D_200C_206C_206E_206E_200D_200E_202E(IGameObject P_0)
{
return P_0.Position;
}
}
private readonly MovementController _movementController;
private readonly GatheringPointRegistry _gatheringPointRegistry;
private readonly GameFunctions _gameFunctions;
private readonly NavmeshIpc _navmeshIpc;
private readonly IObjectTable _objectTable;
private readonly ICondition _condition;
private readonly Configuration _configuration;
private readonly Regex _revisitRegex;
private CurrentRequest? _currentRequest;
private int _movementFailureCount;
public bool IsRunning => _currentRequest != null;
public uint? CurrentItemId => _currentRequest?.Data.ItemId;
[MethodImpl(MethodImplOptions.NoInlining)]
public GatheringController(MovementController movementController, GatheringPointRegistry gatheringPointRegistry, GameFunctions gameFunctions, NavmeshIpc navmeshIpc, IObjectTable objectTable, IChatGui chatGui, ILogger<GatheringController> logger, ICondition condition, IServiceProvider serviceProvider, InterruptHandler interruptHandler, IDataManager dataManager, Configuration configuration, IPluginLog pluginLog)
: base(chatGui, condition, serviceProvider, interruptHandler, dataManager, configuration, logger)
{
_movementController = movementController;
_gatheringPointRegistry = gatheringPointRegistry;
_gameFunctions = gameFunctions;
_navmeshIpc = navmeshIpc;
_objectTable = objectTable;
_condition = condition;
_configuration = configuration;
_revisitRegex = dataManager.GetRegex(5574u, (LogMessage x) => x.Text, pluginLog) ?? throw _202B_206A_206F_200C_206A_202C_206F_200F_206E_200C_206E_206F_200E_200C_202B_200B_200B_206C_200C_200C_200C_206A_206B_200D_202B_206E_206F_200E_206D_206F_206C_200C_200F_200F_200C_202A_200F_200F_200D_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>(495587057));
}
[MethodImpl(MethodImplOptions.NoInlining)]
public bool Start(GatheringRequest gatheringRequest)
{
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>(1887351736));
GatheringRoot gatheringRoot;
int num = (_gatheringPointRegistry.TryGetGatheringPoint(gatheringRequest.GatheringPointId, out gatheringRoot) ? (-1189096751) : (-1189096752));
while (true)
{
int num2 = num;
int num3 = -1189096751;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
_currentRequest = new CurrentRequest
{
Data = gatheringRequest,
Root = gatheringRoot,
Nodes = _202E_206E_206C_200C_200B_206C_200B_202C_206C_200D_206A_206B_206C_206A_200E_206E_206A_200B_206D_200B_200E_202A_202B_206D_206E_206F_202A_200F_200B_206B_206B_202E_200E_200C_206F_200B_202E_202C_200E_200D_202E(gatheringRoot).SelectMany((GatheringNodeGroup x) => from y in _003C_003Ec._202C_200E_202A_200B_206D_202A_200F_206E_202B_206C_202D_206B_206A_200B_206D_200F_202A_202D_200E_206F_206A_202B_200E_206E_202E_202A_206D_206E_206E_206F_200D_206C_202A_200F_202E_200C_206D_202D_206D_202B_202E(x)
orderby _003C_003Ec._206D_206C_200B_200C_202E_202E_206D_200E_202E_206D_200D_206C_200D_200B_202A_200E_206D_200C_206F_200C_206C_206E_200C_202C_200F_206D_202E_206D_200E_200B_200F_200B_200B_206F_206A_206D_202A_206A_202E_202E_202E(y).Count
select y).ToList()
};
_movementFailureCount = 0;
num = ((!HasRequestedItems()) ? (-1189096747) : (-1189096749));
break;
case 1:
_206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_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>(-1516319089), new object[2] { gatheringRequest.ItemId, gatheringRequest.GatheringPointId });
return false;
case 2:
_currentRequest = null;
return false;
case 3:
num = -1189096752;
break;
case 4:
return true;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public EStatus Update()
{
int num = ((_currentRequest != null) ? 227045222 : 227045219);
while (true)
{
int num2 = num;
int num3 = 227045217;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 1:
GoToNextNode();
num = 227045225;
break;
case 4:
return EStatus.Moving;
case 6:
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>(46307754));
return EStatus.Complete;
case 5:
num = ((!_movementController.IsPathRunning) ? 227045217 : 227045221);
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>(1108669296));
return EStatus.Complete;
case 9:
num = (_202A_200D_200B_206D_202D_206E_200E_202C_206D_206C_206F_200F_200D_202D_202E_202D_202B_206A_206F_202A_202E_202C_206F_200B_206D_200B_206E_200B_206F_200D_202C_202C_206C_200F_206C_206D_206C_202A_200F_206D_202E(_condition, ConditionFlag.Gathering) ? 227045218 : 227045223);
break;
case 3:
num = ((!_taskQueue.AllTasksComplete) ? 227045225 : 227045216);
break;
case 10:
num = 227045219;
break;
case 0:
num = ((!HasRequestedItems()) ? 227045218 : 227045224);
break;
case 8:
UpdateCurrentTask();
return EStatus.Gathering;
case 7:
num = (_movementController.IsPathfinding ? 227045221 : 227045220);
break;
}
}
}
protected override void OnTaskComplete(ITask task)
{
int num = ((!(task is DoGather.Task)) ? 1397108557 : 1397108556);
while (true)
{
int num2 = num;
int num3 = 1397108557;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
GoToNextNode();
return;
case 1:
ResetStepRetryCounter();
_movementFailureCount = 0;
num = 1397108557;
break;
case 2:
num = 1397108556;
break;
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
protected override void OnRetryStep()
{
_200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_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>(-825765376), Array.Empty<object>());
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void Replan()
{
int num = ((_currentRequest != null) ? 377740259 : 377740256);
while (true)
{
int num2 = num;
int num3 = 377740257;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
goto IL_0046;
case 1:
return;
case 2:
_200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_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>(2049839790), new object[1] { _currentRequest.Data.GatheringPointId });
_taskQueue.Reset();
return;
}
continue;
IL_0046:
num = 377740256;
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public bool TryReplanAfterMovementFailure()
{
int num = ((_currentRequest != null) ? 1767425441 : 1767425444);
MoveTask moveTask = default(MoveTask);
while (true)
{
int num2 = num;
int num3 = 1767425445;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 9:
num = 1767425444;
break;
case 3:
num = ((moveTask.InteractionType != EInteractionType.WalkTo) ? 1767425453 : 1767425447);
break;
case 10:
moveTask = _taskQueue.CurrentTaskExecutor?.CurrentTask as MoveTask;
num = (((object)moveTask == null) ? 1767425453 : 1767425446);
break;
case 5:
num = ((!moveTask.Fly) ? 1767425453 : 1767425442);
break;
case 2:
num = (moveTask.DataId.HasValue ? 1767425453 : 1767425440);
break;
case 4:
{
int movementFailureCount = _movementFailureCount;
num3 = 1;
num4 = movementFailureCount;
_movementFailureCount = (num4 | num3) + (num4 & num3);
num = ((_movementFailureCount <= _configuration.Advanced.InteractionRetryLimit) ? 1767425455 : 1767425445);
break;
}
case 1:
return false;
case 8:
_200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_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>(-93536990), new object[2]
{
_movementFailureCount,
_configuration.Advanced.InteractionRetryLimit
});
Replan();
return true;
case 6:
{
List<ITask> list = _taskQueue.RemainingTasks.ToList();
MoveTask moveTask2 = moveTask._003CClone_003E_0024();
Vector3 destination = moveTask.Destination;
destination.Y = moveTask.Destination.Y + 30f;
moveTask2.Destination = destination;
moveTask2.DisableNavmesh = true;
MoveTask moveTask3 = moveTask2;
_200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_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>(-782340659), Array.Empty<object>());
_taskQueue.Reset();
TaskQueue taskQueue = _taskQueue;
ITask task = moveTask3;
List<ITask> list2 = list;
int num7 = 0;
ITask[] array = new ITask[1 + list2.Count];
array[num7] = task;
int num8 = num7;
num3 = 1;
num4 = num8;
num7 = (num4 | num3) + (num4 & num3);
Span<ITask> span = CollectionsMarshal.AsSpan(list2);
span.CopyTo(new Span<ITask>(array).Slice(num7, span.Length));
num7 += span.Length;
taskQueue.EnqueueAll(new global::_003C_003Ez__ReadOnlyArray<ITask>(array));
return true;
}
case 7:
num = (moveTask.DisableNavmesh ? 1767425453 : 1767425443);
break;
case 0:
_206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_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>(-1015868468), new object[1] { _movementFailureCount });
return false;
}
}
}
public override void Stop(string label)
{
base.Stop(label);
_currentRequest = null;
_taskQueue.Reset();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private void GoToNextNode()
{
int num = ((_currentRequest != null) ? (-102617644) : (-102617634));
GatheringNode gatheringNode = default(GatheringNode);
ushort num7 = default(ushort);
Vector3? vector = default(Vector3?);
bool flag = default(bool);
Vector3 vector2 = default(Vector3);
while (true)
{
int num2 = num;
int num3 = -102617640;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
int num8;
switch (num5 - (num6 + num6))
{
case 7:
return;
case 8:
gatheringNode = FindNextTargetableNodeAndUpdateIndex(_currentRequest);
num = ((gatheringNode != null) ? (-102617637) : (-102617645));
break;
case 3:
num = ((_200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(_currentRequest.Root).Count == 0) ? (-102617642) : (-102617643));
break;
case 0:
num = -102617634;
break;
case 10:
{
List<QuestStep> list = _200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(_currentRequest.Root);
num7 = _202A_202A_200B_202A_206A_202D_206F_206C_200B_206D_206E_206A_200E_202B_200B_200D_202A_202D_200F_200E_200E_202B_202E_200E_206B_202B_200F_206D_206D_206C_202E_206D_200E_202C_206F_206B_200E_202D_206E_206A_202E(list[list.Count - 1]);
bool? flag2 = _200D_206D_206E_202C_202B_200E_200C_202E_202D_202C_200E_206B_206D_202B_202A_202C_202E_206F_206E_202E_200D_200E_206B_202B_202D_206D_202A_200F_202E_202E_206F_206E_206D_206E_202D_202B_206B_200E_202B_206F_202E(gatheringNode);
bool? flag3 = _200D_206E_206C_206C_200B_202C_206D_200E_206D_202B_206F_202A_202D_202A_200C_200B_200B_200B_206C_202C_202E_206A_206D_200C_206A_206E_200B_206E_202E_206F_206B_206B_202D_200B_202C_202C_206A_206B_206B_202D_202E(_currentRequest.Root);
num = ((!(flag2 ?? flag3 ?? true)) ? (-102617636) : (-102617635));
break;
}
case 1:
{
Vector3 value = vector.Value;
value.Y = vector.Value.Y + (flag ? 3f : 0f);
vector = value;
num = -102617647;
break;
}
case 13:
num = ((_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count != 0) ? (-102617646) : (-102617642));
break;
case 2:
vector2 = new Vector3
{
X = _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Sum((GatheringLocation x) => _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).X) / (float)_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count,
Y = _202C_206D_200E_200D_202D_206C_206C_200E_202C_206C_202B_206D_200D_206E_206B_200D_202D_200F_200C_206D_206A_206C_202A_200F_202E_202D_202A_206E_206B_200E_202E_206E_202D_206F_200F_202E_206B_206A_206D_202D_202E(from x in _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode)
select _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Y) + 5f,
Z = _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Sum((GatheringLocation x) => _003C_003Ec._206A_206E_202B_200E_202A_202C_202A_206B_206B_200B_206E_202E_200D_202C_202D_202A_202E_206E_200D_200B_206A_200D_202B_206E_200E_202C_202C_206A_202E_200F_200B_200E_202E_200B_200C_206D_200E_202B_202D_202D_202E(x).Z) / (float)_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count
};
vector = _navmeshIpc.GetPointOnFloor(vector2, unlandable: true);
num = ((!vector.HasValue) ? (-102617647) : (-102617639));
break;
case 14:
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>(631347653));
return;
case 4:
num8 = 0;
goto IL_02d9;
case 6:
return;
case 12:
num = (_taskQueue.AllTasksComplete ? (-102617648) : (-102617633));
break;
case 5:
num8 = (_gameFunctions.IsFlyingUnlocked(num7) ? 1 : 0);
goto IL_02d9;
case 11:
return;
case 15:
_taskQueue.Enqueue(new MoveToLandingLocation.Task(num7, flag, gatheringNode));
_taskQueue.Enqueue(new Questionable.Controller.Steps.Common.Mount.UnmountTask());
_taskQueue.Enqueue(new Interact.Task(_206A_200D_206D_206B_202C_200E_202A_200E_202C_200F_202A_206E_202D_206F_206E_206C_206B_200C_206B_202D_202A_202D_206D_202B_200E_206F_206B_206A_200B_206C_206F_200E_200E_200C_206B_202A_202A_202C_202E_206D_202E(gatheringNode), null, EInteractionType.Gather, SkipMarkerCheck: true));
QueueGatherNode(gatheringNode);
return;
case 9:
{
TaskQueue taskQueue = _taskQueue;
ushort territoryId = num7;
Vector3 destination = vector ?? vector2;
float? stopDistance = 50f;
bool fly = flag;
taskQueue.Enqueue(new MoveTask(territoryId, destination, null, MountRequired: false, DismountRequired: false, stopDistance, null, DisableNavmesh: false, null, fly, Land: false, IgnoreDistanceToObject: true, RestartNavigation: true, EInteractionType.WalkTo));
num = -102617641;
break;
}
IL_02d9:
flag = (byte)num8 != 0;
num = ((_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(gatheringNode).Count <= 1) ? (-102617641) : (-102617638));
break;
}
}
}
private void QueueGatherNode(GatheringNode currentNode)
{
bool[] array = new bool[2] { false, true };
int num = 0;
int num2 = -107652498;
bool revisitRequired = default(bool);
while (true)
{
int num3 = num2;
int num4 = -107652501;
int num5 = num3;
int num6 = num5 + num4;
int num7 = num5 & num4;
switch (num6 - (num7 + num7))
{
case 1:
_taskQueue.Enqueue(new DoGatherCollectable.Task(_currentRequest.Data, currentNode, revisitRequired));
num2 = -107652497;
break;
case 4:
{
int num8 = num;
num4 = 1;
num5 = num8;
int num9 = num5 ^ num4;
int num10 = num5 & num4;
num = num9 + (num10 + num10);
num2 = -107652498;
break;
}
case 0:
num2 = -107652498;
break;
case 2:
revisitRequired = array[num];
_taskQueue.Enqueue(new DoGather.Task(_currentRequest.Data, currentNode, revisitRequired));
num2 = ((_currentRequest.Data.Collectability <= 0) ? (-107652497) : (-107652502));
break;
case 5:
num2 = ((num < array.Length) ? (-107652503) : (-107652504));
break;
case 3:
return;
}
}
}
public unsafe bool HasRequestedItems()
{
int num = ((_currentRequest != null) ? 1376510250 : 1376510251);
InventoryManager* ptr = default(InventoryManager*);
while (true)
{
int num2 = num;
int num3 = 1376510250;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
ptr = InventoryManager.Instance();
num = ((ptr != null) ? 1376510254 : 1376510249);
break;
case 3:
return false;
case 4:
return ptr->GetInventoryItemCount(_currentRequest.Data.ItemId, isHq: false, checkEquipped: true, checkArmory: true, (short)_currentRequest.Data.Collectability) >= _currentRequest.Data.Quantity;
case 1:
return true;
case 2:
num = 1376510251;
break;
}
}
}
public bool HasNodeDisappeared(GatheringNode node)
{
return !_objectTable.Any(delegate(IGameObject x)
{
int num = ((_003C_003Ec__DisplayClass25_0._206F_206D_206B_202C_206B_206F_200D_206C_206A_202D_206A_202D_200F_200C_206D_206F_202C_200C_206F_206F_206A_206B_200C_206F_206A_200C_202C_200E_206E_200B_202A_202D_202A_200D_200D_202A_200E_206B_202E_202B_202E(x) != ObjectKind.GatheringPoint) ? 1567152944 : 1567152945);
while (true)
{
int num2 = num;
int num3 = 1567152944;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 2:
num = 1567152945;
break;
case 0:
return false;
case 1:
num = ((!_003C_003Ec__DisplayClass25_0._200F_202A_202C_202D_206B_206D_206B_206B_200E_206B_206A_206E_202D_206F_206E_202E_202A_202E_202D_200D_206B_206C_202B_206A_200E_202A_206B_206A_200F_206B_206D_206F_202B_202D_206E_206C_200D_200E_202E_200C_202E(x)) ? 1567152944 : 1567152947);
break;
case 3:
return _003C_003Ec__DisplayClass25_0._202A_206D_200D_206E_206C_206C_202A_206B_200B_206F_200F_200F_202A_202D_206C_206B_200B_206C_200F_200E_202B_200E_206C_206F_206A_206C_200C_200D_202B_200F_200B_206D_206D_202C_206F_202C_206E_200C_200E_200F_202E(x) == _003C_003Ec__DisplayClass25_0._202C_202D_200D_202B_206D_200D_206B_206F_202A_200B_206E_206A_202E_206C_206C_200D_202E_200F_202C_206E_200D_202B_200E_202B_206D_202B_206C_206B_200C_200B_200D_206C_206E_206C_202D_206A_200F_206E_202D_202C_202E(node);
}
}
});
}
private GatheringNode? FindNextTargetableNodeAndUpdateIndex(CurrentRequest currentRequest)
{
int num = 0;
int num2 = 1101437805;
int num7 = default(int);
_003C_003Ec__DisplayClass26_0 _003C_003Ec__DisplayClass26_2 = default(_003C_003Ec__DisplayClass26_0);
int num14 = default(int);
_003C_003Ec__DisplayClass26_1 _003C_003Ec__DisplayClass26_ = default(_003C_003Ec__DisplayClass26_1);
int num9 = default(int);
while (true)
{
int num3 = num2;
int num4 = 1101437799;
int num5 = num3;
switch ((num5 | num4) - (num5 & num4))
{
case 2:
num2 = 1101437805;
break;
case 9:
return null;
case 7:
num2 = ((num7 < currentRequest.Nodes.Count) ? 1101437795 : 1101437806);
break;
case 1:
_003C_003Ec__DisplayClass26_2 = new _003C_003Ec__DisplayClass26_0();
num14 = (currentRequest.CurrentIndex + num) % currentRequest.Nodes.Count;
_003C_003Ec__DisplayClass26_2.currentNode = currentRequest.Nodes[num14];
num2 = ((!_objectTable.Any(_003C_003Ec__DisplayClass26_2._003CFindNextTargetableNodeAndUpdateIndex_003Eb__0)) ? 1101437793 : 1101437796);
break;
case 6:
{
int num10 = num;
num4 = 1;
num5 = num10;
int num11 = num5 ^ num4;
int num12 = num5 & num4;
num = num11 + (num12 + num12);
num2 = 1101437805;
break;
}
case 3:
{
int num13 = num14;
num4 = 1;
num5 = num13;
currentRequest.CurrentIndex = ((num5 | num4) + (num5 & num4)) % currentRequest.Nodes.Count;
return _003C_003Ec__DisplayClass26_2.currentNode;
}
case 5:
num7 = 0;
num2 = 1101437792;
break;
case 10:
num2 = ((num < currentRequest.Nodes.Count) ? 1101437798 : 1101437794);
break;
case 4:
_003C_003Ec__DisplayClass26_ = new _003C_003Ec__DisplayClass26_1();
_003C_003Ec__DisplayClass26_._003C_003E4__this = this;
num9 = (currentRequest.CurrentIndex + num7) % currentRequest.Nodes.Count;
_003C_003Ec__DisplayClass26_.currentNode = currentRequest.Nodes[num9];
num2 = ((!_200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(_003C_003Ec__DisplayClass26_.currentNode).Select(_003C_003Ec__DisplayClass26_._003CFindNextTargetableNodeAndUpdateIndex_003Eb__1).ToList().Any((IGameObject x) => x == null)) ? 1101437799 : 1101437807);
break;
case 8:
{
int num8 = num9;
num4 = 1;
num5 = num8;
currentRequest.CurrentIndex = ((num5 | num4) + (num5 & num4)) % currentRequest.Nodes.Count;
return _003C_003Ec__DisplayClass26_.currentNode;
}
case 0:
{
int num6 = num7;
num4 = 1;
num5 = num6;
num7 = (num5 | num4) + (num5 & num4);
num2 = 1101437792;
break;
}
}
}
}
[MethodImpl(MethodImplOptions.NoInlining)]
public void OnNormalToast(SeString message)
{
if (!_206C_202B_200F_206E_202D_206C_206B_200D_200C_206D_206F_206A_206D_200C_202E_200F_206F_202A_200D_206F_206A_202B_206E_202D_202E_200E_206D_206D_200B_206D_202E_206A_202C_206A_200C_200C_206C_206D_200C_202E_202E(_revisitRegex, _206D_206D_202E_206A_206C_206C_206F_200C_200C_206D_206A_202D_202A_200B_202E_206C_202C_206F_202B_202B_206D_200E_206D_200F_206E_206B_206E_202E_200D_206F_206E_202D_202C_202E_202B_202B_202B_200D_200F_206B_202E(message)))
{
return;
}
int num = -1389255310;
IRevisitAware revisitAware2 = default(IRevisitAware);
IRevisitAware revisitAware = default(IRevisitAware);
while (true)
{
int num2 = num;
int num3 = -1389255312;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -1389255310;
break;
case 1:
revisitAware2.OnRevisit();
num = -1389255309;
break;
case 2:
_200F_200D_200D_206D_202A_206F_200E_202C_206A_206A_200D_202E_202E_200D_200C_206E_200E_200C_202B_202C_200D_200B_202E_200C_206F_206E_202B_206B_206F_206A_202E_206D_206F_206E_206B_202E_206D_202E_202B_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>(1337892205), Array.Empty<object>());
revisitAware2 = _taskQueue.CurrentTaskExecutor?.CurrentTask as IRevisitAware;
num = ((revisitAware2 == null) ? (-1389255309) : (-1389255311));
break;
case 3:
{
IEnumerator<ITask> enumerator = _taskQueue.RemainingTasks.GetEnumerator();
try
{
num = 1175940356;
while (true)
{
int num5 = num;
num3 = 1175940356;
num4 = num5;
int num6 = num4 + num3;
int num7 = num4 & num3;
switch (num6 - (num7 + num7))
{
case 3:
num = 1175940356;
break;
case 4:
revisitAware.OnRevisit();
num = 1175940356;
break;
case 2:
revisitAware = enumerator.Current as IRevisitAware;
num = ((revisitAware == null) ? 1175940356 : 1175940352);
break;
case 0:
num = (_200D_206A_202B_202E_202E_200B_206B_202B_206C_206C_200F_206A_206A_202E_202D_206D_206B_200C_200C_206E_206E_206A_206C_206B_206D_206C_200D_200D_206C_206D_200E_206C_200B_200B_202B_206A_200C_200F_200D_206D_202E((IEnumerator)enumerator) ? 1175940358 : 1175940357);
break;
case 1:
return;
}
}
}
finally
{
num = ((enumerator == null) ? (-1139545443) : (-1139545442));
while (true)
{
int num8 = num;
num3 = -1139545444;
num4 = num8;
int num9 = num4 + num3;
int num10 = num4 & num3;
switch (num9 - (num10 + num10))
{
case 0:
num = -1139545442;
break;
case 2:
_200C_200C_206F_206D_206E_206F_202D_202A_206A_206F_202C_206C_206E_202E_202B_206D_206E_206D_206B_200D_206D_202A_200F_200D_206F_200F_202C_206F_202D_202A_206E_200C_200D_202C_206D_200F_206E_200F_206C_200E_202E((IDisposable)enumerator);
num = -1139545443;
break;
case 1:
goto end_IL_019c;
}
continue;
end_IL_019c:
break;
}
}
}
}
}
}
static InvalidDataException _202B_206A_206F_200C_206A_202C_206F_200F_206E_200C_206E_206F_200E_200C_202B_200B_200B_206C_200C_200C_200C_206A_206B_200D_202B_206E_206F_200E_206D_206F_206C_200C_200F_200F_200C_202A_200F_200F_200D_202D_202E(string P_0)
{
return new InvalidDataException(P_0);
}
static void _206B_206D_206C_202E_202D_206A_200E_202B_200C_206F_202C_206B_206E_206F_206C_206D_202C_206F_202E_200F_202A_202C_202A_202A_206C_206A_206D_202A_206D_206C_200F_202A_206C_200B_200E_206B_202A_206C_200F_202E_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogError(P_1, P_2);
}
static List<GatheringNodeGroup> _202E_206E_206C_200C_200B_206C_200B_202C_206C_200D_206A_206B_206C_206A_200E_206E_206A_200B_206D_200B_200E_202A_202B_206D_206E_206F_202A_200F_200B_206B_206B_202E_200E_200C_206F_200B_202E_202C_200E_200D_202E(GatheringRoot P_0)
{
return P_0.Groups;
}
static bool _202A_200D_200B_206D_202D_206E_200E_202C_206D_206C_206F_200F_200D_202D_202E_202D_202B_206A_206F_202A_202E_202C_206F_200B_206D_200B_206E_200B_206F_200D_202C_202C_206C_200F_206C_206D_206C_202A_200F_206D_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
static void _200D_200D_202D_202E_206F_202C_206B_202E_206C_206A_200B_206B_200D_202D_202C_202A_202D_206C_206F_200C_206C_206F_206D_202A_200E_206F_206E_202A_206A_202D_206B_202D_206A_200F_202B_206C_202E_202C_202E_202C_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogInformation(P_1, P_2);
}
static List<QuestStep> _200B_206C_200C_206C_202E_206F_206A_200C_206D_202C_202C_202C_200F_200C_202C_202C_202C_202B_206B_206B_206E_200C_202D_200D_202B_202C_206D_206E_200E_200D_202E_206D_206D_206A_202B_200F_200D_206D_206F_202E_202E(GatheringRoot P_0)
{
return P_0.Steps;
}
static List<GatheringLocation> _200D_206C_206C_202A_200D_202D_202E_200C_206B_200E_202C_200D_202D_206B_200C_202B_202D_206D_202A_202C_200B_200E_206F_206E_200B_202B_206A_206E_206C_202D_206D_200C_200E_200E_202C_206D_202A_202E_206C_202B_202E(GatheringNode P_0)
{
return P_0.Locations;
}
static ushort _202A_202A_200B_202A_206A_202D_206F_206C_200B_206D_206E_206A_200E_202B_200B_200D_202A_202D_200F_200E_200E_202B_202E_200E_206B_202B_200F_206D_206D_206C_202E_206D_200E_202C_206F_206B_200E_202D_206E_206A_202E(QuestStep P_0)
{
return P_0.TerritoryId;
}
static bool? _200D_206D_206E_202C_202B_200E_200C_202E_202D_202C_200E_206B_206D_202B_202A_202C_202E_206F_206E_202E_200D_200E_206B_202B_202D_206D_202A_200F_202E_202E_206F_206E_206D_206E_202D_202B_206B_200E_202B_206F_202E(GatheringNode P_0)
{
return P_0.Fly;
}
static bool? _200D_206E_206C_206C_200B_202C_206D_200E_206D_202B_206F_202A_202D_202A_200C_200B_200B_200B_206C_202C_202E_206A_206D_200C_206A_206E_200B_206E_202E_206F_206B_206B_202D_200B_202C_202C_206A_206B_206B_202D_202E(GatheringRoot P_0)
{
return P_0.FlyBetweenNodes;
}
static float _202C_206D_200E_200D_202D_206C_206C_200E_202C_206C_202B_206D_200D_206E_206B_200D_202D_200F_200C_206D_206A_206C_202A_200F_202E_202D_202A_206E_206B_200E_202E_206E_202D_206F_200F_202E_206B_206A_206D_202D_202E(IEnumerable<float> P_0)
{
return P_0.Max();
}
static uint _206A_200D_206D_206B_202C_200E_202A_200E_202C_200F_202A_206E_202D_206F_206E_206C_206B_200C_206B_202D_202A_202D_206D_202B_200E_206F_206B_206A_200B_206C_206F_200E_200E_200C_206B_202A_202A_202C_202E_206D_202E(GatheringNode P_0)
{
return P_0.DataId;
}
static string _206D_206D_202E_206A_206C_206C_206F_200C_200C_206D_206A_202D_202A_200B_202E_206C_202C_206F_202B_202B_206D_200E_206D_200F_206E_206B_206E_202E_200D_206F_206E_202D_202C_202E_202B_202B_202B_200D_200F_206B_202E(SeString P_0)
{
return P_0.TextValue;
}
static bool _206C_202B_200F_206E_202D_206C_206B_200D_200C_206D_206F_206A_206D_200C_202E_200F_206F_202A_200D_206F_206A_202B_206E_202D_202E_200E_206D_206D_200B_206D_202E_206A_202C_206A_200C_200C_206C_206D_200C_202E_202E(Regex P_0, string P_1)
{
return P_0.IsMatch(P_1);
}
static void _200F_200D_200D_206D_202A_206F_200E_202C_206A_206A_200D_202E_202E_200D_200C_206E_200E_200C_202B_202C_200D_200B_202E_200C_206F_206E_202B_206B_206F_206A_202E_206D_206F_206E_206B_202E_206D_202E_202B_206F_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static bool _200D_206A_202B_202E_202E_200B_206B_202B_206C_206C_200F_206A_206A_202E_202D_206D_206B_200C_200C_206E_206E_206A_206C_206B_206D_206C_200D_200D_206C_206D_200E_206C_200B_200B_202B_206A_200C_200F_200D_206D_202E(IEnumerator P_0)
{
return P_0.MoveNext();
}
static void _200C_200C_206F_206D_206E_206F_202D_202A_206A_206F_202C_206C_206E_202E_202B_206D_206E_206D_206B_200D_206D_202A_200F_200D_206F_200F_202C_206F_202D_202A_206E_200C_200D_202C_206D_200F_206E_200F_206C_200E_202E(IDisposable P_0)
{
P_0.Dispose();
}
}