muffin v7.5.6
This commit is contained in:
parent
6266f9e6b7
commit
addf2d530f
619 changed files with 264792 additions and 446022 deletions
|
|
@ -0,0 +1,603 @@
|
|||
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;
|
||||
using Dalamud.Game.ClientState.Objects.Types;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||
using FFXIVClientStructs.FFXIV.Common.Component.BGCollision;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Questionable.Controller.Steps;
|
||||
using Questionable.External;
|
||||
using Questionable.Functions;
|
||||
using Questionable.Model;
|
||||
|
||||
namespace Questionable.Controller.CustomDelivery;
|
||||
|
||||
internal sealed class DeliveryNpcApproachExecutor(NavmeshIpc navmeshIpc, MovementController movementController, GameFunctions gameFunctions, IObjectTable objectTable, IClientState clientState, ILogger<DeliveryNpcApproachExecutor> logger) : TaskExecutor<DeliveryNpcApproachTask>(), IStoppableTaskExecutor, ITaskExecutor, IDisposable
|
||||
{
|
||||
private readonly List<Vector3> _candidates = new List<Vector3>();
|
||||
|
||||
private CancellationTokenSource? _cancellationTokenSource;
|
||||
|
||||
private Task<NavPathfindResult>? _pathfindTask;
|
||||
|
||||
private int _candidateIndex;
|
||||
|
||||
private bool _moving;
|
||||
|
||||
private float _interactionDistance;
|
||||
|
||||
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);
|
||||
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)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -965250056;
|
||||
int num4 = num2;
|
||||
int num14;
|
||||
int num15;
|
||||
float num16;
|
||||
Vector3 position;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[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)
|
||||
{
|
||||
int num2 = num;
|
||||
int num3 = -1907182938;
|
||||
int num4 = num2;
|
||||
float num5;
|
||||
switch ((num4 | num3) - (num4 & num3))
|
||||
{
|
||||
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;
|
||||
}
|
||||
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:
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool HasLineOfSight(Vector3 from, Vector3 to)
|
||||
{
|
||||
return HasLineOfSightAtHeight(from, to, 2f);
|
||||
}
|
||||
|
||||
private static bool HasBodyClearance(Vector3 position, float radius)
|
||||
{
|
||||
int num = 0;
|
||||
int num2 = 883120263;
|
||||
while (true)
|
||||
{
|
||||
int num3 = num2;
|
||||
int num4 = 883120261;
|
||||
int num5 = num3;
|
||||
int num6 = num5 + num4;
|
||||
int num7 = num5 & num4;
|
||||
switch (num6 - (num7 + num7))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool HasCollisionFreePath(Vector3 start, IReadOnlyList<Vector3> waypoints)
|
||||
{
|
||||
Vector3 vector = start;
|
||||
IEnumerator<Vector3> enumerator = waypoints.GetEnumerator();
|
||||
try
|
||||
{
|
||||
int num = -1337017310;
|
||||
Vector3 current = default(Vector3);
|
||||
while (true)
|
||||
{
|
||||
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 true;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
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();
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue