forked from aly/qstbak
muffin v7.5.11
This commit is contained in:
parent
addf2d530f
commit
3102923ce2
522 changed files with 41082 additions and 211592 deletions
|
|
@ -0,0 +1,6 @@
|
|||
using Questionable.Model;
|
||||
using Questionable.Model.Questing;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed record CustomDeliveryNpc(int NpcIndex, ushort NpcRowId, string Name, ushort Level, EExpansionVersion Expansion, QuestId UnlockQuestId);
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
using Dalamud.Plugin.Services;
|
||||
using Lumina.Excel.Sheets;
|
||||
using Questionable.Model;
|
||||
using Questionable.Model.Questing;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed class CustomDeliveryNpcData
|
||||
{
|
||||
private readonly List<CustomDeliveryNpc> _npcs;
|
||||
|
||||
private readonly Dictionary<ushort, CustomDeliveryNpc> _npcsByRowId;
|
||||
|
||||
public IReadOnlyList<CustomDeliveryNpc> AllNpcs => _npcs;
|
||||
|
||||
public CustomDeliveryNpcData(IDataManager dataManager)
|
||||
{
|
||||
_npcs = (from x in dataManager.GetExcelSheet<SatisfactionNpc>()
|
||||
where x.RowId != 0 && x.Npc.RowId != 0
|
||||
select new CustomDeliveryNpc((int)(x.RowId - 1), (ushort)x.RowId, x.Npc.Value.Singular.ToString(), x.LevelUnlock, (EExpansionVersion)x.QuestRequired.Value.Expansion.RowId, QuestId.FromRowId(x.QuestRequired.RowId))).ToList();
|
||||
_npcsByRowId = _npcs.ToDictionary((CustomDeliveryNpc x) => x.NpcRowId);
|
||||
}
|
||||
|
||||
public bool TryGetByRowId(ushort npcRowId, [NotNullWhen(true)] out CustomDeliveryNpc? npc)
|
||||
{
|
||||
return _npcsByRowId.TryGetValue(npcRowId, out npc);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||
|
|
@ -34,276 +32,116 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen
|
|||
|
||||
private Vector3 _npcPosition;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected override bool Start()
|
||||
{
|
||||
_candidates.Clear();
|
||||
_candidateIndex = 0;
|
||||
_moving = false;
|
||||
_pathfindTask = null;
|
||||
_cancellationTokenSource = _202C_206C_202B_200E_200E_206D_202D_202C_200E_206F_206A_202B_202B_202A_206B_206A_206E_206B_200E_200F_206A_206B_200B_200D_206A_206D_200E_206C_200D_202D_202E_202B_202B_202A_200F_200F_200D_200F_202A_202A_202E(TimeSpan.FromSeconds(30L));
|
||||
IPlayerCharacter playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable);
|
||||
_cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(30L));
|
||||
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
|
||||
IGameObject gameObject = gameFunctions.FindObjectByDataId(base.Task.NpcDataId, null, warnIfMissing: false);
|
||||
_npcPosition = ((gameObject != null) ? _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E(gameObject) : base.Task.NpcPosition);
|
||||
_interactionDistance = 3f + ((gameObject != null) ? _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E(gameObject) : 0f) + ((playerCharacter != null) ? _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E((IGameObject)playerCharacter) : 0f);
|
||||
int num = ((playerCharacter == null) ? (-965250056) : (-965250059));
|
||||
int num5 = default(int);
|
||||
Vector3? pointOnFloor = default(Vector3?);
|
||||
float num6 = default(float);
|
||||
float num7 = default(float);
|
||||
while (true)
|
||||
_npcPosition = gameObject?.Position ?? base.Task.NpcPosition;
|
||||
_interactionDistance = 3f + (gameObject?.HitboxRadius ?? 0f) + (localPlayer?.HitboxRadius ?? 0f);
|
||||
if (localPlayer == null || clientState.TerritoryType != base.Task.TerritoryId)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -965250056;
|
||||
int num4 = num2;
|
||||
int num14;
|
||||
int num15;
|
||||
float num16;
|
||||
Vector3 position;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
return true;
|
||||
}
|
||||
float num = MathF.Atan2(localPlayer.Position.X - _npcPosition.X, localPlayer.Position.Z - _npcPosition.Z);
|
||||
float num2 = MathF.Max(1f, _interactionDistance - 0.5f);
|
||||
for (int i = 0; i < 24; i++)
|
||||
{
|
||||
int num3 = ((i != 0) ? ((i + 1) / 2 * ((i % 2 == 1) ? 1 : (-1))) : 0);
|
||||
float x = num + (float)Math.PI * 2f * (float)num3 / 24f;
|
||||
Vector3 position = new Vector3(_npcPosition.X + MathF.Sin(x) * num2, _npcPosition.Y + 5f, _npcPosition.Z + MathF.Cos(x) * num2);
|
||||
Vector3? pointOnFloor = navmeshIpc.GetPointOnFloor(position, unlandable: false, 0.75f);
|
||||
if (pointOnFloor.HasValue && Vector2.Distance(new Vector2(pointOnFloor.Value.X, pointOnFloor.Value.Z), new Vector2(_npcPosition.X, _npcPosition.Z)) <= _interactionDistance && HasLineOfSight(pointOnFloor.Value, _npcPosition) && HasBodyClearance(pointOnFloor.Value, localPlayer.HitboxRadius + 0.5f))
|
||||
{
|
||||
case 7:
|
||||
_202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_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>(90792700), new object[3]
|
||||
{
|
||||
_candidates.Count,
|
||||
base.Task.NpcDataId,
|
||||
_interactionDistance
|
||||
});
|
||||
StartNextPathfind();
|
||||
return true;
|
||||
case 12:
|
||||
num = ((num5 == 0) ? (-965250052) : (-965250055));
|
||||
break;
|
||||
case 4:
|
||||
num14 = 0;
|
||||
goto IL_01a9;
|
||||
case 9:
|
||||
num = ((!(Vector2.Distance(new Vector2(pointOnFloor.Value.X, pointOnFloor.Value.Z), new Vector2(_npcPosition.X, _npcPosition.Z)) <= _interactionDistance)) ? (-965250064) : (-965250051));
|
||||
break;
|
||||
case 13:
|
||||
num = ((_200C_202B_200C_206A_206D_206A_202E_202B_206A_200F_200F_200F_202A_206F_206D_202B_200B_202C_200F_200D_206B_206D_200B_202E_202A_202A_202C_200C_206F_202E_200C_200F_202B_200D_200D_202C_202E_202E_200D_206A_202E(clientState) == base.Task.TerritoryId) ? (-965250054) : (-965250056));
|
||||
break;
|
||||
case 5:
|
||||
num = ((!HasLineOfSight(pointOnFloor.Value, _npcPosition)) ? (-965250064) : (-965250061));
|
||||
break;
|
||||
case 0:
|
||||
return true;
|
||||
case 1:
|
||||
{
|
||||
int num11 = num5;
|
||||
num3 = 1;
|
||||
num4 = num11;
|
||||
int num12 = num4 ^ num3;
|
||||
int num13 = num4 & num3;
|
||||
num14 = (num12 + (num13 + num13)) / 2 * ((num5 % 2 == 1) ? 1 : (-1));
|
||||
goto IL_01a9;
|
||||
}
|
||||
case 10:
|
||||
num = ((num5 < 24) ? (-965250060) : (-965250049));
|
||||
break;
|
||||
case 8:
|
||||
{
|
||||
int num8 = num5;
|
||||
num3 = 1;
|
||||
num4 = num8;
|
||||
int num9 = num4 ^ num3;
|
||||
int num10 = num4 & num3;
|
||||
num5 = num9 + (num10 + num10);
|
||||
num = -965250062;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num = -965250059;
|
||||
break;
|
||||
case 2:
|
||||
num6 = _200E_200F_200D_206C_206A_202C_206B_206F_202B_202C_200E_200D_206A_200E_206D_200B_200B_202A_206E_202A_202D_202E_206B_200C_200B_206A_200B_200C_206E_200B_200D_206D_200C_202B_206F_200F_200B_202B_200C_200E_202E(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter).X - _npcPosition.X, _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter).Z - _npcPosition.Z);
|
||||
num7 = _202B_200F_200E_206C_200E_206B_202C_202D_200B_200C_202A_206C_200F_200B_200D_200C_200B_206E_206D_202C_202D_200E_200D_202C_202A_206F_200B_200C_202B_206E_200B_202B_200F_206B_206A_200B_206E_202A_206D_206F_202E(1f, _interactionDistance - 0.5f);
|
||||
num5 = 0;
|
||||
num = -965250062;
|
||||
break;
|
||||
case 11:
|
||||
num = ((!HasBodyClearance(pointOnFloor.Value, _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E((IGameObject)playerCharacter) + 0.5f)) ? (-965250064) : (-965250050));
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
_candidates.Add(pointOnFloor.Value);
|
||||
num = -965250064;
|
||||
break;
|
||||
}
|
||||
IL_01a9:
|
||||
num15 = num14;
|
||||
num16 = num6 + MathF.PI * 2f * (float)num15 / 24f;
|
||||
position = new Vector3(_npcPosition.X + _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(num16) * num7, _npcPosition.Y + 5f, _npcPosition.Z + _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(num16) * num7);
|
||||
pointOnFloor = navmeshIpc.GetPointOnFloor(position, unlandable: false, 0.75f);
|
||||
num = ((!pointOnFloor.HasValue) ? (-965250064) : (-965250063));
|
||||
break;
|
||||
_candidates.Add(pointOnFloor.Value);
|
||||
}
|
||||
}
|
||||
logger.LogDebug("Searching {CandidateCount} reachable approaches to delivery NPC {DataId} within {Distance:F1}y", _candidates.Count, base.Task.NpcDataId, _interactionDistance);
|
||||
StartNextPathfind();
|
||||
return true;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override ETaskResult Update()
|
||||
{
|
||||
int num = ((!_moving) ? (-1907182923) : (-1907182931));
|
||||
Vector3 vector = default(Vector3);
|
||||
NavPathfindResult result = default(NavPathfindResult);
|
||||
IPlayerCharacter playerCharacter = default(IPlayerCharacter);
|
||||
float num6 = default(float);
|
||||
IPlayerCharacter playerCharacter2 = default(IPlayerCharacter);
|
||||
while (true)
|
||||
if (_moving)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1907182938;
|
||||
int num4 = num2;
|
||||
float num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
if (movementController.IsPathfinding || movementController.IsPathRunning)
|
||||
{
|
||||
case 17:
|
||||
{
|
||||
List<Vector3> candidates = _candidates;
|
||||
int candidateIndex = _candidateIndex;
|
||||
num3 = 1;
|
||||
num4 = candidateIndex;
|
||||
vector = candidates[~(~num4 + num3)];
|
||||
result = _pathfindTask.Result;
|
||||
num = (result.HasPartialInfo ? (-1907182936) : (-1907182924));
|
||||
break;
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
case 16:
|
||||
num = ((_candidateIndex < _candidates.Count) ? (-1907182927) : (-1907182930));
|
||||
break;
|
||||
case 19:
|
||||
num = ((_pathfindTask != null) ? (-1907182940) : (-1907182922));
|
||||
break;
|
||||
case 8:
|
||||
throw new MovementController.PathfindingFailedException(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>(1585195763));
|
||||
case 6:
|
||||
num = ((!movementController.IsPathRunning) ? (-1907182925) : (-1907182941));
|
||||
break;
|
||||
case 29:
|
||||
num = ((!_202C_202E_202A_200B_206B_200F_200F_206E_202A_206B_202A_206A_202C_202A_200C_206A_202A_200C_200D_200C_202A_206E_206A_200D_206C_206E_206C_202C_202C_206E_206C_200D_202A_206D_202C_206A_202D_202C_202C_200E_202E((System.Threading.Tasks.Task)_pathfindTask)) ? (-1907182937) : (-1907182928));
|
||||
break;
|
||||
case 7:
|
||||
_202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(190605907), new object[1] { vector });
|
||||
movementController.NavigateTo(EMovementType.Quest, base.Task.NpcDataId, result.Waypoints, fly: false, sprint: true, 0.5f);
|
||||
_moving = true;
|
||||
return ETaskResult.StillRunning;
|
||||
case 24:
|
||||
num = (result.IsPartial ? (-1907182929) : (-1907182933));
|
||||
break;
|
||||
case 20:
|
||||
throw new MovementController.PathfindingFailedException(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>(-1442579003));
|
||||
case 2:
|
||||
num = (_200F_200F_202B_206F_206E_202E_206A_206B_202B_200D_200F_200F_202A_206E_206A_200F_200E_200D_206B_202E_206E_206D_206B_202E_206C_200C_200E_202B_202E_200B_200F_202D_200B_200E_200E_206B_202B_200C_206E_206D_202E((System.Threading.Tasks.Task)_pathfindTask) ? (-1907182917) : (-1907182913));
|
||||
break;
|
||||
case 22:
|
||||
throw new MovementController.PathfindingFailedException(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>(688174064));
|
||||
case 27:
|
||||
num = ((playerCharacter == null) ? (-1907182929) : (-1907182942));
|
||||
break;
|
||||
case 14:
|
||||
num5 = result.EndDistance;
|
||||
goto IL_02ae;
|
||||
case 23:
|
||||
StartNextPathfind();
|
||||
return ETaskResult.StillRunning;
|
||||
case 11:
|
||||
num = (movementController.IsPathfinding ? (-1907182941) : (-1907182944));
|
||||
break;
|
||||
case 1:
|
||||
num = ((!_202E_202B_206F_200E_200D_206D_206B_206F_206B_200B_206F_206F_200D_200D_200C_200F_200C_206F_200D_200B_200C_202D_206D_202D_206A_200D_206D_206B_206E_202E_206C_202C_206B_202E_200E_200F_202E_200D_206F_206B_202E((System.Threading.Tasks.Task)_pathfindTask)) ? (-1907182921) : (-1907182939));
|
||||
break;
|
||||
case 0:
|
||||
num = -1907182931;
|
||||
break;
|
||||
case 12:
|
||||
num = ((!result.HasPartialInfo) ? (-1907182933) : (-1907182914));
|
||||
break;
|
||||
case 13:
|
||||
num = ((!(num6 <= 1f)) ? (-1907182929) : (-1907182915));
|
||||
break;
|
||||
case 15:
|
||||
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
|
||||
if (localPlayer != null && Vector3.Distance(localPlayer.Position, _npcPosition) <= _interactionDistance + 0.5f)
|
||||
{
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
throw new MovementController.PathfindingFailedException("Delivery NPC approach ended outside interaction range");
|
||||
}
|
||||
if (_pathfindTask == null)
|
||||
{
|
||||
if (_candidateIndex >= _candidates.Count)
|
||||
{
|
||||
throw new MovementController.PathfindingFailedException("No reachable approach within delivery NPC interaction range");
|
||||
}
|
||||
StartNextPathfind();
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
if (!_pathfindTask.IsCompleted)
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
if (_pathfindTask.IsCanceled)
|
||||
{
|
||||
throw new MovementController.PathfindingFailedException("Delivery NPC approach search timed out");
|
||||
}
|
||||
if (_pathfindTask.IsFaulted)
|
||||
{
|
||||
logger.LogDebug(_pathfindTask.Exception, "Delivery NPC approach candidate pathfinding failed");
|
||||
_pathfindTask = null;
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
Vector3 vector = _candidates[_candidateIndex - 1];
|
||||
NavPathfindResult result = _pathfindTask.Result;
|
||||
float num;
|
||||
if (!result.HasPartialInfo)
|
||||
{
|
||||
if (result.Waypoints.Count <= 0)
|
||||
{
|
||||
num = float.MaxValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
List<Vector3> waypoints = result.Waypoints;
|
||||
num5 = Vector3.Distance(waypoints[waypoints.Count - 1], vector);
|
||||
goto IL_02ae;
|
||||
}
|
||||
case 21:
|
||||
playerCharacter2 = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable);
|
||||
num = ((playerCharacter2 == null) ? (-1907182926) : (-1907182918));
|
||||
break;
|
||||
case 3:
|
||||
_200E_206D_206E_206A_200C_202B_206B_202D_206B_200C_200D_202C_206A_206B_200F_206C_200D_200F_206B_202B_206E_202E_206B_202A_200C_206F_206A_206D_200E_200F_202D_202E_206E_206B_202D_200B_202C_202D_202B_200E_202E((ILogger)logger, (Exception)_206B_206A_200F_206E_202E_206D_200C_202A_200E_202A_202A_206F_206C_200B_202C_202E_206A_202C_202B_200D_200C_206D_200E_202C_206E_202B_206B_202C_202E_200C_200D_206E_206A_200D_200E_206B_200E_202A_206D_200D_202E((System.Threading.Tasks.Task)_pathfindTask), 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>(-1595020908), Array.Empty<object>());
|
||||
_pathfindTask = null;
|
||||
return ETaskResult.StillRunning;
|
||||
case 28:
|
||||
num = ((!(Vector3.Distance(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter2), _npcPosition) <= _interactionDistance + 0.5f)) ? (-1907182926) : (-1907182916));
|
||||
break;
|
||||
case 25:
|
||||
return ETaskResult.StillRunning;
|
||||
case 26:
|
||||
return ETaskResult.TaskComplete;
|
||||
case 18:
|
||||
num = ((result.Waypoints.Count > 0) ? (-1907182935) : (-1907182932));
|
||||
break;
|
||||
case 10:
|
||||
num5 = float.MaxValue;
|
||||
goto IL_02ae;
|
||||
case 9:
|
||||
_pathfindTask = null;
|
||||
return ETaskResult.StillRunning;
|
||||
case 4:
|
||||
num = ((!HasCollisionFreePath(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter), result.Waypoints)) ? (-1907182929) : (-1907182943));
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
IL_02ae:
|
||||
num6 = num5;
|
||||
playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable);
|
||||
num = ((result.Waypoints.Count <= 0) ? (-1907182929) : (-1907182934));
|
||||
break;
|
||||
num = Vector3.Distance(waypoints[waypoints.Count - 1], vector);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num = result.EndDistance;
|
||||
}
|
||||
float num2 = num;
|
||||
IPlayerCharacter localPlayer2 = objectTable.LocalPlayer;
|
||||
if (result.Waypoints.Count > 0 && (!result.HasPartialInfo || !result.IsPartial) && num2 <= 1f && localPlayer2 != null && HasCollisionFreePath(localPlayer2.Position, result.Waypoints))
|
||||
{
|
||||
logger.LogDebug("Selected reachable delivery NPC approach {Approach}", vector);
|
||||
movementController.NavigateTo(EMovementType.Quest, base.Task.NpcDataId, result.Waypoints, fly: false, sprint: true, 0.5f);
|
||||
_moving = true;
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
_pathfindTask = null;
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
private void StartNextPathfind()
|
||||
{
|
||||
IPlayerCharacter playerCharacter = _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(objectTable);
|
||||
int num = ((playerCharacter == null) ? 461991521 : 461991527);
|
||||
while (true)
|
||||
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
|
||||
if (localPlayer != null && _candidateIndex < _candidates.Count && _cancellationTokenSource != null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 461991523;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
num = ((_cancellationTokenSource != null) ? 461991520 : 461991521);
|
||||
break;
|
||||
case 4:
|
||||
num = ((_candidateIndex >= _candidates.Count) ? 461991521 : 461991522);
|
||||
break;
|
||||
case 2:
|
||||
return;
|
||||
case 0:
|
||||
num = 461991527;
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
List<Vector3> candidates = _candidates;
|
||||
int candidateIndex = _candidateIndex;
|
||||
num3 = 1;
|
||||
num4 = candidateIndex;
|
||||
int num5 = num4 ^ num3;
|
||||
int num6 = num4 & num3;
|
||||
_candidateIndex = num5 + (num6 + num6);
|
||||
Vector3 targetPosition = candidates[candidateIndex];
|
||||
_pathfindTask = navmeshIpc.Pathfind(_200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E((IGameObject)playerCharacter), targetPosition, fly: false, _202E_206E_200F_206F_200D_200C_206D_202A_200C_200D_202C_200F_202D_206F_206D_206F_206E_200D_206E_202C_200C_206E_200C_206F_206B_206B_200D_200C_200F_200D_202E_206E_202A_206F_202D_202C_206D_200C_206F_200D_202E(_cancellationTokenSource));
|
||||
return;
|
||||
}
|
||||
}
|
||||
Vector3 targetPosition = _candidates[_candidateIndex++];
|
||||
_pathfindTask = navmeshIpc.Pathfind(localPlayer.Position, targetPosition, fly: false, _cancellationTokenSource.Token);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -314,114 +152,27 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen
|
|||
|
||||
private static bool HasBodyClearance(Vector3 position, float radius)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = 883120263;
|
||||
while (true)
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = 883120261;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
float x = (float)Math.PI * 2f * (float)i / 8f;
|
||||
if (!HasLineOfSightAtHeight(to: new Vector3(position.X + MathF.Sin(x) * radius, position.Y, position.Z + MathF.Cos(x) * radius), from: position, height: 1f))
|
||||
{
|
||||
case 4:
|
||||
num2 = 883120263;
|
||||
break;
|
||||
case 0:
|
||||
return false;
|
||||
case 1:
|
||||
return true;
|
||||
case 2:
|
||||
num2 = ((num < 8) ? 883120262 : 883120260);
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
int num9 = num;
|
||||
num4 = 1;
|
||||
num5 = num9;
|
||||
num = (num5 | num4) + (num5 & num4);
|
||||
num2 = 883120263;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
float num8 = MathF.PI * 2f * (float)num / 8f;
|
||||
num2 = (HasLineOfSightAtHeight(to: new Vector3(position.X + _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(num8) * radius, position.Y, position.Z + _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(num8) * radius), from: position, height: 1f) ? 883120256 : 883120261);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool HasCollisionFreePath(Vector3 start, IReadOnlyList<Vector3> waypoints)
|
||||
{
|
||||
Vector3 vector = start;
|
||||
IEnumerator<Vector3> enumerator = waypoints.GetEnumerator();
|
||||
try
|
||||
foreach (Vector3 waypoint in waypoints)
|
||||
{
|
||||
int num = -1337017310;
|
||||
Vector3 current = default(Vector3);
|
||||
while (true)
|
||||
if (!HasLineOfSightAtHeight(vector, waypoint, 0.75f) || !HasLineOfSightAtHeight(vector, waypoint, 1.5f))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1337017311;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 6:
|
||||
num = -1337017310;
|
||||
break;
|
||||
case 4:
|
||||
return false;
|
||||
case 1:
|
||||
current = enumerator.Current;
|
||||
num = ((!HasLineOfSightAtHeight(vector, current, 0.75f)) ? (-1337017307) : (-1337017309));
|
||||
break;
|
||||
case 2:
|
||||
num = (HasLineOfSightAtHeight(vector, current, 1.5f) ? (-1337017311) : (-1337017307));
|
||||
break;
|
||||
case 3:
|
||||
num = (_206D_202B_202E_200E_202C_206A_200E_200B_206E_202E_206F_206A_200C_206D_200B_206E_200F_202D_202C_206D_200D_206F_202A_200C_206D_200B_202E_200D_206A_206B_202D_202A_202A_206F_202D_200C_202C_206A_200B_200D_202E((IEnumerator)enumerator) ? (-1337017312) : (-1337017308));
|
||||
break;
|
||||
case 0:
|
||||
vector = current;
|
||||
num = -1337017310;
|
||||
break;
|
||||
case 5:
|
||||
goto end_IL_0015;
|
||||
}
|
||||
continue;
|
||||
end_IL_0015:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
int num = ((enumerator == null) ? (-1236481576) : (-1236481575));
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
int num3 = -1236481576;
|
||||
int num4 = num5;
|
||||
int num6 = num4 + num3;
|
||||
int num7 = num4 & num3;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 2:
|
||||
num = -1236481575;
|
||||
break;
|
||||
case 0:
|
||||
goto end_IL_011d;
|
||||
case 1:
|
||||
_200F_200B_206B_200E_202D_202A_202C_200F_202B_206E_200D_200B_206D_206C_202C_206F_202D_200C_206F_202D_202A_202D_206F_202E_206B_206F_200B_202D_200B_200D_200E_202A_200F_200E_200E_200E_200F_206F_206E_206E_202E((IDisposable)enumerator);
|
||||
num = -1236481576;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_011d:
|
||||
break;
|
||||
return false;
|
||||
}
|
||||
vector = waypoint;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -429,175 +180,37 @@ internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, Movemen
|
|||
private unsafe static bool HasLineOfSightAtHeight(Vector3 from, Vector3 to, float height)
|
||||
{
|
||||
Framework* ptr = Framework.Instance();
|
||||
int num = ((ptr == null) ? (-2105382518) : (-2105382517));
|
||||
Vector3 vector = default(Vector3);
|
||||
float num7 = default(float);
|
||||
RaycastHit raycastHit = default(RaycastHit);
|
||||
while (true)
|
||||
if (ptr == null || ptr->BGCollisionModule == null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -2105382513;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 5:
|
||||
return true;
|
||||
case 1:
|
||||
return true;
|
||||
case 3:
|
||||
{
|
||||
Vector3 vector2 = vector / num7;
|
||||
int* flags = stackalloc int[4] { 16384, 0, 16384, 0 };
|
||||
return !ptr->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &from, &vector2, num7, 1, flags);
|
||||
}
|
||||
case 0:
|
||||
num = -2105382517;
|
||||
break;
|
||||
case 4:
|
||||
num = ((ptr->BGCollisionModule != null) ? (-2105382515) : (-2105382518));
|
||||
break;
|
||||
case 2:
|
||||
from.Y += height;
|
||||
to.Y += height;
|
||||
vector = to - from;
|
||||
num7 = vector.Length();
|
||||
num = ((!(num7 < 0.1f)) ? (-2105382516) : (-2105382514));
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
from.Y += height;
|
||||
to.Y += height;
|
||||
Vector3 vector = to - from;
|
||||
float num = vector.Length();
|
||||
if (num < 0.1f)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
Vector3 vector2 = vector / num;
|
||||
int* flags = stackalloc int[4] { 16384, 0, 16384, 0 };
|
||||
RaycastHit raycastHit = default(RaycastHit);
|
||||
return !ptr->BGCollisionModule->RaycastMaterialFilter(&raycastHit, &from, &vector2, num, 1, flags);
|
||||
}
|
||||
|
||||
public void StopNow()
|
||||
{
|
||||
CancellationTokenSource? cancellationTokenSource = _cancellationTokenSource;
|
||||
if (cancellationTokenSource != null)
|
||||
{
|
||||
_200B_206A_202A_202E_200F_206E_206D_200F_206D_206C_206E_202E_200F_206A_202A_206A_206E_200F_202A_206F_206A_206F_202A_206D_200E_200B_202A_200E_206C_202E_202B_206F_206D_206C_206C_200E_206F_200C_202D_202D_202E(cancellationTokenSource);
|
||||
}
|
||||
_cancellationTokenSource?.Cancel();
|
||||
movementController.Stop();
|
||||
}
|
||||
|
||||
void IStoppableTaskExecutor.StopNow()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in StopNow
|
||||
this.StopNow();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
((DeliveryNpcApproachExecutor)(object)_cancellationTokenSource)?._206B_200B_202D_206F_206A_206E_202D_202A_206A_206E_206B_206B_200B_202B_202E_206C_202E_200B_200C_200C_200F_206A_200F_206C_206B_200C_206C_206C_200B_202D_206C_202C_206E_202A_200C_200F_206A_206F_206B_206F_202E();
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Dispose
|
||||
this.Dispose();
|
||||
_cancellationTokenSource?.Dispose();
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static CancellationTokenSource _202C_206C_202B_200E_200E_206D_202D_202C_200E_206F_206A_202B_202B_202A_206B_206A_206E_206B_200E_200F_206A_206B_200B_200D_206A_206D_200E_206C_200D_202D_202E_202B_202B_202A_200F_200F_200D_200F_202A_202A_202E(TimeSpan P_0)
|
||||
{
|
||||
return new CancellationTokenSource(P_0);
|
||||
}
|
||||
|
||||
static IPlayerCharacter _206D_202C_200D_202A_206B_202B_206F_202C_206A_200B_206F_200F_200E_202A_200F_202B_202A_206E_200E_206D_202A_200B_206C_202D_206E_206F_206E_206C_206F_202C_206F_202B_202A_200B_200E_202D_206A_206D_202E_206C_202E(IObjectTable P_0)
|
||||
{
|
||||
return P_0.LocalPlayer;
|
||||
}
|
||||
|
||||
static Vector3 _200E_200C_200C_200B_202B_202D_206F_200F_202A_206A_206E_206F_206F_206E_202A_206B_206C_202B_206B_202B_206C_202E_206A_206A_206C_202B_206E_202A_206D_206A_202E_200B_200F_202E_200F_206C_200E_202D_200C_202A_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.Position;
|
||||
}
|
||||
|
||||
static float _200B_200D_202E_206D_206E_200F_200E_200B_206D_202D_202C_200E_200E_200B_206D_200E_200C_202B_206E_202E_202B_202A_202A_206D_206A_206B_206C_200B_206F_206A_202B_202B_202C_206B_200E_202A_206D_206A_200C_202B_202E(IGameObject P_0)
|
||||
{
|
||||
return P_0.HitboxRadius;
|
||||
}
|
||||
|
||||
static uint _200C_202B_200C_206A_206D_206A_202E_202B_206A_200F_200F_200F_202A_206F_206D_202B_200B_202C_200F_200D_206B_206D_200B_202E_202A_202A_202C_200C_206F_202E_200C_200F_202B_200D_200D_202C_202E_202E_200D_206A_202E(IClientState P_0)
|
||||
{
|
||||
return P_0.TerritoryType;
|
||||
}
|
||||
|
||||
static float _200E_200F_200D_206C_206A_202C_206B_206F_202B_202C_200E_200D_206A_200E_206D_200B_200B_202A_206E_202A_202D_202E_206B_200C_200B_206A_200B_200C_206E_200B_200D_206D_200C_202B_206F_200F_200B_202B_200C_200E_202E(float P_0, float P_1)
|
||||
{
|
||||
return MathF.Atan2(P_0, P_1);
|
||||
}
|
||||
|
||||
static float _202B_200F_200E_206C_200E_206B_202C_202D_200B_200C_202A_206C_200F_200B_200D_200C_200B_206E_206D_202C_202D_200E_200D_202C_202A_206F_200B_200C_202B_206E_200B_202B_200F_206B_206A_200B_206E_202A_206D_206F_202E(float P_0, float P_1)
|
||||
{
|
||||
return MathF.Max(P_0, P_1);
|
||||
}
|
||||
|
||||
static float _202B_202D_206B_200B_200B_200B_202A_206A_202B_206F_202B_206F_206F_206D_206B_200C_206D_202A_206B_202D_200C_206B_206C_206F_206D_206B_202E_202A_202D_206A_206E_206F_200D_202C_200F_202A_206F_200D_206A_202E_202E(float P_0)
|
||||
{
|
||||
return MathF.Sin(P_0);
|
||||
}
|
||||
|
||||
static float _200B_202E_202E_206A_202B_202B_202A_200E_206A_202E_202D_200B_200C_202D_202D_202E_202C_200C_206C_200E_200F_206D_200D_200B_200C_202A_200B_206E_206E_202C_202D_202A_200B_202C_206C_206C_202C_202E_206D_202E_202E(float P_0)
|
||||
{
|
||||
return MathF.Cos(P_0);
|
||||
}
|
||||
|
||||
static void _202A_200F_206B_200E_200D_206D_206F_206F_200D_206A_206A_202C_206C_206A_202C_206F_206A_202D_200B_206E_206D_202D_202C_206E_202E_200E_200B_206E_202B_206D_202E_200B_200D_206B_206E_206D_206E_200B_206B_202D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _200F_200F_202B_206F_206E_202E_206A_206B_202B_200D_200F_200F_202A_206E_206A_200F_200E_200D_206B_202E_206E_206D_206B_202E_206C_200C_200E_202B_202E_200B_200F_202D_200B_200E_200E_206B_202B_200C_206E_206D_202E(System.Threading.Tasks.Task P_0)
|
||||
{
|
||||
return P_0.IsCompleted;
|
||||
}
|
||||
|
||||
static bool _202C_202E_202A_200B_206B_200F_200F_206E_202A_206B_202A_206A_202C_202A_200C_206A_202A_200C_200D_200C_202A_206E_206A_200D_206C_206E_206C_202C_202C_206E_206C_200D_202A_206D_202C_206A_202D_202C_202C_200E_202E(System.Threading.Tasks.Task P_0)
|
||||
{
|
||||
return P_0.IsCanceled;
|
||||
}
|
||||
|
||||
static bool _202E_202B_206F_200E_200D_206D_206B_206F_206B_200B_206F_206F_200D_200D_200C_200F_200C_206F_200D_200B_200C_202D_206D_202D_206A_200D_206D_206B_206E_202E_206C_202C_206B_202E_200E_200F_202E_200D_206F_206B_202E(System.Threading.Tasks.Task P_0)
|
||||
{
|
||||
return P_0.IsFaulted;
|
||||
}
|
||||
|
||||
static AggregateException _206B_206A_200F_206E_202E_206D_200C_202A_200E_202A_202A_206F_206C_200B_202C_202E_206A_202C_202B_200D_200C_206D_200E_202C_206E_202B_206B_202C_202E_200C_200D_206E_206A_200D_200E_206B_200E_202A_206D_200D_202E(System.Threading.Tasks.Task P_0)
|
||||
{
|
||||
return P_0.Exception;
|
||||
}
|
||||
|
||||
static void _200E_206D_206E_206A_200C_202B_206B_202D_206B_200C_200D_202C_206A_206B_200F_206C_200D_200F_206B_202B_206E_202E_206B_202A_200C_206F_206A_206D_200E_200F_202D_202E_206E_206B_202D_200B_202C_202D_202B_200E_202E(ILogger P_0, Exception P_1, string P_2, object[] P_3)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2, P_3);
|
||||
}
|
||||
|
||||
static CancellationToken _202E_206E_200F_206F_200D_200C_206D_202A_200C_200D_202C_200F_202D_206F_206D_206F_206E_200D_206E_202C_200C_206E_200C_206F_206B_206B_200D_200C_200F_200D_202E_206E_202A_206F_202D_202C_206D_200C_206F_200D_202E(CancellationTokenSource P_0)
|
||||
{
|
||||
return P_0.Token;
|
||||
}
|
||||
|
||||
static bool _206D_202B_202E_200E_202C_206A_200E_200B_206E_202E_206F_206A_200C_206D_200B_206E_200F_202D_202C_206D_200D_206F_202A_200C_206D_200B_202E_200D_206A_206B_202D_202A_202A_206F_202D_200C_202C_206A_200B_200D_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _200F_200B_206B_200E_202D_202A_202C_200F_202B_206E_200D_200B_206D_206C_202C_206F_202D_200C_206F_202D_202A_202D_206F_202E_206B_206F_200B_202D_200B_200D_200E_202A_200F_200E_200E_200E_200F_206F_206E_206E_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static void _200B_206A_202A_202E_200F_206E_206D_200F_206D_206C_206E_202E_200F_206A_202A_206A_206E_200F_202A_206F_206A_206F_202A_206D_200E_200B_202A_200E_206C_202E_202B_206F_206D_206C_206C_200E_206F_200C_202D_202D_202E(CancellationTokenSource P_0)
|
||||
{
|
||||
P_0.Cancel();
|
||||
}
|
||||
|
||||
void _206B_200B_202D_206F_206A_206E_202D_202A_206A_206E_206B_206B_200B_202B_202E_206C_202E_200B_200C_200C_200F_206A_200F_206C_206B_200C_206C_206C_200B_202D_206C_202C_206E_202A_200C_200F_206A_206F_206B_206F_202E()
|
||||
{
|
||||
((CancellationTokenSource)(object)this).Dispose();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,109 +1,12 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Questionable.Controller.Steps;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed record DeliveryNpcApproachTask(ushort TerritoryId, Vector3 NpcPosition, uint NpcDataId) : ITask
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private Type EqualityContract
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return _202B_206C_200F_206B_200B_202D_200D_200F_200C_206C_202A_206C_200E_206B_206A_200F_202A_200F_202E_206D_206D_202A_200C_206C_200D_200C_200D_202A_202C_202D_206F_206C_202B_206F_200C_202E_202C_202E_202C_206E_202E(typeof(DeliveryNpcApproachTask).TypeHandle);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override string ToString()
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 1);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(853725271));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(NpcDataId);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(424561659));
|
||||
return defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_202A_202A_202C_202E_206B_206A_200C_200E_206E_206A_200D_206C_200E_202D_206E_206E_200F_200E_202C_200E_202D_206F_200D_200D_200D_206E_200D_202D_206F_206E_206A_202A_206E_206C_206E_202C_202B_200C_202E_200C_202E();
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_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>(2145374973));
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, TerritoryId.ToString());
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_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>(-1319777869));
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, NpcPosition.ToString());
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_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>(-323573035));
|
||||
_202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(builder, NpcDataId.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(DeliveryNpcApproachTask? other)
|
||||
{
|
||||
int num = (((object)this == other) ? (-2005585280) : (-2005585273));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -2005585274;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num = -2005585273;
|
||||
break;
|
||||
case 7:
|
||||
num = ((!_200C_202D_202D_202D_200F_200C_200E_202E_200C_200E_206E_200E_200B_202E_206A_206A_202D_202D_200C_202E_200C_202D_206F_200E_202E_206D_200E_206A_202B_200F_200C_202A_206E_202B_206A_206A_200E_206A_200E_202B_202E(EqualityContract, other.EqualityContract)) ? (-2005585274) : (-2005585275));
|
||||
break;
|
||||
case 1:
|
||||
num = (((object)other == null) ? (-2005585274) : (-2005585279));
|
||||
break;
|
||||
case 6:
|
||||
return true;
|
||||
case 5:
|
||||
return EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId);
|
||||
case 0:
|
||||
return false;
|
||||
case 3:
|
||||
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-2005585274) : (-2005585278));
|
||||
break;
|
||||
case 4:
|
||||
num = ((!EqualityComparer<Vector3>.Default.Equals(NpcPosition, other.NpcPosition)) ? (-2005585274) : (-2005585277));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<DeliveryNpcApproachTask>.Equals(DeliveryNpcApproachTask? other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static Type _202B_206C_200F_206B_200B_202D_200D_200F_200C_206C_202A_206C_200E_206B_206A_200F_202A_200F_202E_206D_206D_202A_200C_206C_200D_200C_200D_202A_202C_202D_206F_206C_202B_206F_200C_202E_202C_202E_202C_206E_202E(RuntimeTypeHandle P_0)
|
||||
{
|
||||
return Type.GetTypeFromHandle(P_0);
|
||||
}
|
||||
|
||||
static void _202A_202A_202C_202E_206B_206A_200C_200E_206E_206A_200D_206C_200E_202D_206E_206E_200F_200E_202C_200E_202D_206F_200D_200D_200D_206E_200D_202D_206F_206E_206A_202A_206E_206C_206E_202C_202B_200C_202E_200C_202E()
|
||||
{
|
||||
RuntimeHelpers.EnsureSufficientExecutionStack();
|
||||
}
|
||||
|
||||
static StringBuilder _202C_206E_200C_200D_202B_206D_206E_206A_200B_206C_202E_206F_202E_200C_206F_200C_206D_202C_206D_206E_206E_206B_202A_202E_206E_202D_200C_202E_202C_206F_200E_202A_206C_202A_206D_206B_202A_206A_200F_200C_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static bool _200C_202D_202D_202D_200F_200C_200E_202E_200C_200E_206E_200E_200B_202E_206A_206A_202D_202D_200C_202E_200C_202D_206F_200E_202E_206D_200E_206A_202B_200F_200C_202A_206E_202B_206A_206A_200E_206A_200E_202B_202E(Type P_0, Type P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
return $"ApproachDeliveryNpc({NpcDataId})";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
using LLib.GameData;
|
||||
|
|
@ -38,622 +36,233 @@ internal sealed class DeliveryPlannerService
|
|||
_logger = logger;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public unsafe DeliveryPlan? CreatePlan(int npcIndex, EDeliverySlot slot)
|
||||
{
|
||||
int num = (_200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E() ? (-1888935827) : (-1888935840));
|
||||
uint rowId = default(uint);
|
||||
SatisfactionSupply subrow = default(SatisfactionSupply);
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier = default(Configuration.CustomDeliveryConfiguration.ECollectabilityTier);
|
||||
int num20 = default(int);
|
||||
int num21 = default(int);
|
||||
int num30 = default(int);
|
||||
SatisfactionSupplyActions.NpcState npcState = default(SatisfactionSupplyActions.NpcState);
|
||||
uint supplyIndex = default(uint);
|
||||
SatisfactionNpc row = default(SatisfactionNpc);
|
||||
uint num28 = default(uint);
|
||||
uint num29 = default(uint);
|
||||
Configuration.AchievementGoal value = default(Configuration.AchievementGoal);
|
||||
int num27 = default(int);
|
||||
int num9 = default(int);
|
||||
int num19 = default(int);
|
||||
VendorResolverService.RecipeInfo? recipe = default(VendorResolverService.RecipeInfo?);
|
||||
List<IngredientPlan> list = default(List<IngredientPlan>);
|
||||
ushort num7 = default(ushort);
|
||||
ushort num18 = default(ushort);
|
||||
ushort levelUnlock = default(ushort);
|
||||
int satisfactionRequired = default(int);
|
||||
int num26 = default(int);
|
||||
VendorResolverService.IngredientInfo current = default(VendorResolverService.IngredientInfo);
|
||||
int num15 = default(int);
|
||||
int count = default(int);
|
||||
int num14 = default(int);
|
||||
VendorResolverService.VendorInfo? vendor = default(VendorResolverService.VendorInfo?);
|
||||
while (true)
|
||||
if (!InventoryHelper.HasFreeInventorySlot())
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1888935819;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
_logger.LogWarning("No free inventory slots, cannot plan custom delivery");
|
||||
return null;
|
||||
}
|
||||
if (!IsNpcUnlocked(npcIndex))
|
||||
{
|
||||
_logger.LogDebug("NPC {NpcIndex} prerequisite quest not complete", npcIndex);
|
||||
return null;
|
||||
}
|
||||
SatisfactionSupplyActions.NpcState npcState = SatisfactionSupplyActions.GetNpcState(npcIndex);
|
||||
int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances();
|
||||
uint supplySeed = SatisfactionSupplyActions.GetSupplySeed();
|
||||
if (npcState.Rank <= 0)
|
||||
{
|
||||
_logger.LogDebug("NPC {NpcIndex} is locked (rank {Rank})", npcIndex, npcState.Rank);
|
||||
return null;
|
||||
}
|
||||
if (remainingAllowances <= 0)
|
||||
{
|
||||
_logger.LogDebug("No remaining weekly allowances");
|
||||
return null;
|
||||
}
|
||||
if (!_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row))
|
||||
{
|
||||
_logger.LogWarning("SatisfactionNpc row not found for index {NpcIndex}", npcIndex);
|
||||
return null;
|
||||
}
|
||||
ushort levelUnlock = row.LevelUnlock;
|
||||
if (!HasJobAtLevel(slot, levelUnlock))
|
||||
{
|
||||
_logger.LogDebug("No job at level {Level} for slot {Slot}, NPC {NpcIndex}", levelUnlock, slot, npcIndex);
|
||||
return null;
|
||||
}
|
||||
uint supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex;
|
||||
uint num = _supplyHelper.CalculateRequestedItems(supplyIndex, supplySeed)[(int)slot];
|
||||
if (num == uint.MaxValue)
|
||||
{
|
||||
_logger.LogDebug("No item predicted for NPC {NpcIndex} slot {Slot}", npcIndex, slot);
|
||||
return null;
|
||||
}
|
||||
if (!_dataManager.GetSubrowExcelSheet<SatisfactionSupply>().TryGetSubrow(supplyIndex, (ushort)num, out var subrow))
|
||||
{
|
||||
_logger.LogWarning("SatisfactionSupply subrow ({SupplyIndex}, {SubrowIndex}) not found", supplyIndex, num);
|
||||
return null;
|
||||
}
|
||||
uint rowId = subrow.Item.RowId;
|
||||
ushort num2 = _configuration.CustomDeliveries.CollectabilityTier switch
|
||||
{
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => subrow.CollectabilityLow,
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => subrow.CollectabilityMid,
|
||||
_ => subrow.CollectabilityHigh,
|
||||
};
|
||||
if (rowId == 0)
|
||||
{
|
||||
_logger.LogWarning("SatisfactionSupply subrow ({SupplyIndex}, {SubrowIndex}) has no item", supplyIndex, num);
|
||||
return null;
|
||||
}
|
||||
int num3 = row.DeliveriesPerWeek - npcState.UsedDeliveries;
|
||||
int num4 = Math.Min(num3, remainingAllowances);
|
||||
if (num4 <= 0)
|
||||
{
|
||||
_logger.LogDebug("No deliveries available for NPC {NpcIndex} (npc remaining: {NpcRemaining}, global remaining: {GlobalRemaining})", npcIndex, num3, remainingAllowances);
|
||||
return null;
|
||||
}
|
||||
int satisfactionRequired = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired;
|
||||
if (satisfactionRequired > 0)
|
||||
{
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier = _configuration.CustomDeliveries.CollectabilityTier;
|
||||
int num5 = _rewardCalculator.CalculateSatisfactionPerDelivery(subrow.Reward.RowId, subrow.IsBonus, collectabilityTier);
|
||||
if (num5 > 0)
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 14:
|
||||
rowId = subrow.Item.RowId;
|
||||
collectabilityTier = _configuration.CustomDeliveries.CollectabilityTier;
|
||||
num = ((collectabilityTier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? (-1888935855) : (-1888935835));
|
||||
continue;
|
||||
case 23:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(-1441943308), new object[3] { npcIndex, num20, num21 });
|
||||
return null;
|
||||
case 1:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-325747451), new object[1] { npcIndex });
|
||||
return null;
|
||||
case 30:
|
||||
{
|
||||
uint rowId2 = subrow.Reward.RowId;
|
||||
bool isBonus = subrow.IsBonus;
|
||||
num30 = _rewardCalculator.MaxDeliveriesBeforeOvercap(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier);
|
||||
num = ((num30 > 0) ? (-1888935826) : (-1888935820));
|
||||
continue;
|
||||
}
|
||||
case 39:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(72727050), new object[1] { npcIndex });
|
||||
return null;
|
||||
case 31:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(350000111), new object[2] { npcIndex, npcState.Rank });
|
||||
return null;
|
||||
case 40:
|
||||
supplyIndex = (uint)row.SatisfactionNpcParams[npcState.Rank].SupplyIndex;
|
||||
num28 = _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(_supplyHelper, supplyIndex, num29)[(int)slot];
|
||||
num = ((num28 != uint.MaxValue) ? (-1888935833) : (-1888935823));
|
||||
continue;
|
||||
case 6:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(1592384275), new object[3] { npcIndex, npcState.UsedDeliveries, value.TargetCount });
|
||||
return null;
|
||||
case 18:
|
||||
num = (_dataManager.GetSubrowExcelSheet<SatisfactionSupply>().TryGetSubrow(supplyIndex, (ushort)num28, out subrow) ? (-1888935813) : (-1888935852));
|
||||
continue;
|
||||
case 29:
|
||||
num = ((num27 >= num9) ? (-1888935844) : (-1888935810));
|
||||
continue;
|
||||
case 13:
|
||||
{
|
||||
ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>();
|
||||
num3 = 1;
|
||||
num4 = npcIndex;
|
||||
int num22 = num4 ^ num3;
|
||||
int num23 = num4 & num3;
|
||||
num = (excelSheet.TryGetRow((uint)(num22 + (num23 + num23)), out row) ? (-1888935842) : (-1888935849));
|
||||
continue;
|
||||
}
|
||||
case 35:
|
||||
num = ((_configuration.CustomDeliveries.ScripOvercapMode == Configuration.CustomDeliveryConfiguration.EScripOvercapMode.Ignore) ? (-1888935856) : (-1888935829));
|
||||
continue;
|
||||
case 2:
|
||||
num19 = (int)value.TargetCount - npcState.UsedDeliveries;
|
||||
num = ((num19 <= 0) ? (-1888935821) : (-1888935836));
|
||||
continue;
|
||||
case 16:
|
||||
num = ((collectabilityTier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? (-1888935824) : (-1888935818));
|
||||
continue;
|
||||
case 37:
|
||||
recipe = null;
|
||||
list = new List<IngredientPlan>();
|
||||
if (slot == EDeliverySlot.Craft)
|
||||
int num6 = (satisfactionRequired - npcState.SatisfactionCurrent + num5 - 1) / num5;
|
||||
if (num6 > 0 && num6 < num4)
|
||||
{
|
||||
num = -1888935831;
|
||||
continue;
|
||||
_logger.LogDebug("Capping deliveries from {Original} to {Capped} to avoid rank-up mid-batch (sat: {Current}/{Required}, per delivery: {PerDelivery})", num4, num6, npcState.SatisfactionCurrent, satisfactionRequired, num5);
|
||||
num4 = num6;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(-349074918), Array.Empty<object>());
|
||||
return null;
|
||||
case 33:
|
||||
_206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_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>(-583199100), new object[2] { supplyIndex, num28 });
|
||||
return null;
|
||||
case 32:
|
||||
num7 = num18;
|
||||
num = ((rowId != 0) ? (-1888935837) : (-1888935811));
|
||||
continue;
|
||||
case 36:
|
||||
num18 = subrow.CollectabilityMid;
|
||||
num = -1888935851;
|
||||
continue;
|
||||
case 19:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(758096436), new object[3] { levelUnlock, slot, npcIndex });
|
||||
return null;
|
||||
case 22:
|
||||
num20 = row.DeliveriesPerWeek - npcState.UsedDeliveries;
|
||||
num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num20, num21);
|
||||
num = ((num9 > 0) ? (-1888935822) : (-1888935838));
|
||||
continue;
|
||||
case 17:
|
||||
num9 = _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(num9, num19);
|
||||
num = -1888935850;
|
||||
continue;
|
||||
case 27:
|
||||
num = ((num30 >= num9) ? (-1888935856) : (-1888935812));
|
||||
continue;
|
||||
case 9:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(-252217524), new object[3] { num9, num30, npcIndex });
|
||||
num9 = num30;
|
||||
num = -1888935856;
|
||||
continue;
|
||||
case 43:
|
||||
levelUnlock = row.LevelUnlock;
|
||||
num = (HasJobAtLevel(slot, levelUnlock) ? (-1888935843) : (-1888935834));
|
||||
continue;
|
||||
case 8:
|
||||
_206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1074922241), new object[2] { supplyIndex, num28 });
|
||||
return null;
|
||||
case 12:
|
||||
npcState = _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(npcIndex);
|
||||
num21 = _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E();
|
||||
num29 = _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E();
|
||||
num = ((npcState.Rank > 0) ? (-1888935853) : (-1888935830));
|
||||
continue;
|
||||
case 10:
|
||||
num = -1888935840;
|
||||
continue;
|
||||
case 38:
|
||||
num = ((num21 > 0) ? (-1888935816) : (-1888935814));
|
||||
continue;
|
||||
case 11:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(1847422502), new object[5] { num9, num27, npcState.SatisfactionCurrent, satisfactionRequired, num26 });
|
||||
num9 = num27;
|
||||
num = -1888935844;
|
||||
continue;
|
||||
case 0:
|
||||
num27 = (satisfactionRequired - npcState.SatisfactionCurrent + num26 - 1) / num26;
|
||||
num = ((num27 <= 0) ? (-1888935844) : (-1888935832));
|
||||
continue;
|
||||
case 34:
|
||||
_206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1005271434), new object[1] { npcIndex });
|
||||
return null;
|
||||
case 28:
|
||||
recipe = _vendorResolver.ResolveRecipe(rowId);
|
||||
num = (recipe.HasValue ? (-1888935828) : (-1888935825));
|
||||
continue;
|
||||
case 24:
|
||||
num = (IsNpcUnlocked(npcIndex) ? (-1888935815) : (-1888935854));
|
||||
continue;
|
||||
case 42:
|
||||
{
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier collectabilityTier2 = _configuration.CustomDeliveries.CollectabilityTier;
|
||||
num26 = _rewardCalculator.CalculateSatisfactionPerDelivery(subrow.Reward.RowId, subrow.IsBonus, collectabilityTier2);
|
||||
num = ((num26 <= 0) ? (-1888935844) : (-1888935819));
|
||||
continue;
|
||||
}
|
||||
case 21:
|
||||
_206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(929546920), Array.Empty<object>());
|
||||
return null;
|
||||
case 41:
|
||||
}
|
||||
ushort key = (ushort)(npcIndex + 1);
|
||||
if (_configuration.CustomDeliveries.AchievementGoals.TryGetValue(key, out Configuration.AchievementGoal value) && value.Active)
|
||||
{
|
||||
int num7 = (int)value.TargetCount - npcState.UsedDeliveries;
|
||||
if (num7 <= 0)
|
||||
{
|
||||
num3 = 1;
|
||||
num4 = npcIndex;
|
||||
int num24 = num4 ^ num3;
|
||||
int num25 = num4 & num3;
|
||||
ushort key = (ushort)(num24 + (num25 + num25));
|
||||
num = ((!_configuration.CustomDeliveries.AchievementGoals.TryGetValue(key, out value)) ? (-1888935850) : (-1888935839));
|
||||
continue;
|
||||
_logger.LogDebug("Achievement goal already met for NPC {NpcIndex} (used: {Used}, target: {Target})", npcIndex, npcState.UsedDeliveries, value.TargetCount);
|
||||
return null;
|
||||
}
|
||||
case 7:
|
||||
satisfactionRequired = row.SatisfactionNpcParams[npcState.Rank].SatisfactionRequired;
|
||||
num = ((satisfactionRequired <= 0) ? (-1888935844) : (-1888935841));
|
||||
continue;
|
||||
case 26:
|
||||
_202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_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>(-375018658), new object[1] { rowId });
|
||||
return null;
|
||||
case 20:
|
||||
num = ((!value.Active) ? (-1888935850) : (-1888935817));
|
||||
continue;
|
||||
case 3:
|
||||
num18 = subrow.CollectabilityLow;
|
||||
num = -1888935851;
|
||||
continue;
|
||||
case 5:
|
||||
num18 = subrow.CollectabilityHigh;
|
||||
num = -1888935851;
|
||||
continue;
|
||||
case 4:
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(1585031772), new object[2] { npcIndex, slot });
|
||||
return null;
|
||||
case 25:
|
||||
num4 = Math.Min(num4, num7);
|
||||
}
|
||||
if (_configuration.CustomDeliveries.ScripOvercapMode != Configuration.CustomDeliveryConfiguration.EScripOvercapMode.Ignore)
|
||||
{
|
||||
uint rowId2 = subrow.Reward.RowId;
|
||||
bool isBonus = subrow.IsBonus;
|
||||
int num8 = _rewardCalculator.MaxDeliveriesBeforeOvercap(rowId2, isBonus, _configuration.CustomDeliveries.CollectabilityTier);
|
||||
if (num8 <= 0)
|
||||
{
|
||||
int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(rowId, isHq: false, checkEquipped: true, checkArmory: true, (short)num7);
|
||||
int num8 = num9;
|
||||
num3 = inventoryItemCount;
|
||||
_logger.LogDebug("Scrip overcap: blocking delivery for NPC {NpcIndex}", npcIndex);
|
||||
return null;
|
||||
}
|
||||
if (num8 < num4)
|
||||
{
|
||||
_logger.LogDebug("Scrip overcap: capping delivery count from {Original} to {Capped} for NPC {NpcIndex}", num4, num8, npcIndex);
|
||||
num4 = num8;
|
||||
int num10 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3));
|
||||
IEnumerator<VendorResolverService.IngredientInfo> enumerator = recipe.Value.Ingredients.GetEnumerator();
|
||||
try
|
||||
{
|
||||
num = -2147286294;
|
||||
while (true)
|
||||
{
|
||||
int num11 = num;
|
||||
num3 = -2147286291;
|
||||
num4 = num11;
|
||||
int num12 = num4 + num3;
|
||||
int num13 = num4 & num3;
|
||||
switch (num12 - (num13 + num13))
|
||||
{
|
||||
case 2:
|
||||
num = -2147286294;
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
current = enumerator.Current;
|
||||
num15 = num10 * current.CountPerCraft;
|
||||
count = ((ItemHandle)current.ItemId).GetCount();
|
||||
int num16 = num15;
|
||||
num3 = count;
|
||||
num4 = num16;
|
||||
num14 = _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(0, ~(~num4 + num3));
|
||||
vendor = null;
|
||||
num = ((num14 <= 0) ? (-2147286293) : (-2147286291));
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
num = (vendor.HasValue ? (-2147286296) : (-2147286299));
|
||||
break;
|
||||
case 6:
|
||||
num = ((num14 <= 0) ? (-2147286296) : (-2147286290));
|
||||
break;
|
||||
case 7:
|
||||
num = (_202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E((IEnumerator)enumerator) ? (-2147286292) : (-2147286295));
|
||||
break;
|
||||
case 5:
|
||||
list.Add(new IngredientPlan
|
||||
{
|
||||
ItemId = current.ItemId,
|
||||
TotalNeeded = num15,
|
||||
InInventory = count,
|
||||
ToBuy = num14,
|
||||
Vendor = vendor
|
||||
});
|
||||
num = -2147286294;
|
||||
break;
|
||||
case 0:
|
||||
vendor = _vendorResolver.ResolveVendor(current.ItemId);
|
||||
num = -2147286293;
|
||||
break;
|
||||
case 8:
|
||||
_206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E((ILogger)_logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1168604579), new object[3] { rowId, num14, current.ItemId });
|
||||
return null;
|
||||
case 4:
|
||||
goto end_IL_097f;
|
||||
}
|
||||
continue;
|
||||
end_IL_097f:
|
||||
break;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
num = ((enumerator == null) ? 903605072 : 903605073);
|
||||
while (true)
|
||||
{
|
||||
int num17 = num;
|
||||
num3 = 903605072;
|
||||
num4 = num17;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = 903605073;
|
||||
break;
|
||||
case 1:
|
||||
_206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E((IDisposable)enumerator);
|
||||
num = 903605072;
|
||||
break;
|
||||
case 0:
|
||||
goto end_IL_0b81;
|
||||
}
|
||||
continue;
|
||||
end_IL_0b81:
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
VendorResolverService.RecipeInfo? recipe = null;
|
||||
List<IngredientPlan> list = new List<IngredientPlan>();
|
||||
if (slot == EDeliverySlot.Craft)
|
||||
{
|
||||
recipe = _vendorResolver.ResolveRecipe(rowId);
|
||||
if (!recipe.HasValue)
|
||||
{
|
||||
_logger.LogError("Cannot resolve recipe for craft item {ItemId}", rowId);
|
||||
return null;
|
||||
}
|
||||
int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(rowId, isHq: false, checkEquipped: true, checkArmory: true, (short)num2);
|
||||
int num9 = Math.Max(0, num4 - inventoryItemCount);
|
||||
foreach (VendorResolverService.IngredientInfo ingredient in recipe.Value.Ingredients)
|
||||
{
|
||||
int num10 = num9 * ingredient.CountPerCraft;
|
||||
int count = ((ItemHandle)ingredient.ItemId).GetCount();
|
||||
int num11 = Math.Max(0, num10 - count);
|
||||
VendorResolverService.VendorInfo? vendor = null;
|
||||
if (num11 > 0)
|
||||
{
|
||||
vendor = _vendorResolver.ResolveVendor(ingredient.ItemId);
|
||||
}
|
||||
if (num11 > 0 && !vendor.HasValue)
|
||||
{
|
||||
_logger.LogWarning("Cannot plan craft delivery for item {ItemId}: missing {ToBuy}x ingredient {IngredientId} with no gil vendor", rowId, num11, ingredient.ItemId);
|
||||
return null;
|
||||
}
|
||||
list.Add(new IngredientPlan
|
||||
{
|
||||
ItemId = ingredient.ItemId,
|
||||
TotalNeeded = num10,
|
||||
InInventory = count,
|
||||
ToBuy = num11,
|
||||
Vendor = vendor
|
||||
});
|
||||
}
|
||||
break;
|
||||
}
|
||||
DeliveryPlan result = new DeliveryPlan
|
||||
{
|
||||
NpcIndex = npcIndex,
|
||||
Slot = slot,
|
||||
ItemId = rowId,
|
||||
Collectability = num7,
|
||||
DeliveryCount = num9,
|
||||
Collectability = num2,
|
||||
DeliveryCount = num4,
|
||||
Recipe = recipe,
|
||||
IngredientPlans = list
|
||||
};
|
||||
int num31 = 0;
|
||||
using (List<IngredientPlan>.Enumerator enumerator2 = list.GetEnumerator())
|
||||
int num12 = 0;
|
||||
foreach (IngredientPlan item in list)
|
||||
{
|
||||
num = -832133554;
|
||||
while (true)
|
||||
{
|
||||
int num32 = num;
|
||||
int num3 = -832133554;
|
||||
int num4 = num32;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = (enumerator2.MoveNext() ? (-832133553) : (-832133555));
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
IngredientPlan current2 = enumerator2.Current;
|
||||
num31 += current2.ToBuy;
|
||||
num = -832133554;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
num = -832133554;
|
||||
break;
|
||||
case 3:
|
||||
goto end_IL_0c22;
|
||||
}
|
||||
continue;
|
||||
end_IL_0c22:
|
||||
break;
|
||||
}
|
||||
num12 += item.ToBuy;
|
||||
}
|
||||
_206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_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>(-251047374), new object[5] { npcIndex, slot, rowId, num9, num31 });
|
||||
_logger.LogDebug("Delivery plan: NPC {NpcIndex} slot {Slot}, item {ItemId} x{Count}, ingredients to buy: {ToBuy}", npcIndex, slot, rowId, num4, num12);
|
||||
return result;
|
||||
}
|
||||
|
||||
public bool IsNpcUnlocked(int npcIndex)
|
||||
{
|
||||
ExcelSheet<SatisfactionNpc> excelSheet = _dataManager.GetExcelSheet<SatisfactionNpc>();
|
||||
int num = 1;
|
||||
int num2 = npcIndex;
|
||||
int num3 = num2 ^ num;
|
||||
int num4 = num2 & num;
|
||||
SatisfactionNpc row;
|
||||
int num5 = (excelSheet.TryGetRow((uint)(num3 + (num4 + num4)), out row) ? (-1323628219) : (-1323628220));
|
||||
uint rowId = default(uint);
|
||||
while (true)
|
||||
if (!_dataManager.GetExcelSheet<SatisfactionNpc>().TryGetRow((uint)(npcIndex + 1), out var row))
|
||||
{
|
||||
int num6 = num5;
|
||||
num = -1323628219;
|
||||
num2 = num6;
|
||||
int num7 = num2 + num;
|
||||
int num8 = num2 & num;
|
||||
switch (num7 - (num8 + num8))
|
||||
{
|
||||
case 3:
|
||||
num5 = -1323628220;
|
||||
break;
|
||||
case 2:
|
||||
return true;
|
||||
case 0:
|
||||
rowId = row.QuestRequired.RowId;
|
||||
num5 = ((rowId != 0) ? (-1323628223) : (-1323628217));
|
||||
break;
|
||||
case 1:
|
||||
return false;
|
||||
case 4:
|
||||
return QuestManager.IsQuestComplete((ushort)rowId);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
uint rowId = row.QuestRequired.RowId;
|
||||
if (rowId == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return QuestManager.IsQuestComplete((ushort)rowId);
|
||||
}
|
||||
|
||||
private bool HasJobAtLevel(EDeliverySlot slot, ushort requiredLevel)
|
||||
{
|
||||
ExcelSheet<ClassJob> excelSheet = _dataManager.GetExcelSheet<ClassJob>();
|
||||
int num;
|
||||
EClassJob[] array = default(EClassJob[]);
|
||||
int num8 = default(int);
|
||||
ClassJob row = default(ClassJob);
|
||||
EClassJob[] array2;
|
||||
switch (slot)
|
||||
EClassJob[] array = slot switch
|
||||
{
|
||||
default:
|
||||
num = 208972121;
|
||||
goto IL_0034;
|
||||
case EDeliverySlot.Fish:
|
||||
array = new EClassJob[1] { EClassJob.Fisher };
|
||||
num = 208972119;
|
||||
goto IL_0034;
|
||||
case EDeliverySlot.Gather:
|
||||
goto IL_00fb;
|
||||
case EDeliverySlot.Craft:
|
||||
goto IL_0192;
|
||||
IL_0034:
|
||||
while (true)
|
||||
EDeliverySlot.Craft => new EClassJob[8]
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 208972117;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 4:
|
||||
goto IL_008a;
|
||||
case 12:
|
||||
num = 208972112;
|
||||
break;
|
||||
case 10:
|
||||
goto IL_00c2;
|
||||
case 7:
|
||||
goto end_IL_0034;
|
||||
case 6:
|
||||
goto IL_00fb;
|
||||
case 2:
|
||||
array = array;
|
||||
num8 = 0;
|
||||
num = 208972127;
|
||||
break;
|
||||
case 3:
|
||||
num = 208972121;
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
int num7 = num8;
|
||||
num3 = 1;
|
||||
num4 = num7;
|
||||
num8 = (num4 | num3) + (num4 & num3);
|
||||
num = 208972127;
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
return false;
|
||||
case 8:
|
||||
return true;
|
||||
case 5:
|
||||
array = Array.Empty<EClassJob>();
|
||||
num = 208972119;
|
||||
break;
|
||||
case 0:
|
||||
goto IL_0168;
|
||||
case 9:
|
||||
goto IL_0192;
|
||||
}
|
||||
continue;
|
||||
IL_0168:
|
||||
num = ((_202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E((int)row.ExpArrayIndex) < requiredLevel) ? 208972116 : 208972125);
|
||||
continue;
|
||||
IL_00c2:
|
||||
num = ((num8 < array.Length) ? 208972113 : 208972126);
|
||||
continue;
|
||||
IL_008a:
|
||||
EClassJob rowId = array[num8];
|
||||
num = ((!excelSheet.TryGetRow((uint)rowId, out row)) ? 208972116 : 208972117);
|
||||
continue;
|
||||
end_IL_0034:
|
||||
break;
|
||||
}
|
||||
goto case EDeliverySlot.Fish;
|
||||
IL_0192:
|
||||
array2 = new EClassJob[8];
|
||||
_202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E((Array)array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
|
||||
array = array2;
|
||||
num = 208972119;
|
||||
goto IL_0034;
|
||||
IL_00fb:
|
||||
array = new EClassJob[2]
|
||||
EClassJob.Carpenter,
|
||||
EClassJob.Blacksmith,
|
||||
EClassJob.Armorer,
|
||||
EClassJob.Goldsmith,
|
||||
EClassJob.Leatherworker,
|
||||
EClassJob.Weaver,
|
||||
EClassJob.Alchemist,
|
||||
EClassJob.Culinarian
|
||||
},
|
||||
EDeliverySlot.Gather => new EClassJob[2]
|
||||
{
|
||||
EClassJob.Miner,
|
||||
EClassJob.Botanist
|
||||
};
|
||||
num = 208972119;
|
||||
goto IL_0034;
|
||||
},
|
||||
EDeliverySlot.Fish => new EClassJob[1] { EClassJob.Fisher },
|
||||
_ => Array.Empty<EClassJob>(),
|
||||
};
|
||||
foreach (EClassJob rowId in array)
|
||||
{
|
||||
if (excelSheet.TryGetRow((uint)rowId, out var row) && PlayerStateHelper.GetClassJobLevel(row.ExpArrayIndex) >= requiredLevel)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public EDeliverySlot? AutoSelectSlot(int npcIndex, ArtisanIpc artisanIpc, AutoHookIpc autoHookIpc)
|
||||
{
|
||||
int num = ((!artisanIpc.IsAvailable()) ? 1675924989 : 1675924988);
|
||||
while (true)
|
||||
if (artisanIpc.IsAvailable() && CreatePlan(npcIndex, EDeliverySlot.Craft) != null)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1675924986;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = ((!autoHookIpc.IsAvailable()) ? 1675924990 : 1675924985);
|
||||
break;
|
||||
case 4:
|
||||
return null;
|
||||
case 1:
|
||||
return EDeliverySlot.Gather;
|
||||
case 2:
|
||||
num = 1675924988;
|
||||
break;
|
||||
case 8:
|
||||
return EDeliverySlot.Fish;
|
||||
case 3:
|
||||
num = ((CreatePlan(npcIndex, EDeliverySlot.Fish) == null) ? 1675924990 : 1675924978);
|
||||
break;
|
||||
case 7:
|
||||
num = ((CreatePlan(npcIndex, EDeliverySlot.Gather) == null) ? 1675924986 : 1675924987);
|
||||
break;
|
||||
case 5:
|
||||
return EDeliverySlot.Craft;
|
||||
case 6:
|
||||
num = ((CreatePlan(npcIndex, EDeliverySlot.Craft) == null) ? 1675924989 : 1675924991);
|
||||
break;
|
||||
}
|
||||
return EDeliverySlot.Craft;
|
||||
}
|
||||
}
|
||||
|
||||
static bool _200D_206E_202C_202A_202A_202E_202E_206C_200D_200C_200E_200C_206B_206C_200D_200B_206B_206D_206C_202E_202A_206C_206E_200D_200B_206C_200D_200F_206B_202A_202C_202D_206A_206B_206F_200B_200F_202E_200F_200D_202E()
|
||||
{
|
||||
return InventoryHelper.HasFreeInventorySlot();
|
||||
}
|
||||
|
||||
static void _206C_206F_206E_206A_206F_200F_202B_206D_206E_200D_202E_202D_206D_200B_200F_202B_202D_200F_200D_206C_202A_200C_200E_200E_206C_200D_206B_200F_206D_200E_202A_206C_200D_200B_202B_200B_202A_202C_202C_200F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206A_200F_202C_202B_200B_202B_202C_202B_200F_206E_206F_206A_200C_200F_200E_200C_202A_200B_200F_206C_200E_206D_200E_206F_206E_202B_206D_200D_202E_202A_200B_202B_200C_206E_200C_202A_202E_200D_202C_202A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static SatisfactionSupplyActions.NpcState _200F_206F_206A_200F_202C_206F_206E_200E_202B_200C_200B_200D_200B_202C_206D_202B_206E_200B_202C_202D_202D_200D_206D_202E_200B_206E_202A_202D_202A_206E_202D_200B_202E_202E_202A_200B_202B_202D_202E_206C_202E(int P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.GetNpcState(P_0);
|
||||
}
|
||||
|
||||
static int _206F_206A_202D_202B_200F_206F_202E_206D_206F_200D_202D_206C_206C_206D_202C_206C_202B_202E_206D_202B_200D_202B_200D_200E_202E_206D_206B_206D_200E_202A_202A_206A_200C_202A_206F_202B_206C_206D_200E_200D_202E()
|
||||
{
|
||||
return SatisfactionSupplyActions.GetRemainingAllowances();
|
||||
}
|
||||
|
||||
static uint _200C_206C_200F_202B_206A_206F_200B_206C_202A_206F_206F_206C_206B_202B_200F_202A_206D_206A_200D_206E_202A_206A_206D_206C_206D_202C_206F_200D_202E_200D_200E_202D_200E_206F_202C_206E_202C_202E_202A_206F_202E()
|
||||
{
|
||||
return SatisfactionSupplyActions.GetSupplySeed();
|
||||
}
|
||||
|
||||
static uint[] _202C_206E_206A_202A_206E_206D_206D_206C_200E_200C_206B_200C_202B_202E_200C_200B_206A_200D_202A_202D_202D_206D_206E_206A_206D_206F_200C_206C_206B_206B_202B_202E_206D_206A_206E_202A_202C_206F_200B_200E_202E(SatisfactionSupplyHelper P_0, uint P_1, uint P_2)
|
||||
{
|
||||
return P_0.CalculateRequestedItems(P_1, P_2);
|
||||
}
|
||||
|
||||
static int _202E_200E_200B_202D_200C_200D_206B_202B_206F_202D_206F_200D_200E_200C_206B_202C_206A_202A_200F_206A_202A_200B_200B_202E_206F_202A_200C_200D_200D_200D_200D_206B_202E_202A_200B_206A_200C_206D_206D_200F_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Min(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _202E_202D_202C_206E_202C_206A_206E_202D_202E_202D_206C_200B_200E_202E_206C_200B_206A_202E_206B_206D_206B_200E_200B_200E_206B_206D_202A_206F_200C_202D_206E_206D_206C_206A_206B_200F_202E_200E_202B_200E_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static int _200C_206C_200D_202C_202B_202C_206A_206E_200E_200E_202D_202A_202C_206D_206B_206D_206D_200B_202B_206A_206D_202D_206D_200C_206C_200D_200E_200D_200C_202C_206D_206F_206B_206D_202A_200C_202B_200B_200C_206A_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Max(P_0, P_1);
|
||||
}
|
||||
|
||||
static bool _202D_202B_206D_202B_202E_200E_200E_206F_202C_200E_200F_200E_200D_206B_202A_202C_206B_202E_202D_200F_200E_206C_200D_200D_202E_206C_202A_206A_200E_200D_202E_200E_206A_202E_206D_206D_206B_206B_202C_202B_202E(IEnumerator P_0)
|
||||
{
|
||||
return P_0.MoveNext();
|
||||
}
|
||||
|
||||
static void _206B_202C_200B_202D_202C_206A_202A_202E_200B_202D_200E_202B_202A_200D_206A_206E_202D_202A_202A_206D_200E_206D_202A_206B_206C_206A_200F_200E_206B_202E_200D_200E_206D_200D_206C_202E_202E_202D_206D_200C_202E(IDisposable P_0)
|
||||
{
|
||||
P_0.Dispose();
|
||||
}
|
||||
|
||||
static void _202A_200D_202C_202B_202D_202B_202B_202C_200F_202A_206F_200B_200D_202E_206E_202A_200B_200B_202D_206E_206B_202C_206C_200D_202A_206A_206F_200B_202E_202E_200E_200B_206A_200C_206F_206D_202B_202B_206C_206C_202E(Array P_0, RuntimeFieldHandle P_1)
|
||||
{
|
||||
RuntimeHelpers.InitializeArray(P_0, P_1);
|
||||
}
|
||||
|
||||
static short _202D_206B_206F_200C_200E_200F_202A_206D_202D_202D_202C_202D_206F_206F_202D_202E_202A_206B_202A_202D_206E_202D_200D_200D_202D_202A_200C_200B_200E_202E_200D_206A_206D_202B_206F_202D_200B_200E_206F_202A_202E(int P_0)
|
||||
{
|
||||
return PlayerStateHelper.GetClassJobLevel(P_0);
|
||||
if (CreatePlan(npcIndex, EDeliverySlot.Gather) != null)
|
||||
{
|
||||
return EDeliverySlot.Gather;
|
||||
}
|
||||
if (autoHookIpc.IsAvailable() && CreatePlan(npcIndex, EDeliverySlot.Fish) != null)
|
||||
{
|
||||
return EDeliverySlot.Fish;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,118 +1,14 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Dalamud.Plugin.Services;
|
||||
using LLib.Inventory;
|
||||
using Lumina.Excel;
|
||||
using Lumina.Excel.Sheets;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed class DeliveryRewardCalculator(IDataManager dataManager)
|
||||
{
|
||||
internal record struct CurrencyReward(uint CurrencyItemId, string CurrencyName, int AmountPerDelivery)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override readonly string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _206A_200C_202B_206F_202E_202C_202C_200D_200D_206E_200C_206C_202C_200F_206F_206E_202C_200D_200C_202E_206A_206A_206C_202A_206C_206A_200E_200D_202E_200B_206A_202D_202A_206A_206B_206F_206C_200B_206B_202B_202E();
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_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>(175214569));
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? 851670769 : 851670770);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 851670771;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 851670770;
|
||||
break;
|
||||
case 2:
|
||||
_206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(stringBuilder, '}');
|
||||
return _200C_200D_200C_200E_206A_202A_206A_202A_202B_200B_200D_200E_200C_200F_200B_200D_206B_206D_200F_200D_206B_206B_206C_202E_206F_202E_200E_200C_200E_206F_200B_206B_202A_206A_206D_206C_200C_206C_206A_206E_202E((object)stringBuilder);
|
||||
case 1:
|
||||
_206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(stringBuilder, ' ');
|
||||
num = 851670769;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private readonly bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(557355409));
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, CurrencyItemId.ToString());
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_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>(-1370044589));
|
||||
_200B_206F_200D_202B_202B_200C_206C_206F_202B_202C_206D_200F_206F_200D_206D_206C_200F_206B_206A_206A_200F_202E_206B_202B_206B_200D_206E_202B_206A_200E_206F_202E_206B_206C_202B_200F_200F_202D_200E_206C_202E(builder, (object)CurrencyName);
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_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>(1289637212));
|
||||
_200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(builder, AmountPerDelivery.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public readonly bool Equals(CurrencyReward other)
|
||||
{
|
||||
int num = ((!EqualityComparer<uint>.Default.Equals(CurrencyItemId, other.CurrencyItemId)) ? (-1286878871) : (-1286878870));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1286878869;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
return false;
|
||||
case 1:
|
||||
num = ((!EqualityComparer<string>.Default.Equals(CurrencyName, other.CurrencyName)) ? (-1286878871) : (-1286878869));
|
||||
break;
|
||||
case 0:
|
||||
return EqualityComparer<int>.Default.Equals(AmountPerDelivery, other.AmountPerDelivery);
|
||||
case 3:
|
||||
num = -1286878870;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<CurrencyReward>.Equals(CurrencyReward other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder _206A_200C_202B_206F_202E_202C_202C_200D_200D_206E_200C_206C_202C_200F_206F_206E_202C_200D_200C_202E_206A_206A_206C_202A_206C_206A_200E_200D_202E_200B_206A_202D_202A_206A_206B_206F_206C_200B_206B_202B_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _200C_200E_206E_206A_206D_202A_206B_202A_206A_202D_206F_200F_202E_200B_200B_206E_200F_202C_206E_206F_200D_200B_206E_202C_200B_202A_200B_200F_202A_200F_206E_200C_206B_200F_202A_200F_200E_206A_202C_202B_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _206E_200E_200B_200B_200F_206E_202C_206A_200B_200B_206C_206C_202C_200E_206A_202A_206D_202E_202C_206C_200F_206B_202C_206A_206C_202B_200B_200E_202B_200B_200E_202C_202B_206F_202E_200D_202D_202C_206B_206D_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _200C_200D_200C_200E_206A_202A_206A_202A_202B_200B_200D_200E_200C_200F_200B_200D_206B_206D_200F_200D_206B_206B_206C_202E_206F_202E_200E_200C_200E_206F_200B_206B_202A_206A_206D_206C_200C_206C_206A_206E_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static StringBuilder _200B_206F_200D_202B_202B_200C_206C_206F_202B_202C_206D_200F_206F_200D_206D_206C_200F_206B_206A_206A_200F_202E_206B_202B_206B_200D_206E_202B_206A_200E_206F_202E_206B_206C_202B_200F_200F_202D_200E_206C_202E(StringBuilder P_0, object P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
}
|
||||
internal record struct CurrencyReward(uint CurrencyItemId, string CurrencyName, int AmountPerDelivery);
|
||||
|
||||
private static readonly Dictionary<uint, int> ScripCaps = new Dictionary<uint, int>
|
||||
{
|
||||
|
|
@ -123,289 +19,87 @@ internal sealed class DeliveryRewardCalculator(IDataManager dataManager)
|
|||
internal List<CurrencyReward> CalculateRewards(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High)
|
||||
{
|
||||
List<CurrencyReward> list = new List<CurrencyReward>();
|
||||
int num = (dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row) ? 1083172624 : 1083172627);
|
||||
uint rewardCurrency = default(uint);
|
||||
int num8 = default(int);
|
||||
ushort num9 = default(ushort);
|
||||
SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct current = default(SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct);
|
||||
while (true)
|
||||
if (!dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1083172625;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_006c;
|
||||
case 2:
|
||||
return list;
|
||||
case 1:
|
||||
{
|
||||
using Collection<SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct>.Enumerator enumerator = row.SatisfactionSupplyRewardData.GetEnumerator();
|
||||
num = 328961127;
|
||||
while (true)
|
||||
{
|
||||
int num5 = num;
|
||||
num3 = 328961135;
|
||||
num4 = num5;
|
||||
int num6 = num4 + num3;
|
||||
int num7 = num4 & num3;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 6:
|
||||
{
|
||||
string currencyName = GetCurrencyName(rewardCurrency);
|
||||
list.Add(new CurrencyReward(rewardCurrency, currencyName, num8));
|
||||
num = 328961127;
|
||||
break;
|
||||
}
|
||||
case 9:
|
||||
num = ((tier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? 328961125 : 328961132);
|
||||
break;
|
||||
case 4:
|
||||
num = ((tier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? 328961128 : 328961126);
|
||||
break;
|
||||
case 1:
|
||||
num8 = num9;
|
||||
num = ((!hasBonus) ? 328961129 : 328961135);
|
||||
break;
|
||||
case 11:
|
||||
num = 328961127;
|
||||
break;
|
||||
case 10:
|
||||
num9 = current.QuantityHigh;
|
||||
num = 328961134;
|
||||
break;
|
||||
case 3:
|
||||
num9 = current.QuantityLow;
|
||||
num = 328961134;
|
||||
break;
|
||||
case 8:
|
||||
num = (enumerator.MoveNext() ? 328961130 : 328961133);
|
||||
break;
|
||||
case 5:
|
||||
current = enumerator.Current;
|
||||
rewardCurrency = current.RewardCurrency;
|
||||
num = ((rewardCurrency == 0) ? 328961127 : 328961131);
|
||||
break;
|
||||
case 7:
|
||||
num9 = current.QuantityMid;
|
||||
num = 328961134;
|
||||
break;
|
||||
case 0:
|
||||
num8 = num8 * row.BonusMultiplier / 100;
|
||||
num = 328961129;
|
||||
break;
|
||||
case 2:
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_006c:
|
||||
num = 1083172627;
|
||||
return list;
|
||||
}
|
||||
foreach (SatisfactionSupplyReward.SatisfactionSupplyRewardDataStruct satisfactionSupplyRewardDatum in row.SatisfactionSupplyRewardData)
|
||||
{
|
||||
uint rewardCurrency = satisfactionSupplyRewardDatum.RewardCurrency;
|
||||
if (rewardCurrency != 0)
|
||||
{
|
||||
int num = tier switch
|
||||
{
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => satisfactionSupplyRewardDatum.QuantityLow,
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => satisfactionSupplyRewardDatum.QuantityMid,
|
||||
_ => satisfactionSupplyRewardDatum.QuantityHigh,
|
||||
};
|
||||
if (hasBonus)
|
||||
{
|
||||
num = num * row.BonusMultiplier / 100;
|
||||
}
|
||||
string currencyName = GetCurrencyName(rewardCurrency);
|
||||
list.Add(new CurrencyReward(rewardCurrency, currencyName, num));
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
internal static bool WouldOvercap(uint currencyItemId, int amountPerDelivery, int deliveryCount)
|
||||
{
|
||||
int value;
|
||||
int num = (ScripCaps.TryGetValue(currencyItemId, out value) ? (-1863089792) : (-1863089789));
|
||||
while (true)
|
||||
if (!ScripCaps.TryGetValue(currencyItemId, out var value))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1863089790;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004d;
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
return _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(currencyItemId, false, false) + amountPerDelivery * deliveryCount > value;
|
||||
}
|
||||
continue;
|
||||
IL_004d:
|
||||
num = -1863089789;
|
||||
return false;
|
||||
}
|
||||
return InventoryHelper.GetItemCount(currencyItemId) + amountPerDelivery * deliveryCount > value;
|
||||
}
|
||||
|
||||
internal int MaxDeliveriesBeforeOvercap(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High)
|
||||
{
|
||||
List<CurrencyReward> list = CalculateRewards(rewardRowId, hasBonus, tier);
|
||||
int num = int.MaxValue;
|
||||
int num2;
|
||||
using (List<CurrencyReward>.Enumerator enumerator = list.GetEnumerator())
|
||||
foreach (CurrencyReward item in list)
|
||||
{
|
||||
num2 = -1256353988;
|
||||
int num10 = default(int);
|
||||
CurrencyReward current = default(CurrencyReward);
|
||||
int value = default(int);
|
||||
while (true)
|
||||
if (ScripCaps.TryGetValue(item.CurrencyItemId, out var value) && item.AmountPerDelivery > 0)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = -1256353985;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
int num12;
|
||||
int num11;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
case 4:
|
||||
num12 = num10 / current.AmountPerDelivery;
|
||||
goto IL_006d;
|
||||
case 1:
|
||||
current = enumerator.Current;
|
||||
num2 = ((!ScripCaps.TryGetValue(current.CurrencyItemId, out value)) ? (-1256353988) : (-1256353985));
|
||||
break;
|
||||
case 2:
|
||||
num2 = -1256353988;
|
||||
break;
|
||||
case 5:
|
||||
num12 = 0;
|
||||
goto IL_006d;
|
||||
case 3:
|
||||
num2 = (enumerator.MoveNext() ? (-1256353986) : (-1256353992));
|
||||
break;
|
||||
case 0:
|
||||
num2 = ((current.AmountPerDelivery <= 0) ? (-1256353988) : (-1256353991));
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
int num8 = _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(current.CurrencyItemId, false, false);
|
||||
int num9 = value;
|
||||
num4 = num8;
|
||||
num5 = num9;
|
||||
num10 = ~(~num5 + num4);
|
||||
num2 = ((num10 > 0) ? (-1256353989) : (-1256353990));
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
goto end_IL_0021;
|
||||
IL_006d:
|
||||
num11 = num12;
|
||||
num = _200E_202E_200C_200F_206B_206C_200E_200B_202A_206A_200D_200D_200D_202A_200D_200C_206B_202A_200B_206C_206C_202A_200E_200F_206E_206E_200D_206B_206B_206F_202E_206C_200B_202B_206B_206A_202B_200E_206A_200D_202E(num, num11);
|
||||
num2 = -1256353988;
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
end_IL_0021:
|
||||
break;
|
||||
int itemCount = InventoryHelper.GetItemCount(item.CurrencyItemId);
|
||||
int num2 = value - itemCount;
|
||||
int val = ((num2 > 0) ? (num2 / item.AmountPerDelivery) : 0);
|
||||
num = Math.Min(num, val);
|
||||
}
|
||||
}
|
||||
num2 = ((num == int.MaxValue) ? 1414795502 : 1414795503);
|
||||
while (true)
|
||||
if (num != int.MaxValue)
|
||||
{
|
||||
int num13 = num2;
|
||||
int num4 = 1414795502;
|
||||
int num5 = num13;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
{
|
||||
case 2:
|
||||
goto IL_01c5;
|
||||
case 1:
|
||||
return num;
|
||||
case 0:
|
||||
return int.MaxValue;
|
||||
}
|
||||
continue;
|
||||
IL_01c5:
|
||||
num2 = 1414795503;
|
||||
return num;
|
||||
}
|
||||
return int.MaxValue;
|
||||
}
|
||||
|
||||
internal int CalculateSatisfactionPerDelivery(uint rewardRowId, bool hasBonus, Configuration.CustomDeliveryConfiguration.ECollectabilityTier tier = Configuration.CustomDeliveryConfiguration.ECollectabilityTier.High)
|
||||
{
|
||||
SatisfactionSupplyReward row;
|
||||
int num = (dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out row) ? 284816978 : 284816979);
|
||||
ushort num8 = default(ushort);
|
||||
int num7 = default(int);
|
||||
while (true)
|
||||
if (!dataManager.GetExcelSheet<SatisfactionSupplyReward>().TryGetRow(rewardRowId, out var row))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 284816978;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 5:
|
||||
num8 = row.SatisfactionHigh;
|
||||
num = 284816981;
|
||||
break;
|
||||
case 4:
|
||||
num = ((tier != Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low) ? 284816983 : 284816977);
|
||||
break;
|
||||
case 0:
|
||||
num = ((tier == Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid) ? 284816980 : 284816982);
|
||||
break;
|
||||
case 6:
|
||||
num8 = row.SatisfactionMid;
|
||||
num = 284816981;
|
||||
break;
|
||||
case 9:
|
||||
return num7;
|
||||
case 7:
|
||||
num7 = num8;
|
||||
num = ((!hasBonus) ? 284816987 : 284816986);
|
||||
break;
|
||||
case 2:
|
||||
num = 284816979;
|
||||
break;
|
||||
case 3:
|
||||
num8 = row.SatisfactionLow;
|
||||
num = 284816981;
|
||||
break;
|
||||
case 8:
|
||||
num7 = num7 * row.BonusMultiplier / 100;
|
||||
num = 284816987;
|
||||
break;
|
||||
case 1:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int num = tier switch
|
||||
{
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Low => row.SatisfactionLow,
|
||||
Configuration.CustomDeliveryConfiguration.ECollectabilityTier.Mid => row.SatisfactionMid,
|
||||
_ => row.SatisfactionHigh,
|
||||
};
|
||||
if (hasBonus)
|
||||
{
|
||||
num = num * row.BonusMultiplier / 100;
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private string GetCurrencyName(uint currencyItemId)
|
||||
{
|
||||
Item row;
|
||||
int num = ((!dataManager.GetExcelSheet<Item>().TryGetRow(currencyItemId, out row)) ? (-1217003400) : (-1217003397));
|
||||
while (true)
|
||||
if (dataManager.GetExcelSheet<Item>().TryGetRow(currencyItemId, out var row))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1217003399;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(9, 1);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1297490435));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(currencyItemId);
|
||||
return defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
}
|
||||
case 2:
|
||||
return row.Name.ToString();
|
||||
case 0:
|
||||
goto IL_00a7;
|
||||
}
|
||||
continue;
|
||||
IL_00a7:
|
||||
num = -1217003397;
|
||||
return row.Name.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
static int _202B_200E_206D_200C_206E_200D_202B_206E_206A_200C_200B_206E_202A_206F_202B_200F_206C_202C_200F_200C_202B_206A_202D_206D_202C_202E_206B_202D_206D_202A_206A_200B_206C_206F_206C_202B_200D_202E_206A_202A_202E(uint P_0, bool P_1, bool P_2)
|
||||
{
|
||||
return InventoryHelper.GetItemCount(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static int _200E_202E_200C_200F_206B_206C_200E_200B_202A_206A_200D_200D_200D_202A_200D_200C_206B_202A_200B_206C_206C_202A_200E_200F_206E_206E_200D_206B_206B_206F_202E_206C_200B_202B_206B_206A_202B_200E_206A_200D_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Min(P_0, P_1);
|
||||
return $"Currency#{currencyItemId}";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using LLib;
|
||||
|
|
@ -38,391 +37,163 @@ internal sealed class SatisfactionSupplyTurnInExecutor(GameFunctions gameFunctio
|
|||
|
||||
private long _phaseStartMs;
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
protected override bool Start()
|
||||
{
|
||||
_phase = EPhase.InteractWithNpc;
|
||||
_remaining = base.Task.DeliveryCount;
|
||||
_lastUsedDeliveries = _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries;
|
||||
_lastUsedDeliveries = SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries;
|
||||
_throttle.Clear();
|
||||
_phaseStartMs = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E();
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(1474000530), new object[3]
|
||||
{
|
||||
base.Task.NpcIndex,
|
||||
base.Task.Slot,
|
||||
base.Task.DeliveryCount
|
||||
});
|
||||
_phaseStartMs = Environment.TickCount64;
|
||||
logger.LogDebug("Starting satisfaction supply turn-in: npc={NpcIndex}, slot={Slot}, count={Count}", base.Task.NpcIndex, base.Task.Slot, base.Task.DeliveryCount);
|
||||
return true;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override ETaskResult Update()
|
||||
{
|
||||
long num = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E() - _phaseStartMs;
|
||||
int num2 = ((_phase != EPhase.WaitForCutsceneEnd) ? 427799827 : 427799864);
|
||||
int usedDeliveries = default(int);
|
||||
int num6 = default(int);
|
||||
bool flag = default(bool);
|
||||
while (true)
|
||||
long num = Environment.TickCount64 - _phaseStartMs;
|
||||
if ((_phase != EPhase.WaitForCutsceneEnd) ? (num > 15000) : (num > 60000))
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = 427799834;
|
||||
int num5 = num3;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
{
|
||||
default:
|
||||
continue;
|
||||
case 2:
|
||||
num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799857);
|
||||
continue;
|
||||
case 44:
|
||||
SetPhase(EPhase.Closing);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 20:
|
||||
num2 = 427799864;
|
||||
continue;
|
||||
case 31:
|
||||
goto IL_015d;
|
||||
case 19:
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 11:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(350961385), Array.Empty<object>());
|
||||
SetPhase(EPhase.CheckCompletion);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 3:
|
||||
goto IL_01c7;
|
||||
case 25:
|
||||
{
|
||||
int remaining = _remaining;
|
||||
int num7 = usedDeliveries;
|
||||
num4 = _lastUsedDeliveries;
|
||||
num5 = num7;
|
||||
num4 = ~(~num5 + num4);
|
||||
num5 = remaining;
|
||||
_remaining = _206F_200D_200C_202C_200F_202A_206B_200B_206D_202A_206D_202B_200E_202D_200D_200C_202B_206D_202A_206F_200B_202E_206F_202E_206A_206A_200D_200E_200E_200E_206B_202A_200E_206A_202C_206B_206A_200B_202D_202E_202E(0, ~(~num5 + num4));
|
||||
_lastUsedDeliveries = usedDeliveries;
|
||||
num6 = _202D_200F_202C_202A_206D_206A_200C_206F_206E_206E_202C_206E_202D_206A_200B_206F_202E_202A_200C_202A_202C_200D_202E_200D_202C_206D_200D_206B_206F_200C_202A_200F_200B_202E_200D_206F_206C_200D_202D_200F_202E();
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(-306504982), new object[2] { _remaining, num6 });
|
||||
num2 = ((_remaining <= 0) ? 427799862 : 427799860);
|
||||
continue;
|
||||
}
|
||||
case 34:
|
||||
flag = num > 60000;
|
||||
num2 = 427799835;
|
||||
continue;
|
||||
case 32:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(1631440184), new object[1] { base.Task.Slot });
|
||||
SetPhase(EPhase.WaitForCutsceneStart);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 33:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1374604529), Array.Empty<object>());
|
||||
return ETaskResult.TaskComplete;
|
||||
case 40:
|
||||
goto IL_02fd;
|
||||
case 4:
|
||||
num2 = ((!_206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(gameGui)) ? 427799836 : 427799815);
|
||||
continue;
|
||||
case 28:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1574397942), Array.Empty<object>());
|
||||
return ETaskResult.TaskComplete;
|
||||
case 24:
|
||||
num2 = ((!_206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(gameGui)) ? 427799816 : 427799826);
|
||||
continue;
|
||||
case 5:
|
||||
num2 = (TryDismissResultAddon() ? 427799816 : 427799856);
|
||||
continue;
|
||||
case 42:
|
||||
num2 = ((!_200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(gameGui)) ? 427799828 : 427799867);
|
||||
continue;
|
||||
case 22:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(1456862888), Array.Empty<object>());
|
||||
SetPhase(EPhase.ConfirmTrade);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 18:
|
||||
return ETaskResult.StillRunning;
|
||||
case 0:
|
||||
num2 = ((!_200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(condition, ConditionFlag.OccupiedInCutSceneEvent)) ? 427799816 : 427799829);
|
||||
continue;
|
||||
case 26:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(1394771024), Array.Empty<object>());
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 21:
|
||||
goto IL_0464;
|
||||
case 37:
|
||||
SetPhase(EPhase.InteractWithNpc);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 12:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(-251211365), new object[1] { base.Task.NpcDataId });
|
||||
SetPhase(EPhase.WaitForAddon);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 10:
|
||||
SetPhase(EPhase.WaitForAddon);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 38:
|
||||
goto IL_0509;
|
||||
case 9:
|
||||
flag = num > 15000;
|
||||
num2 = 427799835;
|
||||
continue;
|
||||
case 17:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(1397355813), Array.Empty<object>());
|
||||
SetPhase(EPhase.CheckCompletion);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 29:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(-1083762627), Array.Empty<object>());
|
||||
SetPhase(EPhase.SelectSlot);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 13:
|
||||
num2 = ((!TryDismissResultAddon()) ? 427799810 : 427799871);
|
||||
continue;
|
||||
case 27:
|
||||
num2 = ((!gameFunctions.InteractWith(base.Task.NpcDataId)) ? 427799816 : 427799830);
|
||||
continue;
|
||||
case 43:
|
||||
num2 = ((base.Task.NpcDataId == 0) ? 427799816 : 427799809);
|
||||
continue;
|
||||
case 1:
|
||||
num2 = ((!flag) ? 427799818 : 427799863);
|
||||
continue;
|
||||
case 16:
|
||||
switch (_phase)
|
||||
{
|
||||
case EPhase.InteractWithNpc:
|
||||
break;
|
||||
case EPhase.SelectSlot:
|
||||
goto IL_015d;
|
||||
case EPhase.WaitForAddon:
|
||||
goto IL_01c7;
|
||||
case EPhase.ConfirmTrade:
|
||||
goto IL_02fd;
|
||||
case EPhase.CheckCompletion:
|
||||
goto IL_0464;
|
||||
case EPhase.WaitForCutsceneEnd:
|
||||
goto IL_0509;
|
||||
default:
|
||||
goto IL_0678;
|
||||
case EPhase.WaitForCutsceneStart:
|
||||
goto IL_06e7;
|
||||
case EPhase.Closing:
|
||||
goto end_IL_0047;
|
||||
}
|
||||
goto case 2;
|
||||
case 46:
|
||||
num2 = ((num6 <= 0) ? 427799862 : 427799824);
|
||||
continue;
|
||||
case 23:
|
||||
num2 = ((!_202E_200B_202B_202C_202B_202D_206D_206A_202B_206F_200D_200B_206B_206D_206C_206C_206A_202C_206E_206D_202E_206B_200F_200B_202D_200B_206D_202D_200B_202E_200F_202D_206F_206D_202A_202D_202E_202E_206E_206C_202E()) ? 427799816 : 427799866);
|
||||
continue;
|
||||
case 7:
|
||||
num2 = ((!_200E_200F_206E_206C_200E_200F_206D_202C_202E_200E_202A_200D_202E_202D_206E_200B_206C_206A_200C_200E_202A_206E_202B_206C_206E_200C_200E_202E_200F_200C_206D_202B_206C_206E_200F_206B_206C_202A_202B_202B_202E()) ? 427799831 : 427799820);
|
||||
continue;
|
||||
case 30:
|
||||
goto IL_06e7;
|
||||
case 45:
|
||||
_206C_202A_206F_200F_206C_202A_200B_200D_206D_206D_202E_206C_202D_206D_206D_202E_200D_202C_200B_200E_202D_200B_200E_202B_200B_202D_202A_206A_200E_206B_202B_202D_206E_206F_206D_200C_202E_202E_206E_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>(-1661028568), new object[2] { _phase, num });
|
||||
TryDismissResultAddon();
|
||||
_200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(gameGui);
|
||||
return ETaskResult.RetryStep;
|
||||
case 15:
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_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>(-285034380), Array.Empty<object>());
|
||||
SetPhase(EPhase.WaitForCutsceneEnd);
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 36:
|
||||
num2 = (TryDismissResultAddon() ? 427799816 : 427799838);
|
||||
continue;
|
||||
case 6:
|
||||
num2 = ((!_200F_206A_200F_200E_206A_202E_206C_202E_202A_206D_202D_202B_202D_206B_206B_206F_202D_200E_202A_202C_206A_202C_200C_206A_202C_200B_202C_206A_200E_206F_206E_200C_206F_206A_206E_202B_200C_200B_206A_202E_202E(gameGui)) ? 427799859 : 427799865);
|
||||
continue;
|
||||
case 14:
|
||||
num2 = (_202E_200B_202E_200D_206C_206F_206E_200D_202B_206B_202D_200B_200D_202A_206D_202E_200D_202A_200E_200F_206F_206C_202E_206E_206E_206D_200F_202A_206D_206B_202A_200D_206B_200E_200E_206B_202C_206D_200B_202D_202E(gameGui) ? 427799816 : 427799814);
|
||||
continue;
|
||||
case 41:
|
||||
num2 = ((!_200C_206A_206B_200D_200C_202C_206D_206A_206D_206C_202E_200C_202E_202A_206C_206E_202E_206D_202D_200B_200F_202B_200D_206E_200E_200D_206A_206B_206A_206B_206F_206E_200C_202A_202E_206E_202D_206F_200B_200F_202E(gameGui)) ? 427799816 : 427799808);
|
||||
continue;
|
||||
case 8:
|
||||
_202C_200D_206E_206E_200B_202C_206A_206D_206C_202E_200F_206C_206A_200F_202C_206B_206C_202B_202A_206D_206E_202C_206C_200B_206A_202A_200C_202C_200F_202E_200F_206E_206A_206A_202D_200C_206C_202A_206A_206F_202E(gameGui, (int)base.Task.Slot);
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1693755949), new object[1] { base.Task.Slot });
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 35:
|
||||
_202A_206D_206A_200C_202B_200C_206F_200F_200E_200D_206C_202C_200D_202A_202C_206E_206F_200C_202B_206F_206A_202E_206D_206E_202E_206D_202B_206E_202C_202D_206C_206D_200E_206F_200F_206C_200C_200B_200D_206A_202E(gameGui, 0);
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-2145457438), Array.Empty<object>());
|
||||
num2 = 427799816;
|
||||
continue;
|
||||
case 39:
|
||||
break;
|
||||
IL_0464:
|
||||
usedDeliveries = _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries;
|
||||
num2 = ((usedDeliveries <= _lastUsedDeliveries) ? 427799816 : 427799811);
|
||||
continue;
|
||||
IL_02fd:
|
||||
num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799821);
|
||||
continue;
|
||||
IL_06e7:
|
||||
num2 = ((!HasDeliveryRegistered()) ? 427799834 : 427799819);
|
||||
continue;
|
||||
IL_0678:
|
||||
num2 = 427799817;
|
||||
continue;
|
||||
IL_015d:
|
||||
num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799837);
|
||||
continue;
|
||||
IL_01c7:
|
||||
num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799870);
|
||||
continue;
|
||||
IL_0509:
|
||||
num2 = (_200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(condition, ConditionFlag.OccupiedInCutSceneEvent) ? 427799816 : 427799825);
|
||||
continue;
|
||||
end_IL_0047:
|
||||
break;
|
||||
}
|
||||
num2 = ((!_throttle.TryReset(0.5)) ? 427799816 : 427799839);
|
||||
logger.LogWarning("Turn-in timed out in phase {Phase} after {Elapsed}ms, retrying", _phase, num);
|
||||
TryDismissResultAddon();
|
||||
SatisfactionSupplyActions.TryCloseSatisfactionSupply(gameGui);
|
||||
return ETaskResult.RetryStep;
|
||||
}
|
||||
switch (_phase)
|
||||
{
|
||||
case EPhase.InteractWithNpc:
|
||||
if (_throttle.TryReset(0.5) && base.Task.NpcDataId != 0 && gameFunctions.InteractWith(base.Task.NpcDataId))
|
||||
{
|
||||
logger.LogDebug("Interacted with delivery NPC {DataId}", base.Task.NpcDataId);
|
||||
SetPhase(EPhase.WaitForAddon);
|
||||
}
|
||||
break;
|
||||
case EPhase.WaitForAddon:
|
||||
if (_throttle.TryReset(0.5) && !TryDismissResultAddon())
|
||||
{
|
||||
if (SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(gameGui))
|
||||
{
|
||||
logger.LogDebug("SatisfactionSupply addon fully ready");
|
||||
SetPhase(EPhase.SelectSlot);
|
||||
}
|
||||
else if (VendorPurchaseActions.IsDialogReady(gameGui))
|
||||
{
|
||||
VendorPurchaseActions.TrySelectDialogOption(gameGui, 0);
|
||||
logger.LogDebug("Dismissed NPC dialog to reach SatisfactionSupply");
|
||||
}
|
||||
else if (SatisfactionSupplyActions.TryProgressTalk(gameGui))
|
||||
{
|
||||
logger.LogDebug("Progressed NPC dialog to reach SatisfactionSupply");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EPhase.SelectSlot:
|
||||
if (_throttle.TryReset(0.5))
|
||||
{
|
||||
if (SatisfactionSupplyActions.IsNpcTradeReady())
|
||||
{
|
||||
logger.LogDebug("NpcTrade agent ready");
|
||||
SetPhase(EPhase.ConfirmTrade);
|
||||
}
|
||||
else if (TryDismissResultAddon())
|
||||
{
|
||||
SetPhase(EPhase.InteractWithNpc);
|
||||
}
|
||||
else if (SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(gameGui))
|
||||
{
|
||||
SatisfactionSupplyActions.TrySelectDeliverySlot(gameGui, (int)base.Task.Slot);
|
||||
logger.LogDebug("Fired delivery slot {Slot} selection", base.Task.Slot);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case EPhase.ConfirmTrade:
|
||||
if (_throttle.TryReset(0.5) && SatisfactionSupplyActions.TryConfirmTrade())
|
||||
{
|
||||
logger.LogDebug("Confirmed trade for slot {Slot}", base.Task.Slot);
|
||||
SetPhase(EPhase.WaitForCutsceneStart);
|
||||
}
|
||||
break;
|
||||
case EPhase.WaitForCutsceneStart:
|
||||
if (HasDeliveryRegistered())
|
||||
{
|
||||
logger.LogDebug("Delivery registered before cutscene state was observed");
|
||||
SetPhase(EPhase.CheckCompletion);
|
||||
}
|
||||
else if (condition[ConditionFlag.OccupiedInCutSceneEvent])
|
||||
{
|
||||
logger.LogDebug("Cutscene started");
|
||||
SetPhase(EPhase.WaitForCutsceneEnd);
|
||||
}
|
||||
break;
|
||||
case EPhase.WaitForCutsceneEnd:
|
||||
if (!condition[ConditionFlag.OccupiedInCutSceneEvent])
|
||||
{
|
||||
logger.LogDebug("Cutscene ended");
|
||||
SetPhase(EPhase.CheckCompletion);
|
||||
}
|
||||
break;
|
||||
case EPhase.CheckCompletion:
|
||||
{
|
||||
int usedDeliveries = SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries;
|
||||
if (usedDeliveries > _lastUsedDeliveries)
|
||||
{
|
||||
_remaining = Math.Max(0, _remaining - (usedDeliveries - _lastUsedDeliveries));
|
||||
_lastUsedDeliveries = usedDeliveries;
|
||||
int remainingAllowances = SatisfactionSupplyActions.GetRemainingAllowances();
|
||||
logger.LogDebug("Delivery complete, remaining={Remaining}, allowances={Allowances}", _remaining, remainingAllowances);
|
||||
if (_remaining > 0 && remainingAllowances > 0)
|
||||
{
|
||||
SetPhase(EPhase.WaitForAddon);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPhase(EPhase.Closing);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case EPhase.Closing:
|
||||
if (_throttle.TryReset(0.5) && !TryDismissResultAddon())
|
||||
{
|
||||
if (SatisfactionSupplyActions.TryCloseSatisfactionSupply(gameGui))
|
||||
{
|
||||
logger.LogDebug("Closed SatisfactionSupply addon");
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
if (!SatisfactionSupplyActions.IsSatisfactionSupplyReady(gameGui))
|
||||
{
|
||||
logger.LogDebug("SatisfactionSupply addon already closed");
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
private bool TryDismissResultAddon()
|
||||
{
|
||||
int num = (_200D_206D_202C_206F_200E_200D_206D_206A_206D_206F_202C_200C_200D_202E_200F_202C_206D_200C_202D_202E_202A_206A_206F_200F_206A_200D_200C_200E_206B_206A_202E_200D_200B_202C_202B_206C_206D_206C_206C_200F_202E(gameGui) ? 1612697595 : 1612697592);
|
||||
while (true)
|
||||
if (!SatisfactionSupplyActions.IsSatisfactionSupplyResultVisible(gameGui))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1612697593;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
goto IL_004d;
|
||||
case 2:
|
||||
_206D_200B_200E_202D_206C_202D_202A_206C_206A_206B_202A_206F_202D_200B_200D_202D_202C_202C_202D_206C_202A_200B_206B_202A_200D_206F_202B_202C_206B_202D_200F_202B_200C_200B_202C_202D_206C_200B_206C_206B_202E(gameGui);
|
||||
_206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1119009587), Array.Empty<object>());
|
||||
return true;
|
||||
case 1:
|
||||
return false;
|
||||
}
|
||||
continue;
|
||||
IL_004d:
|
||||
num = 1612697592;
|
||||
return false;
|
||||
}
|
||||
SatisfactionSupplyActions.TryCloseSatisfactionSupplyResult(gameGui);
|
||||
logger.LogDebug("Closed rank-up result addon");
|
||||
return true;
|
||||
}
|
||||
|
||||
private void SetPhase(EPhase phase)
|
||||
{
|
||||
_phase = phase;
|
||||
_phaseStartMs = _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E();
|
||||
_phaseStartMs = Environment.TickCount64;
|
||||
}
|
||||
|
||||
private bool HasDeliveryRegistered()
|
||||
{
|
||||
return _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(base.Task.NpcIndex).UsedDeliveries > _lastUsedDeliveries;
|
||||
return SatisfactionSupplyActions.GetNpcState(base.Task.NpcIndex).UsedDeliveries > _lastUsedDeliveries;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static SatisfactionSupplyActions.NpcState _206D_206D_202E_206B_206B_206F_206D_206E_206A_200C_206F_206F_200C_206C_206C_206E_206B_206D_202D_202D_202E_206D_200D_200C_202D_202E_206B_206E_202E_202B_206C_206E_200E_206F_200F_202D_200C_202E_202B_200E_202E(int P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.GetNpcState(P_0);
|
||||
}
|
||||
|
||||
static long _202D_206E_200C_202C_206E_206A_202D_206D_200C_202B_206E_206A_200E_200E_202C_202B_202B_200D_206E_200E_202D_206A_206B_202C_202E_202C_200C_200C_202E_200D_200F_200E_200B_200C_200F_202B_202A_206F_206A_200C_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static void _206B_206F_200B_206D_202B_202D_200E_200F_206F_200F_206B_206D_200E_200C_206F_202A_202C_206B_202E_206C_206A_206A_202C_200F_200F_200D_200C_200B_202B_206C_202E_206C_206A_202D_206D_206E_206B_200B_202A_202A_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206C_202A_206F_200F_206C_202A_200B_200D_206D_206D_202E_206C_202D_206D_206D_202E_200D_202C_200B_200E_202D_200B_200E_202B_200B_202D_202A_206A_200E_206B_202B_202D_206E_206F_206D_200C_202E_202E_206E_206F_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _200C_206C_200D_202C_206C_202E_202E_202E_200B_200F_200D_202A_206E_200C_200F_202C_206E_206E_200B_202C_202D_202E_200E_200E_206D_202E_202C_206C_200B_206F_202C_200F_200E_206D_200F_202B_206B_206F_206D_206B_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.TryCloseSatisfactionSupply(P_0);
|
||||
}
|
||||
|
||||
static bool _206B_206A_202A_202D_206C_202C_202C_202A_206D_202C_200E_200D_202E_200C_202A_202A_206A_200E_206A_206C_200D_202A_202A_200E_200B_202C_206A_206F_206B_202D_206D_202B_200C_200E_206B_202B_200C_206D_202A_200D_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.IsSatisfactionSupplyFullyReady(P_0);
|
||||
}
|
||||
|
||||
static bool _200F_206A_200F_200E_206A_202E_206C_202E_202A_206D_202D_202B_202D_206B_206B_206F_202D_200E_202A_202C_206A_202C_200C_206A_202C_200B_202C_206A_200E_206F_206E_200C_206F_206A_206E_202B_200C_200B_206A_202E_202E(IGameGui P_0)
|
||||
{
|
||||
return VendorPurchaseActions.IsDialogReady(P_0);
|
||||
}
|
||||
|
||||
static bool _202A_206D_206A_200C_202B_200C_206F_200F_200E_200D_206C_202C_200D_202A_202C_206E_206F_200C_202B_206F_206A_202E_206D_206E_202E_206D_202B_206E_202C_202D_206C_206D_200E_206F_200F_206C_200C_200B_200D_206A_202E(IGameGui P_0, int P_1)
|
||||
{
|
||||
return VendorPurchaseActions.TrySelectDialogOption(P_0, P_1);
|
||||
}
|
||||
|
||||
static bool _200C_206A_206B_200D_200C_202C_206D_206A_206D_206C_202E_200C_202E_202A_206C_206E_202E_206D_202D_200B_200F_202B_200D_206E_200E_200D_206A_206B_206A_206B_206F_206E_200C_202A_202E_206E_202D_206F_200B_200F_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.TryProgressTalk(P_0);
|
||||
}
|
||||
|
||||
static bool _200E_200F_206E_206C_200E_200F_206D_202C_202E_200E_202A_200D_202E_202D_206E_200B_206C_206A_200C_200E_202A_206E_202B_206C_206E_200C_200E_202E_200F_200C_206D_202B_206C_206E_200F_206B_206C_202A_202B_202B_202E()
|
||||
{
|
||||
return SatisfactionSupplyActions.IsNpcTradeReady();
|
||||
}
|
||||
|
||||
static bool _202C_200D_206E_206E_200B_202C_206A_206D_206C_202E_200F_206C_206A_200F_202C_206B_206C_202B_202A_206D_206E_202C_206C_200B_206A_202A_200C_202C_200F_202E_200F_206E_206A_206A_202D_200C_206C_202A_206A_206F_202E(IGameGui P_0, int P_1)
|
||||
{
|
||||
return SatisfactionSupplyActions.TrySelectDeliverySlot(P_0, P_1);
|
||||
}
|
||||
|
||||
static bool _202E_200B_202B_202C_202B_202D_206D_206A_202B_206F_200D_200B_206B_206D_206C_206C_206A_202C_206E_206D_202E_206B_200F_200B_202D_200B_206D_202D_200B_202E_200F_202D_206F_206D_202A_202D_202E_202E_206E_206C_202E()
|
||||
{
|
||||
return SatisfactionSupplyActions.TryConfirmTrade();
|
||||
}
|
||||
|
||||
static bool _200B_200E_206A_200F_206F_206A_206F_200C_206B_202E_206D_200C_200C_200B_202D_200F_202B_206D_202A_202B_202B_202A_206A_202E_202B_206E_200D_206C_202D_202E_206C_206F_202A_206E_200E_200F_206A_200D_200B_200E_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
|
||||
static int _206F_200D_200C_202C_200F_202A_206B_200B_206D_202A_206D_202B_200E_202D_200D_200C_202B_206D_202A_206F_200B_202E_206F_202E_206A_206A_200D_200E_200E_200E_206B_202A_200E_206A_202C_206B_206A_200B_202D_202E_202E(int P_0, int P_1)
|
||||
{
|
||||
return Math.Max(P_0, P_1);
|
||||
}
|
||||
|
||||
static int _202D_200F_202C_202A_206D_206A_200C_206F_206E_206E_202C_206E_202D_206A_200B_206F_202E_202A_200C_202A_202C_200D_202E_200D_202C_206D_200D_206B_206F_200C_202A_200F_200B_202E_200D_206F_206C_200D_202D_200F_202E()
|
||||
{
|
||||
return SatisfactionSupplyActions.GetRemainingAllowances();
|
||||
}
|
||||
|
||||
static bool _202E_200B_202E_200D_206C_206F_206E_200D_202B_206B_202D_200B_200D_202A_206D_202E_200D_202A_200E_200F_206F_206C_202E_206E_206E_206D_200F_202A_206D_206B_202A_200D_206B_200E_200E_206B_202C_206D_200B_202D_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.IsSatisfactionSupplyReady(P_0);
|
||||
}
|
||||
|
||||
static bool _200D_206D_202C_206F_200E_200D_206D_206A_206D_206F_202C_200C_200D_202E_200F_202C_206D_200C_202D_202E_202A_206A_206F_200F_206A_200D_200C_200E_206B_206A_202E_200D_200B_202C_202B_206C_206D_206C_206C_200F_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.IsSatisfactionSupplyResultVisible(P_0);
|
||||
}
|
||||
|
||||
static bool _206D_200B_200E_202D_206C_202D_202A_206C_206A_206B_202A_206F_202D_200B_200D_202D_202C_202C_202D_206C_202A_200B_206B_202A_200D_206F_202B_202C_206B_202D_200F_202B_200C_200B_202C_202D_206C_200B_206C_206B_202E(IGameGui P_0)
|
||||
{
|
||||
return SatisfactionSupplyActions.TryCloseSatisfactionSupplyResult(P_0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,117 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Questionable.Controller.Steps;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed record SatisfactionSupplyTurnInTask(int NpcIndex, EDeliverySlot Slot, int DeliveryCount, uint NpcDataId) : ITask
|
||||
{
|
||||
[CompilerGenerated]
|
||||
private Type EqualityContract
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return _200F_206E_202C_200D_206E_200F_200F_202C_200C_206B_206A_202A_206C_202E_202B_206D_200C_206F_206B_206E_200F_200E_200F_202E_206B_200D_206A_202A_206D_200D_202D_206A_202A_202C_206B_206F_202B_202E_202D_206C_202E(typeof(SatisfactionSupplyTurnInTask).TypeHandle);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override string ToString()
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(27, 3);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1300446303));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(NpcIndex);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1337890915));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Slot);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(1866089119));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(DeliveryCount);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(444206578));
|
||||
return defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_206C_206B_206E_200D_200C_200F_200C_206F_202C_202E_206D_200C_202D_202C_202C_200F_202B_202E_200F_202B_202E_206D_200E_200F_206E_206E_200F_202E_202D_206B_206D_206A_200C_206E_202C_200F_200D_202B_206D_200C_202E();
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_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>(-1595512881));
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, NpcIndex.ToString());
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1002596104));
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, Slot.ToString());
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_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>(1495805969));
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, DeliveryCount.ToString());
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_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>(1084145586));
|
||||
_200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(builder, NpcDataId.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(SatisfactionSupplyTurnInTask? other)
|
||||
{
|
||||
int num = (((object)this == other) ? 887679026 : 887679031);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 887679025;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 8:
|
||||
return EqualityComparer<uint>.Default.Equals(NpcDataId, other.NpcDataId);
|
||||
case 1:
|
||||
num = ((!EqualityComparer<int>.Default.Equals(DeliveryCount, other.DeliveryCount)) ? 887679029 : 887679033);
|
||||
break;
|
||||
case 5:
|
||||
num = ((!EqualityComparer<int>.Default.Equals(NpcIndex, other.NpcIndex)) ? 887679029 : 887679027);
|
||||
break;
|
||||
case 6:
|
||||
num = (((object)other == null) ? 887679029 : 887679030);
|
||||
break;
|
||||
case 2:
|
||||
num = ((!EqualityComparer<EDeliverySlot>.Default.Equals(Slot, other.Slot)) ? 887679029 : 887679024);
|
||||
break;
|
||||
case 3:
|
||||
return true;
|
||||
case 4:
|
||||
return false;
|
||||
case 0:
|
||||
num = 887679031;
|
||||
break;
|
||||
case 7:
|
||||
num = ((!_200F_206E_202C_200B_206A_200D_206E_202C_206E_202D_202D_200D_202B_200B_202E_206E_200F_200D_200C_200C_206F_206C_200B_200E_202E_200F_200E_206F_200D_200C_202A_200F_202C_206C_202E_200D_206B_206F_202A_200F_202E(EqualityContract, other.EqualityContract)) ? 887679029 : 887679028);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<SatisfactionSupplyTurnInTask>.Equals(SatisfactionSupplyTurnInTask? other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static Type _200F_206E_202C_200D_206E_200F_200F_202C_200C_206B_206A_202A_206C_202E_202B_206D_200C_206F_206B_206E_200F_200E_200F_202E_206B_200D_206A_202A_206D_200D_202D_206A_202A_202C_206B_206F_202B_202E_202D_206C_202E(RuntimeTypeHandle P_0)
|
||||
{
|
||||
return Type.GetTypeFromHandle(P_0);
|
||||
}
|
||||
|
||||
static void _206C_206B_206E_200D_200C_200F_200C_206F_202C_202E_206D_200C_202D_202C_202C_200F_202B_202E_200F_202B_202E_206D_200E_200F_206E_206E_200F_202E_202D_206B_206D_206A_200C_206E_202C_200F_200D_202B_206D_200C_202E()
|
||||
{
|
||||
RuntimeHelpers.EnsureSufficientExecutionStack();
|
||||
}
|
||||
|
||||
static StringBuilder _200B_202B_206D_202C_200D_200B_200D_202A_206F_202B_206E_202C_202D_206D_206D_200B_206D_206B_206B_202C_202C_206C_202C_200C_206D_202C_200F_202A_202D_200F_200D_200D_206C_206C_202A_202E_200E_206A_206A_206F_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static bool _200F_206E_202C_200B_206A_200D_206E_202C_206E_202D_202D_200D_202B_200B_202E_206E_200F_200D_200C_200C_206F_206C_200B_200E_202E_200F_200E_206F_200D_200C_202A_200F_202C_206C_202E_200D_206B_206F_202A_200F_202E(Type P_0, Type P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
return $"TurnIn(npc={NpcIndex}, slot={Slot}, count={DeliveryCount})";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Dalamud.Game.ClientState.Conditions;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||
|
|
@ -50,7 +49,7 @@ internal sealed class VendorPurchaseExecutor(GameFunctions gameFunctions, IGameG
|
|||
_state = EState.InteractWithNpc;
|
||||
_throttle.Clear();
|
||||
_purchaseIndex = 0;
|
||||
_stateStartMs = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E();
|
||||
_stateStartMs = Environment.TickCount64;
|
||||
_failed = false;
|
||||
_countBeforeBuy = 0;
|
||||
_buyAttempts = 0;
|
||||
|
|
@ -58,362 +57,167 @@ internal sealed class VendorPurchaseExecutor(GameFunctions gameFunctions, IGameG
|
|||
return true;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public unsafe override ETaskResult Update()
|
||||
{
|
||||
long num = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E() - _stateStartMs;
|
||||
int num2 = ((_state == EState.WaitForBuy) ? 839409606 : 839409644);
|
||||
int inventoryItemCount = default(int);
|
||||
VendorPurchaseTask.PurchaseItem purchaseItem = default(VendorPurchaseTask.PurchaseItem);
|
||||
VendorPurchaseTask.PurchaseItem purchaseItem2 = default(VendorPurchaseTask.PurchaseItem);
|
||||
int num16 = default(int);
|
||||
while (true)
|
||||
long num = Environment.TickCount64 - _stateStartMs;
|
||||
if (_state != EState.WaitForBuy && num > 15000)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = 839409609;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
logger.LogWarning("Vendor purchase timed out in state {State} after {Elapsed}ms, retrying", _state, num);
|
||||
return ETaskResult.RetryStep;
|
||||
}
|
||||
switch (_state)
|
||||
{
|
||||
case EState.InteractWithNpc:
|
||||
if (!_throttle.TryReset(1.0))
|
||||
{
|
||||
case 11:
|
||||
num2 = 839409644;
|
||||
break;
|
||||
case 26:
|
||||
return ETaskResult.StillRunning;
|
||||
case 10:
|
||||
return ETaskResult.StillRunning;
|
||||
case 7:
|
||||
return ETaskResult.StillRunning;
|
||||
case 34:
|
||||
num2 = ((!_206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(gameGui)) ? 839409635 : 839409631);
|
||||
break;
|
||||
case 37:
|
||||
num2 = ((num <= 15000) ? 839409606 : 839409622);
|
||||
break;
|
||||
case 6:
|
||||
goto IL_0195;
|
||||
case 23:
|
||||
return ETaskResult.StillRunning;
|
||||
case 21:
|
||||
inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
num2 = ((inventoryItemCount > _countBeforeBuy) ? 839409605 : 839409604);
|
||||
break;
|
||||
case 51:
|
||||
return ETaskResult.StillRunning;
|
||||
case 32:
|
||||
return ETaskResult.StillRunning;
|
||||
case 35:
|
||||
num2 = (_202D_202E_202D_206E_202A_202A_206B_206B_202C_202E_200B_200D_202B_202C_202E_200B_202B_200E_200D_206E_202B_206B_206C_206C_202A_202D_202B_202E_200C_200C_206C_202A_200D_200C_200F_202C_202C_200F_206B_202D_202E(condition, ConditionFlag.OccupiedInEvent) ? 839409603 : 839409656);
|
||||
break;
|
||||
case 30:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(-1366453963), Array.Empty<object>());
|
||||
SetState(EState.WaitForClose);
|
||||
num2 = 839409637;
|
||||
break;
|
||||
case 44:
|
||||
return ETaskResult.StillRunning;
|
||||
case 46:
|
||||
num2 = (_throttle.TryReset(0.5) ? 839409607 : 839409614);
|
||||
break;
|
||||
case 56:
|
||||
goto IL_0292;
|
||||
case 52:
|
||||
{
|
||||
int buyAttempts2 = _buyAttempts;
|
||||
num4 = 1;
|
||||
num5 = buyAttempts2;
|
||||
int num14 = num5 ^ num4;
|
||||
int num15 = num5 & num4;
|
||||
_buyAttempts = num14 + (num15 + num15);
|
||||
_confirmationClicked = false;
|
||||
ILogger<VendorPurchaseExecutor> logger3 = logger;
|
||||
string text3 = 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>(1763985144);
|
||||
object[] obj2 = new object[7] { purchaseItem2.ItemId, num16, purchaseItem2.Quantity, _buyAttempts, 3, null, null };
|
||||
int purchaseIndex3 = _purchaseIndex;
|
||||
num4 = 1;
|
||||
num5 = purchaseIndex3;
|
||||
int num17 = num5 ^ num4;
|
||||
int num18 = num5 & num4;
|
||||
obj2[5] = num17 + (num18 + num18);
|
||||
obj2[6] = base.Task.Purchases.Count;
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger3, text3, obj2);
|
||||
SetState(EState.WaitForBuy);
|
||||
num2 = 839409636;
|
||||
break;
|
||||
}
|
||||
case 33:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(519166747), Array.Empty<object>());
|
||||
if (gameFunctions.InteractWith(base.Task.VendorNpcId))
|
||||
{
|
||||
logger.LogDebug("Interacted with vendor NPC {NpcId}", base.Task.VendorNpcId);
|
||||
SetState(EState.WaitForShopOrDialog);
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
case EState.WaitForShopOrDialog:
|
||||
if (VendorPurchaseActions.IsShopReady(gameGui))
|
||||
{
|
||||
logger.LogDebug("Shop is ready, moving to BuyItem");
|
||||
SetState(EState.BuyItem);
|
||||
num2 = 839409658;
|
||||
break;
|
||||
case 14:
|
||||
num2 = ((!_200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(gameGui, base.Task.DialogOptionIndex)) ? 839409658 : 839409638);
|
||||
break;
|
||||
case 17:
|
||||
num2 = ((!gameFunctions.InteractWith(base.Task.VendorNpcId)) ? 839409618 : 839409616);
|
||||
break;
|
||||
case 55:
|
||||
return ETaskResult.StillRunning;
|
||||
case 47:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(457605072), new object[1] { base.Task.DialogOptionIndex });
|
||||
num2 = 839409658;
|
||||
break;
|
||||
case 53:
|
||||
num2 = ((_buyAttempts >= 3) ? 839409659 : 839409633);
|
||||
break;
|
||||
case 9:
|
||||
return ETaskResult.StillRunning;
|
||||
case 41:
|
||||
{
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(-87832125), new object[3] { purchaseItem.ItemId, _countBeforeBuy, inventoryItemCount });
|
||||
int purchaseIndex = _purchaseIndex;
|
||||
num4 = 1;
|
||||
num5 = purchaseIndex;
|
||||
int num8 = num5 ^ num4;
|
||||
int num9 = num5 & num4;
|
||||
_purchaseIndex = num8 + (num9 + num9);
|
||||
num2 = ((_purchaseIndex >= base.Task.Purchases.Count) ? 839409629 : 839409601);
|
||||
break;
|
||||
}
|
||||
case 36:
|
||||
purchaseItem2 = base.Task.Purchases[_purchaseIndex];
|
||||
num16 = _200B_206D_202D_202A_202A_202E_206A_206E_206A_200C_202A_206C_206D_200E_206D_200D_206B_202D_202D_206A_206C_202C_202D_200F_206E_202D_206F_206F_206C_202C_202B_202A_200E_200E_200D_202B_200E_200C_206C_200D_202E(gameGui, purchaseItem2.ItemId);
|
||||
num2 = ((num16 >= 0) ? 839409611 : 839409617);
|
||||
break;
|
||||
case 1:
|
||||
goto IL_055e;
|
||||
case 2:
|
||||
_countBeforeBuy = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem2.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
num2 = ((!_206F_200D_206B_206C_202C_202D_206A_200F_200B_206E_206A_206B_200C_206D_200D_200E_206B_202E_200F_206B_200C_200E_206F_206D_202A_202C_200B_206D_202A_206D_200E_202D_202A_200E_202A_200F_200C_202E_202B_202A_202E(gameGui, num16, purchaseItem2.Quantity)) ? 839409636 : 839409661);
|
||||
break;
|
||||
case 50:
|
||||
_200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-968313219), new object[2] { purchaseItem.ItemId, _buyAttempts });
|
||||
else if (VendorPurchaseActions.IsDialogReady(gameGui))
|
||||
{
|
||||
if (!_throttle.TryReset(0.5))
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
if (VendorPurchaseActions.TrySelectDialogOption(gameGui, base.Task.DialogOptionIndex))
|
||||
{
|
||||
logger.LogDebug("Selected dialog option {Index} to open shop", base.Task.DialogOptionIndex);
|
||||
}
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
case EState.BuyItem:
|
||||
{
|
||||
if (!_throttle.TryReset(0.5))
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
VendorPurchaseTask.PurchaseItem purchaseItem2 = base.Task.Purchases[_purchaseIndex];
|
||||
int num2 = VendorPurchaseActions.FindItemDisplayIndex(gameGui, purchaseItem2.ItemId);
|
||||
if (num2 < 0)
|
||||
{
|
||||
logger.LogError("Item {ItemId} not found in shop display list", purchaseItem2.ItemId);
|
||||
_failed = true;
|
||||
SetState(EState.CloseShop);
|
||||
return ETaskResult.StillRunning;
|
||||
case 24:
|
||||
_200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(326113005), new object[1] { purchaseItem2.ItemId });
|
||||
_failed = true;
|
||||
SetState(EState.CloseShop);
|
||||
return ETaskResult.StillRunning;
|
||||
case 18:
|
||||
}
|
||||
_countBeforeBuy = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem2.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
if (VendorPurchaseActions.TryBuyItem(gameGui, num2, purchaseItem2.Quantity))
|
||||
{
|
||||
_buyAttempts++;
|
||||
_confirmationClicked = false;
|
||||
logger.LogDebug("Submitted purchase for item {ItemId} (display index {DisplayIndex}) x{Quantity}, attempt {Attempt}/{MaxAttempts} ({Current}/{Total})", purchaseItem2.ItemId, num2, purchaseItem2.Quantity, _buyAttempts, 3, _purchaseIndex + 1, base.Task.Purchases.Count);
|
||||
SetState(EState.WaitForBuy);
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
case EState.WaitForBuy:
|
||||
{
|
||||
VendorPurchaseTask.PurchaseItem purchaseItem = base.Task.Purchases[_purchaseIndex];
|
||||
if (!_confirmationClicked && VendorPurchaseActions.TryConfirmPurchase(gameGui))
|
||||
{
|
||||
_confirmationClicked = true;
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(-1038383555), new object[1] { purchaseItem.ItemId });
|
||||
logger.LogDebug("Confirmed purchase of item {ItemId}", purchaseItem.ItemId);
|
||||
SetState(EState.WaitForBuy);
|
||||
return ETaskResult.StillRunning;
|
||||
case 13:
|
||||
num2 = ((num >= 2000) ? 839409660 : 839409641);
|
||||
break;
|
||||
case 31:
|
||||
_206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-208232877), new object[2] { _state, num });
|
||||
return ETaskResult.RetryStep;
|
||||
case 19:
|
||||
num2 = (_throttle.TryReset(0.5) ? 839409657 : 839409600);
|
||||
break;
|
||||
case 54:
|
||||
}
|
||||
int inventoryItemCount = InventoryManager.Instance()->GetInventoryItemCount(purchaseItem.ItemId, isHq: false, checkEquipped: true, checkArmory: true, 0);
|
||||
if (inventoryItemCount <= _countBeforeBuy)
|
||||
{
|
||||
if (num < 2000)
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
if (_buyAttempts < 3)
|
||||
{
|
||||
logger.LogWarning("Purchase of item {ItemId} was not reflected in inventory; retrying ({Attempt}/{MaxAttempts})", purchaseItem.ItemId, _buyAttempts + 1, 3);
|
||||
SetState(EState.BuyItem);
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
logger.LogError("Purchase of item {ItemId} failed after {Attempts} attempts", purchaseItem.ItemId, _buyAttempts);
|
||||
_failed = true;
|
||||
SetState(EState.CloseShop);
|
||||
return ETaskResult.StillRunning;
|
||||
case 38:
|
||||
}
|
||||
if (!_throttle.TryReset(0.5))
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
case 8:
|
||||
}
|
||||
logger.LogDebug("Verified purchase of item {ItemId}: inventory {Before} -> {After}", purchaseItem.ItemId, _countBeforeBuy, inventoryItemCount);
|
||||
_purchaseIndex++;
|
||||
if (_purchaseIndex < base.Task.Purchases.Count)
|
||||
{
|
||||
_buyAttempts = 0;
|
||||
ILogger<VendorPurchaseExecutor> logger2 = logger;
|
||||
string text2 = global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-274284666);
|
||||
object[] array = new object[2];
|
||||
int purchaseIndex2 = _purchaseIndex;
|
||||
num4 = 1;
|
||||
num5 = purchaseIndex2;
|
||||
int num12 = num5 ^ num4;
|
||||
int num13 = num5 & num4;
|
||||
array[0] = num12 + (num13 + num13);
|
||||
array[1] = base.Task.Purchases.Count;
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E((ILogger)logger2, text2, array);
|
||||
logger.LogDebug("Buying next item ({Index}/{Total})", _purchaseIndex + 1, base.Task.Purchases.Count);
|
||||
SetState(EState.BuyItem);
|
||||
num2 = 839409663;
|
||||
break;
|
||||
}
|
||||
case 20:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(1561512200), Array.Empty<object>());
|
||||
SetState(EState.CloseShop);
|
||||
num2 = 839409663;
|
||||
break;
|
||||
case 27:
|
||||
return ETaskResult.StillRunning;
|
||||
case 49:
|
||||
num2 = ((!_failed) ? 839409610 : 839409625);
|
||||
break;
|
||||
case 25:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(816270239), new object[1] { base.Task.VendorNpcId });
|
||||
SetState(EState.WaitForShopOrDialog);
|
||||
num2 = 839409618;
|
||||
break;
|
||||
case 22:
|
||||
return ETaskResult.StillRunning;
|
||||
case 39:
|
||||
num2 = 839409662;
|
||||
break;
|
||||
case 43:
|
||||
goto IL_0831;
|
||||
case 15:
|
||||
switch (_state)
|
||||
{
|
||||
case EState.WaitForClose:
|
||||
break;
|
||||
case EState.BuyItem:
|
||||
goto IL_0195;
|
||||
case EState.WaitForShopOrDialog:
|
||||
goto IL_0292;
|
||||
case EState.CloseShop:
|
||||
goto IL_055e;
|
||||
case EState.WaitForBuy:
|
||||
goto IL_0831;
|
||||
default:
|
||||
goto IL_0892;
|
||||
case EState.InteractWithNpc:
|
||||
goto IL_0a14;
|
||||
}
|
||||
goto case 34;
|
||||
case 40:
|
||||
else
|
||||
{
|
||||
logger.LogDebug("All purchases complete, closing shop");
|
||||
SetState(EState.CloseShop);
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
case EState.CloseShop:
|
||||
if (!_throttle.TryReset(0.5))
|
||||
{
|
||||
ILogger<VendorPurchaseExecutor> logger = logger;
|
||||
string text = global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-366147931);
|
||||
object[] obj = new object[3] { purchaseItem.ItemId, null, null };
|
||||
int buyAttempts = _buyAttempts;
|
||||
num4 = 1;
|
||||
num5 = buyAttempts;
|
||||
int num10 = num5 ^ num4;
|
||||
int num11 = num5 & num4;
|
||||
obj[1] = num10 + (num11 + num11);
|
||||
obj[2] = 3;
|
||||
_206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, text, obj);
|
||||
SetState(EState.BuyItem);
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
case 42:
|
||||
num2 = ((!_206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(gameGui)) ? 839409642 : 839409626);
|
||||
break;
|
||||
case 45:
|
||||
if (VendorPurchaseActions.TryCloseShop(gameGui))
|
||||
{
|
||||
logger.LogDebug("Closing shop");
|
||||
SetState(EState.WaitForClose);
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
case EState.WaitForClose:
|
||||
if (VendorPurchaseActions.IsShopReady(gameGui))
|
||||
{
|
||||
return ETaskResult.StillRunning;
|
||||
case 0:
|
||||
num2 = ((!_206B_200B_206C_202D_206B_206C_202E_202E_202C_206E_206E_200C_206F_202D_200B_200C_206A_200B_202B_202C_206C_206D_206A_202A_200F_200C_206C_200F_202A_200D_206A_206C_200E_202A_206B_206B_202C_200D_200C_200D_202E(gameGui)) ? 839409628 : 839409627);
|
||||
break;
|
||||
case 12:
|
||||
num2 = (_throttle.TryReset(0.5) ? 839409632 : 839409647);
|
||||
break;
|
||||
case 29:
|
||||
num2 = ((!_206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(gameGui)) ? 839409658 : 839409639);
|
||||
break;
|
||||
case 3:
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(-1460452754), Array.Empty<object>());
|
||||
return ETaskResult.TaskComplete;
|
||||
case 4:
|
||||
return ETaskResult.StillRunning;
|
||||
case 28:
|
||||
num2 = ((!_206D_202A_202D_200F_206C_202A_200D_206A_202E_206A_206B_200C_206F_206B_202C_206D_200C_206C_202D_200F_202D_200F_206C_206C_200C_200D_202D_200C_202A_200D_202D_206D_200B_200D_202C_206D_206F_206A_202A_202C_202E(gameGui)) ? 839409637 : 839409623);
|
||||
break;
|
||||
case 48:
|
||||
_200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(gameGui, -1);
|
||||
_206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_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>(408167584), Array.Empty<object>());
|
||||
return ETaskResult.StillRunning;
|
||||
case 5:
|
||||
goto IL_0a14;
|
||||
case 16:
|
||||
}
|
||||
if (VendorPurchaseActions.IsDialogReady(gameGui))
|
||||
{
|
||||
if (!_throttle.TryReset(0.5))
|
||||
{
|
||||
_206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1743816671), Array.Empty<object>());
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
VendorPurchaseActions.TrySelectDialogOption(gameGui, -1);
|
||||
logger.LogDebug("Dismissing post-shop dialog");
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
if (!condition[ConditionFlag.OccupiedInEvent])
|
||||
{
|
||||
if (_failed)
|
||||
{
|
||||
logger.LogWarning("Shop closed after failed purchase, retrying");
|
||||
return ETaskResult.RetryStep;
|
||||
}
|
||||
IL_0a14:
|
||||
num2 = (_throttle.TryReset(1.0) ? 839409624 : 839409619);
|
||||
break;
|
||||
IL_0892:
|
||||
num2 = 839409646;
|
||||
break;
|
||||
IL_0831:
|
||||
purchaseItem = base.Task.Purchases[_purchaseIndex];
|
||||
num2 = (_confirmationClicked ? 839409628 : 839409609);
|
||||
break;
|
||||
IL_0292:
|
||||
num2 = ((!_206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(gameGui)) ? 839409620 : 839409640);
|
||||
break;
|
||||
IL_0195:
|
||||
num2 = (_throttle.TryReset(0.5) ? 839409645 : 839409613);
|
||||
break;
|
||||
IL_055e:
|
||||
num2 = (_throttle.TryReset(0.5) ? 839409621 : 839409630);
|
||||
break;
|
||||
logger.LogDebug("Shop closed, vendor purchase complete");
|
||||
return ETaskResult.TaskComplete;
|
||||
}
|
||||
return ETaskResult.StillRunning;
|
||||
default:
|
||||
return ETaskResult.StillRunning;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetState(EState state)
|
||||
{
|
||||
_state = state;
|
||||
_stateStartMs = _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E();
|
||||
_stateStartMs = Environment.TickCount64;
|
||||
}
|
||||
|
||||
public override bool ShouldInterruptOnDamage()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static long _206E_206E_200E_202B_202A_206A_200C_206D_206A_202D_202B_206E_206D_206E_200C_200D_202A_200D_200C_202D_202E_200F_206D_206E_206C_202C_206C_206A_200E_206D_200F_206C_206E_202B_206A_206B_200E_200F_206E_206B_202E()
|
||||
{
|
||||
return Environment.TickCount64;
|
||||
}
|
||||
|
||||
static void _206D_202B_206F_206B_200B_206E_202B_206A_200B_206C_206C_202C_206A_206B_206F_206B_200D_200B_206A_206A_202A_202B_200F_202E_202B_200B_200E_200B_206D_200B_202E_202D_202B_206A_206D_202D_202A_200B_200B_200C_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static void _206E_206D_206F_202B_206D_206E_202E_200B_202A_202E_200C_202C_202C_202C_206F_202E_206E_200C_202D_202A_202A_200D_206A_202A_206C_206A_206E_200E_206F_206B_202B_202B_206B_200E_200F_206F_206E_200E_202B_206B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206F_200E_200B_206B_202C_206A_206B_200E_206B_202E_206A_206D_202C_200D_200F_200B_200B_206B_202D_200C_200D_202C_202A_200E_206D_200E_200B_202A_206A_206F_206F_202C_202B_200F_202D_206C_200F_202C_202A_206B_202E(IGameGui P_0)
|
||||
{
|
||||
return VendorPurchaseActions.IsShopReady(P_0);
|
||||
}
|
||||
|
||||
static bool _206F_200D_202E_206A_206F_200C_206A_200C_202B_206F_206A_200D_200E_206B_200E_200D_200B_200D_202A_206A_200F_206E_206A_206A_200D_206E_202C_206F_202D_206A_206B_206F_200D_206A_206B_206E_206C_206A_206A_206A_202E(IGameGui P_0)
|
||||
{
|
||||
return VendorPurchaseActions.IsDialogReady(P_0);
|
||||
}
|
||||
|
||||
static bool _200D_206B_206A_200C_200F_206A_202A_200E_200F_206D_202E_200D_200B_206A_200D_202B_200D_206C_202E_206A_202C_206B_202E_206F_206A_202B_202B_206B_202A_200C_202B_200B_202B_202C_206A_200C_202D_206B_206D_202B_202E(IGameGui P_0, int P_1)
|
||||
{
|
||||
return VendorPurchaseActions.TrySelectDialogOption(P_0, P_1);
|
||||
}
|
||||
|
||||
static int _200B_206D_202D_202A_202A_202E_206A_206E_206A_200C_202A_206C_206D_200E_206D_200D_206B_202D_202D_206A_206C_202C_202D_200F_206E_202D_206F_206F_206C_202C_202B_202A_200E_200E_200D_202B_200E_200C_206C_200D_202E(IGameGui P_0, uint P_1)
|
||||
{
|
||||
return VendorPurchaseActions.FindItemDisplayIndex(P_0, P_1);
|
||||
}
|
||||
|
||||
static void _200E_202B_200C_200C_206A_200E_206D_202D_200C_200F_200F_202C_200C_206F_206A_206D_202A_202A_202A_200F_206B_200C_200E_206C_206B_206F_202E_200E_206B_206F_206C_202E_206B_206B_202B_200C_202B_200C_206E_200D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogError(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206F_200D_206B_206C_202C_202D_206A_200F_200B_206E_206A_206B_200C_206D_200D_200E_206B_202E_200F_206B_200C_200E_206F_206D_202A_202C_200B_206D_202A_206D_200E_202D_202A_200E_202A_200F_200C_202E_202B_202A_202E(IGameGui P_0, int P_1, int P_2)
|
||||
{
|
||||
return VendorPurchaseActions.TryBuyItem(P_0, P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _206B_200B_206C_202D_206B_206C_202E_202E_202C_206E_206E_200C_206F_202D_200B_200C_206A_200B_202B_202C_206C_206D_206A_202A_200F_200C_206C_200F_202A_200D_206A_206C_200E_202A_206B_206B_202C_200D_200C_200D_202E(IGameGui P_0)
|
||||
{
|
||||
return VendorPurchaseActions.TryConfirmPurchase(P_0);
|
||||
}
|
||||
|
||||
static bool _206D_202A_202D_200F_206C_202A_200D_206A_202E_206A_206B_200C_206F_206B_202C_206D_200C_206C_202D_200F_202D_200F_206C_206C_200C_200D_202D_200C_202A_200D_202D_206D_200B_200D_202C_206D_206F_206A_202A_202C_202E(IGameGui P_0)
|
||||
{
|
||||
return VendorPurchaseActions.TryCloseShop(P_0);
|
||||
}
|
||||
|
||||
static bool _202D_202E_202D_206E_202A_202A_206B_206B_202C_202E_200B_200D_202B_202C_202E_200B_202B_200E_200D_206E_202B_206B_206C_206C_202A_202D_202B_202E_200C_200C_206C_202A_200D_200C_200F_202C_202C_200F_206B_202D_202E(ICondition P_0, ConditionFlag P_1)
|
||||
{
|
||||
return P_0[P_1];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,244 +1,18 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Questionable.Controller.Steps;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed record VendorPurchaseTask(uint VendorNpcId, IReadOnlyList<PurchaseItem> Purchases, int DialogOptionIndex = 0) : ITask
|
||||
{
|
||||
internal readonly record struct PurchaseItem(uint ItemId, int Quantity)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _206F_200F_200F_206B_200C_206F_200D_202E_206F_202D_200D_200E_202C_202E_206F_206C_200D_206D_206F_206D_206E_206A_206B_206F_206E_200D_200C_206B_200F_200D_200C_202A_202B_200F_206D_200E_202C_202D_206A_202C_202E();
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_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>(1504160608));
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? 1320909858 : 1320909859);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1320909858;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
num = 1320909859;
|
||||
break;
|
||||
case 1:
|
||||
_202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(stringBuilder, ' ');
|
||||
num = 1320909858;
|
||||
break;
|
||||
case 0:
|
||||
_202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(stringBuilder, '}');
|
||||
return _206C_202D_206D_200E_200B_200F_200E_200C_202C_206D_206A_202E_202E_200C_206D_202E_200B_202C_206B_200F_206A_200D_202E_206D_200B_206A_202B_202C_200F_200F_200B_202E_202C_202B_200E_202B_206C_206E_200E_200C_202E((object)stringBuilder);
|
||||
}
|
||||
}
|
||||
}
|
||||
internal readonly record struct PurchaseItem(uint ItemId, int Quantity);
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912));
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, ItemId.ToString());
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_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>(-640041388));
|
||||
_202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(builder, Quantity.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(PurchaseItem other)
|
||||
{
|
||||
int num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-997799700) : (-997799699));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -997799700;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 2:
|
||||
goto IL_0058;
|
||||
case 1:
|
||||
return EqualityComparer<int>.Default.Equals(Quantity, other.Quantity);
|
||||
case 0:
|
||||
return false;
|
||||
}
|
||||
continue;
|
||||
IL_0058:
|
||||
num = -997799699;
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<PurchaseItem>.Equals(PurchaseItem other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder _206F_200F_200F_206B_200C_206F_200D_202E_206F_202D_200D_200E_202C_202E_206F_206C_200D_206D_206F_206D_206E_206A_206B_206F_206E_200D_200C_206B_200F_200D_200C_202A_202B_200F_206D_200E_202C_202D_206A_202C_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _202E_200B_206F_206D_202A_200F_206B_200D_200F_202C_202E_200B_206B_206D_202D_206B_202B_206F_206A_200E_202C_202C_202A_206B_206A_206B_202B_206A_202B_206A_206D_202D_206F_206C_206C_206A_206D_206C_202B_202E_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _202A_202A_206F_206C_206B_200F_202A_200F_200C_200D_206B_200E_206B_200E_200E_202D_206F_202E_206A_202E_206B_202B_200E_200F_200B_202E_200F_200B_202C_200D_200B_202A_206E_206D_200C_202C_202E_206A_200B_200F_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _206C_202D_206D_200E_200B_200F_200E_200C_202C_206D_206A_202E_202E_200C_206D_202E_200B_202C_206B_200F_206A_200D_202E_206D_200B_206A_202B_202C_200F_200F_200B_202E_202C_202B_200E_202B_206C_206E_200E_200C_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
private Type EqualityContract
|
||||
{
|
||||
[CompilerGenerated]
|
||||
get
|
||||
{
|
||||
return _206B_206B_206F_200C_206F_202C_206A_200C_206B_206C_200C_200B_200F_200B_202E_202A_200E_200C_206E_206B_202D_202E_202D_206A_200F_202B_202E_202B_206A_206F_206A_200B_200C_200D_200B_206A_206D_200B_206B_202E(typeof(VendorPurchaseTask).TypeHandle);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public override string ToString()
|
||||
{
|
||||
int num = ((Purchases.Count == 1) ? 681809870 : 681809871);
|
||||
while (true)
|
||||
if (Purchases.Count == 1)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 681809870;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
goto IL_0052;
|
||||
case 0:
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler2 = new DefaultInterpolatedStringHandler(34, 4);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-426748651));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(VendorNpcId);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(-1317325121));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(Purchases[0].ItemId);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1725354679));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(Purchases[0].Quantity);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1203794399));
|
||||
defaultInterpolatedStringHandler2.AppendFormatted(DialogOptionIndex);
|
||||
defaultInterpolatedStringHandler2.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1618480346));
|
||||
return defaultInterpolatedStringHandler2.ToStringAndClear();
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(33, 3);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-1531781508));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(VendorNpcId);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1467939024));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(Purchases.Count);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1987907938));
|
||||
defaultInterpolatedStringHandler.AppendFormatted(DialogOptionIndex);
|
||||
defaultInterpolatedStringHandler.AppendLiteral(global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1735737295));
|
||||
return defaultInterpolatedStringHandler.ToStringAndClear();
|
||||
}
|
||||
}
|
||||
continue;
|
||||
IL_0052:
|
||||
num = 681809871;
|
||||
return $"VendorPurchase({VendorNpcId}, item {Purchases[0].ItemId} x{Purchases[0].Quantity}, dialog {DialogOptionIndex})";
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_200C_200B_202C_202A_206A_206D_206B_200C_202A_202C_202A_202A_202E_206E_206B_206B_200B_206B_200B_200E_206A_200C_206A_206C_206E_200F_202E_200E_202D_206E_202D_202C_202E_202A_206A_206C_206D_200D_200E_200E_202E();
|
||||
_206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_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>(206754998));
|
||||
_206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, VendorNpcId.ToString());
|
||||
_206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_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>(166759684));
|
||||
_202E_206F_200B_202B_202B_202E_200F_206C_200B_200B_202A_206F_200E_200E_206B_202E_202B_206E_206C_202B_200F_200E_202B_206F_202D_202A_206A_200E_200E_206F_206A_200B_206E_206D_206F_206F_202C_202D_206A_202A_202E(builder, (object)Purchases);
|
||||
_206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_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>(474766985));
|
||||
_206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(builder, DialogOptionIndex.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(VendorPurchaseTask? other)
|
||||
{
|
||||
int num = (((object)this == other) ? (-1933996366) : (-1933996367));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1933996361;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -1933996367;
|
||||
break;
|
||||
case 5:
|
||||
return true;
|
||||
case 6:
|
||||
num = (((object)other == null) ? (-1933996364) : (-1933996362));
|
||||
break;
|
||||
case 2:
|
||||
return EqualityComparer<int>.Default.Equals(DialogOptionIndex, other.DialogOptionIndex);
|
||||
case 7:
|
||||
num = ((!EqualityComparer<uint>.Default.Equals(VendorNpcId, other.VendorNpcId)) ? (-1933996364) : (-1933996365));
|
||||
break;
|
||||
case 4:
|
||||
num = ((!EqualityComparer<IReadOnlyList<PurchaseItem>>.Default.Equals(Purchases, other.Purchases)) ? (-1933996364) : (-1933996363));
|
||||
break;
|
||||
case 1:
|
||||
num = ((!_202C_202E_200C_202E_202C_200D_200B_200F_206C_202E_202A_200D_200C_200D_202E_206F_202A_202C_202A_200F_200D_202D_206F_206D_206B_206F_206A_202E_200F_202D_202A_202A_200E_200B_202D_206D_206B_200B_202A_202B_202E(EqualityContract, other.EqualityContract)) ? (-1933996364) : (-1933996368));
|
||||
break;
|
||||
case 3:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<VendorPurchaseTask>.Equals(VendorPurchaseTask? other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static Type _206B_206B_206F_200C_206F_202C_206A_200C_206B_206C_200C_200B_200F_200B_202E_202A_200E_200C_206E_206B_202D_202E_202D_206A_200F_202B_202E_202B_206A_206F_206A_200B_200C_200D_200B_206A_206D_200B_206B_202E(RuntimeTypeHandle P_0)
|
||||
{
|
||||
return Type.GetTypeFromHandle(P_0);
|
||||
}
|
||||
|
||||
static void _200C_200B_202C_202A_206A_206D_206B_200C_202A_202C_202A_202A_202E_206E_206B_206B_200B_206B_200B_200E_206A_200C_206A_206C_206E_200F_202E_200E_202D_206E_202D_202C_202E_202A_206A_206C_206D_200D_200E_200E_202E()
|
||||
{
|
||||
RuntimeHelpers.EnsureSufficientExecutionStack();
|
||||
}
|
||||
|
||||
static StringBuilder _206A_206F_206E_206E_202A_202A_206A_200C_200F_200B_206F_206A_202A_200C_206A_202E_206F_200E_206C_206B_200F_206A_200E_200E_206F_200D_202B_202B_200D_206F_206D_200C_200B_206F_206E_200C_206E_200B_200D_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _202E_206F_200B_202B_202B_202E_200F_206C_200B_200B_202A_206F_200E_200E_206B_202E_202B_206E_206C_202B_200F_200E_202B_206F_202D_202A_206A_200E_200E_206F_206A_200B_206E_206D_206F_206F_202C_202D_206A_202A_202E(StringBuilder P_0, object P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static bool _202C_202E_200C_202E_202C_200D_200B_200F_206C_202E_202A_200D_200C_200D_202E_206F_202A_202C_202A_200F_200D_202D_206F_206D_206B_206F_206A_202E_200F_202D_202A_202A_200E_200B_202D_206D_206B_200B_202A_202B_202E(Type P_0, Type P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
return $"VendorPurchase({VendorNpcId}, {Purchases.Count} items, dialog {DialogOptionIndex})";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Dalamud.Plugin.Services;
|
||||
using LLib.GameData;
|
||||
using LLib.Shop;
|
||||
|
|
@ -14,579 +11,100 @@ namespace Questionable.Controller.CustomDelivery;
|
|||
|
||||
internal sealed class VendorResolverService(IDataManager dataManager, VendorResolver vendorResolver, NpcPositionCache npcPositionCache, ILogger<VendorResolverService> logger)
|
||||
{
|
||||
internal readonly record struct IngredientInfo(uint ItemId, int CountPerCraft)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _200E_206E_200E_206F_200D_200E_202C_206A_200C_202A_206B_200E_200E_202E_202C_200D_202A_206E_206D_200C_200F_202A_206C_200E_202D_200B_200C_206D_206A_206B_202D_206B_200C_206C_206F_206B_202D_202E_206C_200D_202E();
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_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>(1900362320));
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(stringBuilder, 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>(556540328));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? 985551290 : 985551291);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 985551290;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 2:
|
||||
num = 985551291;
|
||||
break;
|
||||
case 0:
|
||||
_202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(stringBuilder, '}');
|
||||
return _200C_206D_202E_202B_202E_202D_206B_200C_206B_202B_206D_200B_206F_206F_200C_200E_206F_202B_200B_200C_202D_206A_202C_206A_206D_200F_206E_200F_200E_206C_202B_200B_202E_202E_200B_202C_202D_202D_200E_206E_202E((object)stringBuilder);
|
||||
case 1:
|
||||
_202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(stringBuilder, ' ');
|
||||
num = 985551290;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
internal readonly record struct IngredientInfo(uint ItemId, int CountPerCraft);
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1176260912));
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, ItemId.ToString());
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_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>(-710805120));
|
||||
_202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(builder, CountPerCraft.ToString());
|
||||
return true;
|
||||
}
|
||||
internal readonly record struct RecipeInfo(uint RecipeId, uint CraftedItemId, IReadOnlyList<IngredientInfo> Ingredients, EClassJob CraftingClass);
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(IngredientInfo other)
|
||||
{
|
||||
int num = ((!EqualityComparer<uint>.Default.Equals(ItemId, other.ItemId)) ? (-577386697) : (-577386700));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -577386698;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
return false;
|
||||
case 2:
|
||||
return EqualityComparer<int>.Default.Equals(CountPerCraft, other.CountPerCraft);
|
||||
case 0:
|
||||
goto IL_0071;
|
||||
}
|
||||
continue;
|
||||
IL_0071:
|
||||
num = -577386700;
|
||||
}
|
||||
}
|
||||
internal readonly record struct VendorInfo(uint ShopId, uint VendorNpcId, ushort TerritoryId, Vector3 Position, int DialogOptionIndex);
|
||||
|
||||
bool IEquatable<IngredientInfo>.Equals(IngredientInfo other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder _200E_206E_200E_206F_200D_200E_202C_206A_200C_202A_206B_200E_200E_202E_202C_200D_202A_206E_206D_200C_200F_202A_206C_200E_202D_200B_200C_206D_206A_206B_202D_206B_200C_206C_206F_206B_202D_202E_206C_200D_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _202C_206A_206F_206A_200F_206C_200E_200B_202E_200F_202E_200C_206F_202B_206C_206E_202C_200C_206A_202B_206E_202E_200F_200E_206E_202E_200B_206C_200D_206F_200E_202B_202D_206D_202A_200B_206C_206A_206F_206C_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _202D_206F_206D_200C_206E_206F_200C_200D_202C_200B_202D_202B_206E_202A_206F_200F_200C_200B_206C_202B_206F_200C_202E_202D_200E_202D_202B_200F_200D_202D_200B_202C_202E_200E_206A_202E_206A_206E_202B_206C_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _200C_206D_202E_202B_202E_202D_206B_200C_206B_202B_206D_200B_206F_206F_200C_200E_206F_202B_200B_200C_202D_206A_202C_206A_206D_200F_206E_200F_200E_206C_202B_200B_202E_202E_200B_202C_202D_202D_200E_206E_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
internal readonly record struct RecipeInfo(uint RecipeId, uint CraftedItemId, IReadOnlyList<IngredientInfo> Ingredients, EClassJob CraftingClass)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _206C_206D_202C_206A_206C_206D_206A_200C_202C_206A_206A_202B_206F_200E_206C_206F_206F_200D_200F_200C_206E_202C_206E_206F_202D_202B_200F_206F_202A_206E_202E_202E_206F_202C_202C_206F_202E_200E_202A_206F_202E();
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_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>(1038169593));
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? 935744891 : 935744888);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 935744890;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = 935744888;
|
||||
break;
|
||||
case 1:
|
||||
_202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(stringBuilder, '}');
|
||||
return _206C_202A_202D_202C_206F_206A_200C_202B_200C_200E_206B_200C_200E_206D_206E_202C_206F_206E_200E_200C_202C_206E_206A_202D_206B_202B_200D_200E_202E_206D_206C_202C_200C_206F_200B_202C_200F_202B_200F_206D_202E((object)stringBuilder);
|
||||
case 2:
|
||||
_202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(stringBuilder, ' ');
|
||||
num = 935744891;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_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>(-1168472186));
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, RecipeId.ToString());
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-229385593));
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, CraftedItemId.ToString());
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_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>(-1346587480));
|
||||
_200D_202A_202C_206A_206F_202D_206A_202C_206D_206F_206D_202A_202B_200E_200E_206B_200F_206C_206D_206D_206E_202B_200C_200D_200D_202D_202C_200C_200F_206F_202D_206A_202E_206A_200F_202B_206C_206A_200D_206B_202E(builder, (object)Ingredients);
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_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>(-356853243));
|
||||
_200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(builder, CraftingClass.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(RecipeInfo other)
|
||||
{
|
||||
int num = ((!EqualityComparer<uint>.Default.Equals(RecipeId, other.RecipeId)) ? 1163014536 : 1163014541);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1163014537;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 3:
|
||||
num = 1163014541;
|
||||
break;
|
||||
case 1:
|
||||
return false;
|
||||
case 0:
|
||||
num = ((!EqualityComparer<IReadOnlyList<IngredientInfo>>.Default.Equals(Ingredients, other.Ingredients)) ? 1163014536 : 1163014539);
|
||||
break;
|
||||
case 2:
|
||||
return EqualityComparer<EClassJob>.Default.Equals(CraftingClass, other.CraftingClass);
|
||||
case 4:
|
||||
num = ((!EqualityComparer<uint>.Default.Equals(CraftedItemId, other.CraftedItemId)) ? 1163014536 : 1163014537);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<RecipeInfo>.Equals(RecipeInfo other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder _206C_206D_202C_206A_206C_206D_206A_200C_202C_206A_206A_202B_206F_200E_206C_206F_206F_200D_200F_200C_206E_202C_206E_206F_202D_202B_200F_206F_202A_206E_202E_202E_206F_202C_202C_206F_202E_200E_202A_206F_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _200E_202B_200F_200B_200F_206A_200E_206C_206C_206E_200C_206F_206B_202E_206F_202A_200E_202D_202C_206E_202A_202A_206D_200F_202D_206E_202A_202E_206E_200F_206D_200F_200C_206E_200B_202C_206D_200D_202C_200E_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _202A_202B_202D_206F_206C_206D_202E_202A_206D_200F_200D_202A_202A_200E_206E_206E_206B_200D_206A_202C_200B_206A_202A_202C_206D_200F_200F_200C_200E_206E_200D_206B_202E_200F_202D_200B_202B_202C_202B_202C_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _206C_202A_202D_202C_206F_206A_200C_202B_200C_200E_206B_200C_200E_206D_206E_202C_206F_206E_200E_200C_202C_206E_206A_202D_206B_202B_200D_200E_202E_206D_206C_202C_200C_206F_200B_202C_200F_202B_200F_206D_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
|
||||
static StringBuilder _200D_202A_202C_206A_206F_202D_206A_202C_206D_206F_206D_202A_202B_200E_200E_206B_200F_206C_206D_206D_206E_202B_200C_200D_200D_202D_202C_200C_200F_206F_202D_206A_202E_206A_200F_202B_206C_206A_200D_206B_202E(StringBuilder P_0, object P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
}
|
||||
|
||||
internal readonly record struct VendorInfo(uint ShopId, uint VendorNpcId, ushort TerritoryId, Vector3 Position, int DialogOptionIndex)
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
public override string ToString()
|
||||
{
|
||||
StringBuilder stringBuilder = _206E_200F_206A_202A_206C_202A_202A_200B_202D_206E_202E_202B_206C_206D_206D_202A_202A_206F_202A_202B_206B_200C_200E_206F_206F_200F_202D_206F_206F_206C_206C_202A_206B_202D_200C_200B_200E_202A_206E_200D_202E();
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(stringBuilder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(-1730025500));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(stringBuilder, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1664411125));
|
||||
int num = ((!PrintMembers(stringBuilder)) ? (-1077906353) : (-1077906356));
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1077906354;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
case 0:
|
||||
num = -1077906356;
|
||||
break;
|
||||
case 2:
|
||||
_206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(stringBuilder, ' ');
|
||||
num = -1077906353;
|
||||
break;
|
||||
case 1:
|
||||
_206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(stringBuilder, '}');
|
||||
return _206D_200E_200B_202D_202E_206B_200F_202B_206D_206A_202E_206C_202B_200C_202B_206D_200D_202C_202E_202A_202D_200E_206B_202B_206B_202E_202D_206C_202E_200D_202A_206B_206F_200D_200E_200F_206D_202B_206A_206F_202E((object)stringBuilder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
[CompilerGenerated]
|
||||
private bool PrintMembers(StringBuilder builder)
|
||||
{
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_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>(317359128));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, ShopId.ToString());
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-88160107));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, VendorNpcId.ToString());
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(-1428648191));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, TerritoryId.ToString());
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(-1993330002));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, Position.ToString());
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, global::_003CModule_003E._200B_206B_206B_200E_200B_206A_206D_206B_206E_200F_206A_206F_206E_202B_200F_206C_202B_206D_206E_200F_200C_200E_206F_200D_200F_200B_202B_202B_202B_202B_206D_202C_206A_206D_200B_206E_200D_206A_206F_200F_202E<string>(2076481420));
|
||||
_206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(builder, DialogOptionIndex.ToString());
|
||||
return true;
|
||||
}
|
||||
|
||||
[CompilerGenerated]
|
||||
public bool Equals(VendorInfo other)
|
||||
{
|
||||
int num = ((!EqualityComparer<uint>.Default.Equals(ShopId, other.ShopId)) ? 756999807 : 756999806);
|
||||
while (true)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 756999804;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 0:
|
||||
num = ((!EqualityComparer<Vector3>.Default.Equals(Position, other.Position)) ? 756999807 : 756999800);
|
||||
break;
|
||||
case 2:
|
||||
num = ((!EqualityComparer<uint>.Default.Equals(VendorNpcId, other.VendorNpcId)) ? 756999807 : 756999805);
|
||||
break;
|
||||
case 3:
|
||||
return false;
|
||||
case 1:
|
||||
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? 756999807 : 756999804);
|
||||
break;
|
||||
case 5:
|
||||
num = 756999806;
|
||||
break;
|
||||
case 4:
|
||||
return EqualityComparer<int>.Default.Equals(DialogOptionIndex, other.DialogOptionIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<VendorInfo>.Equals(VendorInfo other)
|
||||
{
|
||||
//ILSpy generated this explicit interface implementation from .override directive in Equals
|
||||
return this.Equals(other);
|
||||
}
|
||||
|
||||
static StringBuilder _206E_200F_206A_202A_206C_202A_202A_200B_202D_206E_202E_202B_206C_206D_206D_202A_202A_206F_202A_202B_206B_200C_200E_206F_206F_200F_202D_206F_206F_206C_206C_202A_206B_202D_200C_200B_200E_202A_206E_200D_202E()
|
||||
{
|
||||
return new StringBuilder();
|
||||
}
|
||||
|
||||
static StringBuilder _206E_206F_202A_206F_200E_202E_200B_200E_206D_206F_206E_206F_200C_206C_206D_200F_200B_206C_200C_202B_206D_202D_206D_202C_200C_202A_206F_200C_202B_202C_206A_200D_202C_206D_206D_200C_202A_200F_206E_206B_202E(StringBuilder P_0, string P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static StringBuilder _206B_206D_202D_200B_202A_200B_206D_200E_206A_200F_202E_202D_200E_202B_200F_206A_200C_206B_206B_206A_200F_206B_206E_202B_200B_206A_206D_200B_206E_200C_200B_202E_202D_202D_200C_202E_202B_200C_202A_200D_202E(StringBuilder P_0, char P_1)
|
||||
{
|
||||
return P_0.Append(P_1);
|
||||
}
|
||||
|
||||
static string _206D_200E_200B_202D_202E_206B_200F_202B_206D_206A_202E_206C_202B_200C_202B_206D_200D_202C_202E_202A_202D_200E_206B_202B_206B_202E_202D_206C_202E_200D_202A_206B_206F_200D_200E_200F_206D_202B_206A_206F_202E(object P_0)
|
||||
{
|
||||
return P_0.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public RecipeInfo? ResolveRecipe(uint craftedItemId, EClassJob? preferredJob = null)
|
||||
{
|
||||
RecipeLookup row;
|
||||
int num = (dataManager.GetExcelSheet<RecipeLookup>().TryGetRow(craftedItemId, out row) ? (-1604445138) : (-1604445150));
|
||||
List<IngredientInfo> list = default(List<IngredientInfo>);
|
||||
Recipe row3 = default(Recipe);
|
||||
List<IngredientInfo> list2 = default(List<IngredientInfo>);
|
||||
Recipe row2 = default(Recipe);
|
||||
uint item = default(uint);
|
||||
(EClassJob, uint)[] array2 = default((EClassJob, uint)[]);
|
||||
int num5 = default(int);
|
||||
EClassJob item2 = default(EClassJob);
|
||||
(EClassJob, uint)[] array = default((EClassJob, uint)[]);
|
||||
EClassJob item4 = default(EClassJob);
|
||||
uint item3 = default(uint);
|
||||
while (true)
|
||||
if (!dataManager.GetExcelSheet<RecipeLookup>().TryGetRow(craftedItemId, out var row))
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1604445143;
|
||||
int num4 = num2;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
logger.LogDebug("No RecipeLookup row for item {ItemId}", craftedItemId);
|
||||
return null;
|
||||
}
|
||||
(EClassJob, uint)[] array = new(EClassJob, uint)[8]
|
||||
{
|
||||
(EClassJob.Carpenter, row.CRP.RowId),
|
||||
(EClassJob.Blacksmith, row.BSM.RowId),
|
||||
(EClassJob.Armorer, row.ARM.RowId),
|
||||
(EClassJob.Goldsmith, row.GSM.RowId),
|
||||
(EClassJob.Leatherworker, row.LTW.RowId),
|
||||
(EClassJob.Weaver, row.WVR.RowId),
|
||||
(EClassJob.Alchemist, row.ALC.RowId),
|
||||
(EClassJob.Culinarian, row.CUL.RowId)
|
||||
};
|
||||
(EClassJob, uint)[] array2;
|
||||
if (preferredJob.HasValue)
|
||||
{
|
||||
array2 = array;
|
||||
for (int i = 0; i < array2.Length; i++)
|
||||
{
|
||||
case 9:
|
||||
list = CollectIngredients(row3);
|
||||
num = ((list.Count == 0) ? (-1604445141) : (-1604445146));
|
||||
break;
|
||||
case 4:
|
||||
list2 = CollectIngredients(row2);
|
||||
num = ((list2.Count == 0) ? (-1604445143) : (-1604445128));
|
||||
break;
|
||||
case 8:
|
||||
num = ((item == 0) ? (-1604445148) : (-1604445145));
|
||||
break;
|
||||
case 3:
|
||||
{
|
||||
(EClassJob, uint) tuple = array2[num5];
|
||||
item2 = tuple.Item1;
|
||||
item = tuple.Item2;
|
||||
num = ((item2 != preferredJob.Value) ? (-1604445148) : (-1604445151));
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
array2 = array;
|
||||
num5 = 0;
|
||||
num = -1604445125;
|
||||
break;
|
||||
case 5:
|
||||
{
|
||||
(EClassJob, uint) tuple2 = array2[num5];
|
||||
item4 = tuple2.Item1;
|
||||
item3 = tuple2.Item2;
|
||||
num = ((item3 == 0) ? (-1604445143) : (-1604445147));
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
num = -1604445150;
|
||||
break;
|
||||
case 12:
|
||||
num = ((!dataManager.GetExcelSheet<Recipe>().TryGetRow(item3, out row2)) ? (-1604445143) : (-1604445139));
|
||||
break;
|
||||
case 14:
|
||||
num = ((!dataManager.GetExcelSheet<Recipe>().TryGetRow(item, out row3)) ? (-1604445141) : (-1604445152));
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
int num7 = num5;
|
||||
num3 = 1;
|
||||
num4 = num7;
|
||||
int num8 = num4 ^ num3;
|
||||
int num9 = num4 & num3;
|
||||
num5 = num8 + (num9 + num9);
|
||||
num = -1604445125;
|
||||
break;
|
||||
}
|
||||
case 11:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_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>(-1431969650), new object[1] { craftedItemId });
|
||||
return null;
|
||||
case 16:
|
||||
num = ((num5 < array2.Length) ? (-1604445142) : (-1604445141));
|
||||
break;
|
||||
case 10:
|
||||
array2 = array;
|
||||
num5 = 0;
|
||||
num = -1604445127;
|
||||
break;
|
||||
case 18:
|
||||
num = ((num5 < array2.Length) ? (-1604445140) : (-1604445144));
|
||||
break;
|
||||
case 13:
|
||||
{
|
||||
int num6 = num5;
|
||||
num3 = 1;
|
||||
num4 = num6;
|
||||
num5 = (num4 | num3) + (num4 & num3);
|
||||
num = -1604445127;
|
||||
break;
|
||||
}
|
||||
case 7:
|
||||
array = new(EClassJob, uint)[8]
|
||||
var (eClassJob, num) = array2[i];
|
||||
if (eClassJob == preferredJob.Value && num != 0)
|
||||
{
|
||||
(EClassJob.Carpenter, row.CRP.RowId),
|
||||
(EClassJob.Blacksmith, row.BSM.RowId),
|
||||
(EClassJob.Armorer, row.ARM.RowId),
|
||||
(EClassJob.Goldsmith, row.GSM.RowId),
|
||||
(EClassJob.Leatherworker, row.LTW.RowId),
|
||||
(EClassJob.Weaver, row.WVR.RowId),
|
||||
(EClassJob.Alchemist, row.ALC.RowId),
|
||||
(EClassJob.Culinarian, row.CUL.RowId)
|
||||
};
|
||||
num = ((!preferredJob.HasValue) ? (-1604445141) : (-1604445149));
|
||||
break;
|
||||
case 17:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202A_206B_206D_200C_206B_200E_200E_202A_200B_202E_206A_206F_206A_206B_200E_200D_200F_206D_206E_206A_206F_200C_206C_202C_202A_206E_202C_200B_206E_202A_206E_202B_206B_202E_202E_206A_206D_206D_202C_200F_202E<string>(1407786323), new object[4] { item3, item4, craftedItemId, list2.Count });
|
||||
return new RecipeInfo(item3, craftedItemId, list2, item4);
|
||||
case 1:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_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>(1806969075), new object[1] { craftedItemId });
|
||||
return null;
|
||||
case 15:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E((ILogger)logger, global::_003CModule_003E._202D_206D_206A_206E_202C_202B_200C_206C_200E_206A_206D_200E_206A_202A_200C_202E_206E_202C_206F_200B_206D_206F_200C_202C_200B_202B_200F_200B_206A_206F_200F_202E_206B_200E_202B_202A_200F_200B_202A_200E_202E<string>(1664800932), new object[4] { item, item2, craftedItemId, list.Count });
|
||||
return new RecipeInfo(item, craftedItemId, list, item2);
|
||||
if (!dataManager.GetExcelSheet<Recipe>().TryGetRow(num, out var row2))
|
||||
{
|
||||
break;
|
||||
}
|
||||
List<IngredientInfo> list = CollectIngredients(row2);
|
||||
if (list.Count == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
logger.LogDebug("Resolved recipe {RecipeId} ({ClassJob}) for item {ItemId} via preferred job: {Count} ingredient(s)", num, eClassJob, craftedItemId, list.Count);
|
||||
return new RecipeInfo(num, craftedItemId, list, eClassJob);
|
||||
}
|
||||
}
|
||||
}
|
||||
array2 = array;
|
||||
for (int i = 0; i < array2.Length; i++)
|
||||
{
|
||||
var (eClassJob2, num2) = array2[i];
|
||||
if (num2 != 0 && dataManager.GetExcelSheet<Recipe>().TryGetRow(num2, out var row3))
|
||||
{
|
||||
List<IngredientInfo> list2 = CollectIngredients(row3);
|
||||
if (list2.Count != 0)
|
||||
{
|
||||
logger.LogDebug("Resolved recipe {RecipeId} ({ClassJob}) for item {ItemId}: {Count} ingredient(s)", num2, eClassJob2, craftedItemId, list2.Count);
|
||||
return new RecipeInfo(num2, craftedItemId, list2, eClassJob2);
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.LogDebug("No valid recipe found for item {ItemId}", craftedItemId);
|
||||
return null;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public VendorInfo? ResolveVendor(uint ingredientId)
|
||||
{
|
||||
int num = (_200B_202E_200F_200C_206F_202B_206F_200E_206B_200E_200E_206E_206D_202D_200E_206C_206A_200F_200C_206F_202D_202E_206C_206B_202D_206E_206C_200E_206B_206B_202E_202E_200C_200F_206B_206D_202B_200C_200E_202B_202E(npcPositionCache) ? 1075940384 : 1075940385);
|
||||
ShopSearchResult shopSearchResult = default(ShopSearchResult);
|
||||
while (true)
|
||||
if (!npcPositionCache.IsBuilt)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = 1075940386;
|
||||
int num4 = num2;
|
||||
int num5 = num4 + num3;
|
||||
int num6 = num4 & num3;
|
||||
switch (num5 - (num6 + num6))
|
||||
{
|
||||
case 1:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_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>(-563414727), new object[1] { ingredientId });
|
||||
return null;
|
||||
case 3:
|
||||
_200D_202E_206C_202D_200B_202A_202E_202B_202D_200D_200F_206E_206B_200E_200C_200C_200D_206F_206C_202D_200E_206D_202C_202A_200C_200E_200C_200C_206F_202A_202C_200D_202B_202D_200C_206B_200B_206E_200E_202D_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>(1813598717), new object[1] { ingredientId });
|
||||
return null;
|
||||
case 4:
|
||||
num = 1075940385;
|
||||
break;
|
||||
case 0:
|
||||
_202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_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>(1256305400), new object[5]
|
||||
{
|
||||
_202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(shopSearchResult),
|
||||
ingredientId,
|
||||
_200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(shopSearchResult),
|
||||
_206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(shopSearchResult),
|
||||
_206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(shopSearchResult)
|
||||
});
|
||||
return new VendorInfo(_200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(shopSearchResult), _202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(shopSearchResult), _206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(shopSearchResult), _202A_200E_206F_206C_202B_202E_200F_206F_202C_202A_206E_200C_200B_202B_200D_206C_206F_206F_200F_206E_206C_200D_202B_202D_200F_206D_206B_200C_206D_206A_206C_206F_200C_206C_200C_206A_200B_202A_200B_202A_202E(shopSearchResult), _206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(shopSearchResult));
|
||||
case 2:
|
||||
shopSearchResult = _206A_202E_202A_200E_202C_202E_202A_200D_200B_200C_200F_200B_202A_206F_202A_200F_202E_202E_206B_202A_200C_200F_206F_200B_200B_200B_202B_206B_202D_202B_206C_202B_206B_200C_206F_200C_206F_206A_206C_206E_202E(vendorResolver, ingredientId);
|
||||
num = ((!_206D_200F_206D_202D_202D_200E_206B_206A_200E_200F_200C_202D_202C_202E_206D_206F_202C_200F_206A_200B_202A_206A_202B_206C_200D_202B_202C_202A_200B_206E_202E_206D_200E_200D_200C_206C_200D_200D_206B_206A_202E(shopSearchResult, (ShopSearchResult)null)) ? 1075940386 : 1075940387);
|
||||
break;
|
||||
}
|
||||
logger.LogWarning("NPC position cache not built yet, cannot resolve a vendor for ingredient {IngredientId}", ingredientId);
|
||||
return null;
|
||||
}
|
||||
ShopSearchResult shopSearchResult = vendorResolver.FindGilVendor(ingredientId);
|
||||
if (shopSearchResult == null)
|
||||
{
|
||||
logger.LogDebug("No vendor with known position found for ingredient {IngredientId}", ingredientId);
|
||||
return null;
|
||||
}
|
||||
logger.LogDebug("Found vendor NPC {NpcId} selling ingredient {IngredientId} at shop {ShopId} in territory {TerritoryId} (dialog option {DialogOption})", shopSearchResult.NpcId, ingredientId, shopSearchResult.ShopId, shopSearchResult.TerritoryId, shopSearchResult.DialogOptionIndex);
|
||||
return new VendorInfo(shopSearchResult.ShopId, shopSearchResult.NpcId, shopSearchResult.TerritoryId, shopSearchResult.NpcPosition, shopSearchResult.DialogOptionIndex);
|
||||
}
|
||||
|
||||
private static List<IngredientInfo> CollectIngredients(Recipe recipe)
|
||||
{
|
||||
List<IngredientInfo> list = new List<IngredientInfo>();
|
||||
int num = 0;
|
||||
int num2 = 1773501195;
|
||||
uint rowId = default(uint);
|
||||
int num6 = default(int);
|
||||
while (true)
|
||||
for (int i = 0; i < recipe.Ingredient.Count; i++)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = 1773501198;
|
||||
int num5 = num3;
|
||||
switch ((num5 | num4) - (num5 & num4))
|
||||
uint rowId = recipe.Ingredient[i].RowId;
|
||||
int num = recipe.AmountIngredient[i];
|
||||
if (rowId != 0 && num > 0)
|
||||
{
|
||||
case 5:
|
||||
num2 = ((num < recipe.Ingredient.Count) ? 1773501197 : 1773501196);
|
||||
break;
|
||||
case 1:
|
||||
list.Add(new IngredientInfo(rowId, num6));
|
||||
num2 = 1773501192;
|
||||
break;
|
||||
case 2:
|
||||
return list;
|
||||
case 0:
|
||||
num2 = ((num6 <= 0) ? 1773501192 : 1773501199);
|
||||
break;
|
||||
case 4:
|
||||
num2 = 1773501195;
|
||||
break;
|
||||
case 6:
|
||||
{
|
||||
int num7 = num;
|
||||
num4 = 1;
|
||||
num5 = num7;
|
||||
num = (num5 | num4) + (num5 & num4);
|
||||
num2 = 1773501195;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
rowId = recipe.Ingredient[num].RowId;
|
||||
num6 = recipe.AmountIngredient[num];
|
||||
num2 = ((rowId == 0) ? 1773501192 : 1773501198);
|
||||
break;
|
||||
list.Add(new IngredientInfo(rowId, num));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void _202D_202B_202B_200D_202A_202B_206C_202D_200F_206F_206C_202D_200C_202D_206B_202C_200D_206B_206F_206F_200B_202A_200B_200B_206C_202A_200E_202D_206B_206F_202A_200B_206E_200C_202B_202A_206A_200F_202D_202B_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogDebug(P_1, P_2);
|
||||
}
|
||||
|
||||
static bool _200B_202E_200F_200C_206F_202B_206F_200E_206B_200E_200E_206E_206D_202D_200E_206C_206A_200F_200C_206F_202D_202E_206C_206B_202D_206E_206C_200E_206B_206B_202E_202E_200C_200F_206B_206D_202B_200C_200E_202B_202E(NpcPositionCache P_0)
|
||||
{
|
||||
return P_0.IsBuilt;
|
||||
}
|
||||
|
||||
static void _200D_202E_206C_202D_200B_202A_202E_202B_202D_200D_200F_206E_206B_200E_200C_200C_200D_206F_206C_202D_200E_206D_202C_202A_200C_200E_200C_200C_206F_202A_202C_200D_202B_202D_200C_206B_200B_206E_200E_202D_202E(ILogger P_0, string P_1, object[] P_2)
|
||||
{
|
||||
P_0.LogWarning(P_1, P_2);
|
||||
}
|
||||
|
||||
static ShopSearchResult _206A_202E_202A_200E_202C_202E_202A_200D_200B_200C_200F_200B_202A_206F_202A_200F_202E_202E_206B_202A_200C_200F_206F_200B_200B_200B_202B_206B_202D_202B_206C_202B_206B_200C_206F_200C_206F_206A_206C_206E_202E(VendorResolver P_0, uint P_1)
|
||||
{
|
||||
return P_0.FindGilVendor(P_1);
|
||||
}
|
||||
|
||||
static bool _206D_200F_206D_202D_202D_200E_206B_206A_200E_200F_200C_202D_202C_202E_206D_206F_202C_200F_206A_200B_202A_206A_202B_206C_200D_202B_202C_202A_200B_206E_202E_206D_200E_200D_200C_206C_200D_200D_206B_206A_202E(ShopSearchResult P_0, ShopSearchResult P_1)
|
||||
{
|
||||
return P_0 == P_1;
|
||||
}
|
||||
|
||||
static uint _202D_202E_206F_206C_206F_202E_200B_200E_202B_202B_200F_200F_206A_200F_200E_206A_202C_202D_206B_206E_200D_206C_206E_206E_200D_200E_200F_200B_202A_202B_206B_202D_206B_200B_202D_200E_202A_206B_200B_202E_202E(ShopSearchResult P_0)
|
||||
{
|
||||
return P_0.NpcId;
|
||||
}
|
||||
|
||||
static uint _200D_200D_206C_202A_200D_206A_206E_202E_206D_206F_206E_200B_206D_202E_206D_200C_200F_206C_202C_206E_206E_206E_202B_206F_200C_206B_206F_206D_202E_206C_206C_200B_206B_206E_202D_206B_206D_202E_206F_206A_202E(ShopSearchResult P_0)
|
||||
{
|
||||
return P_0.ShopId;
|
||||
}
|
||||
|
||||
static ushort _206D_202B_200C_206D_206F_200E_202E_202C_200C_202A_206B_202D_202E_200F_202A_202A_200C_200F_202B_206F_206D_206B_206F_202A_206E_206F_200D_206E_202B_206C_206E_206C_200B_206A_202E_200C_206B_202A_206B_206C_202E(ShopSearchResult P_0)
|
||||
{
|
||||
return P_0.TerritoryId;
|
||||
}
|
||||
|
||||
static int _206B_200C_200C_202B_202B_200F_202C_206F_200E_200B_200D_200C_202D_202A_200E_200C_206A_200C_206F_202A_206C_202E_206B_202B_206D_202C_200B_200B_200B_200D_206D_200B_202B_202E_202B_202D_200E_200C_202A_200C_202E(ShopSearchResult P_0)
|
||||
{
|
||||
return P_0.DialogOptionIndex;
|
||||
}
|
||||
|
||||
static Vector3 _202A_200E_206F_206C_202B_202E_200F_206F_202C_202A_206E_200C_200B_202B_200D_206C_206F_206F_200F_206E_206C_200D_202B_202D_200F_206D_206B_200C_206D_206A_206C_206F_200C_206C_200C_206A_200B_202A_200B_202A_202E(ShopSearchResult P_0)
|
||||
{
|
||||
return P_0.NpcPosition;
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue