Decompiled source of ThreadspunWraithPhantomOverhaul v0.1.1

ThreadspunWraithPhantomOverhaul.dll

Decompiled 4 days ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using HutongGames.PlayMaker;
using HutongGames.PlayMaker.Actions;
using Microsoft.CodeAnalysis;
using Silksong.AssetHelper.ManagedAssets;
using Silksong.FsmUtil;
using TeamCherry.Localization;
using TeamCherry.SharedUtils;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("ThreadspunWraithPhantomOverhaul")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("0.1.1.0")]
[assembly: AssemblyInformationalVersion("0.1.1+34ff701926fc811922ac2d0000f1b498a2ab0a82")]
[assembly: AssemblyProduct("ThreadspunWraithPhantomOverhaul")]
[assembly: AssemblyTitle("ThreadspunWraithPhantomOverhaul")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/CCArchive878/ThreadspunWraithPhantomOverhaul")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace BepInEx
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class BepInAutoPluginAttribute : Attribute
	{
		public BepInAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
		{
		}
	}
}
namespace BepInEx.Preloader.Core.Patching
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class PatcherAutoPluginAttribute : Attribute
	{
		public PatcherAutoPluginAttribute(string? id = null, string? name = null, string? version = null)
		{
		}
	}
}
namespace ThreadspunWraithPhantomOverhaul
{
	internal static class AssetManager
	{
		private static readonly Dictionary<Type, Dictionary<string, Object>> Assets = new Dictionary<Type, Dictionary<string, Object>>();

		private static void TryAdd<T>(T asset) where T : Object
		{
			string name = ((Object)asset).name;
			if (Has(name))
			{
				return;
			}
			Type type = ((object)asset).GetType();
			if (Assets.ContainsKey(type))
			{
				Dictionary<string, Object> dictionary = Assets[type];
				if (dictionary != null)
				{
					if (dictionary.ContainsKey(name))
					{
						Object val = dictionary[name];
						if (!(val != (Object)null))
						{
							Assets[type][name] = (Object)(object)asset;
						}
					}
					else
					{
						Assets[type].Add(name, (Object)(object)asset);
					}
				}
				else
				{
					Assets.Add(type, new Dictionary<string, Object>());
				}
			}
			else
			{
				Assets.Add(type, new Dictionary<string, Object> { [name] = (Object)(object)asset });
			}
		}

		internal static void LoadTextures()
		{
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			string[] manifestResourceNames = executingAssembly.GetManifestResourceNames();
			foreach (string text in manifestResourceNames)
			{
				using Stream stream = executingAssembly.GetManifestResourceStream(text);
				if (stream == null)
				{
					continue;
				}
				byte[] array = new byte[stream.Length];
				int num = 0;
				for (int j = 0; j < array.Length; j += num)
				{
					num = stream.Read(array.AsSpan(j));
					if (num == 0)
					{
						break;
					}
				}
				Texture2D val = new Texture2D(2, 2);
				string name = text.Split('.')[^2];
				((Object)val).name = name;
				ImageConversion.LoadImage(val, array);
				TryAdd<Texture2D>(val);
			}
		}

		private static bool Has(string assetName)
		{
			foreach (var (_, dictionary2) in Assets)
			{
				foreach (var (text2, val2) in dictionary2)
				{
					if (assetName == text2 && Object.op_Implicit(val2))
					{
						return true;
					}
				}
			}
			return false;
		}

		internal static T? Get<T>(string assetName) where T : Object
		{
			Type typeFromHandle = typeof(T);
			if (Assets.ContainsKey(typeFromHandle))
			{
				Dictionary<string, Object> dictionary = Assets[typeFromHandle];
				if (dictionary != null)
				{
					if (dictionary.ContainsKey(assetName))
					{
						Object val = dictionary[assetName];
						if (val != (Object)null)
						{
							return (T)(object)((val is T) ? val : null);
						}
						return default(T);
					}
					return default(T);
				}
				return default(T);
			}
			return default(T);
		}
	}
	public class InvokeCoroutine : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <Coroutine>d__3 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public InvokeCoroutine <>4__this;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Coroutine>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = <>4__this._coroutine();
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					((FsmStateAction)<>4__this).Finish();
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private readonly Func<IEnumerator> _coroutine;

		private readonly bool _wait;

		public InvokeCoroutine(Func<IEnumerator> coroutine, bool wait)
		{
			_coroutine = coroutine;
			_wait = wait;
			((FsmStateAction)this)..ctor();
		}

		[IteratorStateMachine(typeof(<Coroutine>d__3))]
		private IEnumerator Coroutine()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Coroutine>d__3(0)
			{
				<>4__this = this
			};
		}

		public override void OnEnter()
		{
			((FsmStateAction)this).Fsm.Owner.StartCoroutine(_wait ? Coroutine() : _coroutine());
			if (!_wait)
			{
				((FsmStateAction)this).Finish();
			}
		}
	}
	public class InvokeMethod : FsmStateAction
	{
		private readonly Action _action;

		public InvokeMethod(Action action)
		{
			_action = action;
		}

		public override void OnEnter()
		{
			_action();
			((FsmStateAction)this).Finish();
		}
	}
	internal class FleetingWraith : MonoBehaviour
	{
		[CompilerGenerated]
		private sealed class <AddDragoonWraiths>d__39 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <WraithPrefab>5__1;

			private GameObject <One>5__2;

			private GameObject <Two>5__3;

			private GameObject <Three>5__4;

			private GameObject <Four>5__5;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <AddDragoonWraiths>d__39(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<WraithPrefab>5__1 = null;
				<One>5__2 = null;
				<Two>5__3 = null;
				<Three>5__4 = null;
				<Four>5__5 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0212: Unknown result type (might be due to invalid IL or missing references)
				//IL_0217: Unknown result type (might be due to invalid IL or missing references)
				//IL_0228: Unknown result type (might be due to invalid IL or missing references)
				//IL_0243: Unknown result type (might be due to invalid IL or missing references)
				//IL_0254: Unknown result type (might be due to invalid IL or missing references)
				//IL_0264: Unknown result type (might be due to invalid IL or missing references)
				//IL_0279: Expected O, but got Unknown
				//IL_028a: Unknown result type (might be due to invalid IL or missing references)
				//IL_028f: Unknown result type (might be due to invalid IL or missing references)
				//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
				//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_02f1: Expected O, but got Unknown
				//IL_0302: Unknown result type (might be due to invalid IL or missing references)
				//IL_0307: Unknown result type (might be due to invalid IL or missing references)
				//IL_0318: Unknown result type (might be due to invalid IL or missing references)
				//IL_0333: Unknown result type (might be due to invalid IL or missing references)
				//IL_0344: Unknown result type (might be due to invalid IL or missing references)
				//IL_0354: Unknown result type (might be due to invalid IL or missing references)
				//IL_0369: Expected O, but got Unknown
				//IL_0394: Unknown result type (might be due to invalid IL or missing references)
				//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
				//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
				//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
				//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
				//IL_0414: Unknown result type (might be due to invalid IL or missing references)
				//IL_0429: Unknown result type (might be due to invalid IL or missing references)
				//IL_0433: Unknown result type (might be due to invalid IL or missing references)
				//IL_0459: Unknown result type (might be due to invalid IL or missing references)
				//IL_046e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0478: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_0174: Unknown result type (might be due to invalid IL or missing references)
				//IL_0179: Unknown result type (might be due to invalid IL or missing references)
				//IL_018a: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
				//IL_01cb: Expected O, but got Unknown
				//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
				//IL_0201: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<WraithPrefab>5__1 = <>4__this.spawnedWraith;
					if ((Object)(object)<WraithPrefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Wraith Prefab was not located successfully!");
						return false;
					}
					<WraithPrefab>5__1.transform.position = Vector3.zero;
					<One>5__2 = Object.Instantiate<GameObject>(((Component)<WraithPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Two>5__3 = Object.Instantiate<GameObject>(((Component)<WraithPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Three>5__4 = Object.Instantiate<GameObject>(((Component)<WraithPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Four>5__5 = Object.Instantiate<GameObject>(((Component)<WraithPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<One>5__2.gameObject.SetActive(false);
					<Two>5__3.gameObject.SetActive(false);
					<Three>5__4.gameObject.SetActive(false);
					<Four>5__5.gameObject.SetActive(false);
					<>2__current = (object)new SpawnObjectFromGlobalPoolDelay
					{
						gameObject = FsmGameObject.op_Implicit(<One>5__2),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject),
						position = new FsmVector3
						{
							Value = new Vector3(0f, 0f, 0f)
						},
						storeObject = FsmGameObject.op_Implicit(<One>5__2),
						delayMin = FsmFloat.op_Implicit(0.4f),
						delayMax = FsmFloat.op_Implicit(0.8f)
					};
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new SpawnObjectFromGlobalPoolDelay
					{
						gameObject = FsmGameObject.op_Implicit(<Two>5__3),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject),
						storeObject = FsmGameObject.op_Implicit(<Two>5__3),
						delayMin = FsmFloat.op_Implicit(0.4f),
						delayMax = FsmFloat.op_Implicit(0.8f)
					};
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<>2__current = (object)new SpawnObjectFromGlobalPoolDelay
					{
						gameObject = FsmGameObject.op_Implicit(<Three>5__4),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject),
						storeObject = FsmGameObject.op_Implicit(<Three>5__4),
						delayMin = FsmFloat.op_Implicit(0.4f),
						delayMax = FsmFloat.op_Implicit(0.8f)
					};
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<>2__current = (object)new SpawnObjectFromGlobalPoolDelay
					{
						gameObject = FsmGameObject.op_Implicit(<Four>5__5),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject),
						storeObject = FsmGameObject.op_Implicit(<Four>5__5),
						delayMin = FsmFloat.op_Implicit(0.4f),
						delayMax = FsmFloat.op_Implicit(0.8f)
					};
					<>1__state = 4;
					return true;
				case 4:
					<>1__state = -1;
					<One>5__2.transform.position = new Vector3(76.1666f, <One>5__2.transform.position.y + 20f, 0.0064f);
					<Two>5__3.transform.position = new Vector3(80.3333f, <One>5__2.transform.position.y, <One>5__2.transform.position.z);
					<Three>5__4.transform.position = new Vector3(88.6667f, <One>5__2.transform.position.y, <One>5__2.transform.position.z);
					<Four>5__5.transform.position = new Vector3(92.8334f, <One>5__2.transform.position.y, <One>5__2.transform.position.z);
					<One>5__2.gameObject.SetActive(true);
					<Two>5__3.gameObject.SetActive(true);
					<Three>5__4.gameObject.SetActive(true);
					<Four>5__5.gameObject.SetActive(true);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <AddWraith>d__42 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <WraithPrefab>5__1;

			private GameObject <WraithClone>5__2;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <AddWraith>d__42(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<WraithPrefab>5__1 = null;
				<WraithClone>5__2 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_009a: Unknown result type (might be due to invalid IL or missing references)
				//IL_009f: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d0: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<WraithPrefab>5__1 = <>4__this.spawnedWraith;
					if ((Object)(object)<WraithPrefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Wraith Prefab was not located successfully!");
						return false;
					}
					<WraithPrefab>5__1.transform.position = Vector3.zero;
					<WraithClone>5__2 = Object.Instantiate<GameObject>(((Component)<WraithPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<WraithClone>5__2),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject)
					};
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<WraithClone>5__2.SetActive(true);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <FocusProcess>d__74 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private Transform <f>5__1;

			private GameObject <focusGO>5__2;

			private GameObject <C1>5__3;

			private GameObject <C2>5__4;

			private GameObject <C3>5__5;

			private GameObject <C4>5__6;

			private FsmInt <c>5__7;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <FocusProcess>d__74(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<f>5__1 = null;
				<focusGO>5__2 = null;
				<C1>5__3 = null;
				<C2>5__4 = null;
				<C3>5__5 = null;
				<C4>5__6 = null;
				<c>5__7 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0448: Unknown result type (might be due to invalid IL or missing references)
				//IL_0452: Expected O, but got Unknown
				//IL_0475: Unknown result type (might be due to invalid IL or missing references)
				//IL_047f: Expected O, but got Unknown
				//IL_0173: Unknown result type (might be due to invalid IL or missing references)
				//IL_0198: Unknown result type (might be due to invalid IL or missing references)
				//IL_01bd: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_0224: Unknown result type (might be due to invalid IL or missing references)
				//IL_0249: Unknown result type (might be due to invalid IL or missing references)
				//IL_026e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0293: Unknown result type (might be due to invalid IL or missing references)
				//IL_041b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0425: Expected O, but got Unknown
				//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
				//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0321: Unknown result type (might be due to invalid IL or missing references)
				//IL_0346: Unknown result type (might be due to invalid IL or missing references)
				//IL_038a: Unknown result type (might be due to invalid IL or missing references)
				//IL_03af: Unknown result type (might be due to invalid IL or missing references)
				//IL_03d4: Unknown result type (might be due to invalid IL or missing references)
				//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<f>5__1 = ((Component)<>4__this._control).transform.GetChild(12);
					<focusGO>5__2 = ((Component)<f>5__1).gameObject;
					if ((Object)(object)<focusGO>5__2 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Dragoon Focus GameObject not found!");
					}
					<C1>5__3 = Object.Instantiate<GameObject>(<focusGO>5__2);
					<C1>5__3.GetComponent<DeactivateAfterDelay>().time = 0.8f;
					<C2>5__4 = Object.Instantiate<GameObject>(<focusGO>5__2);
					<C2>5__4.GetComponent<DeactivateAfterDelay>().time = 0.55f;
					<C3>5__5 = Object.Instantiate<GameObject>(<focusGO>5__2);
					<C3>5__5.GetComponent<DeactivateAfterDelay>().time = 0.55f;
					<C4>5__6 = Object.Instantiate<GameObject>(<focusGO>5__2);
					<C4>5__6.GetComponent<DeactivateAfterDelay>().time = 0.7f;
					<c>5__7 = FsmUtil.GetIntVariable(<>4__this._control, "Combo Picked");
					if (<c>5__7.Value == 0)
					{
						<C1>5__3.transform.position = new Vector3(76f, 104.185f, -0.0067f);
						<C2>5__4.transform.position = new Vector3(75f, 104.185f, -0.0067f);
						<C3>5__5.transform.position = new Vector3(92.5f, 104.185f, -0.0067f);
						<C4>5__6.transform.position = new Vector3(79f, 104.185f, -0.0067f);
					}
					else if (<c>5__7.Value == 1)
					{
						<C1>5__3.transform.position = new Vector3(88.5f, 104.185f, -0.0067f);
						<C2>5__4.transform.position = new Vector3(76.5f, 104.185f, -0.0067f);
						<C3>5__5.transform.position = new Vector3(89.5f, 104.185f, -0.0067f);
						<C4>5__6.transform.position = new Vector3(92f, 104.185f, -0.0067f);
					}
					else if (<c>5__7.Value == 2)
					{
						<C1>5__3.transform.position = new Vector3(76f, 104.2494f, -0.0067f);
						<C2>5__4.transform.position = new Vector3(80f, 104.2494f, -0.0067f);
						<C3>5__5.transform.position = new Vector3(88f, 104.2494f, -0.0067f);
						<C4>5__6.transform.position = new Vector3(92f, 104.2494f, -0.0067f);
					}
					else if (<c>5__7.Value == 3)
					{
						<C1>5__3.transform.position = new Vector3(92f, 104.185f, -0.0067f);
						<C2>5__4.transform.position = new Vector3(88f, 104.185f, -0.0067f);
						<C3>5__5.transform.position = new Vector3(80f, 104.185f, -0.0067f);
						<C4>5__6.transform.position = new Vector3(76f, 104.185f, -0.0067f);
					}
					<C1>5__3.SetActive(true);
					<>2__current = (object)new WaitForSeconds(0.8f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<C2>5__4.SetActive(true);
					<>2__current = (object)new WaitForSeconds(0.55f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<C3>5__5.SetActive(true);
					<>2__current = (object)new WaitForSeconds(0.55f);
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<C4>5__6.SetActive(true);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <GrindFetcher>d__60 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <GrindPrefab>5__1;

			private GameObject <Grind>5__2;

			private Vector3 <PTP>5__3;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <GrindFetcher>d__60(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<GrindPrefab>5__1 = null;
				<Grind>5__2 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0119: Unknown result type (might be due to invalid IL or missing references)
				//IL_011e: Unknown result type (might be due to invalid IL or missing references)
				//IL_012f: Unknown result type (might be due to invalid IL or missing references)
				//IL_014a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0160: Expected O, but got Unknown
				//IL_0186: Unknown result type (might be due to invalid IL or missing references)
				//IL_018b: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
				//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00dd: Expected O, but got Unknown
				//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0108: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<GrindPrefab>5__1 = <>4__this.spawnedGrind;
					if ((Object)(object)<GrindPrefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Grind Prefab was not located successfully!");
						return false;
					}
					<GrindPrefab>5__1.transform.position = Vector3.zero;
					<Grind>5__2 = Object.Instantiate<GameObject>(((Component)<GrindPrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Grind>5__2.SetActive(false);
					<>2__current = (object)new ActivateGameObject
					{
						gameObject = new FsmOwnerDefault
						{
							gameObject = FsmGameObject.op_Implicit(<Grind>5__2),
							ownerOption = (OwnerDefaultOption)1
						},
						activate = FsmBool.op_Implicit(true),
						recursive = FsmBool.op_Implicit(false),
						resetOnExit = true,
						everyFrame = false
					};
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<Grind>5__2),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject),
						storeObject = FsmGameObject.op_Implicit(<Grind>5__2)
					};
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<PTP>5__3 = ((Component)<>4__this._control).gameObject.transform.position;
					<Grind>5__2.transform.position = new Vector3(<PTP>5__3.x - 0.75f, <Grind>5__2.transform.position.y + 2.25f, <Grind>5__2.transform.position.z);
					<Grind>5__2.SetActive(true);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <JudgeExplodeFetcher>d__68 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <PinProj>5__1;

			private GameObject <BombPrefab>5__2;

			private GameObject <ExplosionClone>5__3;

			private GameObject <damager>5__4;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <JudgeExplodeFetcher>d__68(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<PinProj>5__1 = null;
				<BombPrefab>5__2 = null;
				<ExplosionClone>5__3 = null;
				<damager>5__4 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
				//IL_010e: Unknown result type (might be due to invalid IL or missing references)
				//IL_011d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0133: Expected O, but got Unknown
				//IL_016b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0180: Unknown result type (might be due to invalid IL or missing references)
				//IL_0195: Unknown result type (might be due to invalid IL or missing references)
				//IL_019f: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<PinProj>5__1 = GameObject.Find("Pin Projectile");
					<BombPrefab>5__2 = <>4__this.spawnedExplosion;
					if ((Object)(object)<BombPrefab>5__2 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Last Judge Explosion Prefab was not located successfully!");
						return false;
					}
					<BombPrefab>5__2.transform.position = Vector3.zero;
					Object.Destroy((Object)(object)<BombPrefab>5__2.GetComponentInChildren<DamageEnemies>());
					<ExplosionClone>5__3 = Object.Instantiate<GameObject>(((Component)<BombPrefab>5__2.transform).gameObject, ((Component)<>4__this).transform);
					<ExplosionClone>5__3.transform.SetParent(<PinProj>5__1.transform);
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<ExplosionClone>5__3),
						spawnPoint = FsmGameObject.op_Implicit(<PinProj>5__1),
						position = FsmVector3.op_Implicit(new Vector3(5.6f, 0f, 0f)),
						setParent = FsmGameObject.op_Implicit(<PinProj>5__1)
					};
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<ExplosionClone>5__3.transform.SetParent((Transform)null);
					<ExplosionClone>5__3.transform.position = new Vector3(<PinProj>5__1.transform.position.x, <PinProj>5__1.transform.position.y, <ExplosionClone>5__3.transform.position.z);
					((Behaviour)<ExplosionClone>5__3.GetComponent<Animator>()).enabled = true;
					((Behaviour)<ExplosionClone>5__3.GetComponent<AutoRecycleSelf>()).enabled = true;
					((Behaviour)<ExplosionClone>5__3.GetComponent<AudioSource>()).enabled = true;
					<damager>5__4 = ((Component)<ExplosionClone>5__3.transform.GetChild(4)).gameObject;
					((Behaviour)<damager>5__4.GetComponent<CircleCollider2D>()).enabled = true;
					((Behaviour)<damager>5__4.GetComponent<DamageHero>()).enabled = true;
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <JudgeStompFetcher>d__66 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <StompWavePrefab>5__1;

			private GameObject <StWaveClone>5__2;

			private GameObject <StompWvClone>5__3;

			private PlayMakerFSM <stompControl>5__4;

			private FsmStateAction[] <>s__5;

			private int <>s__6;

			private FsmStateAction <action>5__7;

			private AccelerateToX <aX>5__8;

			private FsmStateAction[] <>s__9;

			private int <>s__10;

			private FsmStateAction <action>5__11;

			private AccelerateToX <accelerateToX>5__12;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <JudgeStompFetcher>d__66(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<StompWavePrefab>5__1 = null;
				<StWaveClone>5__2 = null;
				<StompWvClone>5__3 = null;
				<stompControl>5__4 = null;
				<>s__5 = null;
				<action>5__7 = null;
				<aX>5__8 = null;
				<>s__9 = null;
				<action>5__11 = null;
				<accelerateToX>5__12 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
				//IL_034b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0365: Unknown result type (might be due to invalid IL or missing references)
				//IL_036f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
				//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
				//IL_02f3: Unknown result type (might be due to invalid IL or missing references)
				//IL_0313: Expected O, but got Unknown
				//IL_0154: Unknown result type (might be due to invalid IL or missing references)
				//IL_0159: Unknown result type (might be due to invalid IL or missing references)
				//IL_016a: Unknown result type (might be due to invalid IL or missing references)
				//IL_018a: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<StompWavePrefab>5__1 = <>4__this.spawnedWave;
					if ((Object)(object)<StompWavePrefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Stomp Wave Prefab was not located successfully!");
						return false;
					}
					<StompWavePrefab>5__1.transform.position = Vector3.zero;
					<StWaveClone>5__2 = Object.Instantiate<GameObject>(((Component)<StompWavePrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<>s__5 = FsmUtil.GetState(FSMUtility.LocateMyFSM(<StWaveClone>5__2, "Control"), "Move").Actions;
					for (<>s__6 = 0; <>s__6 < <>s__5.Length; <>s__6++)
					{
						<action>5__7 = <>s__5[<>s__6];
						ref AccelerateToX reference2 = ref <aX>5__8;
						FsmStateAction obj2 = <action>5__7;
						reference2 = (AccelerateToX)(object)((obj2 is AccelerateToX) ? obj2 : null);
						if (<aX>5__8 != null)
						{
							<aX>5__8.targetSpeed = FsmFloat.op_Implicit(100f);
						}
						<aX>5__8 = null;
						<action>5__7 = null;
					}
					<>s__5 = null;
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<StWaveClone>5__2),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject)
					};
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<StWaveClone>5__2.transform.SetParent((Transform)null);
					<StWaveClone>5__2.transform.position = new Vector3(<StWaveClone>5__2.transform.position.x, 103f, <StWaveClone>5__2.transform.position.z);
					<StWaveClone>5__2.SetActive(true);
					<StompWvClone>5__3 = Object.Instantiate<GameObject>(((Component)<StompWavePrefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<stompControl>5__4 = FSMUtility.LocateMyFSM(<StompWvClone>5__3, "Control");
					<>s__9 = FsmUtil.GetState(<stompControl>5__4, "Move").Actions;
					for (<>s__10 = 0; <>s__10 < <>s__9.Length; <>s__10++)
					{
						<action>5__11 = <>s__9[<>s__10];
						ref AccelerateToX reference = ref <accelerateToX>5__12;
						FsmStateAction obj = <action>5__11;
						reference = (AccelerateToX)(object)((obj is AccelerateToX) ? obj : null);
						if (<accelerateToX>5__12 != null)
						{
							<accelerateToX>5__12.targetSpeed = FsmFloat.op_Implicit(-100f);
						}
						<accelerateToX>5__12 = null;
						<action>5__11 = null;
					}
					<>s__9 = null;
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<StompWvClone>5__3),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject)
					};
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<StompWvClone>5__3.transform.SetParent((Transform)null);
					<StompWvClone>5__3.transform.position = new Vector3(<StompWvClone>5__3.transform.position.x, 103f, <StompWvClone>5__3.transform.position.z);
					<StompWvClone>5__3.SetActive(true);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <PierceBomb>d__62 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <Prefab>5__1;

			private int <b>5__2;

			private GameObject <Clone>5__3;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <PierceBomb>d__62(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<Prefab>5__1 = null;
				<Clone>5__3 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_012f: Unknown result type (might be due to invalid IL or missing references)
				//IL_013e: Unknown result type (might be due to invalid IL or missing references)
				//IL_015c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0166: Expected O, but got Unknown
				//IL_0076: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f7: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<Prefab>5__1 = <>4__this.spawnedBomb;
					if ((Object)(object)<Prefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Wave Prefab was not located successfully!");
						return false;
					}
					<Prefab>5__1.transform.position = Vector3.zero;
					<b>5__2 = 5;
					break;
				case 1:
					<>1__state = -1;
					<Clone>5__3.transform.SetParent((Transform)null);
					<Clone>5__3.transform.position = new Vector3(<Clone>5__3.transform.position.x, 103f);
					<Clone>5__3.SetActive(true);
					<>2__current = (object)new WaitForSeconds(0.06f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<Clone>5__3 = null;
					<b>5__2--;
					break;
				}
				if (<b>5__2 > 0)
				{
					<Clone>5__3 = Object.Instantiate<GameObject>(((Component)<Prefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Clone>5__3.AddComponent<BombPrep>();
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<Clone>5__3),
						spawnPoint = FsmGameObject.op_Implicit(((Component)<>4__this._control).gameObject)
					};
					<>1__state = 1;
					return true;
				}
				return false;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <SpawnAssetRoutine>d__19 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <spawnedEx>5__1;

			private GameObject <justInCase>5__2;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <SpawnAssetRoutine>d__19(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<spawnedEx>5__1 = null;
				<justInCase>5__2 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_002e: Unknown result type (might be due to invalid IL or missing references)
				//IL_003f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0050: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0072: Unknown result type (might be due to invalid IL or missing references)
				//IL_0083: Unknown result type (might be due to invalid IL or missing references)
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: Expected O, but got Unknown
				//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
				//IL_0115: Unknown result type (might be due to invalid IL or missing references)
				//IL_011a: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
				//IL_016a: Unknown result type (might be due to invalid IL or missing references)
				//IL_016f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0145: Unknown result type (might be due to invalid IL or missing references)
				//IL_014a: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
				//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
				//IL_019c: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_0218: Unknown result type (might be due to invalid IL or missing references)
				//IL_021d: Unknown result type (might be due to invalid IL or missing references)
				//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
				//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
				//IL_026f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0274: Unknown result type (might be due to invalid IL or missing references)
				//IL_024a: Unknown result type (might be due to invalid IL or missing references)
				//IL_024f: Unknown result type (might be due to invalid IL or missing references)
				//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
				//IL_02a6: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>4__this._wraith.Load();
					<>4__this._explosion.Load();
					<>4__this._stompWave.Load();
					<>4__this._chargeBomb.Load();
					<>4__this._chargeGrind.Load();
					<>4__this._flintEffects.Load();
					<>2__current = (object)new WaitUntil((Func<bool>)(() => <>4__this._wraith.IsLoaded && <>4__this._explosion.IsLoaded && <>4__this._stompWave.IsLoaded && <>4__this._chargeBomb.IsLoaded && <>4__this._chargeGrind.IsLoaded && <>4__this._flintEffects.IsLoaded));
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					if (<>4__this._wraith.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._wraith.Handle.OperationException}");
						return false;
					}
					if (<>4__this._explosion.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._explosion.Handle.OperationException}");
						return false;
					}
					if (<>4__this._stompWave.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._stompWave.Handle.OperationException}");
						return false;
					}
					if (<>4__this._chargeBomb.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._chargeBomb.Handle.OperationException}");
						return false;
					}
					if (<>4__this._chargeGrind.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._chargeGrind.Handle.OperationException}");
						return false;
					}
					if (<>4__this._flintEffects.Handle.OperationException != null)
					{
						<>4__this.l.LogError((object)$"Error loading asset: {<>4__this._flintEffects.Handle.OperationException}");
						return false;
					}
					<>4__this.spawnedWraith = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._wraith);
					<>4__this.spawnedBomb = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._chargeBomb);
					<>4__this.spawnedWave = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._stompWave);
					<>4__this.spawnedGrind = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._chargeGrind);
					<>4__this.spawnedFlint = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._flintEffects);
					Object.Destroy((Object)(object)<>4__this.spawnedFlint.GetComponent<AutoRecycleSelf>());
					((Object)<>4__this.spawnedFlint).name = "Cutscene Flint";
					<spawnedEx>5__1 = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._explosion);
					<spawnedEx>5__1.SetActive(false);
					<justInCase>5__2 = Object.Instantiate<GameObject>(<spawnedEx>5__1);
					((Behaviour)<justInCase>5__2.GetComponent<AutoRecycleSelf>()).enabled = false;
					<justInCase>5__2.SetActive(true);
					((Object)<>4__this.spawnedWraith).name = "Mist Wraith";
					((Object)<justInCase>5__2).name = "Throw Explosion";
					<>4__this.spawnedExplosion = <justInCase>5__2;
					((Object)<>4__this.spawnedBomb).name = "Charge Bomb";
					((Object)<>4__this.spawnedWave).name = "Stomp Wave";
					((Object)<>4__this.spawnedGrind).name = "Charge Grind";
					<>4__this.spawnedGrind.SetActive(true);
					<>4__this.BombPrep();
					<>4__this.spawnedWraith.SetActive(false);
					<>4__this.spawnedWraith.AddComponent<WraithAdds>();
					<>4__this.spawnedBomb.SetActive(false);
					<>4__this.spawnedWave.SetActive(false);
					<>4__this.spawnedGrind.SetActive(false);
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		[CompilerGenerated]
		private sealed class <ThrowBomb>d__64 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FleetingWraith <>4__this;

			private GameObject <Prefab>5__1;

			private GameObject <Longpin>5__2;

			private FsmStateAction[] <>s__3;

			private int <>s__4;

			private FsmStateAction <action>5__5;

			private DecelerateV2 <decel>5__6;

			private int <b>5__7;

			private GameObject <Clone>5__8;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <ThrowBomb>d__64(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<Prefab>5__1 = null;
				<Longpin>5__2 = null;
				<>s__3 = null;
				<action>5__5 = null;
				<decel>5__6 = null;
				<Clone>5__8 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0202: Unknown result type (might be due to invalid IL or missing references)
				//IL_0211: Unknown result type (might be due to invalid IL or missing references)
				//IL_022f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0239: Expected O, but got Unknown
				//IL_019e: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ca: Expected O, but got Unknown
				//IL_0153: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<Prefab>5__1 = <>4__this.spawnedBomb;
					if ((Object)(object)<Prefab>5__1 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Bomb Prefab was not located successfully!");
						return false;
					}
					<Longpin>5__2 = null;
					<>s__3 = FsmUtil.GetState(<>4__this._control, "G Pull Antic").Actions;
					for (<>s__4 = 0; <>s__4 < <>s__3.Length; <>s__4++)
					{
						<action>5__5 = <>s__3[<>s__4];
						ref DecelerateV2 reference = ref <decel>5__6;
						FsmStateAction obj = <action>5__5;
						reference = (DecelerateV2)(object)((obj is DecelerateV2) ? obj : null);
						if (<decel>5__6 != null)
						{
							<Longpin>5__2 = <decel>5__6.gameObject.gameObject.value;
						}
						<decel>5__6 = null;
						<action>5__5 = null;
					}
					<>s__3 = null;
					if ((Object)(object)<Longpin>5__2 == (Object)null)
					{
						<>4__this.l.LogWarning((object)"Longpin not found!");
						return false;
					}
					<Prefab>5__1.transform.position = Vector3.zero;
					<b>5__7 = 8;
					break;
				case 1:
					<>1__state = -1;
					<Clone>5__8.transform.SetParent((Transform)null);
					<Clone>5__8.transform.position = new Vector3(<Longpin>5__2.transform.position.x, 102f);
					<Clone>5__8.SetActive(true);
					<>2__current = (object)new WaitForSeconds(0.015f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<Clone>5__8 = null;
					<b>5__7--;
					break;
				}
				if (<b>5__7 > 0)
				{
					<Clone>5__8 = Object.Instantiate<GameObject>(((Component)<Prefab>5__1.transform).gameObject, ((Component)<>4__this).transform);
					<Clone>5__8.AddComponent<BombPrep>();
					<>2__current = (object)new SpawnObjectFromGlobalPoolV2
					{
						gameObject = FsmGameObject.op_Implicit(<Clone>5__8),
						spawnPoint = FsmGameObject.op_Implicit(<Longpin>5__2)
					};
					<>1__state = 1;
					return true;
				}
				return false;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private ManualLogSource l = Logger.CreateLogSource("ComponentLogger");

		private PlayMakerFSM _control = null;

		private Transform _heroTransform = null;

		private GameObject _hero = null;

		private ManagedAsset<GameObject> _wraith;

		private ManagedAsset<GameObject> _chargeBomb;

		private ManagedAsset<GameObject> _explosion;

		private ManagedAsset<GameObject> _stompWave;

		private ManagedAsset<GameObject> _chargeGrind;

		private ManagedAsset<GameObject> _flintEffects;

		private GameObject? spawnedWraith;

		private GameObject? spawnedExplosion;

		private GameObject? spawnedBomb;

		private GameObject? spawnedWave;

		private GameObject? spawnedGrind;

		private GameObject? spawnedFlint;

		private tk2dSpriteAnimationFrame[]? vanillaDragoon;

		private void Awake()
		{
			ManualLogSource val = Logger.CreateLogSource("ComponentLogger");
			_wraith = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Hornet Enemies/Wraith.prefab", "localpoolprefabs_assets_areadustmaze");
			_chargeBomb = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Hornet Bosses/Last Judge Charge Bomb.prefab", "localpoolprefabs_assets_areacoral");
			_explosion = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Enemies/Generic Attacks/Last Judge Explosion.prefab", "localpoolprefabs_assets_areacoral");
			_stompWave = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Hornet Bosses/Last Judge Stomp Wave.prefab", "localpoolprefabs_assets_areacoral");
			_chargeGrind = ManagedAsset<GameObject>.FromSceneAsset("coral_judge_arena", "Boss Scene/Last Judge/Charge Grind");
			_flintEffects = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Effects/Hornet_FX/Flint Effects.prefab", "localpoolprefabs_assets_shared");
			((MonoBehaviour)this).StartCoroutine(SpawnAssetRoutine());
		}

		private void ResetTextures()
		{
			tk2dSprite component = ((Component)this).GetComponent<tk2dSprite>();
			tk2dSpriteCollectionData collection = ((tk2dBaseSprite)component).Collection;
			for (int i = 0; i < 3; i++)
			{
				collection.materials[i].mainTexture = (Texture)(object)AssetManager.Get<Texture2D>($"atlas{i}");
			}
		}

		private void ChangeTextures()
		{
			tk2dSprite component = ((Component)this).GetComponent<tk2dSprite>();
			tk2dSpriteCollectionData collection = ((tk2dBaseSprite)component).Collection;
			for (int i = 0; i < 3; i++)
			{
				collection.materials[i].mainTexture = (Texture)(object)AssetManager.Get<Texture2D>($"atlasF{i}");
			}
		}

		[IteratorStateMachine(typeof(<SpawnAssetRoutine>d__19))]
		private IEnumerator SpawnAssetRoutine()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <SpawnAssetRoutine>d__19(0)
			{
				<>4__this = this
			};
		}

		private void BombPrep()
		{
			GameObject val = spawnedBomb;
			PlayMakerFSM val2 = FSMUtility.LocateMyFSM(val, "Control");
			FsmUtil.GetState(val2, "Antic").Actions[2].enabled = false;
			ResetTextures();
			SetupBoss();
		}

		private void SetupBoss()
		{
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Expected O, but got Unknown
			GetComponents();
			IncreaseHealth();
			ModifyDamage();
			RemoveStuns();
			ShortenIdle();
			CreateDash();
			HopThrow();
			DragoonParry();
			StabStitch();
			PrepFleetingPhantom();
			FsmStateAction[] actions = FsmUtil.GetState(_control, "Rage?").Actions;
			foreach (FsmStateAction val in actions)
			{
				CompareHP val2 = (CompareHP)(object)((val is CompareHP) ? val : null);
				if (val2 != null)
				{
					val2.integer2 = FsmInt.op_Implicit(390);
				}
			}
			FsmState val3 = ((IEnumerable<FsmState>)_control.FsmStates).FirstOrDefault((Func<FsmState, bool>)((FsmState state) => state.name == "Dragoon Rage"));
			FsmUtil.AddAction(val3, (FsmStateAction)(object)new InvokeMethod(ModifyPhase2));
			FsmUtil.ChangeTransition(val3, "FINISHED", "Roar End");
			FsmState state2 = FsmUtil.GetState(_control, "Dragoon?");
			if (state2 != null)
			{
				state2.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)new NextFrameEvent
				{
					sendEvent = FsmEvent.GetFsmEvent("FINISHED")
				} };
			}
		}

		private void GetComponents()
		{
			_control = FSMUtility.LocateMyFSM(((Component)this).gameObject, "Control");
			_heroTransform = HeroController.instance.transform;
			_hero = ((Component)HeroController.instance).gameObject;
		}

		private void IncreaseHealth()
		{
			HealthManager component = ((Component)this).GetComponent<HealthManager>();
			component.initHp = 760;
			component.hp = 760;
		}

		private void ModifyDamage()
		{
			DamageHero[] componentsInChildren = ((Component)this).GetComponentsInChildren<DamageHero>(true);
			foreach (DamageHero val in componentsInChildren)
			{
				val.damageDealt = 2;
			}
			FsmState state = FsmUtil.GetState(_control, "G Pull Antic");
			if (state == null)
			{
				l.LogWarning((object)"Pin for dmg not found!");
				return;
			}
			FsmStateAction[] actions = state.Actions;
			foreach (FsmStateAction val2 in actions)
			{
				DecelerateV2 val3 = (DecelerateV2)(object)((val2 is DecelerateV2) ? val2 : null);
				if (val3 != null)
				{
					GameObject value = val3.gameObject.gameObject.value;
					value.GetComponent<DamageHero>().damageDealt = 2;
				}
			}
		}

		private void ShortenIdle()
		{
			FsmState[] fsmStates = _control.FsmStates;
			foreach (FsmState val in fsmStates)
			{
				if (!(val.Name == "Idle"))
				{
					continue;
				}
				FsmStateAction[] actions = val.Actions;
				foreach (FsmStateAction val2 in actions)
				{
					Wait val3 = (Wait)(object)((val2 is Wait) ? val2 : null);
					if (val3 != null)
					{
						val3.time = FsmFloat.op_Implicit(0.55f);
					}
				}
			}
		}

		private void CreateDash()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Expected O, but got Unknown
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected O, but got Unknown
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Expected O, but got Unknown
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Expected O, but got Unknown
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Expected O, but got Unknown
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Expected O, but got Unknown
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0226: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Expected O, but got Unknown
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Expected O, but got Unknown
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c2: Expected O, but got Unknown
			//IL_0316: Unknown result type (might be due to invalid IL or missing references)
			//IL_031d: Expected O, but got Unknown
			//IL_0343: Unknown result type (might be due to invalid IL or missing references)
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_0358: Unknown result type (might be due to invalid IL or missing references)
			//IL_036a: Expected O, but got Unknown
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_039c: Expected O, but got Unknown
			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Expected O, but got Unknown
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ea: Expected O, but got Unknown
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Expected O, but got Unknown
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0401: Unknown result type (might be due to invalid IL or missing references)
			//IL_0411: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Expected O, but got Unknown
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_043e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0440: Unknown result type (might be due to invalid IL or missing references)
			//IL_0447: Expected O, but got Unknown
			//IL_0447: Unknown result type (might be due to invalid IL or missing references)
			//IL_044c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0454: Unknown result type (might be due to invalid IL or missing references)
			//IL_0464: Unknown result type (might be due to invalid IL or missing references)
			//IL_0476: Expected O, but got Unknown
			//IL_0476: Unknown result type (might be due to invalid IL or missing references)
			//IL_047b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0483: Unknown result type (might be due to invalid IL or missing references)
			//IL_0495: Expected O, but got Unknown
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ff: Expected O, but got Unknown
			//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0504: Unknown result type (might be due to invalid IL or missing references)
			//IL_050c: Unknown result type (might be due to invalid IL or missing references)
			//IL_051c: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Expected O, but got Unknown
			//IL_052f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0536: Expected O, but got Unknown
			//IL_0598: Unknown result type (might be due to invalid IL or missing references)
			//IL_059f: Expected O, but got Unknown
			//IL_0607: Unknown result type (might be due to invalid IL or missing references)
			//IL_060e: Expected O, but got Unknown
			//IL_0670: Unknown result type (might be due to invalid IL or missing references)
			//IL_0677: Expected O, but got Unknown
			//IL_069d: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cc: Expected O, but got Unknown
			//IL_0708: Unknown result type (might be due to invalid IL or missing references)
			//IL_070f: Expected O, but got Unknown
			//IL_0799: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a0: Expected O, but got Unknown
			//IL_07c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cd: Expected O, but got Unknown
			//IL_0896: Unknown result type (might be due to invalid IL or missing references)
			//IL_089d: Expected O, but got Unknown
			//IL_0966: Unknown result type (might be due to invalid IL or missing references)
			//IL_096b: Unknown result type (might be due to invalid IL or missing references)
			//IL_097b: Unknown result type (might be due to invalid IL or missing references)
			//IL_098d: Expected O, but got Unknown
			//IL_09eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f2: Expected O, but got Unknown
			//IL_0a2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a32: Expected O, but got Unknown
			//IL_0b7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9f: Expected O, but got Unknown
			Fsm fsm = _control.fsm;
			Tk2dPlayAnimation val = new Tk2dPlayAnimation
			{
				gameObject = new FsmOwnerDefault
				{
					OwnerOption = (OwnerDefaultOption)0
				},
				animLibName = new FsmString(""),
				clipName = FsmString.op_Implicit("Throw Dash")
			};
			SetVelocityByScale val2 = new SetVelocityByScale
			{
				gameObject = new FsmOwnerDefault
				{
					OwnerOption = (OwnerDefaultOption)0
				},
				speed = FsmFloat.op_Implicit(-50f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			};
			Wait val3 = new Wait
			{
				time = FsmFloat.op_Implicit(0.65f),
				finishEvent = FsmEvent.GetFsmEvent("FINISHED")
			};
			FaceObject val4 = new FaceObject
			{
				objectA = FsmGameObject.op_Implicit(((Component)_control).gameObject),
				objectB = FsmGameObject.op_Implicit(((Component)_heroTransform).gameObject),
				spriteFacesRight = FsmBool.op_Implicit(false),
				playNewAnimation = false,
				resetFrame = false,
				everyFrame = false
			};
			FsmState state = FsmUtil.GetState(_control, "G Dash");
			ActivateGameObject val5 = new ActivateGameObject();
			if (state != null)
			{
				FsmStateAction[] actions = state.Actions;
				foreach (FsmStateAction val6 in actions)
				{
					ActivateGameObject val7 = (ActivateGameObject)(object)((val6 is ActivateGameObject) ? val6 : null);
					if (val7 != null)
					{
						val5 = val7;
					}
				}
			}
			FsmState state2 = FsmUtil.GetState(_control, "Range Check");
			GetXDistance val8 = new GetXDistance();
			if (state2 != null)
			{
				FsmStateAction[] actions2 = state2.Actions;
				foreach (FsmStateAction val9 in actions2)
				{
					GetXDistance val10 = (GetXDistance)(object)((val9 is GetXDistance) ? val9 : null);
					if (val10 != null)
					{
						val8 = val10;
						val8.everyFrame = true;
					}
				}
			}
			FloatCompare val11 = new FloatCompare
			{
				float1 = val8.storeResult,
				float2 = FsmFloat.op_Implicit(2.5f),
				tolerance = FsmFloat.op_Implicit(0f),
				equal = FsmEvent.GetFsmEvent("FINISHED"),
				lessThan = FsmEvent.GetFsmEvent("FINISHED"),
				everyFrame = true
			};
			FsmState val12 = new FsmState(_control.fsm);
			val12.Name = "Short Dash";
			fsm.States = fsm.States.Append(val12).ToArray();
			FloatCompare val13 = new FloatCompare
			{
				float1 = val8.storeResult,
				float2 = FsmFloat.op_Implicit(10.4f),
				tolerance = FsmFloat.op_Implicit(0f),
				equal = FsmEvent.GetFsmEvent("FINISHED"),
				lessThan = FsmEvent.GetFsmEvent("FINISHED"),
				everyFrame = true
			};
			val12.Actions = (FsmStateAction[])(object)new FsmStateAction[7]
			{
				(FsmStateAction)val4,
				(FsmStateAction)val,
				(FsmStateAction)val2,
				(FsmStateAction)val3,
				(FsmStateAction)val5,
				(FsmStateAction)val8,
				(FsmStateAction)val13
			};
			FsmUtil.ChangeTransition(_control, "Far Range", "RUN TO", "Short Dash");
			FsmState val14 = new FsmState(_control.fsm);
			val14.Name = "Short Air Dash";
			fsm.States = fsm.States.Append(val14).ToArray();
			Wait val15 = new Wait
			{
				time = FsmFloat.op_Implicit(0.2f),
				finishEvent = FsmEvent.GetFsmEvent("FINISHED")
			};
			val14.Actions = (FsmStateAction[])(object)new FsmStateAction[4]
			{
				(FsmStateAction)val,
				(FsmStateAction)val2,
				(FsmStateAction)val15,
				(FsmStateAction)val5
			};
			FsmState val16 = new FsmState(_control.fsm);
			val16.Name = "Dash Diag";
			fsm.States = fsm.States.Append(val16).ToArray();
			Tk2dPlayAnimation val17 = new Tk2dPlayAnimation
			{
				gameObject = new FsmOwnerDefault
				{
					OwnerOption = (OwnerDefaultOption)0
				},
				animLibName = new FsmString(""),
				clipName = FsmString.op_Implicit("Air Throw Dash")
			};
			Wait val18 = new Wait
			{
				time = FsmFloat.op_Implicit(0.15f),
				finishEvent = FsmEvent.GetFsmEvent("FINISHED")
			};
			FsmOwnerDefault gameObject = new FsmOwnerDefault
			{
				gameObject = FsmGameObject.op_Implicit(((Component)_control).gameObject),
				ownerOption = (OwnerDefaultOption)1
			};
			SetVelocityAsAngle val19 = new SetVelocityAsAngle
			{
				gameObject = gameObject,
				angle = FsmFloat.op_Implicit(130f),
				speed = FsmFloat.op_Implicit(40f)
			};
			SetGravity2dScale val20 = new SetGravity2dScale
			{
				gameObject = gameObject,
				gravityScale = FsmFloat.op_Implicit(0f)
			};
			val16.Actions = (FsmStateAction[])(object)new FsmStateAction[6]
			{
				(FsmStateAction)val17,
				(FsmStateAction)val18,
				new InvokeMethod(FLUturn),
				(FsmStateAction)val5,
				(FsmStateAction)val19,
				(FsmStateAction)val20
			};
			SetVelocityAsAngle val21 = new SetVelocityAsAngle
			{
				gameObject = gameObject,
				angle = FsmFloat.op_Implicit(50f),
				speed = FsmFloat.op_Implicit(40f)
			};
			SetVelocityAsAngle val22 = new SetVelocityAsAngle
			{
				gameObject = gameObject,
				angle = FsmFloat.op_Implicit(310f),
				speed = FsmFloat.op_Implicit(40f)
			};
			FsmState val23 = new FsmState(fsm);
			val23.Name = "Dash Right Up";
			fsm.States = fsm.States.Append(val23).ToArray();
			val23.Actions = (FsmStateAction[])(object)new FsmStateAction[6]
			{
				(FsmStateAction)val17,
				(FsmStateAction)val18,
				(FsmStateAction)val5,
				new InvokeMethod(FRUturn),
				(FsmStateAction)val21,
				(FsmStateAction)val20
			};
			FsmState val24 = new FsmState(fsm);
			val24.Name = "Which Way Down";
			fsm.States = fsm.States.Append(val24).ToArray();
			SendEventByScale action = FsmUtil.GetAction<SendEventByScale>(_control, "Throw Lock", 3);
			if (action == null)
			{
				return;
			}
			val24.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)action };
			FsmState val25 = new FsmState(_control.fsm);
			val25.Name = "Dash Right Down";
			fsm.States = fsm.States.Append(val25).ToArray();
			val25.Actions = (FsmStateAction[])(object)new FsmStateAction[6]
			{
				(FsmStateAction)val17,
				(FsmStateAction)val5,
				(FsmStateAction)val18,
				new InvokeMethod(FRDturn),
				(FsmStateAction)val22,
				(FsmStateAction)val20
			};
			FsmState val26 = new FsmState(fsm);
			val26.Name = "Dash Left Down";
			fsm.States = fsm.States.Append(val26).ToArray();
			SetVelocityAsAngle val27 = new SetVelocityAsAngle
			{
				gameObject = gameObject,
				angle = FsmFloat.op_Implicit(230f),
				speed = FsmFloat.op_Implicit(40f)
			};
			val26.Actions = (FsmStateAction[])(object)new FsmStateAction[6]
			{
				(FsmStateAction)val17,
				(FsmStateAction)val5,
				(FsmStateAction)val18,
				new InvokeMethod(FLDturn),
				(FsmStateAction)val27,
				(FsmStateAction)val20
			};
			FsmState val28 = new FsmState(fsm);
			val28.Name = "Dash Faces";
			fsm.States = fsm.States.Append(val28).ToArray();
			if (action != null)
			{
				val28.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)action };
				FsmUtil.AddTransition(_control, "Short Dash", "FINISHED", "Dash Faces");
				FsmUtil.AddTransition(val28, "L", "Dash Diag");
				FsmUtil.AddTransition(val28, "R", "Dash Right Up");
				FsmState val29 = new FsmState(fsm);
				val29.Name = "After Up?";
				fsm.States = fsm.States.Append(val29).ToArray();
				SendRandomEventV4 val30 = new SendRandomEventV4();
				val30.events = (FsmEvent[])(object)new FsmEvent[3]
				{
					FsmEvent.GetFsmEvent("PARRY"),
					FsmEvent.GetFsmEvent("A THROW"),
					FsmEvent.GetFsmEvent("EVADE")
				};
				val30.weights = (FsmFloat[])(object)new FsmFloat[3]
				{
					FsmFloat.op_Implicit(0.4f),
					FsmFloat.op_Implicit(0.45f),
					FsmFloat.op_Implicit(1f)
				};
				val30.eventMax = (FsmInt[])(object)new FsmInt[3]
				{
					FsmInt.op_Implicit(2),
					FsmInt.op_Implicit(2),
					FsmInt.op_Implicit(4)
				};
				val30.missedMax = (FsmInt[])(object)new FsmInt[3]
				{
					FsmInt.op_Implicit(5),
					FsmInt.op_Implicit(5),
					FsmInt.op_Implicit(5)
				};
				val30.activeBool = FsmBool.op_Implicit(false);
				SendRandomEventV4 val31 = val30;
				val30 = new SendRandomEventV4();
				val30.events = (FsmEvent[])(object)new FsmEvent[3]
				{
					FsmEvent.GetFsmEvent("PARRY"),
					FsmEvent.GetFsmEvent("A THROW"),
					FsmEvent.GetFsmEvent("EVADE")
				};
				val30.weights = (FsmFloat[])(object)new FsmFloat[3]
				{
					FsmFloat.op_Implicit(0.5f),
					FsmFloat.op_Implicit(0.8f),
					FsmFloat.op_Implicit(1f)
				};
				val30.eventMax = (FsmInt[])(object)new FsmInt[3]
				{
					FsmInt.op_Implicit(2),
					FsmInt.op_Implicit(2),
					FsmInt.op_Implicit(4)
				};
				val30.missedMax = (FsmInt[])(object)new FsmInt[3]
				{
					FsmInt.op_Implicit(5),
					FsmInt.op_Implicit(5),
					FsmInt.op_Implicit(5)
				};
				val30.activeBool = FsmBool.op_Implicit(false);
				SendRandomEventV4 val32 = val30;
				Wait val33 = new Wait
				{
					time = FsmFloat.op_Implicit(0.001f),
					finishEvent = FsmEvent.GetFsmEvent("FINISHED")
				};
				val29.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
				{
					new InvokeMethod(resetTurn),
					(FsmStateAction)val31
				};
				FsmUtil.AddTransition(val29, "PARRY", "Parry Antic");
				FsmUtil.AddTransition(val29, "A THROW", "Throw Lock");
				FsmUtil.AddTransition(val29, "EVADE", "Short Air Dash");
				FsmState val34 = new FsmState(fsm);
				val34.Name = "After Air Dash?";
				fsm.states = fsm.states.Append(val34).ToArray();
				val34.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)val32 };
				FsmState val35 = new FsmState(fsm);
				val35.Name = "After Down?";
				fsm.States = fsm.States.Append(val35).ToArray();
				val35.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
				{
					new InvokeMethod(resetTurn),
					(FsmStateAction)val33
				};
				FsmUtil.AddTransition(_control, "Dash Right Up", "FINISHED", "After Up?");
				FsmUtil.AddTransition(_control, "Dash Diag", "FINISHED", "After Up?");
				FsmUtil.AddTransition(val14, "FINISHED", "After Air Dash?");
				FsmUtil.AddTransition(val34, "PARRY", "Parry Antic");
				FsmUtil.AddTransition(val34, "A THROW", "Throw Lock");
				FsmUtil.AddTransition(val34, "EVADE", "Which Way Down");
				FsmUtil.AddTransition(val24, "L", "Dash Left Down");
				FsmUtil.AddTransition(val24, "R", "Dash Right Down");
				FsmUtil.AddTransition(val26, "FINISHED", "After Down?");
				FsmUtil.AddTransition(val25, "FINISHED", "After Down?");
				FsmUtil.AddTransition(val35, "FINISHED", "Stab Antic");
				FsmState state3 = FsmUtil.GetState(_control, "Stab Antic");
				if (state3 != null)
				{
					FsmUtil.InsertAction(state3, (FsmStateAction)new SetGravity2dScale
					{
						gameObject = gameObject,
						gravityScale = FsmFloat.op_Implicit(2.5f)
					}, 1);
					FsmUtil.AddAction(FsmUtil.GetState(_control, "Short Dash"), (FsmStateAction)(object)new InvokeMethod(ContactManager));
					FsmUtil.AddAction(FsmUtil.GetState(_control, "Throw Lock"), (FsmStateAction)(object)new InvokeMethod(ContactManager));
					FsmUtil.AddAction(FsmUtil.GetState(_control, "Parry Antic"), (FsmStateAction)(object)new InvokeMethod(ContactManager));
					FsmUtil.AddAction(FsmUtil.GetState(_control, "Stab Antic"), (FsmStateAction)(object)new InvokeMethod(ContactManager));
				}
			}
		}

		private void ContactManager()
		{
			DamageHero component = ((Component)this).gameObject.GetComponent<DamageHero>();
			if ((Object)(object)component == (Object)null)
			{
				l.LogWarning((object)"DamageHero component not found!");
				return;
			}
			string activeStateName = _control.ActiveStateName;
			if (activeStateName.Equals("Throw Lock") || activeStateName.Equals("Parry Antic") || activeStateName.Equals("Stab Antic"))
			{
				((Behaviour)component).enabled = true;
			}
			else
			{
				((Behaviour)component).enabled = false;
			}
		}

		private void FLUturn()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			((Component)_control).gameObject.transform.SetLocalPositionAndRotation(((Component)this).transform.localPosition, Quaternion.Euler(0f, 0f, 310f));
		}

		private void FRUturn()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			((Component)_control).gameObject.transform.SetLocalPositionAndRotation(((Component)this).transform.localPosition, Quaternion.Euler(0f, 0f, 50f));
		}

		private void FLDturn()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			((Component)_control).gameObject.transform.SetLocalPositionAndRotation(((Component)this).transform.localPosition, Quaternion.Euler(0f, 0f, 50f));
		}

		private void FRDturn()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			((Component)_control).gameObject.transform.SetLocalPositionAndRotation(((Component)this).transform.localPosition, Quaternion.Euler(0f, 0f, 310f));
		}

		private void resetTurn()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			((Component)_control).gameObject.transform.SetLocalPositionAndRotation(((Component)this).transform.localPosition, Quaternion.Euler(0f, 0f, 0f));
		}

		private void HopThrow()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0253: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_026b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0272: Expected O, but got Unknown
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_0277: Unknown result type (might be due to invalid IL or missing references)
			//IL_027f: Unknown result type (might be due to invalid IL or missing references)
			//IL_028f: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Expected O, but got Unknown
			FsmState val = new FsmState(_control.fsm);
			val.Name = "After Throw Dash?";
			_control.fsm.States = _control.fsm.States.Append(val).ToArray();
			SendRandomEventV4 val2 = new SendRandomEventV4();
			val2.events = (FsmEvent[])(object)new FsmEvent[2]
			{
				FsmEvent.GetFsmEvent("PARRY"),
				FsmEvent.GetFsmEvent("FINISHED")
			};
			val2.weights = (FsmFloat[])(object)new FsmFloat[2]
			{
				FsmFloat.op_Implicit(0.95f),
				FsmFloat.op_Implicit(1f)
			};
			val2.eventMax = (FsmInt[])(object)new FsmInt[2]
			{
				FsmInt.op_Implicit(2),
				FsmInt.op_Implicit(3)
			};
			val2.missedMax = (FsmInt[])(object)new FsmInt[2]
			{
				FsmInt.op_Implicit(3),
				FsmInt.op_Implicit(4)
			};
			val2.activeBool = FsmBool.op_Implicit(false);
			SendRandomEventV4 val3 = val2;
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)val3 };
			FsmState state = FsmUtil.GetState(_control, "Jump");
			if (state != null)
			{
				FsmUtil.ChangeTransition(state, "FINISHED", "Throw Lock");
			}
			FsmState state2 = FsmUtil.GetState(_control, "A Fall");
			if (state2 != null)
			{
				FsmUtil.ChangeTransition(state2, "FINISHED", "After Throw Dash?");
			}
			FsmUtil.AddTransition(val, "FINISHED", "In Air");
			FsmUtil.AddTransition(val, "PARRY", "Parry Antic");
			FsmState state3 = FsmUtil.GetState(_control, "Dragoon Launch");
			FsmState state4 = FsmUtil.GetState(_control, "Throw Lock");
			FsmState[] fsmStates = _control.FsmStates;
			foreach (FsmState val4 in fsmStates)
			{
				SetRecoilSpeed firstActionOfType = FsmUtil.GetFirstActionOfType<SetRecoilSpeed>(val4);
				if (state4 == null || firstActionOfType == null || state3 == null)
				{
					continue;
				}
				FsmUtil.InsertAction(_control, "Throw Lock", (FsmStateAction)(object)firstActionOfType, 0);
				FsmStateAction[] actions = state3.Actions;
				foreach (FsmStateAction val5 in actions)
				{
					SetRecoilSpeed val6 = (SetRecoilSpeed)(object)((val5 is SetRecoilSpeed) ? val5 : null);
					if (val6 != null)
					{
						val6.newRecoilSpeed = FsmFloat.op_Implicit(0f);
					}
				}
			}
			FsmOwnerDefault gameObject = new FsmOwnerDefault
			{
				gameObject = FsmGameObject.op_Implicit(((Component)_control).gameObject),
				ownerOption = (OwnerDefaultOption)1
			};
			DecelerateXY val7 = new DecelerateXY
			{
				gameObject = gameObject,
				decelerationX = FsmFloat.op_Implicit(0.85f),
				decelerationY = FsmFloat.op_Implicit(1f)
			};
			FsmState state5 = FsmUtil.GetState(_control, "In Air");
			if (state5 != null)
			{
				FsmUtil.InsertAction(state5, (FsmStateAction)(object)val7, 0);
			}
		}

		private void DragoonParry()
		{
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Expected O, but got Unknown
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Expected O, but got Unknown
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Expected O, but got Unknown
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Expected O, but got Unknown
			//IL_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_029d: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bd: Expected O, but got Unknown
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Expected O, but got Unknown
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Expected O, but got Unknown
			//IL_033c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0343: Expected O, but got Unknown
			//IL_0378: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0385: Unknown result type (might be due to invalid IL or missing references)
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d7: Expected O, but got Unknown
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Expected O, but got Unknown
			//IL_0431: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Unknown result type (might be due to invalid IL or missing references)
			//IL_0446: Unknown result type (might be due to invalid IL or missing references)
			//IL_0458: Expected O, but got Unknown
			//IL_0467: Unknown result type (might be due to invalid IL or missing references)
			//IL_046c: Unknown result type (might be due to invalid IL or missing references)
			//IL_047c: Unknown result type (might be due to invalid IL or missing references)
			//IL_048d: Expected O, but got Unknown
			FsmState[] fsmStates = _control.FsmStates;
			FsmState val = ((IEnumerable<FsmState>)_control.FsmStates).FirstOrDefault((Func<FsmState, bool>)((FsmState state) => state.Name == "Parry Block"));
			FsmEvent.SetEventIsGlobal("DRAGOON");
			FsmEvent fsmEvent = FsmEvent.GetFsmEvent("DRAGOON");
			FsmEvent fsmEvent2 = FsmEvent.GetFsmEvent("BLOCKED HIT");
			FsmState val2 = null;
			FsmState val3 = null;
			FsmFloat val4 = new FsmFloat("Parry Drop Set");
			val4.Value = 0.7f;
			_control.FsmVariables.FloatVariables = _control.FsmVariables.FloatVariables.Append(val4).ToArray();
			SetFsmFloat val5 = new SetFsmFloat();
			val5.variableName = FsmString.op_Implicit("Parry Drop Time");
			val5.setValue = val4;
			FsmUtil.AddAction(_control, "Parry Block", (FsmStateAction)(object)val5);
			FsmState[] array = fsmStates;
			foreach (FsmState val6 in array)
			{
				if (val6.Name == "Parry Block")
				{
					val2 = val6;
					List<FsmStateAction> list = val6.Actions.ToList();
					FsmUtil.AddAction(val6, (FsmStateAction)(object)val5);
					list.Insert(0, (FsmStateAction)new SendEvent
					{
						sendEvent = fsmEvent
					});
					val6.Actions = list.ToArray();
				}
				if (val6.Name == "Dragoon Antic")
				{
					val3 = val6;
				}
				if (val6.Name == "Drop Antic")
				{
					FsmState val7 = val6;
					List<FsmStateAction> list2 = val7.Actions.ToList();
					list2.Insert(1, (FsmStateAction)new FloatAdd
					{
						floatVariable = val4,
						add = FsmFloat.op_Implicit(-0.05f)
					});
					val6.Actions = list2.ToArray();
					FsmStateAction[] actions = val7.Actions;
					foreach (FsmStateAction val8 in actions)
					{
						Wait val9 = (Wait)(object)((val8 is Wait) ? val8 : null);
						if (val9 != null)
						{
							val9.time = val4;
						}
					}
				}
				if (val6.Name == "Dragoon End")
				{
					FsmUtil.AddAction(_control, "Dragoon End", (FsmStateAction)new SetInvincible
					{
						target = new FsmOwnerDefault(),
						Invincible = FsmBool.op_Implicit(false),
						InvincibleFromDirection = FsmInt.op_Implicit(0),
						resetOnStateExit = false
					});
				}
			}
			if (val2 != null && val3 != null)
			{
				val2.Transitions = (FsmTransition[])(object)new FsmTransition[1]
				{
					new FsmTransition
					{
						toFsmState = val3,
						toState = "Dragoon Antic",
						FsmEvent = FsmEvent.Finished
					}
				};
			}
			FsmState state2 = FsmUtil.GetState(_control, "Pos");
			if (state2 != null)
			{
				FsmStateAction[] actions2 = state2.Actions;
				foreach (FsmStateAction val10 in actions2)
				{
					SetPosition2D val11 = (SetPosition2D)(object)((val10 is SetPosition2D) ? val10 : null);
					if (val11 != null)
					{
						val11.Y = FsmFloat.op_Implicit(104.2494f);
						break;
					}
				}
			}
			FsmState val12 = new FsmState(_control.fsm);
			val12.Name = "Check Drop Time pleeease";
			_control.Fsm.States = _control.FsmStates.Append(val12).ToArray();
			FloatCompare val13 = new FloatCompare
			{
				float1 = val4,
				float2 = FsmFloat.op_Implicit(0.5f),
				tolerance = FsmFloat.op_Implicit(0f),
				equal = FsmEvent.GetFsmEvent("NEXT"),
				lessThan = FsmEvent.GetFsmEvent("NEXT"),
				greaterThan = FsmEvent.GetFsmEvent("CANCEL")
			};
			val12.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)val13 };
			FsmState val14 = new FsmState(_control.fsm);
			val14.Name = "Change Drop Time";
			_control.Fsm.States = _control.FsmStates.Append(val14).ToArray();
			SetFsmFloat val15 = new SetFsmFloat
			{
				variableName = FsmString.op_Implicit("Parry Drop Time"),
				setValue = FsmFloat.op_Implicit(0.51f)
			};
			val14.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
			{
				(FsmStateAction)val15,
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.001f),
					finishEvent = FsmEvent.GetFsmEvent("FINISHED")
				}
			};
			FsmState state3 = FsmUtil.GetState(_control, "Drop Antic");
			if (state2 != null)
			{
				FsmUtil.ChangeTransition(state2, "FINISHED", "Check Drop Time pleeease");
				FsmUtil.AddTransition(val12, "NEXT", "Change Drop Time");
				FsmUtil.AddTransition(val12, "CANCEL", "Drop Antic");
				FsmUtil.AddTransition(val14, "FINISHED", "Drop Antic");
			}
		}

		private void StabStitch()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Expected O, but got Unknown
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Expected O, but got Unknown
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Expected O, but got Unknown
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Expected O, but got Unknown
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Expected O, but got Unknown
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Expected O, but got Unknown
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Expected O, but got Unknown
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Expected O, but got Unknown
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Expected O, but got Unknown
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Expected O, but got Unknown
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01af: Expected O, but got Unknown
			//IL_01af: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e4: Expected O, but got Unknown
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_0378: Unknown result type (might be due to invalid IL or missing references)
			//IL_037f: Unknown result type (might be due to invalid IL or missing references)
			//IL_038f: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a1: Expected O, but got Unknown
			FsmState val = new FsmState(_control.fsm);
			val.Name = "Consult Tracker";
			_control.fsm.States = _control.fsm.States.Append(val).ToArray();
			FsmOwnerDefault gameObject = new FsmOwnerDefault
			{
				gameObject = FsmGameObject.op_Implicit(((Component)_control).gameObject),
				ownerOption = (OwnerDefaultOption)1
			};
			FsmOwnerDefault val2 = new FsmOwnerDefault
			{
				gameObject = FsmGameObject.op_Implicit(_hero),
				ownerOption = (OwnerDefaultOption)1
			};
			FsmBool boolVariable = new FsmBool("Combo Tracker");
			SetBoolValue val3 = new SetBoolValue
			{
				boolVariable = boolVariable,
				boolValue = FsmBool.op_Implicit(false),
				everyFrame = false
			};
			SetBoolValue val4 = new SetBoolValue
			{
				boolVariable = boolVariable,
				boolValue = FsmBool.op_Implicit(true),
				everyFrame = false
			};
			BoolTest val5 = new BoolTest
			{
				boolVariable = boolVariable,
				isTrue = FsmEvent.GetFsmEvent("L"),
				isFalse = FsmEvent.GetFsmEvent("R"),
				everyFrame = false
			};
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)val5 };
			FsmUtil.InsertAction(_control, "Range Check", (FsmStateAction)(object)val3, 0);
			FsmUtil.InsertAction(_control, "Parry Swipe", (FsmStateAction)(object)val4, 0);
			FsmState val6 = new FsmState(_control.fsm);
			val6.Name = "Parry Miss Stab";
			_control.fsm.States = _control.fsm.States.Append(val6).ToArray();
			ActivateGameObject val7 = new ActivateGameObject();
			AudioPlayerOneShotSingle val8 = new AudioPlayerOneShotSingle();
			DecelerateXY val9 = new DecelerateXY();
			Tk2dPlayAnimationWithEvents val10 = new Tk2dPlayAnimationWithEvents();
			SetVelocityByScale val11 = new SetVelocityByScale
			{
				gameObject = gameObject,
				speed = FsmFloat.op_Implicit(-140f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			};
			FsmState state = FsmUtil.GetState(_control, "Counter Stance");
			if (state != null)
			{
				FsmStateAction[] actions = state.Actions;
				foreach (FsmStateAction val12 in actions)
				{
					Wait val13 = (Wait)(object)((val12 is Wait) ? val12 : null);
					if (val13 != null)
					{
						val13.time = FsmFloat.op_Implicit(0.5f);
					}
				}
			}
			FsmState val14 = null;
			FsmState[] fsmStates = _control.FsmStates;
			foreach (FsmState val15 in fsmStates)
			{
				if (val15 != null && val15.Name == "Stab 4")
				{
					val14 = val15;
				}
				if (val15 != null && val15.Name == "Stab 5")
				{
					FsmStateAction[] actions2 = val15.Actions;
					foreach (FsmStateAction val16 in actions2)
					{
						SetVelocityByScale val17 = (SetVelocityByScale)(object)((val16 is SetVelocityByScale) ? val16 : null);
						if (val17 != null)
						{
							val17.speed = FsmFloat.op_Implicit(-300f);
						}
						ActivateGameObject val18 = (ActivateGameObject)(object)((val16 is ActivateGameObject) ? val16 : null);
						if (val18 != null)
						{
							val7 = val18;
						}
						AudioPlayerOneShotSingle val19 = (AudioPlayerOneShotSingle)(object)((val16 is AudioPlayerOneShotSingle) ? val16 : null);
						if (val19 != null)
						{
							val8 = val19;
						}
						DecelerateXY val20 = (DecelerateXY)(object)((val16 is DecelerateXY) ? val16 : null);
						if (val20 != null)
						{
							val9 = val20;
						}
						Tk2dPlayAnimationWithEvents val21 = (Tk2dPlayAnimationWithEvents)(object)((val16 is Tk2dPlayAnimationWithEvents) ? val16 : null);
						if (val21 != null)
						{
							val10 = val21;
						}
					}
				}
				Tk2dPlayAnimationWithEvents val22 = new Tk2dPlayAnimationWithEvents
				{
					gameObject = gameObject,
					clipName = FsmString.op_Implicit("Stab 1"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				};
				val6.Actions = (FsmStateAction[])(object)new FsmStateAction[5]
				{
					(FsmStateAction)val10,
					(FsmStateActi