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 { internal sealed class CurrentRequest { public required GatheringRequest Data { get; init; } public required GatheringRoot Root { get; init; } public required List 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(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(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(-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(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(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(-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(-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.Default.Equals(Collectability, other.Collectability); case 2: num = ((!EqualityComparer.Default.Equals(AlternativeItemId, other.AlternativeItemId)) ? (-561631964) : (-561631968)); break; case 6: num = ((!EqualityComparer.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.Default.Equals(ItemId, other.ItemId)) ? (-561631964) : (-561631965)); break; case 1: num = ((!EqualityComparer.Default.Equals(Quantity, other.Quantity)) ? (-561631964) : (-561631966)); break; case 4: num = -561631959; break; } } } bool IEquatable.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 _003C_003E9__10_0; public static Func _003C_003E9__15_1; public static Func> _003C_003E9__15_0; public static Func _003C_003E9__22_0; public static Func _003C_003E9__22_1; public static Func _003C_003E9__22_2; public static Func _003C_003E9__26_2; internal ReadOnlySeString? _003C_002Ector_003Eb__10_0(LogMessage x) { return x.Text; } internal IEnumerable _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 _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 _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 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(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(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(-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(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(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(-825765376), Array.Empty()); } [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(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(-93536990), new object[2] { _movementFailureCount, _configuration.Advanced.InteractionRetryLimit }); Replan(); return true; case 6: { List 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(-782340659), Array.Empty()); _taskQueue.Reset(); TaskQueue taskQueue = _taskQueue; ITask task = moveTask3; List 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 span = CollectionsMarshal.AsSpan(list2); span.CopyTo(new Span(array).Slice(num7, span.Length)); num7 += span.Length; taskQueue.EnqueueAll(new global::_003C_003Ez__ReadOnlyArray(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(-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 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(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(1337892205), Array.Empty()); revisitAware2 = _taskQueue.CurrentTaskExecutor?.CurrentTask as IRevisitAware; num = ((revisitAware2 == null) ? (-1389255309) : (-1389255311)); break; case 3: { IEnumerator 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 _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 _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 _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 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(); } }