muffin v7.5.11

This commit is contained in:
alydev 2026-08-17 20:29:32 +10:00
parent addf2d530f
commit 3102923ce2
522 changed files with 41082 additions and 211592 deletions

View file

@ -1,11 +1,8 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Text;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Plugin.Services;
using FFXIVClientStructs.FFXIV.Client.Game;
using FFXIVClientStructs.FFXIV.Client.Game.Character;
@ -20,28 +17,17 @@ internal static class Mount
{
internal sealed record MountTask : ITask
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _206E_202A_200B_206E_202B_206B_202B_206B_200B_206D_206C_206B_206B_202D_206B_200E_202C_200B_202E_200F_202A_200B_202A_200E_200C_206C_206C_206D_200B_206A_206E_206F_202A_200D_200C_200E_200C_202C_202E_202E(typeof(MountTask).TypeHandle);
}
}
public ushort TerritoryId { get; init; }
public EMountIf MountIf { get; init; }
public FFXIVClientStructs.FFXIV.Common.Math.Vector3? Position { get; }
[MethodImpl(MethodImplOptions.NoInlining)]
public MountTask(ushort TerritoryId, EMountIf MountIf, FFXIVClientStructs.FFXIV.Common.Math.Vector3? Position = null)
{
this.TerritoryId = TerritoryId;
this.MountIf = MountIf;
this.Position = ((MountIf == EMountIf.AwayFromPosition) ? new FFXIVClientStructs.FFXIV.Common.Math.Vector3?(Position ?? throw _202C_200E_202C_200D_200F_206F_202E_206F_202A_202E_202D_206A_200D_206A_206D_200C_200C_206A_206E_206B_200B_200B_200B_200D_206A_202A_200F_206A_202B_202E_200E_200D_202A_202A_206F_200E_200C_202B_200D_206A_202E(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>(1692510639))) : ((FFXIVClientStructs.FFXIV.Common.Math.Vector3?)null));
this.Position = ((MountIf == EMountIf.AwayFromPosition) ? new FFXIVClientStructs.FFXIV.Common.Math.Vector3?(Position ?? throw new ArgumentNullException("Position")) : ((FFXIVClientStructs.FFXIV.Common.Math.Vector3?)null));
base._002Ector();
}
@ -50,72 +36,9 @@ internal static class Mount
return true;
}
bool ITask.ShouldRedoOnInterrupt()
{
//ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt
return this.ShouldRedoOnInterrupt();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
return 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>(-9684774);
}
[MethodImpl(MethodImplOptions.NoInlining)]
[CompilerGenerated]
private bool PrintMembers(StringBuilder builder)
{
_206A_206A_206A_206C_206E_200C_200D_202A_200C_200C_202B_202D_202A_206A_202C_206E_206D_206F_202A_206E_206F_202E_202E_206E_200E_206B_202A_200F_202B_202C_206B_202B_200F_200C_206F_206D_200B_200B_200C_206D_202E();
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, global::_003CModule_003E._206C_202A_206D_206A_206E_202A_202B_206F_206D_200F_202D_200F_202D_206A_202C_202B_206D_206A_200E_200E_202D_202D_200D_200C_200D_200D_206D_206E_202A_200F_206E_206C_206D_206A_206D_202B_200F_200D_206E_200C_202E<string>(-871596524));
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, TerritoryId.ToString());
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, global::_003CModule_003E._202E_206C_200F_206B_206A_202A_202C_206F_200C_206C_202B_206B_206D_206D_206D_202D_206E_202E_206C_206E_206D_202C_206F_200D_202D_202E_206A_206D_202A_206A_202B_200D_200C_206D_202B_200B_200D_200C_206E_206B_202E<string>(1100545370));
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, MountIf.ToString());
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_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));
_202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(builder, Position.ToString());
return true;
}
[CompilerGenerated]
public bool Equals(MountTask? other)
{
int num = (((object)this == other) ? (-244243578) : (-244243579));
while (true)
{
int num2 = num;
int num3 = -244243580;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 0:
num = -244243579;
break;
case 5:
return EqualityComparer<FFXIVClientStructs.FFXIV.Common.Math.Vector3?>.Default.Equals(Position, other.Position);
case 1:
num = (((object)other == null) ? (-244243582) : (-244243584));
break;
case 6:
return false;
case 3:
num = ((!EqualityComparer<ushort>.Default.Equals(TerritoryId, other.TerritoryId)) ? (-244243582) : (-244243581));
break;
case 4:
num = ((!_206A_206E_206B_202B_206B_206A_200C_200D_202E_206B_202B_200B_206B_202E_202B_206A_206B_202A_200B_206D_202E_202A_202B_202B_206A_200F_202E_206A_206D_206C_206B_206F_206B_202E_202A_202D_202D_200F_202C_202B_202E(EqualityContract, other.EqualityContract)) ? (-244243582) : (-244243577));
break;
case 2:
return true;
case 7:
num = ((!EqualityComparer<EMountIf>.Default.Equals(MountIf, other.MountIf)) ? (-244243582) : (-244243583));
break;
}
}
}
bool IEquatable<MountTask>.Equals(MountTask? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
return "Mount";
}
[CompilerGenerated]
@ -125,150 +48,47 @@ internal static class Mount
MountIf = this.MountIf;
Position = this.Position;
}
static ArgumentNullException _202C_200E_202C_200D_200F_206F_202E_206F_202A_202E_202D_206A_200D_206A_206D_200C_200C_206A_206E_206B_200B_200B_200B_200D_206A_202A_200F_206A_202B_202E_200E_200D_202A_202A_206F_200E_200C_202B_200D_206A_202E(string P_0)
{
return new ArgumentNullException(P_0);
}
static Type _206E_202A_200B_206E_202B_206B_202B_206B_200B_206D_206C_206B_206B_202D_206B_200E_202C_200B_202E_200F_202A_200B_202A_200E_200C_206C_206C_206D_200B_206A_206E_206F_202A_200D_200C_200E_200C_202C_202E_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static void _206A_206A_206A_206C_206E_200C_200D_202A_200C_200C_202B_202D_202A_206A_202C_206E_206D_206F_202A_206E_206F_202E_202E_206E_200E_206B_202A_200F_202B_202C_206B_202B_200F_200C_206F_206D_200B_200B_200C_206D_202E()
{
RuntimeHelpers.EnsureSufficientExecutionStack();
}
static StringBuilder _202B_202A_202E_202B_206B_206C_202E_200D_202C_200F_206D_202A_206E_202E_202A_202A_200E_200D_200F_206A_202D_202A_200C_202D_202B_200C_206B_206F_200B_202A_206B_202C_206C_202B_200E_200C_202B_200E_206B_200F_202E(StringBuilder P_0, string P_1)
{
return P_0.Append(P_1);
}
static bool _206A_206E_206B_202B_206B_206A_200C_200D_202E_206B_202B_200B_206B_202E_202B_206A_206B_202A_200B_206D_202E_202A_202B_202B_206A_200F_202E_206A_206D_206C_206B_206F_206B_202E_202A_202D_202D_200F_202C_202B_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
}
}
internal sealed class MountEvaluator(GameFunctions gameFunctions, ICondition condition, TerritoryData territoryData, IClientState clientState, IObjectTable objectTable, ILogger<MountEvaluator> logger)
{
[MethodImpl(MethodImplOptions.NoInlining)]
public unsafe MountResult EvaluateMountState(MountTask task, bool dryRun, ref long retryAtMs)
{
int num = ((!_200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(condition, ConditionFlag.Mounted)) ? (-1122253637) : (-1122253641));
float num8 = default(float);
LogLevel logLevel = default(LogLevel);
while (true)
if (condition[ConditionFlag.Mounted])
{
int num2 = num;
int num3 = -1122253647;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
int num7;
switch (num5 - (num6 + num6))
{
case 14:
num = ((!(num8 < 30f)) ? (-1122253635) : (-1122253640));
break;
case 3:
num7 = 6;
goto IL_00b6;
case 8:
_202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, 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>(-353154207), new object[1] { task.TerritoryId });
num = (_200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(condition, ConditionFlag.InCombat) ? (-1122253644) : (-1122253643));
break;
case 4:
num = ((!dryRun) ? (-1122253642) : (-1122253663));
break;
case 5:
return MountResult.WhenOutOfCombat;
case 12:
_202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, 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>(-1123067859), new object[2] { num8, task.TerritoryId });
num = -1122253639;
break;
case 2:
_202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, 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>(603618635), Array.Empty<object>());
return MountResult.DontMount;
case 11:
num7 = 1;
goto IL_00b6;
case 6:
return MountResult.DontMount;
case 10:
num = (dryRun ? (-1122253646) : (-1122253638));
break;
case 17:
{
IPlayerCharacter playerCharacter = _206D_202A_206A_206C_206E_206B_206D_200F_200D_206C_202B_200F_206D_202B_202B_202A_200F_200D_206A_202D_200F_200C_206B_202A_202E_200B_202C_206B_206E_206D_206D_200C_202E_206B_200C_200F_200B_202B_202C_206F_202E(objectTable);
num8 = System.Numerics.Vector3.Distance((FFXIVClientStructs.FFXIV.Common.Math.Vector3)((playerCharacter != null) ? _206A_202D_206A_206C_202C_206D_200C_200D_202A_206C_202B_202D_206C_206D_206C_206C_202E_206D_200C_202C_206E_206B_202A_206C_200B_200B_206B_200E_206D_202D_200F_202D_206B_200F_206F_202B_202C_206B_200D_200D_202E((IGameObject)playerCharacter) : ((System.Numerics.Vector3)FFXIVClientStructs.FFXIV.Common.Math.Vector3.Zero)), task.Position.GetValueOrDefault());
num = ((task.TerritoryId != _200D_200E_200C_202C_200D_202A_200E_206A_202B_206E_202E_206B_200B_202B_200D_202E_200C_206F_202A_206A_206D_206D_202B_206F_202A_206B_206F_200E_206E_200D_202C_206A_202C_202D_206C_206B_200E_200C_200B_200D_202E(clientState)) ? (-1122253635) : (-1122253633));
break;
}
case 7:
return MountResult.Mount;
case 1:
num = ((task.MountIf != EMountIf.AwayFromPosition) ? (-1122253639) : (-1122253664));
break;
case 15:
_202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, 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>(1312445464), Array.Empty<object>());
return MountResult.DontMount;
case 0:
num = -1122253641;
break;
case 13:
num = ((!gameFunctions.HasStatusPreventingMount()) ? (-1122253648) : (-1122253634));
break;
case 9:
num = (FFXIVClientStructs.FFXIV.Client.Game.Conditions.Instance()->Diving ? (-1122253635) : (-1122253645));
break;
case 18:
_202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E((ILogger)logger, logLevel, 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>(2123178136), new object[1] { task.TerritoryId });
return MountResult.DontMount;
case 16:
{
retryAtMs = _202A_206E_202A_202E_200C_200F_200E_206C_206A_206A_202A_206A_206C_202D_200D_202D_200B_202B_206C_206B_206A_200F_200C_206D_206C_206C_200E_200B_200B_202A_206C_202D_200F_200D_206E_200D_200D_206F_206A_202D_202E() + 500;
num = -1122253642;
break;
}
IL_00b6:
logLevel = (LogLevel)num7;
num = (territoryData.CanUseMount(task.TerritoryId) ? (-1122253636) : (-1122253661));
break;
}
return MountResult.DontMount;
}
}
static bool _200D_200F_200B_200B_200E_206D_206D_200C_206E_200C_202A_206D_202C_206B_206E_200F_206F_202D_202B_200B_202A_206B_206A_202A_202E_202D_200E_200F_202B_206C_200D_206C_206F_202D_206D_206E_202A_206D_206F_202E_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
static void _202B_202E_200B_202E_206F_206F_202E_206A_200C_202E_206A_202E_206E_200D_200C_200D_200B_202E_200C_200E_206D_200C_202B_202D_206E_206B_206B_206C_202C_200C_206D_200B_202D_206E_200C_202E_206B_206E_200B_202C_202E(ILogger P_0, LogLevel P_1, string P_2, object[] P_3)
{
P_0.Log(P_1, P_2, P_3);
}
static IPlayerCharacter _206D_202A_206A_206C_206E_206B_206D_200F_200D_206C_202B_200F_206D_202B_202B_202A_200F_200D_206A_202D_200F_200C_206B_202A_202E_200B_202C_206B_206E_206D_206D_200C_202E_206B_200C_200F_200B_202B_202C_206F_202E(IObjectTable P_0)
{
return P_0.LocalPlayer;
}
static System.Numerics.Vector3 _206A_202D_206A_206C_202C_206D_200C_200D_202A_206C_202B_202D_206C_206D_206C_206C_202E_206D_200C_202C_206E_206B_202A_206C_200B_200B_206B_200E_206D_202D_200F_202D_206B_200F_206F_202B_202C_206B_200D_200D_202E(IGameObject P_0)
{
return P_0.Position;
}
static uint _200D_200E_200C_202C_200D_202A_200E_206A_202B_206E_202E_206B_200B_202B_200D_202E_200C_206F_202A_206A_206D_206D_202B_206F_202A_206B_206F_200E_206E_200D_202C_206A_202C_202D_206C_206B_200E_200C_200B_200D_202E(IClientState P_0)
{
return P_0.TerritoryType;
}
static long _202A_206E_202A_202E_200C_200F_200E_206C_206A_206A_202A_206A_206C_202D_200D_202D_200B_202B_206C_206B_206A_200F_200C_206D_206C_206C_200E_200B_200B_202A_206C_202D_200F_200D_206E_200D_200D_206F_206A_202D_202E()
{
return Environment.TickCount64;
LogLevel logLevel = ((!dryRun) ? LogLevel.Debug : LogLevel.None);
if (!territoryData.CanUseMount(task.TerritoryId))
{
logger.Log(logLevel, "Can't use mount in current territory {Id}", task.TerritoryId);
return MountResult.DontMount;
}
if (gameFunctions.HasStatusPreventingMount())
{
logger.Log(logLevel, "Can't mount due to status preventing sprint or mount");
return MountResult.DontMount;
}
if (task.MountIf == EMountIf.AwayFromPosition)
{
float num = System.Numerics.Vector3.Distance((FFXIVClientStructs.FFXIV.Common.Math.Vector3)(objectTable.LocalPlayer?.Position ?? ((System.Numerics.Vector3)FFXIVClientStructs.FFXIV.Common.Math.Vector3.Zero)), task.Position.GetValueOrDefault());
if (task.TerritoryId == clientState.TerritoryType && num < 30f && !FFXIVClientStructs.FFXIV.Client.Game.Conditions.Instance()->Diving)
{
logger.Log(logLevel, "Not using mount, as we're close to the target");
return MountResult.DontMount;
}
logger.Log(logLevel, "Want to use mount if away from destination ({Distance} yalms), trying (in territory {Id})...", num, task.TerritoryId);
}
logger.Log(logLevel, "Want to use mount, trying (in territory {Id})...", task.TerritoryId);
if (!condition[ConditionFlag.InCombat])
{
if (dryRun)
{
retryAtMs = Environment.TickCount64 + 500;
}
return MountResult.Mount;
}
return MountResult.WhenOutOfCombat;
}
}
@ -284,96 +104,51 @@ internal static class Mount
return mountEvaluator.EvaluateMountState(base.Task, dryRun: false, ref _retryAtMs) == MountResult.Mount;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override ETaskResult Update()
{
int num = ((!_mountTriggered) ? (-694294955) : (-694294952));
while (true)
if (_mountTriggered && !condition[ConditionFlag.Mounted] && Environment.TickCount64 > _retryAtMs)
{
int num2 = num;
int num3 = -694294945;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
logger.LogDebug("Not mounted, retrying...");
_mountTriggered = false;
_retryAtMs = long.MaxValue;
}
if (!_mountTriggered)
{
if (gameFunctions.HasStatusPreventingMount())
{
case 2:
num = ((!gameFunctions.HasStatusPreventingMount()) ? (-694294957) : (-694294950));
break;
case 3:
ResetProgressTimer();
logger.LogDebug("Can't mount due to status preventing sprint or mount");
return ETaskResult.TaskComplete;
case 5:
_200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_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>(1137964517), Array.Empty<object>());
return ETaskResult.TaskComplete;
case 6:
_200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_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>(614136280), Array.Empty<object>());
}
base.ProgressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount());
ResetProgressTimer();
_retryAtMs = Environment.TickCount64 + 5000;
return ETaskResult.StillRunning;
}
if (condition[ConditionFlag.Mounted])
{
ResetProgressTimer();
return ETaskResult.TaskComplete;
}
if (base.ProgressContext != null)
{
if (base.ProgressContext.WasInterrupted())
{
logger.LogDebug("Mount was interrupted");
_mountTriggered = false;
_retryAtMs = long.MaxValue;
num = -694294955;
break;
case 11:
ResetProgressTimer();
num = -694294945;
break;
case 10:
num = (_mountTriggered ? (-694294946) : (-694294947));
break;
case 9:
num = ((!base.ProgressContext.WasInterrupted()) ? (-694294958) : (-694294953));
break;
case 15:
num = ((base.ProgressContext == null) ? (-694294945) : (-694294954));
break;
case 14:
num = ((_206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E() <= _retryAtMs) ? (-694294955) : (-694294951));
break;
case 7:
num = (_200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(condition, ConditionFlag.Mounted) ? (-694294955) : (-694294959));
break;
case 13:
num = ((!base.ProgressContext.WasSuccessful()) ? (-694294945) : (-694294956));
break;
case 1:
num = ((!_200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(condition, ConditionFlag.Mounted)) ? (-694294960) : (-694294948));
break;
case 4:
num = -694294952;
break;
case 8:
_200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_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>(1257322524), Array.Empty<object>());
_mountTriggered = false;
return ETaskResult.StillRunning;
case 0:
return ETaskResult.StillRunning;
case 12:
base.ProgressContext = InteractionProgressContext.FromActionUse(() => _mountTriggered = gameFunctions.Mount());
ResetProgressTimer();
_retryAtMs = _206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E() + 5000;
return ETaskResult.StillRunning;
}
if (base.ProgressContext.WasSuccessful())
{
ResetProgressTimer();
}
}
return ETaskResult.StillRunning;
}
public override bool ShouldInterruptOnDamage()
{
return false;
}
static bool _200E_206F_200E_202D_200C_206F_200F_202C_202B_200F_202B_200E_206D_200F_202D_202D_206F_202D_200E_200D_200E_206A_206B_206F_202C_202E_202D_202B_206E_206E_206C_206A_206C_200E_200C_200C_206D_200B_200B_200C_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
static long _206D_202C_200D_206E_202D_206D_206D_206B_202B_200F_200E_206C_202B_206B_200F_206E_202C_206F_200F_206E_206B_202C_202E_206F_206A_202B_202D_202A_206F_206A_200F_202B_206F_202E_202A_206C_200D_202A_206D_202E_202E()
{
return Environment.TickCount64;
}
static void _200D_206B_202E_200F_200E_202A_200B_202B_200F_206A_202C_206D_202E_202C_200F_202A_206E_202A_202C_202A_202A_200E_206C_202A_206A_202E_206E_200F_202B_200B_200F_202A_206F_206C_200F_202E_202A_206A_202B_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
}
internal enum MountResult
@ -385,74 +160,14 @@ internal static class Mount
internal sealed record UnmountTask : ITask
{
[CompilerGenerated]
private Type EqualityContract
{
[CompilerGenerated]
get
{
return _200C_206C_200F_206C_202C_202E_200C_200D_202B_202B_200C_206B_200D_206D_202E_206E_206F_206E_206E_202B_202B_200C_206E_202B_200F_206C_200C_200E_206F_206C_206D_200B_200C_206D_206D_202C_206E_200F_200E_202B_202E(typeof(UnmountTask).TypeHandle);
}
}
public bool ShouldRedoOnInterrupt()
{
return true;
}
bool ITask.ShouldRedoOnInterrupt()
{
//ILSpy generated this explicit interface implementation from .override directive in ShouldRedoOnInterrupt
return this.ShouldRedoOnInterrupt();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override string ToString()
{
return 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>(-2092040442);
}
[CompilerGenerated]
public bool Equals(UnmountTask? other)
{
int num = (((object)this == other) ? (-325437699) : (-325437704));
while (true)
{
int num2 = num;
int num3 = -325437700;
int num4 = num2;
switch ((num4 | num3) - (num4 & num3))
{
case 3:
return false;
case 0:
return _202E_200D_202B_206F_202E_206C_200C_200E_202A_206F_200E_206F_202E_202D_202C_206D_202E_200C_206D_206D_200F_200B_206F_202C_202D_206E_200E_206B_206F_200C_202E_206C_206C_206F_206B_206D_206B_200D_202D_206F_202E(EqualityContract, other.EqualityContract);
case 4:
num = (((object)other == null) ? (-325437697) : (-325437700));
break;
case 1:
return true;
case 2:
num = -325437704;
break;
}
}
}
bool IEquatable<UnmountTask>.Equals(UnmountTask? other)
{
//ILSpy generated this explicit interface implementation from .override directive in Equals
return this.Equals(other);
}
static Type _200C_206C_200F_206C_202C_202E_200C_200D_202B_202B_200C_206B_200D_206D_202E_206E_206F_206E_206E_202B_202B_200C_206E_202B_200F_206C_200C_200E_206F_206C_206D_200B_200C_206D_206D_202C_206E_200F_200E_202B_202E(RuntimeTypeHandle P_0)
{
return Type.GetTypeFromHandle(P_0);
}
static bool _202E_200D_202B_206F_202E_206C_200C_200E_202A_206F_200E_206F_202E_202D_202C_206D_202E_200C_206D_206D_200F_200B_206F_202C_202D_206E_200E_206B_206F_200C_202E_206C_206C_206F_206B_206D_206B_200D_202D_206F_202E(Type P_0, Type P_1)
{
return P_0 == P_1;
return "Unmount";
}
}
@ -462,161 +177,75 @@ internal static class Mount
private long _continueAtMs;
[MethodImpl(MethodImplOptions.NoInlining)]
protected override bool Start()
{
int num = (_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted) ? 488246470 : 488246469);
while (true)
if (!condition[ConditionFlag.Mounted])
{
int num2 = num;
int num3 = 488246471;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
_unmountTriggered = gameFunctions.Unmount();
_continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000;
return true;
case 2:
return false;
case 4:
gameFunctions.Unmount();
_continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000;
return true;
case 3:
num = 488246469;
break;
case 1:
_202C_202D_200C_202C_200B_206C_200E_200F_202B_200F_200C_200E_206C_206A_200C_206F_202A_200B_202D_206E_206A_202D_206A_206A_200C_202B_200D_206B_206D_206F_202C_206F_202A_206D_202E_202E_202B_200F_200D_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>(-194036115), Array.Empty<object>());
num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InFlight)) ? 488246471 : 488246467);
break;
}
return false;
}
logger.LogDebug("Step explicitly wants no mount, trying to unmount...");
if (condition[ConditionFlag.InFlight])
{
gameFunctions.Unmount();
_continueAtMs = Environment.TickCount64 + 1000;
return true;
}
_unmountTriggered = gameFunctions.Unmount();
_continueAtMs = Environment.TickCount64 + 1000;
return true;
}
public override ETaskResult Update()
{
int num = ((_202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() >= _continueAtMs) ? 353264902 : 353264910);
while (true)
if (Environment.TickCount64 < _continueAtMs)
{
int num2 = num;
int num3 = 353264907;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 13:
num = ((!IsUnmounting()) ? 353264903 : 353264898);
break;
case 14:
num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InCombat)) ? 353264899 : 353264904);
break;
case 6:
_continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000;
return ETaskResult.StillRunning;
case 1:
num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted)) ? 353264899 : 353264901);
break;
case 0:
num = 353264910;
break;
case 2:
return ETaskResult.TaskComplete;
case 3:
_unmountTriggered = gameFunctions.Unmount();
_continueAtMs = _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E() + 1000;
return ETaskResult.StillRunning;
case 11:
num = ((!_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.InFlight)) ? 353264911 : 353264897);
break;
case 12:
num = (_unmountTriggered ? 353264906 : 353264896);
break;
case 5:
return ETaskResult.StillRunning;
case 7:
return ETaskResult.StillRunning;
case 4:
_unmountTriggered = gameFunctions.Unmount();
num = 353264909;
break;
case 8:
num = (_202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(condition, ConditionFlag.Mounted) ? 353264908 : 353264905);
break;
case 10:
gameFunctions.Unmount();
num = 353264909;
break;
case 9:
return ETaskResult.StillRunning;
}
return ETaskResult.StillRunning;
}
if (IsUnmounting())
{
return ETaskResult.StillRunning;
}
if (!_unmountTriggered)
{
if (condition[ConditionFlag.InFlight])
{
gameFunctions.Unmount();
}
else
{
_unmountTriggered = gameFunctions.Unmount();
}
_continueAtMs = Environment.TickCount64 + 1000;
return ETaskResult.StillRunning;
}
if (condition[ConditionFlag.Mounted] && condition[ConditionFlag.InCombat])
{
_unmountTriggered = gameFunctions.Unmount();
_continueAtMs = Environment.TickCount64 + 1000;
return ETaskResult.StillRunning;
}
if (!condition[ConditionFlag.Mounted])
{
return ETaskResult.TaskComplete;
}
return ETaskResult.StillRunning;
}
private unsafe bool IsUnmounting()
{
IPlayerCharacter playerCharacter = _200B_202D_206D_206F_206B_202D_206B_206C_200C_202B_206F_206C_206E_200C_200E_202E_202D_202E_206C_206B_202B_200D_202B_206A_202B_206E_202B_206A_206E_206D_206D_200D_202D_202B_206E_200C_202D_206C_202E_202A_202E(objectTable);
int num = ((playerCharacter == null) ? 117430025 : 117430026);
while (true)
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
int num2 = num;
int num3 = 117430027;
int num4 = num2;
int num5 = num4 + num3;
int num6 = num4 & num3;
switch (num5 - (num6 + num6))
{
case 0:
goto IL_0052;
case 2:
return false;
case 1:
{
BattleChara* ptr = (BattleChara*)_200F_202B_206E_200F_206E_200C_200C_200F_206E_206D_206C_200D_202D_206E_200C_200E_206B_202D_202C_206D_206A_206D_200C_206E_200D_202E_202B_206F_200B_202D_206F_202A_206C_200E_206E_200E_206A_200D_202E_202E((IGameObject)playerCharacter);
byte flags = ptr->Mount.Flags;
num3 = 1;
num4 = flags;
return num4 + num3 - (num4 | num3) == 1;
}
}
continue;
IL_0052:
num = 117430026;
BattleChara* address = (BattleChara*)localPlayer.Address;
return (address->Mount.Flags & 1) == 1;
}
return false;
}
public override bool ShouldInterruptOnDamage()
{
return false;
}
static bool _202B_202C_206F_200E_202E_206E_200E_200C_200C_206B_202D_200F_202C_206F_206D_206A_200E_202B_200D_206A_202C_202A_200B_206A_200D_202B_206B_206F_202B_202D_202D_200D_206A_206A_202E_200C_200F_200B_202C_206C_202E(ICondition P_0, ConditionFlag P_1)
{
return P_0[P_1];
}
static void _202C_202D_200C_202C_200B_206C_200E_200F_202B_200F_200C_200E_206C_206A_200C_206F_202A_200B_202D_206E_206A_202D_206A_206A_200C_202B_200D_206B_206D_206F_202C_206F_202A_206D_202E_202E_202B_200F_200D_202A_202E(ILogger P_0, string P_1, object[] P_2)
{
P_0.LogDebug(P_1, P_2);
}
static long _202B_206A_206A_206D_206A_200C_200F_206E_206F_206D_206C_202A_206B_206C_200C_202C_206F_206D_206C_200E_202E_200C_200C_200C_202A_202E_206B_200E_206F_200B_206C_202B_200E_200F_206E_202C_202D_206A_200C_206D_202E()
{
return Environment.TickCount64;
}
static IPlayerCharacter _200B_202D_206D_206F_206B_202D_206B_206C_200C_202B_206F_206C_206E_200C_200E_202E_202D_202E_206C_206B_202B_200D_202B_206A_202B_206E_202B_206A_206E_206D_206D_200D_202D_202B_206E_200C_202D_206C_202E_202A_202E(IObjectTable P_0)
{
return P_0.LocalPlayer;
}
static nint _200F_202B_206E_200F_206E_200C_200C_200F_206E_206D_206C_200D_202D_206E_200C_200E_206B_202D_202C_206D_206A_206D_200C_206E_200D_202E_202B_206F_200B_202D_206F_202A_206C_200E_206E_200E_206A_200D_202E_202E(IGameObject P_0)
{
return P_0.Address;
}
}
public enum EMountIf