Decompiled source of WhiteKnightLace v1.0.0

Lace2AnimeVer.dll

Decompiled 14 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
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 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("Lace2AnimeVer")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Lace2AnimeVer")]
[assembly: AssemblyTitle("WhiteKnightLace")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/CCArchive878/Lace2AnimeVer")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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 Lace2AnimeVer
{
	public class PullWebSlash : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <P3Webs>d__5 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public PullWebSlash <>4__this;

			private float <P3laceS>5__1;

			private float <intOffset>5__2;

			private float[] <xPositions>5__3;

			private int <i>5__4;

			private int <totalCuts>5__5;

			private PersonalObjectPool <c>5__6;

			private GameObject <s>5__7;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<xPositions>5__3 = null;
				<c>5__6 = null;
				<s>5__7 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0128: 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_01e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
				//IL_0204: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<P3laceS>5__1 = ((FsmStateAction)<>4__this).owner.gameObject.transform.localScale.x;
					<intOffset>5__2 = 0f;
					<xPositions>5__3 = new float[19];
					<i>5__4 = 0;
					while (<i>5__4 < <xPositions>5__3.Length)
					{
						if (<P3laceS>5__1 == -1f)
						{
							<xPositions>5__3[<i>5__4] = 32.3673f + <intOffset>5__2;
						}
						else
						{
							<xPositions>5__3[<i>5__4] = 77.7543f - <intOffset>5__2;
						}
						<intOffset>5__2 += 3f;
						<i>5__4++;
					}
					<totalCuts>5__5 = 18;
					break;
				case 1:
					<>1__state = -1;
					<c>5__6 = null;
					<s>5__7 = null;
					<totalCuts>5__5--;
					break;
				}
				if (<totalCuts>5__5 >= 0)
				{
					<c>5__6 = ((FsmStateAction)<>4__this).owner.gameObject.GetComponent<PersonalObjectPool>();
					<>4__this.cutpref = <c>5__6.startupPool[3].prefab;
					<s>5__7 = ObjectPool.Spawn(<>4__this.cutpref);
					<s>5__7.transform.position = new Vector3(<xPositions>5__3[<totalCuts>5__5], 100.6244f);
					((Behaviour)<s>5__7.GetComponent<AutoRecycleSelf>()).enabled = true;
					<s>5__7.GetComponent<Animator>().speed = 0.7f;
					((Behaviour)<s>5__7.GetComponent<Animator>()).enabled = true;
					((Behaviour)<s>5__7.GetComponent<CameraControlAnimationEvents>()).enabled = true;
					((Behaviour)<s>5__7.GetComponent<RandomlyFlipScale>()).enabled = false;
					<s>5__7.transform.localScale = new Vector3(<P3laceS>5__1, 4f);
					<>2__current = (object)new WaitForSeconds(0.365f);
					<>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 GameObject cutpref;

		private PlayMakerFSM control;

		public PullWebSlash(GameObject SlashPrefab, PlayMakerFSM lace)
		{
			cutpref = SlashPrefab;
			control = lace;
		}

		public override void OnEnter()
		{
			DoPullWebSlash();
			((FsmStateAction)this).Finish();
		}

		private void DoPullWebSlash()
		{
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: 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)
			float num = -8.64f;
			bool value = FsmUtil.GetBoolVariable(control, "Did P3 Shift").value;
			if (value)
			{
				((FsmStateAction)this).StartCoroutine(P3Webs());
				return;
			}
			if (!value)
			{
				num = -12.945f;
			}
			float x = base.owner.gameObject.transform.localScale.x;
			for (int num2 = 8; num2 >= 0; num2--)
			{
				PersonalObjectPool component = base.owner.gameObject.GetComponent<PersonalObjectPool>();
				cutpref = component.startupPool[3].prefab;
				GameObject val = Object.Instantiate<GameObject>(cutpref);
				val.transform.position = base.owner.gameObject.transform.position + new Vector3(num, 0f, 0f);
				if (Random.Range(0, 2) == 0)
				{
					val.transform.localScale = new Vector3(-1f, 4f);
				}
				else
				{
					val.transform.localScale = new Vector3(1f, 4f);
				}
				((Behaviour)val.GetComponent<AutoRecycleSelf>()).enabled = true;
				((Behaviour)val.GetComponent<Animator>()).enabled = true;
				((Behaviour)val.GetComponent<CameraControlAnimationEvents>()).enabled = true;
				if (!value)
				{
					((Behaviour)val.GetComponent<RandomlyFlipScale>()).enabled = true;
					num += 4.45f;
				}
				else
				{
					((Behaviour)val.GetComponent<RandomlyFlipScale>()).enabled = false;
					val.transform.localScale = new Vector3(x, 4f);
					num += 2.75f;
				}
			}
		}

		[IteratorStateMachine(typeof(<P3Webs>d__5))]
		private IEnumerator P3Webs()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <P3Webs>d__5(0)
			{
				<>4__this = this
			};
		}
	}
	public class SprayCuts : FsmStateAction
	{
		private PlayMakerFSM control;

		public SprayCuts(PlayMakerFSM lace)
		{
			control = lace;
		}

		public override void OnEnter()
		{
			DoSprayCuts();
		}

		private void DoSprayCuts()
		{
			//IL_00a1: 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_0158: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			bool value = FsmUtil.GetBoolVariable(control, "Did P3 Shift").value;
			bool value2 = FsmUtil.GetBoolVariable(control, "Did P2 Shift").value;
			int num = 3;
			if (value2)
			{
				num = 7;
			}
			if (value)
			{
				num = 11;
			}
			float num2 = Random.Range(-20, 20);
			float num3 = Random.Range(1, 3);
			float num4 = Random.Range(1.45f, 1.85f);
			if (!value)
			{
				num2 = -12.945f;
			}
			for (int num5 = num; num5 >= 0; num5--)
			{
				PersonalObjectPool component = ((Component)control).gameObject.GetComponent<PersonalObjectPool>();
				GameObject prefab = component.startupPool[3].prefab;
				GameObject val = Object.Instantiate<GameObject>(prefab);
				if (((Component)control).gameObject.transform.localScale.x < 0f)
				{
					val.transform.rotation = Quaternion.Euler(0f, 0f, 342f + num2);
					val.transform.position = ((Component)control).gameObject.transform.position + new Vector3(-1f, 0f, 0f);
				}
				else
				{
					val.transform.rotation = Quaternion.Euler(0f, 0f, 90f + num2);
					val.transform.position = ((Component)control).gameObject.transform.position + new Vector3(1f, 0f, 0f);
				}
				val.transform.localScale = new Vector3(1f, 1f, 1f);
				if (value2)
				{
					val.transform.localScale = new Vector3(1f + num3, 1f, 1f);
				}
				if (value)
				{
					val.transform.localScale = new Vector3(1f + num4, 1f, 1f);
				}
				((Behaviour)val.GetComponent<AutoRecycleSelf>()).enabled = true;
				((Behaviour)val.GetComponent<Animator>()).enabled = true;
				((Behaviour)val.GetComponent<CameraControlAnimationEvents>()).enabled = true;
				if (!value)
				{
					((Behaviour)val.GetComponent<RandomlyFlipScale>()).enabled = true;
					num2 = Random.Range(-20, 20);
				}
				else
				{
					((Behaviour)val.GetComponent<RandomlyFlipScale>()).enabled = false;
					num2 = Random.Range(-20, 20);
				}
			}
		}
	}
	public class FlurryAir : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <DoFlurryAir>d__5 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FlurryAir <>4__this;

			private float <laceScale>5__1;

			private Vector3 <spawnSpot>5__2;

			private float <downshift>5__3;

			private int <cutsRemaining>5__4;

			private PersonalObjectPool <c>5__5;

			private GameObject <cut>5__6;

			private GameObject <pref>5__7;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<c>5__5 = null;
				<cut>5__6 = null;
				<pref>5__7 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b8: 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_010b: Unknown result type (might be due to invalid IL or missing references)
				//IL_012c: 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_01b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ce: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<laceScale>5__1 = ((Component)<>4__this.control).gameObject.transform.localScale.x;
					<spawnSpot>5__2 = ((Component)((Component)<>4__this.control).transform.GetChild(4)).transform.position;
					<downshift>5__3 = 4.6861f;
					<cutsRemaining>5__4 = <>4__this.numSlashes;
					break;
				case 1:
					<>1__state = -1;
					<c>5__5 = null;
					<cut>5__6 = null;
					<pref>5__7 = null;
					<cutsRemaining>5__4--;
					break;
				}
				if (<cutsRemaining>5__4 > 0)
				{
					<c>5__5 = ((Component)<>4__this.control).gameObject.GetComponent<PersonalObjectPool>();
					<cut>5__6 = <c>5__5.startupPool[3].prefab;
					<pref>5__7 = Object.Instantiate<GameObject>(<cut>5__6);
					<pref>5__7.transform.position = <spawnSpot>5__2;
					Extensions.SetScale2D(<pref>5__7.transform, new Vector2(1.4f * <laceScale>5__1, 1.25f));
					Extensions.SetPositionY(<pref>5__7.transform, <pref>5__7.transform.position.y - 2f);
					Extensions.SetPositionZ(<pref>5__7.transform, 0.006f);
					((Component)<pref>5__7.transform).transform.Translate(new Vector3(8.9562f * <laceScale>5__1, -1f * <downshift>5__3));
					<pref>5__7.GetComponent<Animator>().speed = 1.35f;
					<downshift>5__3 += 0.65f;
					<>2__current = (object)new Wait
					{
						time = FsmFloat.op_Implicit(0.065f)
					};
					<>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 PlayMakerFSM control;

		private int numSlashes;

		public FlurryAir(PlayMakerFSM lace, int slashes)
		{
			control = lace;
			numSlashes = slashes;
		}

		public override void OnEnter()
		{
			((FsmStateAction)this).StartCoroutine(DoFlurryAir());
		}

		public override void OnExit()
		{
			((FsmStateAction)this).Finish();
		}

		[IteratorStateMachine(typeof(<DoFlurryAir>d__5))]
		private IEnumerator DoFlurryAir()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <DoFlurryAir>d__5(0)
			{
				<>4__this = this
			};
		}
	}
	public class FlurryGround : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <DoFlurry>d__5 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public FlurryGround <>4__this;

			private float <laceScale>5__1;

			private Vector3 <spawnSpot>5__2;

			private float[] <zAngs>5__3;

			private float[] <zAngPosScale>5__4;

			private int <ind>5__5;

			private int <cutsRemaining>5__6;

			private PersonalObjectPool <c>5__7;

			private GameObject <cut>5__8;

			private GameObject <pref>5__9;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<zAngs>5__3 = null;
				<zAngPosScale>5__4 = null;
				<c>5__7 = null;
				<cut>5__8 = null;
				<pref>5__9 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0039: Unknown result type (might be due to invalid IL or missing references)
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_0069: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e2: 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_0135: Unknown result type (might be due to invalid IL or missing references)
				//IL_016c: 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)
				//IL_01dc: 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_0254: Unknown result type (might be due to invalid IL or missing references)
				//IL_0269: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<laceScale>5__1 = ((Component)<>4__this.control).gameObject.transform.localScale.x;
					<spawnSpot>5__2 = ((Component)((Component)<>4__this.control).transform.GetChild(4)).transform.position;
					<zAngs>5__3 = new float[4] { 27f, 20f, 30f, 33f };
					<zAngPosScale>5__4 = new float[4] { 56f, 49f, 54.75f, 60f };
					<ind>5__5 = 0;
					<cutsRemaining>5__6 = <>4__this.numSlashes;
					break;
				case 1:
					<>1__state = -1;
					<c>5__7 = null;
					<cut>5__8 = null;
					<pref>5__9 = null;
					<cutsRemaining>5__6--;
					break;
				}
				if (<cutsRemaining>5__6 > 0)
				{
					<c>5__7 = ((Component)<>4__this.control).gameObject.GetComponent<PersonalObjectPool>();
					<cut>5__8 = <c>5__7.startupPool[3].prefab;
					<pref>5__9 = Object.Instantiate<GameObject>(<cut>5__8);
					<pref>5__9.transform.position = <spawnSpot>5__2;
					Extensions.SetScale2D(<pref>5__9.transform, new Vector2(1.75f * <laceScale>5__1, -2f));
					Extensions.SetPositionZ(<pref>5__9.transform, 0.006f);
					Extensions.SetPositionX(<pref>5__9.transform, <pref>5__9.transform.position.x + 10.2f * <laceScale>5__1);
					Extensions.SetPositionY(<pref>5__9.transform, <pref>5__9.transform.position.y + 2.4f);
					if (<laceScale>5__1 == 1f)
					{
						Extensions.SetScale2D(<pref>5__9.transform, new Vector2(-1.75f, -2f));
						Extensions.SetRotationZ(<pref>5__9.transform, <zAngPosScale>5__4[<ind>5__5]);
					}
					else
					{
						Extensions.SetRotationZ(<pref>5__9.transform, <zAngs>5__3[<ind>5__5]);
					}
					<ind>5__5++;
					<pref>5__9.GetComponent<Animator>().speed = 1.45f;
					<>2__current = (object)new Wait
					{
						time = FsmFloat.op_Implicit(0.35f)
					};
					<>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 PlayMakerFSM control;

		private int numSlashes;

		public FlurryGround(PlayMakerFSM lace, int slashes)
		{
			control = lace;
			numSlashes = slashes;
		}

		public override void OnEnter()
		{
			((FsmStateAction)this).StartCoroutine(DoFlurry());
		}

		public override void OnExit()
		{
			((FsmStateAction)this).Finish();
		}

		[IteratorStateMachine(typeof(<DoFlurry>d__5))]
		private IEnumerator DoFlurry()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <DoFlurry>d__5(0)
			{
				<>4__this = this
			};
		}
	}
	public class CircleSpawn : FsmStateAction
	{
		public GameObject prefab;

		public GameObject lace;

		public int choice;

		public CircleSpawn(GameObject circlePrefab, GameObject LaceBoss, int behaviourChoice)
		{
			prefab = circlePrefab;
			lace = LaceBoss;
			choice = behaviourChoice;
		}

		public override void OnEnter()
		{
			if (choice == 1)
			{
				DoDescending();
			}
			((FsmStateAction)this).Finish();
		}

		private void DoDescending()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: 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_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)
			StartupPool val = lace.GetComponent<PersonalObjectPool>().startupPool[8];
			float num = 2f;
			float num2 = lace.transform.position.y - 1f;
			float scaleX = Extensions.GetScaleX(lace.transform);
			for (int i = 0; i < 3; i++)
			{
				ObjectPool.Spawn(val.prefab, (Transform)null, new Vector3(Extensions.GetPositionX(lace.transform) + num * scaleX, num2), Quaternion.identity);
				num += 3f;
				num2 -= 3f;
			}
		}
	}
	public class WheelSlash : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <ExtraWheels>d__4 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public WheelSlash <>4__this;

			private GameObject <pref>5__1;

			private float[] <a>5__2;

			private float[] <x>5__3;

			private float[] <y>5__4;

			private float[] <s>5__5;

			private float[] <mults>5__6;

			private float <mult>5__7;

			private Transform <hornet>5__8;

			private int <n>5__9;

			private float <offEXY>5__10;

			private float <offEX>5__11;

			private int <i>5__12;

			private GameObject <sp>5__13;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<pref>5__1 = null;
				<a>5__2 = null;
				<x>5__3 = null;
				<y>5__4 = null;
				<s>5__5 = null;
				<mults>5__6 = null;
				<hornet>5__8 = null;
				<sp>5__13 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0034: Unknown result type (might be due to invalid IL or missing references)
				//IL_003e: Expected O, but got Unknown
				//IL_0064: Unknown result type (might be due to invalid IL or missing references)
				//IL_0190: Unknown result type (might be due to invalid IL or missing references)
				//IL_024d: Unknown result type (might be due to invalid IL or missing references)
				//IL_02af: Unknown result type (might be due to invalid IL or missing references)
				//IL_02b9: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.5f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<pref>5__1 = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
					<a>5__2 = new float[5] { 90.7f, 225f, 270f, 145f, 90f };
					<x>5__3 = new float[5] { 0.6f, -1.55f, 0f, 0f, 0f };
					<y>5__4 = new float[5] { 2.5f, 2f, 3f, 1.9f, -50f };
					<s>5__5 = new float[5] { -2f, -2f, 2f, -2f, 2f };
					<mults>5__6 = new float[2] { -1f, 1f };
					<mult>5__7 = <mults>5__6[Random.Range(0, 2)];
					<hornet>5__8 = ((Component)HeroController.instance).gameObject.transform;
					<n>5__9 = 0;
					break;
				case 2:
					<>1__state = -1;
					<mult>5__7 *= -1f;
					<n>5__9++;
					break;
				}
				if (<n>5__9 < 2)
				{
					<offEXY>5__10 = Random.Range(-0.653f, 5.675f);
					<offEX>5__11 = Random.Range(2f, 7f) * <mult>5__7;
					<i>5__12 = 0;
					while (<i>5__12 < 5)
					{
						<sp>5__13 = ObjectPool.Spawn(<pref>5__1, (Transform)null, new Vector3(Extensions.GetPositionX(<hornet>5__8), Extensions.GetPositionY(<hornet>5__8) + <y>5__4[<i>5__12]));
						<sp>5__13.GetComponent<Animator>().speed = 0.9f;
						Extensions.SetScaleX(<sp>5__13.transform, <s>5__5[<i>5__12]);
						Extensions.SetScaleY(<sp>5__13.transform, Mathf.Abs(<s>5__5[<i>5__12]));
						Extensions.SetScaleZ(<sp>5__13.transform, Mathf.Abs(<s>5__5[<i>5__12]));
						Extensions.SetRotationZ(<sp>5__13.transform, <a>5__2[<i>5__12]);
						Extensions.SetPositionX(<sp>5__13.transform, <sp>5__13.transform.position.x + <x>5__3[<i>5__12]);
						Extensions.SetPositionZ(<sp>5__13.transform, -0.77f);
						<sp>5__13 = null;
						<i>5__12++;
					}
					<>2__current = (object)new WaitForSeconds(0.5f);
					<>1__state = 2;
					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 PlayMakerFSM pM;

		public WheelSlash(PlayMakerFSM control)
		{
			pM = control;
		}

		public override void OnEnter()
		{
			bool value = FsmUtil.GetBoolVariable(FSMUtility.LocateMyFSM(GameObject.Find("Lace Boss2 New"), "Control"), "Did P2 Shift").value;
			bool value2 = FsmUtil.GetBoolVariable(FSMUtility.LocateMyFSM(GameObject.Find("Lace Boss2 New"), "Control"), "Did P3 Shift").value;
			float[] angles;
			float[] xOffsets;
			float[] yOffsets;
			float[] xScales;
			if (value2)
			{
				angles = new float[5] { 90.7f, 225f, 270f, 145f, 90f };
				xOffsets = new float[5] { 0.6f, -1.55f, 0f, 0f, 0f };
				yOffsets = new float[5] { 2.5f, 2f, 3f, 1.9f, -50f };
				xScales = new float[5] { -2f, -2f, 2f, -2f, 2f };
			}
			else if (value)
			{
				angles = new float[5] { 90.7f, 225f, 270f, 145f, 90f };
				xOffsets = new float[5] { 0.6f, -1.55f, 0f, 0f, 0f };
				yOffsets = new float[5] { 2.5f, 2f, 3f, 1.9f, -50f };
				xScales = new float[5] { -2f, -2f, 2f, -2f, 2f };
			}
			else
			{
				angles = new float[5] { 90.7f, 225f, 270f, 145f, 90f };
				xOffsets = new float[5];
				yOffsets = new float[5];
				xScales = new float[5] { -1f, -1f, 1f, -1f, 1f };
			}
			if (value2)
			{
				((FsmStateAction)this).StartCoroutine(ExtraWheels());
			}
			DoWheelSlash(angles, xOffsets, yOffsets, xScales);
			if (value2)
			{
				((FsmStateAction)this).StartCoroutine(ExtraWheels());
			}
			((FsmStateAction)this).Finish();
		}

		private void DoWheelSlash(float[] angles, float[] xOffsets, float[] yOffsets, float[] xScales)
		{
			//IL_0016: 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_00bc: Unknown result type (might be due to invalid IL or missing references)
			GameObject prefab = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
			Transform transform = ((Component)HeroController.instance).gameObject.transform;
			for (int i = 0; i < 5; i++)
			{
				GameObject val = ObjectPool.Spawn(prefab, (Transform)null, new Vector3(Extensions.GetPositionX(transform), Extensions.GetPositionY(transform) + yOffsets[i]));
				val.GetComponent<Animator>().speed = 0.9f;
				Extensions.SetScaleX(val.transform, xScales[i]);
				Extensions.SetScaleY(val.transform, Mathf.Abs(xScales[i]));
				Extensions.SetScaleZ(val.transform, Mathf.Abs(xScales[i]));
				Extensions.SetRotationZ(val.transform, angles[i]);
				Extensions.SetPositionX(val.transform, val.transform.position.x + xOffsets[i]);
				Extensions.SetPositionZ(val.transform, -0.77f);
			}
		}

		[IteratorStateMachine(typeof(<ExtraWheels>d__4))]
		private IEnumerator ExtraWheels()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <ExtraWheels>d__4(0)
			{
				<>4__this = this
			};
		}
	}
	public class LatticeSlash : FsmStateAction
	{
		private PlayMakerFSM pM;

		private float scl;

		public LatticeSlash(PlayMakerFSM control, float absValScale)
		{
			pM = control;
			scl = absValScale;
		}

		public override void OnEnter()
		{
			float[] angles = new float[5] { 90.7f, 225f, 270f, 145f, 90f };
			float[] xScales = new float[5]
			{
				0f - scl,
				0f - scl,
				scl,
				0f - scl,
				scl
			};
			DoLattice(angles, xScales);
			((FsmStateAction)this).Finish();
		}

		private void DoLattice(float[] angles, float[] xScales)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			GameObject prefab = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
			Transform transform = ((Component)HeroController.instance).gameObject.transform;
			for (int i = 0; i < 5; i++)
			{
				GameObject val = ObjectPool.Spawn(prefab, (Transform)null, new Vector3(Extensions.GetPositionX(transform), Extensions.GetPositionY(transform)));
				val.GetComponent<Animator>().speed = 1f;
				Extensions.SetScaleX(val.transform, xScales[i]);
				Extensions.SetScaleY(val.transform, Mathf.Abs(xScales[i]));
				Extensions.SetScaleZ(val.transform, Mathf.Abs(xScales[i]));
				Extensions.SetRotationZ(val.transform, angles[i]);
				Extensions.SetPositionZ(val.transform, -0.77f);
				if (Extensions.GetPositionY(transform) < 105f && Extensions.GetScaleX(val.transform) > 1f)
				{
					Extensions.SetPositionY(val.transform, val.transform.position.y + 4.25f);
				}
			}
		}
	}
	public class DoModCompMethod : FsmStateAction
	{
		private GameObject go;

		private int i;

		public DoModCompMethod(GameObject lace, int phase)
		{
			i = phase;
			go = lace;
		}

		public override void OnEnter()
		{
			if (i == 2)
			{
				go.GetComponent<LaceKnightBehaviour>().AddRKSlash();
			}
			if (i == 3)
			{
				go.GetComponent<LaceKnightBehaviour>().AddP3Thrust();
			}
			((FsmStateAction)this).Finish();
		}
	}
	public class P3Cut : FsmStateAction
	{
		[CompilerGenerated]
		private sealed class <CutSequence>d__2 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public P3Cut <>4__this;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0052: Expected O, but got Unknown
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0089: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					((FsmStateAction)<>4__this).StartCoroutine(<>4__this.LRFast());
					<>2__current = (object)new WaitForSeconds(1.06f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					((FsmStateAction)<>4__this).StartCoroutine(<>4__this.RLFast());
					<>2__current = (object)new WaitForSeconds(2.1234f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<>4__this.CrossCurved();
					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 <LRFast>d__3 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public P3Cut <>4__this;

			private GameObject <pref>5__1;

			private float <toNext>5__2;

			private int <i>5__3;

			private int <e>5__4;

			private GameObject <sp>5__5;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<pref>5__1 = null;
				<sp>5__5 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_0132: Unknown result type (might be due to invalid IL or missing references)
				//IL_0155: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Expected O, but got Unknown
				//IL_01af: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b9: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<pref>5__1 = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
					<toNext>5__2 = 0f;
					<i>5__3 = 0;
					goto IL_01da;
				case 1:
					<>1__state = -1;
					<sp>5__5 = null;
					<e>5__4++;
					goto IL_0187;
				case 2:
					{
						<>1__state = -1;
						<i>5__3++;
						goto IL_01da;
					}
					IL_01da:
					if (<i>5__3 < 10)
					{
						<e>5__4 = 0;
						goto IL_0187;
					}
					return false;
					IL_0187:
					if (<e>5__4 < 3)
					{
						<sp>5__5 = ObjectPool.Spawn(<pref>5__1);
						((Behaviour)<sp>5__5.GetComponent<AutoRecycleSelf>()).enabled = true;
						<sp>5__5.GetComponent<Animator>().speed = 1.225f;
						((Behaviour)<sp>5__5.GetComponent<Animator>()).enabled = true;
						((Behaviour)<sp>5__5.GetComponent<CameraControlAnimationEvents>()).enabled = true;
						((Behaviour)<sp>5__5.GetComponent<RandomlyFlipScale>()).enabled = false;
						Extensions.SetScaleY(<sp>5__5.transform, 4f);
						Extensions.SetScaleX(<sp>5__5.transform, 1f);
						<sp>5__5.transform.position = new Vector3(32.3673f + <toNext>5__2, 100.6244f);
						<toNext>5__2 += 1.25f;
						<>2__current = (object)new WaitForSeconds(0.1f);
						<>1__state = 1;
						return true;
					}
					<toNext>5__2 += 4.785f;
					<>2__current = (object)new WaitForSeconds(0.3456f);
					<>1__state = 2;
					return true;
				}
			}

			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 <RLFast>d__4 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public P3Cut <>4__this;

			private GameObject <pref>5__1;

			private float <toNext>5__2;

			private int <i>5__3;

			private int <e>5__4;

			private GameObject <sp>5__5;

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

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

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

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<pref>5__1 = null;
				<sp>5__5 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_0132: Unknown result type (might be due to invalid IL or missing references)
				//IL_0155: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Expected O, but got Unknown
				//IL_01af: Unknown result type (might be due to invalid IL or missing references)
				//IL_01b9: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<pref>5__1 = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
					<toNext>5__2 = 0f;
					<i>5__3 = 0;
					goto IL_01da;
				case 1:
					<>1__state = -1;
					<sp>5__5 = null;
					<e>5__4++;
					goto IL_0187;
				case 2:
					{
						<>1__state = -1;
						<i>5__3++;
						goto IL_01da;
					}
					IL_01da:
					if (<i>5__3 < 13)
					{
						<e>5__4 = 0;
						goto IL_0187;
					}
					return false;
					IL_0187:
					if (<e>5__4 < 3)
					{
						<sp>5__5 = ObjectPool.Spawn(<pref>5__1);
						((Behaviour)<sp>5__5.GetComponent<AutoRecycleSelf>()).enabled = true;
						<sp>5__5.GetComponent<Animator>().speed = 1.225f;
						((Behaviour)<sp>5__5.GetComponent<Animator>()).enabled = true;
						((Behaviour)<sp>5__5.GetComponent<CameraControlAnimationEvents>()).enabled = true;
						((Behaviour)<sp>5__5.GetComponent<RandomlyFlipScale>()).enabled = false;
						Extensions.SetScaleY(<sp>5__5.transform, 4f);
						Extensions.SetScaleX(<sp>5__5.transform, -1f);
						<sp>5__5.transform.position = new Vector3(77.7543f - <toNext>5__2, 100.6244f);
						<toNext>5__2 += 1.25f;
						<>2__current = (object)new WaitForSeconds(0.1f);
						<>1__state = 1;
						return true;
					}
					<toNext>5__2 += 3.785f;
					<>2__current = (object)new WaitForSeconds(0.1912f);
					<>1__state = 2;
					return true;
				}
			}

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

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

		public override void OnEnter()
		{
			((FsmStateAction)this).StartCoroutine(CutSequence());
			((FsmStateAction)this).Finish();
		}

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

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

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

		private void CrossCurved()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: 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_00c1: 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)
			GameObject prefab = GameObject.Find("Lace Boss2 New").GetComponent<PersonalObjectPool>().startupPool[3].prefab;
			GameObject val = ObjectPool.Spawn(prefab);
			val.transform.localScale = new Vector3(2.5f, 2.5f, 1f);
			val.transform.localPosition = new Vector3(47.7729f, 105.5232f);
			GameObject val2 = ObjectPool.Spawn(prefab);
			val2.transform.localScale = new Vector3(-2.5f, 2.5f, 1f);
			val2.transform.localPosition = new Vector3(71.3753f, 105.5232f);
			GameObject val3 = ObjectPool.Spawn(prefab);
			val3.transform.localScale = new Vector3(-2.5f, 2.5f, 1f);
			val3.transform.localPosition = new Vector3(52.7074f, 105.5232f);
			((Behaviour)val.GetComponent<AutoRecycleSelf>()).enabled = true;
			val.GetComponent<Animator>().speed = 0.7f;
			((Behaviour)val.GetComponent<Animator>()).enabled = true;
			((Behaviour)val.GetComponent<CameraControlAnimationEvents>()).enabled = true;
			((Behaviour)val.GetComponent<RandomlyFlipScale>()).enabled = false;
			((Behaviour)val2.GetComponent<AutoRecycleSelf>()).enabled = true;
			val2.GetComponent<Animator>().speed = 0.7f;
			((Behaviour)val2.GetComponent<Animator>()).enabled = true;
			((Behaviour)val2.GetComponent<CameraControlAnimationEvents>()).enabled = true;
			((Behaviour)val2.GetComponent<RandomlyFlipScale>()).enabled = false;
			((Behaviour)val3.GetComponent<AutoRecycleSelf>()).enabled = true;
			val3.GetComponent<Animator>().speed = 0.7f;
			((Behaviour)val3.GetComponent<Animator>()).enabled = true;
			((Behaviour)val3.GetComponent<CameraControlAnimationEvents>()).enabled = true;
			((Behaviour)val3.GetComponent<RandomlyFlipScale>()).enabled = false;
		}
	}
	internal class LaceKnightBehaviour : MonoBehaviour
	{
		[CompilerGenerated]
		private sealed class <SaveControl>d__6 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public LaceKnightBehaviour <>4__this;

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

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

			[DebuggerHidden]
			public <SaveControl>d__6(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;
					<>4__this._control = FSMUtility.LocateMyFSM(((Component)<>4__this).gameObject, "Control");
					<>2__current = ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.SavedSlashPrefab());
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<>4__this.ModifyPhase1();
					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 <SavedSlashPrefab>d__5 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public LaceKnightBehaviour <>4__this;

			private GameObject <go>5__1;

			private GameObject <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_002c: Unknown result type (might be due to invalid IL or missing references)
				//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = ((ManagedAssetBase<GameObject>)(object)<>4__this._slashBlade).Load();
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<go>5__1 = ManagedAssetExtensions.InstantiateAsset<GameObject>(<>4__this._slashBlade);
					<go>5__1.SetActive(false);
					<i>5__2 = Object.Instantiate<GameObject>(<go>5__1);
					((Object)<i>5__2).name = "lace_wild_slash_V";
					<i>5__2.transform.position = new Vector3(60f, 60f, 0f);
					<i>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();
			}
		}

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

		private PlayMakerFSM _control = null;

		private GameObject? _cut = null;

		private ManagedAsset<GameObject> _slashBlade;

		private void Awake()
		{
			_slashBlade = ManagedAsset<GameObject>.FromNonSceneAsset("Assets/Prefabs/Hornet Bosses/lace_wild_slash_blade.prefab", "localpoolprefabs_assets_areasong");
			((MonoBehaviour)this).StartCoroutine(SaveControl());
		}

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

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

		private void ModifyPhase1()
		{
			((Component)this).gameObject.GetComponent<HealthManager>().initHp = 1000;
			((Component)this).gameObject.GetComponent<HealthManager>().hp = 1000;
			FsmUtil.GetIntVariable(_control, "P2 HP").Value = 770;
			FsmUtil.GetIntVariable(_control, "P3 HP").Value = 430;
			PoolSetup();
			AddPoses();
			ClipManager();
			AddBombSlash();
			AirRapidFlurry();
			AddCircleSlam();
			AddFollowupToDive();
			AddP3Intro();
			AddMethodsToFsm();
		}

		private void PoolSetup()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: 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)
			PersonalObjectPool component = ((Component)this).gameObject.GetComponent<PersonalObjectPool>();
			GameObject prefab = component.startupPool[0].prefab;
			StartupPool val = default(StartupPool);
			val.size = 3;
			val.prefab = prefab;
			StartupPool item = val;
			component.startupPool.Add(item);
		}

		private void AddPoses()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			//IL_003a: 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_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			//IL_0051: 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_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: 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_0092: Expected O, but got Unknown
			//IL_0092: 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_00b3: Expected O, but got Unknown
			//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_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			FsmState val = new FsmState(_control.fsm);
			val.name = "Pose Lean New";
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[4]
			{
				FsmUtil.GetStateAction(_control, "Pose Lean", 1),
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					speed = FsmFloat.op_Implicit(0f),
					ySpeed = FsmFloat.op_Implicit(0f),
					everyFrame = true
				},
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					clipName = FsmString.op_Implicit("Pose Lean"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				},
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.22f),
					finishEvent = FsmEvent.GetFsmEvent("FINISHED")
				}
			};
			FsmUtil.AddState(_control, val);
			FsmUtil.AddTransition(val, "FINISHED", "Idle");
		}

		private void AddBombSlash()
		{
			FsmUtil.ChangeTransition(_control, "Charge Recover", "FINISHED", "B Slash HopAntic");
		}

		private void AirRapidFlurry()
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Expected O, but got Unknown
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Expected O, but got Unknown
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			//IL_0095: 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_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Expected O, but got Unknown
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Expected O, but got Unknown
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: 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_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Expected O, but got Unknown
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: 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_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Expected O, but got Unknown
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c9: 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_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Expected O, but got Unknown
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_0209: Unknown result type (might be due to invalid IL or missing references)
			//IL_020b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Expected O, but got Unknown
			//IL_0215: 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_0232: Expected O, but got Unknown
			FsmState state = FsmUtil.GetState(_control, "Counter TeleIn");
			FloatMultiply val = (FloatMultiply)state.Actions[2];
			SetPosition val2 = (SetPosition)state.Actions[5];
			val2.y = FsmFloat.op_Implicit(108.65f);
			val.multiplyBy = FsmFloat.op_Implicit(13f);
			FsmFloat val3 = new FsmFloat
			{
				name = "Angle At Counter",
				value = 0f
			};
			_control.FsmVariables.floatVariables = _control.FsmVariables.floatVariables.Append(val3).ToArray();
			FsmFloat val4 = new FsmFloat
			{
				name = "Chase Angle",
				value = 0f
			};
			_control.FsmVariables.floatVariables = _control.FsmVariables.floatVariables.Append(val4).ToArray();
			if (FsmUtil.GetBoolVariable(_control, "P2 Shift").value)
			{
				val.multiplyBy = FsmFloat.op_Implicit(1.75f);
				FsmUtil.AddAction(FsmUtil.GetState(_control, "RapidSlash Air"), (FsmStateAction)new GetAngleToTarget2D
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					target = FsmGameObject.op_Implicit(((Component)HeroController.instance).gameObject),
					offsetX = FsmFloat.op_Implicit(0f),
					offsetY = FsmFloat.op_Implicit(0f),
					storeAngle = val3,
					everyFrame = false
				});
				FsmUtil.AddAction(FsmUtil.GetState(_control, "RapidSlash Air"), (FsmStateAction)new GetAngleToTarget2D
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					target = FsmGameObject.op_Implicit(((Component)HeroController.instance).gameObject),
					offsetX = FsmFloat.op_Implicit(0f),
					offsetY = FsmFloat.op_Implicit(0f),
					storeAngle = val4,
					everyFrame = true
				});
				FsmUtil.AddAction(FsmUtil.GetState(_control, "RapidSlash Air"), (FsmStateAction)new RotateTo
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					targetAngle = val4,
					speed = FsmFloat.op_Implicit(10f)
				});
			}
		}

		private void ClipManager()
		{
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Expected O, but got Unknown
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Expected O, but got Unknown
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Expected O, but got Unknown
			tk2dSpriteAnimator component = ((Component)this).gameObject.GetComponent<tk2dSpriteAnimator>();
			tk2dSpriteAnimationClip clipByName = component.library.GetClipByName("Bomb Slash");
			tk2dSpriteAnimationClip clipByName2 = component.library.GetClipByName("Bomb Slash Antic");
			clipByName.frames[2] = clipByName.frames[0];
			clipByName.frames[3] = clipByName2.frames[6];
			clipByName.frames[4] = clipByName2.frames[5];
			clipByName.frames[5] = clipByName2.frames[6];
			clipByName.frames[6] = clipByName.frames[1];
			FsmState val = new FsmState(_control.fsm);
			val.Name = "B Slash Fall";
			FsmUtil.AddState(_control, val);
			FsmStateAction[] actions = FsmUtil.GetState(_control, "Fall").Actions;
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[5]
			{
				actions[1],
				actions[2],
				actions[3],
				actions[4],
				(FsmStateAction)new Tk2dPlayAnimation
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					animLibName = FsmString.op_Implicit(""),
					clipName = FsmString.op_Implicit("Multihit AirEnd")
				}
			};
			FsmUtil.ChangeTransition(_control, "B Slash End", "FINISHED", "B Slash Fall");
			FsmUtil.AddTransition(_control, "B Slash Fall", "LAND", "Land");
			Wait val2 = new Wait
			{
				time = FsmFloat.op_Implicit(0.015f),
				finishEvent = FsmEvent.GetFsmEvent("FINISHED")
			};
			FsmUtil.AddAction(_control, "B Slash 1", (FsmStateAction)(object)val2);
			FsmUtil.AddAction(_control, "B Slash 2", (FsmStateAction)(object)val2);
			FsmUtil.AddAction(_control, "B Slash 2 Wall", (FsmStateAction)(object)val2);
			FsmUtil.AddAction(_control, "B Slash 3", (FsmStateAction)(object)val2);
		}

		private void AddMethodsToFsm()
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Expected O, but got Unknown
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Expected O, but got Unknown
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: 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_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Expected O, but got Unknown
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Expected O, but got Unknown
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Expected O, but got Unknown
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Expected O, but got Unknown
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: 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_01a1: Expected O, but got Unknown
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ec: Expected O, but got Unknown
			//IL_0356: Unknown result type (might be due to invalid IL or missing references)
			//IL_035b: Unknown result type (might be due to invalid IL or missing references)
			//IL_035c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_0363: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Expected O, but got Unknown
			//IL_036d: 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_038d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0399: Expected O, but got Unknown
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bc: Expected O, but got Unknown
			//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e8: Expected O, but got Unknown
			//IL_03f4: 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)
			//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: 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_040b: Expected O, but got Unknown
			//IL_040b: 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_042b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0437: Expected O, but got Unknown
			//IL_0443: Unknown result type (might be due to invalid IL or missing references)
			//IL_0448: Unknown result type (might be due to invalid IL or missing references)
			//IL_0449: Unknown result type (might be due to invalid IL or missing references)
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Expected O, but got Unknown
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_046a: Unknown result type (might be due to invalid IL or missing references)
			//IL_047a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0486: Expected O, but got Unknown
			FsmEvent fsmEvent = FsmEvent.GetFsmEvent("FINISHED");
			FsmState val = new FsmState(_control.fsm);
			val.Name = "Vertical Cut";
			FsmUtil.AddState(_control, val);
			Tk2dWatchAnimationEvents val2 = new Tk2dWatchAnimationEvents
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				animationCompleteEvent = fsmEvent
			};
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				new PullWebSlash(_cut, _control),
				FsmUtil.GetState(_control, "ComboSlash 6").Actions[9],
				(FsmStateAction)val2
			};
			FsmState val3 = new FsmState(_control.fsm);
			val3.Name = "Vertical Cut Antic";
			FsmUtil.AddState(_control, val3);
			Tk2dPlayAnimationWithEvents val4 = new Tk2dPlayAnimationWithEvents
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				clipName = FsmString.op_Implicit("Engarde"),
				animationCompleteEvent = fsmEvent
			};
			val3.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
			{
				(FsmStateAction)val4,
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.465f),
					finishEvent = fsmEvent
				}
			};
			FsmUtil.AddTransition(val3, "FINISHED", "Vertical Cut");
			FsmUtil.AddTransition(val, "FINISHED", "Distance Check");
			FsmInt element = new FsmInt
			{
				name = "Vertical Cut Tracker",
				value = 0
			};
			_control.FsmVariables.IntVariables = _control.FsmVariables.IntVariables.Append(element).ToArray();
			FsmInt element2 = new FsmInt
			{
				name = "Vertical Cut Missed",
				value = 0
			};
			_control.FsmVariables.IntVariables = _control.FsmVariables.IntVariables.Append(element2).ToArray();
			SendRandomEventV3 val5 = (SendRandomEventV3)FsmUtil.GetState(_control, "Far").Actions[7];
			val5.events = val5.events.Append(fsmEvent).ToArray();
			val5.weights = val5.weights.Append(FsmFloat.op_Implicit(0.6f)).ToArray();
			val5.trackingInts = val5.trackingInts.Append(element).ToArray();
			val5.eventMax = val5.eventMax.Append(FsmInt.op_Implicit(1)).ToArray();
			val5.trackingIntsMissed = val5.trackingIntsMissed.Append(element2).ToArray();
			val5.missedMax = val5.missedMax.Append(FsmInt.op_Implicit(5)).ToArray();
			FsmUtil.AddTransition(FsmUtil.GetState(_control, "Far"), "FINISHED", "Vertical Cut Antic");
			FsmUtil.AddAction(_control, "ComboSlash 6", (FsmStateAction)(object)new SprayCuts(_control));
			FsmUtil.AddAction(_control, "RapidSlash Air", (FsmStateAction)(object)new FlurryAir(_control, 4));
			FsmUtil.AddAction(_control, "RapidSlash Loop", (FsmStateAction)(object)new FlurryGround(_control, 4));
			FsmUtil.AddAction(_control, "P2 Shift 1", (FsmStateAction)(object)new DoModCompMethod(((Component)this).gameObject, 2));
			FsmUtil.AddAction(_control, "Quick Slash 1", (FsmStateAction)(object)new LatticeSlash(_control, 1f));
			FsmUtil.AddAction(_control, "CrossSlash Antic", (FsmStateAction)new SetVelocityByScale
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				speed = FsmFloat.op_Implicit(0f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			});
			FsmUtil.AddAction(_control, "Slash Slam", (FsmStateAction)new SetVelocityByScale
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				speed = FsmFloat.op_Implicit(0f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			});
			FsmUtil.AddAction(_control, "P2 Shift 1", (FsmStateAction)new SetVelocityByScale
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				speed = FsmFloat.op_Implicit(0f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			});
			FsmUtil.AddAction(_control, "P3 RoarAntic", (FsmStateAction)new SetVelocityByScale
			{
				gameObject = new FsmOwnerDefault
				{
					ownerOption = (OwnerDefaultOption)0
				},
				speed = FsmFloat.op_Implicit(0f),
				ySpeed = FsmFloat.op_Implicit(0f),
				everyFrame = false
			});
		}

		private void AddCircleSlam()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Expected O, but got Unknown
			//IL_002a: 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_0058: Expected O, but got Unknown
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Expected O, but got Unknown
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: 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_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Expected O, but got Unknown
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: 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_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Expected O, but got Unknown
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Expected O, but got Unknown
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0178: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: 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_01a0: Expected O, but got Unknown
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Expected O, but got Unknown
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Expected O, but got Unknown
			//IL_024f: 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_025b: 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_027b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Expected O, but got Unknown
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_028a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0291: 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_02a9: Expected O, but got Unknown
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Expected O, but got Unknown
			//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e3: Expected O, but got Unknown
			//IL_0308: Unknown result type (might be due to invalid IL or missing references)
			//IL_030d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Expected O, but got Unknown
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_032c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0334: 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_035c: Expected O, but got Unknown
			//IL_035e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0363: Unknown result type (might be due to invalid IL or missing references)
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_037b: Expected O, but got Unknown
			//IL_039e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a5: Expected O, but got Unknown
			//IL_03de: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0404: 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_0424: Unknown result type (might be due to invalid IL or missing references)
			//IL_042c: Expected O, but got Unknown
			//IL_042e: 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_043a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0442: Unknown result type (might be due to invalid IL or missing references)
			//IL_0444: Unknown result type (might be due to invalid IL or missing references)
			//IL_0449: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Unknown result type (might be due to invalid IL or missing references)
			//IL_046a: Unknown result type (might be due to invalid IL or missing references)
			//IL_047b: Expected O, but got Unknown
			//IL_047d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0482: Unknown result type (might be due to invalid IL or missing references)
			//IL_048a: Unknown result type (might be due to invalid IL or missing references)
			//IL_049a: Unknown result type (might be due to invalid IL or missing references)
			//IL_04aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c0: Expected O, but got Unknown
			//IL_04d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d8: Expected O, but got Unknown
			//IL_04fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0509: Unknown result type (might be due to invalid IL or missing references)
			//IL_051a: Expected O, but got Unknown
			FsmOwnerDefault val = new FsmOwnerDefault
			{
				ownerOption = (OwnerDefaultOption)0
			};
			FsmEvent fsmEvent = FsmEvent.GetFsmEvent("FINISHED");
			GameObject prefab = ((Component)this).gameObject.GetComponent<PersonalObjectPool>().startupPool[0].prefab;
			FsmFloat val2 = FsmUtil.AddFloatVariable(_control, "Hero Distance X");
			FsmState val3 = new FsmState(_control.fsm);
			val3.Name = "Jump Slam Check";
			FsmUtil.AddState(_control, val3);
			val3.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				(FsmStateAction)new BoolTest
				{
					boolVariable = FsmUtil.GetBoolVariable(_control, "Did P2 Shift"),
					isFalse = fsmEvent
				},
				(FsmStateAction)new GetXDistance
				{
					gameObject = val,
					target = FsmGameObject.op_Implicit(((Component)HeroController.instance).gameObject),
					storeResult = val2,
					everyFrame = false
				},
				(FsmStateAction)new FloatCompare
				{
					float1 = val2,
					float2 = FsmFloat.op_Implicit(3.5f),
					tolerance = FsmFloat.op_Implicit(0f),
					equal = FsmEvent.GetFsmEvent("J SLASH"),
					lessThan = FsmEvent.GetFsmEvent("J SLASH"),
					greaterThan = fsmEvent,
					everyFrame = false
				}
			};
			FsmState val4 = new FsmState(_control.fsm);
			val4.Name = "Jump Slam Swish";
			FsmUtil.AddState(_control, val4);
			val4.Actions = (FsmStateAction[])(object)new FsmStateAction[6]
			{
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = val,
					speed = FsmFloat.op_Implicit(-1.4f),
					ySpeed = FsmFloat.op_Implicit(4f),
					everyFrame = false
				},
				FsmUtil.GetStateAction(_control, "Downstab Antic", 0),
				FsmUtil.GetStateAction(_control, "Downstab Antic", 3),
				FsmUtil.GetStateAction(_control, "ComboSlash 1", 4),
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = val,
					clipName = FsmString.op_Implicit("Downstab Followup"),
					animationCompleteEvent = fsmEvent
				},
				new CircleSpawn(prefab, ((Component)this).gameObject, 1)
			};
			FsmState val5 = new FsmState(_control.fsm);
			val5.Name = "Jump Slam Down Antic";
			FsmUtil.AddState(_control, val5);
			val5.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
			{
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = val,
					speed = FsmFloat.op_Implicit(0f),
					ySpeed = FsmFloat.op_Implicit(0f),
					everyFrame = false
				},
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = val,
					clipName = FsmString.op_Implicit("Downstab End"),
					animationCompleteEvent = fsmEvent
				}
			};
			SendEventByName val6 = (SendEventByName)FsmUtil.GetStateAction(_control, "Slash Slam", 15);
			FsmEventTarget eventTarget = val6.eventTarget;
			FsmState val7 = new FsmState(_control.fsm);
			val7.Name = "Jump Slam Prep";
			FsmUtil.AddState(_control, val7);
			val7.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				(FsmStateAction)new SetRecoilSpeed
				{
					target = val,
					newRecoilSpeed = FsmFloat.op_Implicit(0f)
				},
				(FsmStateAction)new SendEventByName
				{
					eventTarget = eventTarget,
					sendEvent = FsmString.op_Implicit("STUN CONTROL STOP"),
					delay = FsmFloat.op_Implicit(0f),
					everyFrame = false
				},
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.075f),
					finishEvent = fsmEvent
				}
			};
			FsmFloat val8 = FsmUtil.AddFloatVariable(_control, "Self Y");
			FsmState val9 = new FsmState(_control.fsm);
			val9.Name = "Jump Slam Down";
			FsmUtil.AddState(_control, val9);
			val9.Actions = (FsmStateAction[])(object)new FsmStateAction[4]
			{
				FsmUtil.GetStateAction(_control, "CrossSlash", 7),
				(FsmStateAction)new SetVelocity2d
				{
					gameObject = val,
					vector = FsmVector2.op_Implicit(new Vector2(0f, -85f)),
					x = FsmFloat.op_Implicit(0f),
					y = FsmFloat.op_Implicit(-85f),
					everyFrame = false
				},
				(FsmStateAction)new GetPosition2D
				{
					gameObject = val,
					y = val8,
					space = (Space)0,
					everyFrame = true,
					vector = FsmVector2.op_Implicit(new Vector2(0f, 0f)),
					x = FsmFloat.op_Implicit(0f)
				},
				(FsmStateAction)new FloatCompare
				{
					float1 = val8,
					float2 = FsmFloat.op_Implicit(100.5775f),
					tolerance = FsmFloat.op_Implicit(0f),
					lessThan = fsmEvent,
					equal = fsmEvent,
					everyFrame = true
				}
			};
			FsmState val10 = new FsmState(_control.fsm);
			val10.Name = "Jump Slam Land";
			FsmUtil.AddState(_control, val10);
			val10.Actions = (FsmStateAction[])(object)new FsmStateAction[7]
			{
				(FsmStateAction)new SetRecoilSpeed
				{
					target = val,
					newRecoilSpeed = FsmFloat.op_Implicit(15f)
				},
				FsmUtil.GetStateAction(_control, "Slash Slam", 3),
				FsmUtil.GetStateAction(_control, "Slash Slam", 4),
				FsmUtil.GetStateAction(_control, "Slash Slam", 9),
				FsmUtil.GetStateAction(_control, "Slash Slam", 14),
				FsmUtil.GetStateAction(_control, "Slash Slam", 15),
				FsmUtil.GetStateAction(_control, "Bounce Back", 1)
			};
			FsmUtil.ChangeTransition(_control, "Force L?", "FINISHED", "Jump Slam Check");
			FsmUtil.AddTransition(_control, "Jump Slam Check", "FINISHED", "Downstab Antic");
			FsmUtil.AddTransition(_control, "Jump Slam Check", "J SLASH", "Jump Slam Swish");
			FsmUtil.AddTransition(_control, "Jump Slam Swish", "FINISHED", "Jump Slam Down Antic");
			FsmUtil.AddTransition(_control, "Jump Slam Down Antic", "FINISHED", "Jump Slam Prep");
			FsmUtil.AddTransition(_control, "Jump Slam Prep", "FINISHED", "Jump Slam Down");
			FsmUtil.AddTransition(_control, "Jump Slam Down", "FINISHED", "Jump Slam Land");
			FsmUtil.AddTransition(_control, "Jump Slam Land", "FINISHED", "Pose");
		}

		private void AddFollowupToDive()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Expected O, but got Unknown
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Expected O, but got Unknown
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Expected O, but got Unknown
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: 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_0116: Expected O, but got Unknown
			//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_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Expected O, but got Unknown
			//IL_017e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Expected O, but got Unknown
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Expected O, but got Unknown
			//IL_01d6: 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_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Expected O, but got Unknown
			//IL_020c: 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_0218: 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_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Expected O, but got Unknown
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0301: Expected O, but got Unknown
			//IL_030d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Expected O, but got Unknown
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_033e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0345: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Expected O, but got Unknown
			//IL_0368: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Unknown result type (might be due to invalid IL or missing references)
			//IL_036e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_037f: Expected O, but got Unknown
			//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_039f: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a7: Expected O, but got Unknown
			FsmOwnerDefault val = new FsmOwnerDefault
			{
				ownerOption = (OwnerDefaultOption)0
			};
			FsmState val2 = new FsmState(_control.fsm);
			val2.Name = "Dive Follow?";
			FsmUtil.AddState(_control, val2);
			val2.Actions = (FsmStateAction[])(object)new FsmStateAction[1] { (FsmStateAction)new CheckFacingTarget
			{
				facingObject = val,
				target = FsmGameObject.op_Implicit(((Component)HeroController.instance).gameObject),
				spriteFacesRight = true,
				everyFrame = false,
				facingEvent = FsmEvent.GetFsmEvent("COMBO"),
				notFacingEvent = FsmEvent.GetFsmEvent("NEXT"),
				facingBool = FsmBool.op_Implicit(false),
				notFacingBool = FsmBool.op_Implicit(false)
			} };
			FsmState val3 = new FsmState(_control.fsm);
			val3.Name = "Dive Follow Short";
			FsmUtil.AddState(_control, val3);
			val3.Actions = (FsmStateAction[])(object)new FsmStateAction[4]
			{
				(FsmStateAction)new DecelerateXY
				{
					gameObject = val,
					decelerationX = FsmFloat.op_Implicit(0.875f),
					decelerationY = FsmFloat.op_Implicit(0.94f),
					brakeOnExit = false
				},
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = val,
					clipName = FsmString.op_Implicit("Quick Slash"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				},
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 0),
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 4)
			};
			FsmState val4 = new FsmState(_control.fsm);
			val4.Name = "Dive Follow Long";
			FsmUtil.AddState(_control, val4);
			val4.Actions = (FsmStateAction[])(object)new FsmStateAction[9]
			{
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = val,
					clipName = FsmString.op_Implicit("Combo Strike 1"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				},
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = val,
					speed = FsmFloat.op_Implicit(34.25f),
					ySpeed = FsmFloat.op_Implicit(0f),
					everyFrame = false
				},
				(FsmStateAction)new DecelerateXY
				{
					gameObject = val,
					decelerationX = FsmFloat.op_Implicit(0.925f),
					decelerationY = FsmFloat.op_Implicit(0f),
					brakeOnExit = true
				},
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 0),
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 1),
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 4),
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 6),
				FsmUtil.GetStateAction(_control, "J Slash Antic", 4),
				FsmUtil.GetStateAction(_control, "Charge", 8)
			};
			FsmUtil.InsertAction(_control, "Downstab Land", (FsmStateAction)new BoolTest
			{
				boolVariable = FsmUtil.GetBoolVariable(_control, "Did P2 Shift"),
				isTrue = FsmEvent.GetFsmEvent("COMBO"),
				everyFrame = false
			}, 5);
			FsmState val5 = new FsmState(_control.fsm);
			val5.Name = "Dive Follow Cancel";
			FsmUtil.AddState(_control, val5);
			val5.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
			{
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = val,
					clipName = FsmString.op_Implicit("Downstab End"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				},
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					speed = FsmFloat.op_Implicit(0f),
					ySpeed = FsmFloat.op_Implicit(0f),
					everyFrame = false
				}
			};
			FsmUtil.AddTransition(_control, "Downstab Land", "COMBO", "Dive Follow?");
			FsmUtil.AddTransition(_control, "Dive Follow?", "NEXT", "Dive Follow Cancel");
			FsmUtil.AddTransition(_control, "Dive Follow Cancel", "FINISHED", "Will Counter?");
			FsmUtil.AddTransition(_control, "Dive Follow?", "COMBO", "Dive Follow Short");
			FsmUtil.AddTransition(_control, "Dive Follow Short", "FINISHED", "Dive Follow Long");
			FsmUtil.AddTransition(_control, "Dive Follow Long", "FINISHED", "Pose Lean New");
		}

		public void AddRKSlash()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected O, but got Unknown
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Expected O, but got Unknown
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Expected O, but got Unknown
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Expected O, but got Unknown
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0138: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Expected O, but got Unknown
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Expected O, but got Unknown
			//IL_0202: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Expected O, but got Unknown
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: 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_0221: 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_025e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Expected O, but got Unknown
			AddP3Thrust();
			FsmState val = new FsmState(_control.fsm);
			val.name = "RK Slash Antic";
			val.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					clipName = FsmString.op_Implicit("Jump Antic"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("NEXT")
				},
				FsmUtil.GetStateAction(_control, "Pose Lean", 2),
				FsmUtil.GetStateAction(_control, "J Slash Antic", 4)
			};
			FsmState val2 = new FsmState(_control.fsm);
			val2.name = "RK Slash Lines";
			val2.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				FsmUtil.GetStateAction(_control, "B Slash Hop 2", 2),
				new WheelSlash(_control),
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.65f),
					finishEvent = FsmEvent.GetFsmEvent("NEXT")
				}
			};
			FsmState val3 = new FsmState(_control.fsm);
			val3.name = "RK Slash Attack";
			val3.Actions = (FsmStateAction[])(object)new FsmStateAction[3]
			{
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					clipName = FsmString.op_Implicit("Combo Slash Q"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("NEXT")
				},
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 4),
				FsmUtil.GetStateAction(_control, "ComboSlash 2", 6)
			};
			FsmUtil.AddState(_control, val);
			FsmUtil.AddState(_control, val2);
			FsmUtil.AddState(_control, val3);
			FsmUtil.AddTransition(val, "NEXT", "RK Slash Lines");
			FsmUtil.AddTransition(val2, "NEXT", "RK Slash Attack");
			FsmUtil.AddTransition(val3, "NEXT", "Distance Check");
			SendRandomEventV3 val4 = (SendRandomEventV3)FsmUtil.GetState(_control, "Far").Actions[7];
			FsmInt element = new FsmInt
			{
				name = "Wheel Slash Tracker",
				value = 0
			};
			_control.FsmVariables.IntVariables = _control.FsmVariables.IntVariables.Append(element).ToArray();
			FsmInt element2 = new FsmInt
			{
				name = "Wheel Slash Missed",
				value = 0
			};
			_control.FsmVariables.IntVariables = _control.FsmVariables.IntVariables.Append(element2).ToArray();
			val4.events = val4.events.Append(FsmEvent.GetFsmEvent("FAR")).ToArray();
			val4.weights = val4.weights.Append(FsmFloat.op_Implicit(0.5f)).ToArray();
			val4.trackingInts = val4.trackingInts.Append(element).ToArray();
			val4.eventMax = val4.eventMax.Append(FsmInt.op_Implicit(1)).ToArray();
			val4.trackingIntsMissed = val4.trackingIntsMissed.Append(element2).ToArray();
			val4.missedMax = val4.missedMax.Append(FsmInt.op_Implicit(4)).ToArray();
			FsmUtil.AddTransition(FsmUtil.GetState(_control, "Far"), "FAR", "RK Slash Antic");
		}

		public void AddP3Thrust()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Expected O, but got Unknown
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Expected O, but got Unknown
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: 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_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Expected O, but got Unknown
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Expected O, but got Unknown
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Expected O, but got Unknown
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: 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_0188: Expected O, but got Unknown
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: 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)
			//IL_01b0: Expected O, but got Unknown
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Expected O, but got Unknown
			FsmFloat val = FsmUtil.AddFloatVariable(_control, "Angle To Hero");
			FsmFloat val2 = FsmUtil.AddFloatVariable(_control, "Thrust Distance Hero");
			FsmState val3 = new FsmState(_control.fsm);
			val3.name = "Thrust Turn";
			val3.Actions = (FsmStateAction[])(object)new FsmStateAction[2]
			{
				(FsmStateAction)new Tk2dPlayAnimationWithEvents
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					clipName = FsmString.op_Implicit("Charge Crossup"),
					animationCompleteEvent = FsmEvent.GetFsmEvent("FINISHED")
				},
				FsmUtil.GetStateAction(_control, "B Slash Hop 2", 2)
			};
			FsmState val4 = new FsmState(_control.fsm);
			val4.name = "Thrust Fly";
			val4.Actions = (FsmStateAction[])(object)new FsmStateAction[7]
			{
				(FsmStateAction)new Tk2dPlayAnimation
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					animLibName = FsmString.op_Implicit(""),
					clipName = FsmString.op_Implicit("Tele Out")
				},
				FsmUtil.GetStateAction(_control, "B Slash Hop 2", 2),
				FsmUtil.GetStateAction(_control, "Pose Lean", 2),
				FsmUtil.GetStateAction(_control, "Counter TeleOut", 6),
				FsmUtil.GetStateAction(_control, "Crossup Antic", 4),
				(FsmStateAction)new SetVelocityByScale
				{
					gameObject = new FsmOwnerDefault
					{
						ownerOption = (OwnerDefaultOption)0
					},
					speed = FsmFloat.op_Implicit(6.2554f),
					ySpeed = FsmFloat.op_Implicit(0.7654f),
					everyFrame = true
				},
				(FsmStateAction)new Wait
				{
					time = FsmFloat.op_Implicit(0.45f),
					finishEvent = FsmEvent.GetFsmEvent("FINISHED")
				}
			};
			FsmState val5 = new FsmState(_control.fsm);
			val5.name = "Thrust Fly End";
			val5