using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.UI.Misc; using LLib.GameData; using Lumina.Excel; using Lumina.Excel.Sheets; using Questionable.Controller.Steps.Common; using Questionable.Data; using Questionable.Model; using Questionable.Model.Questing; namespace Questionable.Controller.Steps.Shared; internal static class SwitchClassJob { internal sealed class Factory(ClassJobUtils classJobUtils) : SimpleTaskFactory() { public override ITask? CreateTask(Questionable.Model.Quest quest, QuestSequence sequence, QuestStep step) { int num = ((_206A_206B_200C_202D_202B_206A_200B_200D_206A_206D_200E_202B_206D_206E_202C_202B_206D_200F_206D_206E_202C_206A_206B_202D_206A_206A_202A_206D_206E_200C_200C_202C_206F_202A_206C_200E_202C_202E_200C_202E(step) == EInteractionType.SwitchClass) ? 1159912211 : 1159912210); while (true) { int num2 = num; int num3 = 1159912211; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: return new Task(classJobUtils.AsIndividualJobs(_202B_206A_202A_206D_206D_200D_206D_202E_200B_206D_202B_200E_206E_206C_206A_202D_206B_206F_202C_200E_206A_206B_200C_206E_206A_206A_206C_202B_202A_206B_200C_206A_200F_200C_206B_206C_202E_206C_200B_206D_202E(step), quest.Id).Single()); case 1: return null; case 2: goto IL_006e; } continue; IL_006e: num = 1159912210; } } static EInteractionType _206A_206B_200C_202D_202B_206A_200B_200D_206A_206D_200E_202B_206D_206E_202C_202B_206D_200F_206D_206E_202C_206A_206B_202D_206A_206A_202A_206D_206E_200C_200C_202C_206F_202A_206C_200E_202C_202E_200C_202E(QuestStep P_0) { return P_0.InteractionType; } static EExtendedClassJob _202B_206A_202A_206D_206D_200D_206D_202E_200B_206D_202B_200E_206E_206C_206A_202D_206B_206F_202C_200E_206A_206B_200C_206E_206A_206A_206C_202B_202A_206B_200C_206A_200F_200C_206B_206C_202E_206C_200B_206D_202E(QuestStep P_0) { return P_0.TargetClass; } } internal sealed record Task(EClassJob ClassJob) : ITask { [CompilerGenerated] private Type EqualityContract { [CompilerGenerated] get { return _206E_206D_206D_200E_202C_206F_202E_202E_200B_206F_206B_200D_206B_206A_206A_200F_200B_200E_206C_200F_200F_206F_202D_200E_206F_202E_200E_200F_206F_200C_206E_200C_202D_200D_200D_200E_200F_202C_206A_200D_202E(typeof(Task).TypeHandle); } } [MethodImpl(MethodImplOptions.NoInlining)] public override string ToString() { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(11, 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(292179226)); defaultInterpolatedStringHandler.AppendFormatted(ClassJob); 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(1735737295)); return defaultInterpolatedStringHandler.ToStringAndClear(); } [MethodImpl(MethodImplOptions.NoInlining)] [CompilerGenerated] private bool PrintMembers(StringBuilder builder) { _202C_200E_200C_206D_200F_206D_202D_200B_206B_206D_200E_206E_202E_206E_202E_200E_200F_200C_206C_206A_202C_202E_200E_200D_206A_206D_206B_200D_202B_202C_206D_200E_200F_206D_206F_202C_200C_200C_202A_200F_202E(); _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_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(-27440332)); _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_202E(builder, ClassJob.ToString()); return true; } [CompilerGenerated] public bool Equals(Task? other) { int num = (((object)this == other) ? (-777293331) : (-777293333)); while (true) { int num2 = num; int num3 = -777293335; int num4 = num2; int num5 = num4 + num3; int num6 = num4 & num3; switch (num5 - (num6 + num6)) { case 0: num = -777293333; break; case 2: num = (((object)other == null) ? (-777293334) : (-777293332)); break; case 5: num = ((!_200E_206D_200C_200F_202D_200B_206B_200E_206A_206C_202B_200D_206D_206C_202D_206F_202A_206E_206A_202A_206B_200D_206B_200D_200F_202B_202A_202D_200C_206A_206F_200F_206F_206C_202C_200B_200F_202D_202D_206D_202E(EqualityContract, other.EqualityContract)) ? (-777293334) : (-777293336)); break; case 1: return EqualityComparer.Default.Equals(ClassJob, other.ClassJob); case 4: return true; case 3: return false; } } } bool IEquatable.Equals(Task? other) { //ILSpy generated this explicit interface implementation from .override directive in Equals return this.Equals(other); } static Type _206E_206D_206D_200E_202C_206F_202E_202E_200B_206F_206B_200D_206B_206A_206A_200F_200B_200E_206C_200F_200F_206F_202D_200E_206F_202E_200E_200F_206F_200C_206E_200C_202D_200D_200D_200E_200F_202C_206A_200D_202E(RuntimeTypeHandle P_0) { return Type.GetTypeFromHandle(P_0); } static void _202C_200E_200C_206D_200F_206D_202D_200B_206B_206D_200E_206E_202E_206E_202E_200E_200F_200C_206C_206A_202C_202E_200E_200D_206A_206D_206B_200D_202B_202C_206D_200E_200F_206D_206F_202C_200C_200C_202A_200F_202E() { RuntimeHelpers.EnsureSufficientExecutionStack(); } static StringBuilder _206E_206D_206E_206B_200C_200C_206C_206A_200C_202E_200F_206E_206E_202E_202B_200C_202C_202A_200C_206A_200C_200B_200D_200F_206A_206C_202C_200F_202E_200E_200C_202A_200D_202B_202B_200E_200F_202E_206E_202E(StringBuilder P_0, string P_1) { return P_0.Append(P_1); } static bool _200E_206D_200C_200F_202D_200B_206B_200E_206A_206C_202B_200D_206D_206C_202D_206F_202A_206E_206A_202A_206B_200D_206B_200D_200F_202B_202A_202D_200C_206A_206F_200F_206F_206C_202C_200B_200F_202D_202D_206D_202E(Type P_0, Type P_1) { return P_0 == P_1; } } internal sealed class SwitchClassJobExecutor(IObjectTable objectTable) : AbstractDelayedTaskExecutor() { [MethodImpl(MethodImplOptions.NoInlining)] protected unsafe override bool StartInternal() { IPlayerCharacter playerCharacter = _202A_206B_200E_206F_202C_202D_206D_200B_202E_202B_200E_200C_206A_202B_200F_200C_206B_200C_206B_202D_200E_202B_206F_202C_202C_206D_202E_202C_202B_206B_206B_202A_206C_200D_206D_200E_202A_202A_202A_206A_202E(objectTable); int num = ((((playerCharacter != null) ? new uint?(_202B_200B_206B_200C_202D_206C_200E_202A_200E_206A_200B_206B_200B_206A_200B_200F_202B_206E_202C_206B_202B_206E_200D_206E_206A_202C_202C_200E_200D_206A_206B_200B_200D_206F_202D_202C_206B_206A_202E_200E_202E((ICharacter)playerCharacter).RowId) : ((uint?)null)) != (uint?)base.Task.ClassJob) ? (-402111789) : (-402111788)); RaptureGearsetModule* ptr = default(RaptureGearsetModule*); RaptureGearsetModule.GearsetEntry* gearset = default(RaptureGearsetModule.GearsetEntry*); int num6 = default(int); while (true) { int num2 = num; int num3 = -402111787; int num4 = num2; switch ((num4 | num3) - (num4 & num3)) { case 4: num = -402111788; break; case 1: return false; case 3: ptr->EquipGearset(gearset->Id, 0); return true; case 7: { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(21, 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(1883607487)); defaultInterpolatedStringHandler.AppendFormatted(base.Task.ClassJob); throw new TaskException(defaultInterpolatedStringHandler.ToStringAndClear()); } case 5: num6 = 0; num = -402111779; break; case 8: num = ((num6 < 100) ? (-402111787) : (-402111790)); break; case 0: gearset = ptr->GetGearset(num6); num = ((gearset->ClassJob != (byte)base.Task.ClassJob) ? (-402111785) : (-402111786)); break; case 6: ptr = RaptureGearsetModule.Instance(); num = ((ptr == null) ? (-402111790) : (-402111792)); break; case 2: { int num5 = num6; num3 = 1; num4 = num5; int num7 = num4 ^ num3; int num8 = num4 & num3; num6 = num7 + (num8 + num8); num = -402111779; break; } } } } protected override ETaskResult UpdateInternal() { return ETaskResult.TaskComplete; } public override bool ShouldInterruptOnDamage() { return false; } static IPlayerCharacter _202A_206B_200E_206F_202C_202D_206D_200B_202E_202B_200E_200C_206A_202B_200F_200C_206B_200C_206B_202D_200E_202B_206F_202C_202C_206D_202E_202C_202B_206B_206B_202A_206C_200D_206D_200E_202A_202A_202A_206A_202E(IObjectTable P_0) { return P_0.LocalPlayer; } static RowRef _202B_200B_206B_200C_202D_206C_200E_202A_200E_206A_200B_206B_200B_206A_200B_200F_202B_206E_202C_206B_202B_206E_200D_206E_206A_202C_202C_200E_200D_206A_206B_200B_200D_206F_202D_202C_206B_206A_202E_200E_202E(ICharacter P_0) { return P_0.ClassJob; } } }