Decompiled source of Yukari Yakumo v0.1.2

YukariYakumoMod_windows.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 AddWatermark;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using Cysharp.Threading.Tasks;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.Intentions;
using LBoL.Core.Randoms;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Cards.Character.Cirno;
using LBoL.EntityLib.Cards.Character.Marisa;
using LBoL.EntityLib.Cards.Character.Sakuya;
using LBoL.EntityLib.Cards.Neutral.Black;
using LBoL.EntityLib.Cards.Neutral.Red;
using LBoL.EntityLib.Cards.Neutral.White;
using LBoL.EntityLib.EnemyUnits.Character;
using LBoL.EntityLib.Exhibits;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Cirno;
using LBoL.EntityLib.StatusEffects.Enemy;
using LBoL.EntityLib.StatusEffects.Neutral.TwoColor;
using LBoL.EntityLib.StatusEffects.Others;
using LBoL.Presentation;
using LBoL.Presentation.UI.ExtraWidgets;
using LBoL.Presentation.UI.Panels;
using LBoL.Presentation.UI.Widgets;
using LBoL.Presentation.Units;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.CustomKeywords;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using PullFix.Patches;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using YukariYakumoMod.BattleActions;
using YukariYakumoMod.Cards;
using YukariYakumoMod.Cards.Template;
using YukariYakumoMod.Config;
using YukariYakumoMod.Enemies.Template;
using YukariYakumoMod.GunName;
using YukariYakumoMod.ImageLoader;
using YukariYakumoMod.Localization;
using YukariYakumoMod.Model;
using YukariYakumoMod.Patches;
using YukariYakumoMod.SFX;
using YukariYakumoMod.SFX.Template;
using YukariYakumoMod.StatusEffects;

[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: IgnoresAccessChecksTo("LBoL.Base")]
[assembly: IgnoresAccessChecksTo("LBoL.ConfigData")]
[assembly: IgnoresAccessChecksTo("LBoL.Core")]
[assembly: IgnoresAccessChecksTo("LBoL.EntityLib")]
[assembly: IgnoresAccessChecksTo("LBoL.Presentation")]
[assembly: IgnoresAccessChecksTo("Untitled.ConfigDataBuilder.Base")]
[assembly: AssemblyCompany("YukariYakumoMod_windows")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("YukariYakumoMod_windows")]
[assembly: AssemblyTitle("YukariYakumoMod_windows")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace PullFix.Patches
{
	[HarmonyPatch(typeof(UnitView))]
	internal class UnitView_SetTrigger_Patch
	{
		[CompilerGenerated]
		private sealed class <AnimateCrash>d__5 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_010d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0117: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.crash2,
						YukariYakumoModel.crash3,
						YukariYakumoModel.crash4,
						YukariYakumoModel.crash5,
						YukariYakumoModel.crash6
					};
					<i>5__2 = 0;
					goto IL_0138;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0138;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0138:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateCrashStart>d__4 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				//IL_0051: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					__instance.spriteRenderer.sprite = YukariYakumoModel.crash1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)YukariYakumoModel.crash1)
					{
						<>2__current = AnimateCrash(__instance);
						<>1__state = 2;
						return true;
					}
					break;
				case 2:
					<>1__state = -1;
					break;
				}
				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 <AnimateDefend>d__2 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0101: Unknown result type (might be due to invalid IL or missing references)
				//IL_010b: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.defend1,
						YukariYakumoModel.defend2,
						YukariYakumoModel.defend3,
						YukariYakumoModel.defend4
					};
					<i>5__2 = 0;
					goto IL_012c;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_012c;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_012c:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateGraze>d__11 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0131: Unknown result type (might be due to invalid IL or missing references)
				//IL_013b: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.graze4,
						YukariYakumoModel.graze5,
						YukariYakumoModel.graze6,
						YukariYakumoModel.graze7,
						YukariYakumoModel.graze8,
						YukariYakumoModel.graze9,
						YukariYakumoModel.graze10,
						YukariYakumoModel.graze11
					};
					<i>5__2 = 0;
					goto IL_015c;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_015c;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_015c:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateGrazeStart>d__10 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ff: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.graze1,
						YukariYakumoModel.graze2,
						YukariYakumoModel.graze3
					};
					<i>5__2 = 0;
					goto IL_0120;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0120;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0120:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateGraze(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateGuard>d__3 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0101: Unknown result type (might be due to invalid IL or missing references)
				//IL_010b: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.guard1,
						YukariYakumoModel.guard2,
						YukariYakumoModel.guard3,
						YukariYakumoModel.guard4
					};
					<i>5__2 = 0;
					goto IL_012c;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_012c;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_012c:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateHit>d__9 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f3: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.hit1,
						YukariYakumoModel.hit2
					};
					<i>5__2 = 0;
					goto IL_0114;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0114;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0114:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateIdle>d__1 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0155: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.idle1,
						YukariYakumoModel.idle2,
						YukariYakumoModel.idle3,
						YukariYakumoModel.idle4,
						YukariYakumoModel.idle5,
						YukariYakumoModel.idle6,
						YukariYakumoModel.idle7,
						YukariYakumoModel.idle8,
						YukariYakumoModel.idle9,
						YukariYakumoModel.idle10,
						YukariYakumoModel.idle11
					};
					<i>5__2 = 0;
					goto IL_0180;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0180;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0180:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateIntro>d__12 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0161: Unknown result type (might be due to invalid IL or missing references)
				//IL_016b: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.intro1,
						YukariYakumoModel.intro2,
						YukariYakumoModel.intro3,
						YukariYakumoModel.intro4,
						YukariYakumoModel.intro5,
						YukariYakumoModel.intro6,
						YukariYakumoModel.intro7,
						YukariYakumoModel.intro8,
						YukariYakumoModel.intro9,
						YukariYakumoModel.intro10,
						YukariYakumoModel.intro11,
						YukariYakumoModel.intro12
					};
					<i>5__2 = 0;
					goto IL_018c;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_018c;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_018c:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateShoot>d__7 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0155: Unknown result type (might be due to invalid IL or missing references)
				//IL_015f: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.shoot1,
						YukariYakumoModel.shoot2,
						YukariYakumoModel.shoot3,
						YukariYakumoModel.shoot4,
						YukariYakumoModel.shoot5,
						YukariYakumoModel.shoot6,
						YukariYakumoModel.shoot7,
						YukariYakumoModel.shoot8,
						YukariYakumoModel.shoot9,
						YukariYakumoModel.shoot10,
						YukariYakumoModel.shoot11
					};
					<i>5__2 = 0;
					goto IL_0180;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0180;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0180:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateSkill>d__6 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_013d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0147: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.skill1,
						YukariYakumoModel.skill2,
						YukariYakumoModel.skill3,
						YukariYakumoModel.skill4,
						YukariYakumoModel.skill5,
						YukariYakumoModel.skill6,
						YukariYakumoModel.skill7,
						YukariYakumoModel.skill8,
						YukariYakumoModel.skill9
					};
					<i>5__2 = 0;
					goto IL_0168;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_0168;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_0168:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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 <AnimateSpell>d__8 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public UnitView __instance;

			private List<Sprite> <spriteList>5__1;

			private int <i>5__2;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0131: Unknown result type (might be due to invalid IL or missing references)
				//IL_013b: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<spriteList>5__1 = new List<Sprite>
					{
						YukariYakumoModel.spell1,
						YukariYakumoModel.spell2,
						YukariYakumoModel.spell3,
						YukariYakumoModel.spell4,
						YukariYakumoModel.spell5,
						YukariYakumoModel.spell6,
						YukariYakumoModel.spell7,
						YukariYakumoModel.spell8
					};
					<i>5__2 = 0;
					goto IL_015c;
				case 1:
					<>1__state = -1;
					<>2__current = (object)new WaitForSeconds(0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<i>5__2++;
					goto IL_015c;
				case 3:
					{
						<>1__state = -1;
						break;
					}
					IL_015c:
					if (<i>5__2 < <spriteList>5__1.Count())
					{
						if (<i>5__2 > 0 && !((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<i>5__2 - 1]))
						{
							return false;
						}
						Sprite val2 = (__instance.spriteRenderer.sprite = <spriteList>5__1[<i>5__2]);
						<>2__current = val2;
						<>1__state = 1;
						return true;
					}
					if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)<spriteList>5__1[<spriteList>5__1.Count() - 1])
					{
						<>2__current = AnimateIdle(__instance);
						<>1__state = 3;
						return true;
					}
					break;
				}
				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();
			}
		}

		[HarmonyPatch("SetTrigger", new Type[] { typeof(string) })]
		private static bool Prefix(UnitView __instance, string triggerName)
		{
			if (__instance._modelName == "YukariYakumoMod")
			{
				switch (triggerName)
				{
				case "defend":
					((MonoBehaviour)__instance).StartCoroutine(AnimateDefend(__instance));
					break;
				case "guard":
					((MonoBehaviour)__instance).StartCoroutine(AnimateGuard(__instance));
					break;
				case "crash":
					((MonoBehaviour)__instance).StartCoroutine(AnimateCrashStart(__instance));
					break;
				case "skill":
					((MonoBehaviour)__instance).StartCoroutine(AnimateSkill(__instance));
					break;
				case "shoot1":
					((MonoBehaviour)__instance).StartCoroutine(AnimateShoot(__instance));
					break;
				case "shoot2":
					((MonoBehaviour)__instance).StartCoroutine(AnimateShoot(__instance));
					break;
				case "shoot3":
					((MonoBehaviour)__instance).StartCoroutine(AnimateShoot(__instance));
					break;
				case "shoot4":
					((MonoBehaviour)__instance).StartCoroutine(AnimateShoot(__instance));
					break;
				case "spell":
					((MonoBehaviour)__instance).StartCoroutine(AnimateSpell(__instance));
					break;
				case "hit":
				{
					bool flag2 = false;
					List<Sprite> list2 = new List<Sprite>
					{
						YukariYakumoModel.skill1,
						YukariYakumoModel.skill2,
						YukariYakumoModel.skill3,
						YukariYakumoModel.skill4,
						YukariYakumoModel.skill5,
						YukariYakumoModel.skill6,
						YukariYakumoModel.skill7,
						YukariYakumoModel.skill8,
						YukariYakumoModel.skill9
					};
					foreach (Sprite item in list2)
					{
						if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)item)
						{
							flag2 = true;
							break;
						}
					}
					if (flag2)
					{
						break;
					}
					list2 = new List<Sprite>
					{
						YukariYakumoModel.crash1,
						YukariYakumoModel.crash2,
						YukariYakumoModel.crash3,
						YukariYakumoModel.crash4,
						YukariYakumoModel.crash5,
						YukariYakumoModel.crash6
					};
					foreach (Sprite item2 in list2)
					{
						if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)item2)
						{
							((MonoBehaviour)__instance).StartCoroutine(AnimateCrash(__instance));
							flag2 = true;
							break;
						}
					}
					if (!flag2)
					{
						((MonoBehaviour)__instance).StartCoroutine(AnimateHit(__instance));
					}
					break;
				}
				case "graze":
				{
					bool flag = false;
					List<Sprite> list = new List<Sprite>
					{
						YukariYakumoModel.graze1,
						YukariYakumoModel.graze2,
						YukariYakumoModel.graze3,
						YukariYakumoModel.graze4,
						YukariYakumoModel.graze5,
						YukariYakumoModel.graze6,
						YukariYakumoModel.graze7,
						YukariYakumoModel.graze8
					};
					foreach (Sprite item3 in list)
					{
						if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)item3)
						{
							flag = true;
							break;
						}
					}
					if (flag)
					{
						break;
					}
					list = new List<Sprite>
					{
						YukariYakumoModel.graze9,
						YukariYakumoModel.graze10,
						YukariYakumoModel.graze11
					};
					foreach (Sprite item4 in list)
					{
						if ((Object)(object)__instance.spriteRenderer.sprite == (Object)(object)item4)
						{
							((MonoBehaviour)__instance).StartCoroutine(AnimateGraze(__instance));
							flag = true;
							break;
						}
					}
					if (!flag)
					{
						((MonoBehaviour)__instance).StartCoroutine(AnimateGrazeStart(__instance));
					}
					break;
				}
				}
			}
			return true;
		}

		[IteratorStateMachine(typeof(<AnimateIdle>d__1))]
		private static IEnumerator AnimateIdle(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateIdle>d__1(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateDefend>d__2))]
		private static IEnumerator AnimateDefend(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateDefend>d__2(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateGuard>d__3))]
		private static IEnumerator AnimateGuard(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateGuard>d__3(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateCrashStart>d__4))]
		private static IEnumerator AnimateCrashStart(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateCrashStart>d__4(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateCrash>d__5))]
		private static IEnumerator AnimateCrash(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateCrash>d__5(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateSkill>d__6))]
		private static IEnumerator AnimateSkill(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateSkill>d__6(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateShoot>d__7))]
		private static IEnumerator AnimateShoot(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateShoot>d__7(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateSpell>d__8))]
		private static IEnumerator AnimateSpell(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateSpell>d__8(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateHit>d__9))]
		private static IEnumerator AnimateHit(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateHit>d__9(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateGrazeStart>d__10))]
		private static IEnumerator AnimateGrazeStart(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateGrazeStart>d__10(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateGraze>d__11))]
		private static IEnumerator AnimateGraze(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateGraze>d__11(0)
			{
				__instance = __instance
			};
		}

		[IteratorStateMachine(typeof(<AnimateIntro>d__12))]
		public static IEnumerator AnimateIntro(UnitView __instance)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <AnimateIntro>d__12(0)
			{
				__instance = __instance
			};
		}
	}
	[HarmonyPatch(typeof(Aya))]
	internal class AyaBatttleStarted_Patch
	{
		[HarmonyPatch("OnBattleStarted")]
		[HarmonyPostfix]
		private static void Postfix(Aya __instance)
		{
			if (((GameEntity)((GameEntity)__instance).GameRun.Player).Id == "YukariYakumoMod")
			{
				__instance.SpecialReport = typeof(YYAyaNews);
			}
		}
	}
	[HarmonyPatch(typeof(Long))]
	internal class LongBattleStarted_Patch
	{
		[HarmonyPatch("OnBattleStarted")]
		[HarmonyPostfix]
		private static void Postfix(Long __instance)
		{
			if (((GameEntity)((GameEntity)__instance).GameRun.Player).Id == "YukariYakumoMod")
			{
				__instance.SpecialReport = typeof(YYAyaNews);
			}
		}
	}
}
namespace LBoL.Core.Battle.BattleActions
{
	public class VoidCardsAction : EventBattleAction<VoidEventArgs>
	{
		[CompilerGenerated]
		private sealed class <GetPhases>d__4 : IEnumerable<Phase>, IEnumerable, IEnumerator<Phase>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private Phase <>2__current;

			private int <>l__initialThreadId;

			public VoidCardsAction <>4__this;

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

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

			[DebuggerHidden]
			public <GetPhases>d__4(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = ((BattleAction)<>4__this).CreatePhase("Main", (Action)delegate
					{
						<>4__this.ResolvePhase();
					}, true);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					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();
			}

			[DebuggerHidden]
			IEnumerator<Phase> IEnumerable<Phase>.GetEnumerator()
			{
				<GetPhases>d__4 result;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					result = this;
				}
				else
				{
					result = new <GetPhases>d__4(0)
					{
						<>4__this = <>4__this
					};
				}
				return result;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<Phase>)this).GetEnumerator();
			}
		}

		public List<Card> Cards { get; }

		internal VoidCardsAction(IEnumerable<Card> cards)
		{
			List<Card> list = new List<Card>();
			foreach (Card card in cards)
			{
				list.Add(card);
			}
			base.Args = new VoidEventArgs
			{
				Cards = list.ToArray()
			};
		}

		[IteratorStateMachine(typeof(<GetPhases>d__4))]
		public override IEnumerable<Phase> GetPhases()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <GetPhases>d__4(-2)
			{
				<>4__this = this
			};
		}

		internal void ResolvePhase()
		{
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			((BattleAction)this).React(new Reactor((IEnumerable<BattleAction>)base.Args.Cards.Select((Card card) => new VoidCardAction(card))), (GameEntity)null, (ActionCause?)null);
		}
	}
}
namespace YukariYakumoMod
{
	[BepInPlugin("Mizusa.LBoL.Character.YukariYakumo", "Yukari Yakumo", "0.1.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		public static string modUniqueID = "YukariYakumoMod";

		public static string playerName = "YukariYakumo";

		public static bool useInGameModel = false;

		public static string modelName = "Junko";

		public static bool modelIsFlipped = true;

		public static List<ManaColor> offColors = new List<ManaColor>
		{
			(ManaColor)2,
			(ManaColor)4,
			(ManaColor)5,
			(ManaColor)6
		};

		public static ConfigEntry<bool> enableAct1Boss;

		public static CustomConfigEntry<bool> enableAct1BossEntry = new CustomConfigEntry<bool>(value: false, "EnableAct1Boss", "EnableAct1Boss", "Toggle the Act 1 boss. Default: Off");

		private static readonly Harmony harmony = PInfo.harmony;

		internal static ManualLogSource log;

		internal static TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0);

		internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly());

		internal static DirectorySource directorySource = new DirectorySource("Mizusa.LBoL.Character.YukariYakumo", "");

		private void Awake()
		{
			log = ((BaseUnityPlugin)this).Logger;
			enableAct1Boss = ((BaseUnityPlugin)this).Config.Bind<bool>(enableAct1BossEntry.Section, enableAct1BossEntry.Key, enableAct1BossEntry.Value, enableAct1BossEntry.Description);
			Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			CardIndexGenerator.PromiseClearIndexSet();
			EntityManager.RegisterSelf();
			harmony.PatchAll();
			if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark"))
			{
				WatermarkWrapper.ActivateWatermark();
			}
			Func<Sprite> func = () => ResourceLoader.LoadSprite("BossIcon.png", (IResourceSource)(object)directorySource, (Rect?)null, 1, (Vector2?)null);
			EnemyUnitTemplate.AddBossNodeIcon("YukariYakumoMod", func, (Assembly)null);
		}

		private void OnDestroy()
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
	}
	public static class PInfo
	{
		public const string GUID = "Mizusa.LBoL.Character.YukariYakumo";

		public const string Name = "Yukari Yakumo";

		public const string version = "0.1.2";

		public static readonly Harmony harmony = new Harmony("Mizusa.LBoL.Character.YukariYakumo");
	}
	public class YukariYakumoLoadouts
	{
		public static string UltimateSkillA = "YukariYakumoUltW";

		public static string UltimateSkillB = "YukariYakumoUltB";

		public static string ExhibitA = "YukariYakumoExhibitA";

		public static string ExhibitB = "YukariYakumoExhibitB";

		public static List<string> DeckA = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "YYBasicAttackW", "YYBasicAttackW", "YYBasicBlockB", "YYBasicBlockB", "YYDreamsAndReality", "YYSpacetimeSeam" };

		public static List<string> DeckB = new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "YYBasicAttackB", "YYBasicAttackB", "YYBasicBlockW", "YYBasicBlockW", "YYBewitchingBait", "YYFleshDismantler" };

		public static PlayerUnitConfig playerUnitConfig;

		static YukariYakumoLoadouts()
		{
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: 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_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: Expected O, but got Unknown
			string modUniqueID = BepinexPlugin.modUniqueID;
			int? num = 0;
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 2;
			((ManaGroup)(ref val)).Blue = 0;
			((ManaGroup)(ref val)).Black = 2;
			((ManaGroup)(ref val)).Red = 0;
			((ManaGroup)(ref val)).Green = 0;
			((ManaGroup)(ref val)).Colorless = 0;
			((ManaGroup)(ref val)).Philosophy = 0;
			ManaGroup val2 = val;
			playerUnitConfig = new PlayerUnitConfig(modUniqueID, true, "", 0, 8, num, true, (int?)null, (ManaColor)1, (ManaColor)3, val2, "#C850C8", 100, 0, 0, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 3, 3);
		}
	}
	public sealed class YukariYakumoModDef : PlayerUnitTemplate
	{
		[EntityLogic(typeof(YukariYakumoModDef))]
		public sealed class YukariYakumoMod : PlayerUnit
		{
			protected override void OnEnterGameRun(GameRunController gameRun)
			{
				((Unit)this).HandleGameRunEvent<StationEventArgs>(((GameEntity)this).GameRun.StationEntered, (GameEventHandler<StationEventArgs>)delegate(StationEventArgs args)
				{
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					//IL_000d: Invalid comparison between Unknown and I4
					if ((int)args.Station.Type > 0)
					{
						((MonoBehaviour)GameDirector.Player).StartCoroutine(UnitView_SetTrigger_Patch.AnimateIntro(GameDirector.Player));
					}
				});
			}

			protected override void OnEnterBattle(BattleController battle)
			{
				((Unit)this).HandleBattleEvent<GameEventArgs>(((Unit)this).Battle.BattleStarting, (GameEventHandler<GameEventArgs>)OnBattleStarting, (GameEventPriority)int.MinValue);
				((Unit)this).HandleBattleEvent<StatusEffectEventArgs>(((Unit)((Unit)this).Battle.Player).StatusEffectRemoving, (GameEventHandler<StatusEffectEventArgs>)OnSeRemoving, (GameEventPriority)int.MinValue);
			}

			private void OnBattleStarting(GameEventArgs args)
			{
				((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<YYYoukaiOfBoundariesSe>((Unit)(object)((Unit)this).Battle.Player, (int?)0, (int?)0, (int?)0, (int?)0, 0f, true)));
			}

			private void OnSeRemoving(StatusEffectEventArgs args)
			{
				if (args.Effect is YYYoukaiOfBoundariesSe)
				{
					((GameEventArgs)args).CancelBy((GameEntity)(object)this);
				}
			}
		}

		public UniTask<Sprite>? LoadSpellPortraitAsync { get; private set; }

		public override IdContainer GetId()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(BepinexPlugin.modUniqueID);
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YukariYakumoLocalization.PlayerUnitBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override PlayerImages LoadPlayerImages()
		{
			return YukariYakumoImageLoader.LoadPlayerImages(BepinexPlugin.playerName);
		}

		public override PlayerUnitConfig MakeConfig()
		{
			return YukariYakumoLoadouts.playerUnitConfig;
		}
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace YukariYakumoMod.YukariYakumoUlt
{
	public sealed class YukariYakumoUltBDef : YukariYakumoUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 0;
			defaulUltConfig.PowerCost = 120;
			defaulUltConfig.PowerPerLevel = 120;
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YukariYakumoUltBDef))]
	public sealed class YukariYakumoUltB : UltimateSkill
	{
		[CompilerGenerated]
		private sealed class <Actions>d__5 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitSelector selector;

			public UnitSelector <>3__selector;

			public YukariYakumoUltB <>4__this;

			private EnemyUnit <enemy>5__1;

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

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

			[DebuggerHidden]
			public <Actions>d__5(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				//IL_00ee: 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_0109: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)<>4__this).Owner, "YukariYakumoUltB");
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					((UltimateSkill)<>4__this).Config.Damage = Math.Abs(<>4__this.CurrentToHalfLife);
					((GameEntity)<>4__this).GameRun.SetHpAndMaxHp((((Unit)((UltimateSkill)<>4__this).Battle.Player).MaxHp + 1) / 2, ((Unit)((UltimateSkill)<>4__this).Battle.Player).MaxHp, true);
					<enemy>5__1 = selector.GetEnemy(((UltimateSkill)<>4__this).Battle);
					<>2__current = (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)<>4__this).Owner, (Unit)(object)<enemy>5__1, ((UltimateSkill)<>4__this).Damage, ((UltimateSkill)<>4__this).GunName, (GunType)0);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					((UltimateSkill)<>4__this).Config.Damage = 0;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<Actions>d__5 <Actions>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Actions>d__ = this;
				}
				else
				{
					<Actions>d__ = new <Actions>d__5(0)
					{
						<>4__this = <>4__this
					};
				}
				<Actions>d__.selector = <>3__selector;
				return <Actions>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		public int CurrentToHalfLife
		{
			get
			{
				if (((UltimateSkill)this).Battle != null)
				{
					return (((Unit)((UltimateSkill)this).Battle.Player).MaxHp + 1) / 2 - ((Unit)((UltimateSkill)this).Battle.Player).Hp;
				}
				return 0;
			}
		}

		public int DamageDealt
		{
			get
			{
				//IL_0047: Unknown result type (might be due to invalid IL or missing references)
				if (((UltimateSkill)this).Battle == null)
				{
					return 0;
				}
				((UltimateSkill)this).Config.Damage = Math.Abs(CurrentToHalfLife);
				return ((UltimateSkill)this).Battle.CalculateDamage((GameEntity)(object)((UltimateSkill)this).Battle.Player, (Unit)(object)((UltimateSkill)this).Battle.Player, (Unit)null, ((UltimateSkill)this).Damage);
			}
		}

		public YukariYakumoUltB()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4661);
		}

		[IteratorStateMachine(typeof(<Actions>d__5))]
		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Actions>d__5(-2)
			{
				<>4__this = this,
				<>3__selector = selector
			};
		}
	}
	public class YukariYakumoUltTemplate : UltimateSkillTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(YukariYakumoDefaultConfig.DefaultID((EntityDefinition)(object)this));
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YukariYakumoLocalization.UltimateSkillsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override Sprite LoadSprite()
		{
			return YukariYakumoImageLoader.LoadUltLoader((UltimateSkillTemplate)(object)this);
		}

		public override UltimateSkillConfig MakeConfig()
		{
			throw new NotImplementedException();
		}

		public UltimateSkillConfig GetDefaulUltConfig()
		{
			return YukariYakumoDefaultConfig.DefaultUltConfig();
		}
	}
	public sealed class YukariYakumoUltWDef : YukariYakumoUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 16;
			defaulUltConfig.Value1 = 16;
			defaulUltConfig.RelativeEffects = new List<string> { "YukariYakumoFantasiaSe" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YukariYakumoUltWDef))]
	public sealed class YukariYakumoUltW : UltimateSkill
	{
		[CompilerGenerated]
		private sealed class <Actions>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitSelector selector;

			public UnitSelector <>3__selector;

			public YukariYakumoUltW <>4__this;

			private Unit[] <targets>5__1;

			private List<Card> <list>5__2;

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

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

			[DebuggerHidden]
			public <Actions>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				//IL_00a4: 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)
				//IL_00b4: Expected O, but got Unknown
				//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f7: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)<>4__this).Owner, "YukariYakumoUltW");
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<targets>5__1 = selector.GetUnits(((UltimateSkill)<>4__this).Battle);
					<>2__current = (BattleAction)new CastBlockShieldAction((Unit)(object)((UltimateSkill)<>4__this).Owner, (Unit)(object)((UltimateSkill)<>4__this).Owner, <>4__this.Shield, false);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<>2__current = (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)<>4__this).Owner, (IEnumerable<Unit>)<targets>5__1, ((UltimateSkill)<>4__this).Damage, ((UltimateSkill)<>4__this).GunName, (GunType)0);
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<list>5__2 = ((UltimateSkill)<>4__this).Battle.HandZone.Where((Card card) => card.Config.IsUpgradable).ToList();
					<>2__current = (BattleAction)(object)new FantasiaCardsAction(<list>5__2);
					<>1__state = 4;
					return true;
				case 4:
					<>1__state = -1;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<Actions>d__3 <Actions>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Actions>d__ = this;
				}
				else
				{
					<Actions>d__ = new <Actions>d__3(0)
					{
						<>4__this = <>4__this
					};
				}
				<Actions>d__.selector = <>3__selector;
				return <Actions>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		public ShieldInfo Shield => new ShieldInfo(((UltimateSkill)this).Value1, (BlockShieldType)1);

		public YukariYakumoUltW()
		{
			((UltimateSkill)this).TargetType = (TargetType)2;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(7321);
		}

		[IteratorStateMachine(typeof(<Actions>d__3))]
		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Actions>d__3(-2)
			{
				<>4__this = this,
				<>3__selector = selector
			};
		}
	}
}
namespace YukariYakumoMod.StatusEffects
{
	public sealed class FlatPeachSeDef : YukariYakumoStatusEffectTemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(FlatPeachSeDef))]
	public sealed class FlatPeachSe : StatusEffect
	{
	}
	public sealed class YukariYakumoFantasiaSeDef : YukariYakumoStatusEffectTemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(YukariYakumoFantasiaSeDef))]
	public sealed class YukariYakumoFantasiaSe : StatusEffect
	{
	}
	public sealed class YuyukoDeathSeDef : YukariYakumoStatusEffectTemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(YuyukoDeathSeDef))]
	public sealed class YuyukoDeathSe : StatusEffect
	{
	}
	public sealed class EldritchKeywordDef : YukariYakumoStatusEffectTemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(EldritchKeywordDef))]
	public sealed class EldritchKeyword : StatusEffect
	{
	}
	public sealed class VoidKeywordDef : YukariYakumoStatusEffectTemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (string)null, "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(VoidKeywordDef))]
	public sealed class VoidKeyword : StatusEffect
	{
	}
	public class YukariYakumoStatusEffectTemplate : StatusEffectTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(YukariYakumoDefaultConfig.DefaultID((EntityDefinition)(object)this));
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YukariYakumoLocalization.StatusEffectsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override Sprite LoadSprite()
		{
			return YukariYakumoImageLoader.LoadStatusEffectLoader((StatusEffectTemplate)(object)this);
		}

		public override StatusEffectConfig MakeConfig()
		{
			return GetDefaultStatusEffectConfig();
		}

		public static StatusEffectConfig GetDefaultStatusEffectConfig()
		{
			return YukariYakumoDefaultConfig.DefaultStatusEffectConfig();
		}
	}
	public sealed class YYAimlessJourneySeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)0;
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YukariYakumoFantasiaSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YYAimlessJourneySeDef))]
	public sealed class YYAimlessJourneySe : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnOwnerTurnStarted>d__1 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitEventArgs args;

			public UnitEventArgs <>3__args;

			public YYAimlessJourneySe <>4__this;

			private List<Card> <list>5__1;

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

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

			[DebuggerHidden]
			public <OnOwnerTurnStarted>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					<list>5__1 = ((StatusEffect)<>4__this).Battle.ExileZone.Where((Card card) => card.Config.IsUpgradable).ToList();
					<>2__current = (BattleAction)(object)new FantasiaCardsAction(<list>5__1);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					if (!((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						<>2__current = <>4__this.TakeEffect();
						<>1__state = 2;
						return true;
					}
					break;
				case 2:
					<>1__state = -1;
					break;
				}
				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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnOwnerTurnStarted>d__1 <OnOwnerTurnStarted>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnOwnerTurnStarted>d__ = this;
				}
				else
				{
					<OnOwnerTurnStarted>d__ = new <OnOwnerTurnStarted>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnOwnerTurnStarted>d__.args = <>3__args;
				return <OnOwnerTurnStarted>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
		}

		[IteratorStateMachine(typeof(<OnOwnerTurnStarted>d__1))]
		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnOwnerTurnStarted>d__1(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		public BattleAction TakeEffect()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<YYNeoSuperExpress>(((StatusEffect)this).Level, false), (AddCardsType)0);
		}
	}
	public sealed class YYBloodfedFlowerbedSeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)0;
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YYBloodfedFlowerbedSeDef))]
	public sealed class YYBloodfedFlowerbedSe : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnDamageReceived>d__7 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private DamageEventArgs args;

			public DamageEventArgs <>3__args;

			public YYBloodfedFlowerbedSe <>4__this;

			private IEnumerable<Unit> <AllAliveUnits>5__1;

			private IEnumerator<Unit> <>s__2;

			private Unit <unit>5__3;

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

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

			[DebuggerHidden]
			public <OnDamageReceived>d__7(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				int num = <>1__state;
				if (num == -3 || num == 1)
				{
					try
					{
					}
					finally
					{
						<>m__Finally1();
					}
				}
				<AllAliveUnits>5__1 = null;
				<>s__2 = null;
				<unit>5__3 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_00d5: 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_00f0: Expected O, but got Unknown
				try
				{
					int num = <>1__state;
					if (num != 0)
					{
						if (num != 1)
						{
							return false;
						}
						<>1__state = -3;
						goto IL_0104;
					}
					<>1__state = -1;
					if (<>4__this.DamageTaken >= 1 && !((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						<AllAliveUnits>5__1 = ((StatusEffect)<>4__this).Battle.AllAliveUnits;
						<>s__2 = <AllAliveUnits>5__1.GetEnumerator();
						<>1__state = -3;
						goto IL_010c;
					}
					goto IL_0132;
					IL_0132:
					return false;
					IL_0104:
					<unit>5__3 = null;
					goto IL_010c;
					IL_010c:
					if (<>s__2.MoveNext())
					{
						<unit>5__3 = <>s__2.Current;
						if (<unit>5__3 != ((StatusEffect)<>4__this).Owner)
						{
							<>2__current = (BattleAction)new DamageAction(((StatusEffect)<>4__this).Owner, <unit>5__3, DamageInfo.HpLose((float)((StatusEffect)<>4__this).Level, false), <>4__this.gunName, (GunType)0);
							<>1__state = 1;
							return true;
						}
						goto IL_0104;
					}
					<>m__Finally1();
					<>s__2 = null;
					<AllAliveUnits>5__1 = null;
					goto IL_0132;
				}
				catch
				{
					//try-fault
					((IDisposable)this).Dispose();
					throw;
				}
			}

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

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>s__2 != null)
				{
					<>s__2.Dispose();
				}
			}

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

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnDamageReceived>d__7 <OnDamageReceived>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnDamageReceived>d__ = this;
				}
				else
				{
					<OnDamageReceived>d__ = new <OnDamageReceived>d__7(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnDamageReceived>d__.args = <>3__args;
				return <OnDamageReceived>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private sealed class <OnTurnEnded>d__8 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitEventArgs args;

			public UnitEventArgs <>3__args;

			public YYBloodfedFlowerbedSe <>4__this;

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

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

			[DebuggerHidden]
			public <OnTurnEnded>d__8(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0079: Unknown result type (might be due to invalid IL or missing references)
				//IL_0083: Expected O, but got Unknown
				//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d9: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					<>2__current = (BattleAction)new DamageAction(((StatusEffect)<>4__this).Owner, ((StatusEffect)<>4__this).Owner, DamageInfo.HpLose((float)((StatusEffect)<>4__this).Count, false), <>4__this.gunName, (GunType)0);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Owner.IsAlive)
					{
						<>2__current = (BattleAction)new HealAction(((StatusEffect)<>4__this).Owner, ((StatusEffect)<>4__this).Owner, ((StatusEffect)<>4__this).Count, (HealType)0, 0.2f);
						<>1__state = 2;
						return true;
					}
					break;
				case 2:
					<>1__state = -1;
					break;
				}
				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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnTurnEnded>d__8 <OnTurnEnded>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnTurnEnded>d__ = this;
				}
				else
				{
					<OnTurnEnded>d__ = new <OnTurnEnded>d__8(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnTurnEnded>d__.args = <>3__args;
				return <OnTurnEnded>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		private string gunName = "Lily";

		private int DamageTaken { get; set; }

		protected override void OnAdded(Unit unit)
		{
			if (((StatusEffect)this).Count <= 0)
			{
				Debug.LogError((object)(((GameEntity)this).DebugName + "'s count not provided, set to 4 (default)"));
				((StatusEffect)this).Count = 4;
			}
			((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(unit.DamageTaking, (GameEventHandler<DamageEventArgs>)OnDamageTaking, (GameEventPriority)int.MinValue);
			((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(unit.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(unit.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnTurnEnded);
		}

		private void OnDamageTaking(DamageEventArgs args)
		{
			//IL_0003: 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)
			DamageInfo damageInfo = args.DamageInfo;
			DamageTaken = MathExtensions.RoundToInt(((DamageInfo)(ref damageInfo)).Damage);
		}

		[IteratorStateMachine(typeof(<OnDamageReceived>d__7))]
		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnDamageReceived>d__7(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[IteratorStateMachine(typeof(<OnTurnEnded>d__8))]
		private IEnumerable<BattleAction> OnTurnEnded(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnTurnEnded>d__8(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class YYButterflyLurkingSeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)0;
			defaultStatusEffectConfig.HasLevel = false;
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YukariYakumoFantasiaSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YYButterflyLurkingSeDef))]
	public sealed class YYButterflyLurkingSe : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnCardsAddedToDrawZone>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private CardsAddingToDrawZoneEventArgs args;

			public CardsAddingToDrawZoneEventArgs <>3__args;

			public YYButterflyLurkingSe <>4__this;

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

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

			[DebuggerHidden]
			public <OnCardsAddedToDrawZone>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = <>4__this.Fantasia(args.Cards);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnCardsAddedToDrawZone>d__3 <OnCardsAddedToDrawZone>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnCardsAddedToDrawZone>d__ = this;
				}
				else
				{
					<OnCardsAddedToDrawZone>d__ = new <OnCardsAddedToDrawZone>d__3(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnCardsAddedToDrawZone>d__.args = <>3__args;
				return <OnCardsAddedToDrawZone>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private sealed class <OnCardsMovingToDrawZone>d__2 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private CardMovingToDrawZoneEventArgs args;

			public CardMovingToDrawZoneEventArgs <>3__args;

			public YYButterflyLurkingSe <>4__this;

			private List<Card> <list>5__1;

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

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

			[DebuggerHidden]
			public <OnCardsMovingToDrawZone>d__2(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<list>5__1 = new List<Card> { args.Card };
					<>2__current = <>4__this.Fantasia(<list>5__1);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnCardsMovingToDrawZone>d__2 <OnCardsMovingToDrawZone>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnCardsMovingToDrawZone>d__ = this;
				}
				else
				{
					<OnCardsMovingToDrawZone>d__ = new <OnCardsMovingToDrawZone>d__2(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnCardsMovingToDrawZone>d__.args = <>3__args;
				return <OnCardsMovingToDrawZone>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private sealed class <Reshuffled>d__1 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private GameEventArgs args;

			public GameEventArgs <>3__args;

			public YYButterflyLurkingSe <>4__this;

			private List<Card> <list>5__1;

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

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

			[DebuggerHidden]
			public <Reshuffled>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<list>5__1 = ((StatusEffect)<>4__this).Battle.DrawZoneIndexOrder.Where((Card card) => card.Config.IsUpgradable).ToList();
					if (<list>5__1.Count == 0)
					{
						return false;
					}
					<>4__this.<>n__0();
					<>2__current = (BattleAction)(object)new FantasiaCardsAction(<list>5__1);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<Reshuffled>d__1 <Reshuffled>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Reshuffled>d__ = this;
				}
				else
				{
					<Reshuffled>d__ = new <Reshuffled>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<Reshuffled>d__.args = <>3__args;
				return <Reshuffled>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.Reshuffled, (EventSequencedReactor<GameEventArgs>)Reshuffled, (GameEventPriority)int.MaxValue);
			((StatusEffect)this).ReactOwnerEvent<CardMovingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardMovingToDrawZone, (EventSequencedReactor<CardMovingToDrawZoneEventArgs>)OnCardsMovingToDrawZone);
			((StatusEffect)this).ReactOwnerEvent<CardsAddingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardsAddedToDrawZone, (EventSequencedReactor<CardsAddingToDrawZoneEventArgs>)OnCardsAddedToDrawZone);
		}

		[IteratorStateMachine(typeof(<Reshuffled>d__1))]
		private IEnumerable<BattleAction> Reshuffled(GameEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Reshuffled>d__1(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[IteratorStateMachine(typeof(<OnCardsMovingToDrawZone>d__2))]
		private IEnumerable<BattleAction> OnCardsMovingToDrawZone(CardMovingToDrawZoneEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnCardsMovingToDrawZone>d__2(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[IteratorStateMachine(typeof(<OnCardsAddedToDrawZone>d__3))]
		private IEnumerable<BattleAction> OnCardsAddedToDrawZone(CardsAddingToDrawZoneEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnCardsAddedToDrawZone>d__3(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		private BattleAction Fantasia(IEnumerable<Card> cards)
		{
			List<Card> list = cards.Where((Card card) => card.Config.IsUpgradable).ToList();
			if (list.Count == 0)
			{
				return null;
			}
			((StatusEffect)this).NotifyActivating();
			return (BattleAction)(object)new FantasiaCardsAction(list);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YYCelestialWizardrySeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)0;
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YYCelestialWizardrySeDef))]
	public sealed class YYCelestialWizardrySe : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnPlayerTurnStarted>d__3 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitEventArgs args;

			public UnitEventArgs <>3__args;

			public YYCelestialWizardrySe <>4__this;

			private List<Card> <exilePile>5__1;

			private List<Card> <drawPile>5__2;

			private List<Card>.Enumerator <>s__3;

			private Card <card>5__4;

			private List<Card>.Enumerator <>s__5;

			private Card <card2>5__6;

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

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

			[DebuggerHidden]
			public <OnPlayerTurnStarted>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				switch (<>1__state)
				{
				case -3:
				case 1:
					try
					{
					}
					finally
					{
						<>m__Finally1();
					}
					break;
				case -4:
				case 2:
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
					break;
				}
				<exilePile>5__1 = null;
				<drawPile>5__2 = null;
				<>s__3 = default(List<Card>.Enumerator);
				<card>5__4 = null;
				<>s__5 = default(List<Card>.Enumerator);
				<card2>5__6 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0232: Unknown result type (might be due to invalid IL or missing references)
				//IL_023c: Expected O, but got Unknown
				//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
				//IL_0102: Invalid comparison between Unknown and I4
				//IL_018e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0194: Invalid comparison between Unknown and I4
				//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_0213: Expected O, but got Unknown
				//IL_0112: Unknown result type (might be due to invalid IL or missing references)
				//IL_011c: Expected O, but got Unknown
				//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ae: Expected O, but got Unknown
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
						{
							return false;
						}
						<exilePile>5__1 = ((StatusEffect)<>4__this).Battle.ExileZone.ToList();
						<drawPile>5__2 = ((StatusEffect)<>4__this).Battle.DrawZone.ToList();
						if (<exilePile>5__1.Count > 0 || <drawPile>5__2.Count > 0)
						{
							<>4__this.<>n__0();
						}
						<>s__3 = <exilePile>5__1.GetEnumerator();
						<>1__state = -3;
						goto IL_013a;
					case 1:
						<>1__state = -3;
						goto IL_0132;
					case 2:
						<>1__state = -4;
						goto IL_01c4;
					case 3:
						<>1__state = -1;
						<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)<>4__this, true, 0.1f);
						<>1__state = 4;
						return true;
					case 4:
						{
							<>1__state = -1;
							return false;
						}
						IL_013a:
						if (<>s__3.MoveNext())
						{
							<card>5__4 = <>s__3.Current;
							if ((int)<card>5__4.Zone == 4)
							{
								<>2__current = (BattleAction)new MoveCardToDrawZoneAction(<card>5__4, (DrawZoneTarget)0);
								<>1__state = 1;
								return true;
							}
							goto IL_0132;
						}
						<>m__Finally1();
						<>s__3 = default(List<Card>.Enumerator);
						<>s__5 = <drawPile>5__2.GetEnumerator();
						<>1__state = -4;
						goto IL_01cc;
						IL_0132:
						<card>5__4 = null;
						goto IL_013a;
						IL_01c4:
						<card2>5__6 = null;
						goto IL_01cc;
						IL_01cc:
						if (<>s__5.MoveNext())
						{
							<card2>5__6 = <>s__5.Current;
							if ((int)<card2>5__6.Zone == 1)
							{
								<>2__current = (BattleAction)new MoveCardAction(<card2>5__6, (CardZone)4);
								<>1__state = 2;
								return true;
							}
							goto IL_01c4;
						}
						<>m__Finally2();
						<>s__5 = default(List<Card>.Enumerator);
						<>4__this.<>n__0();
						<>2__current = (BattleAction)new ScryAction(new ScryInfo(((StatusEffect)<>4__this).Level));
						<>1__state = 3;
						return true;
					}
				}
				catch
				{
					//try-fault
					((IDisposable)this).Dispose();
					throw;
				}
			}

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

			private void <>m__Finally1()
			{
				<>1__state = -1;
				((IDisposable)<>s__3).Dispose();
			}

			private void <>m__Finally2()
			{
				<>1__state = -1;
				((IDisposable)<>s__5).Dispose();
			}

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

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnPlayerTurnStarted>d__3 <OnPlayerTurnStarted>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnPlayerTurnStarted>d__ = this;
				}
				else
				{
					<OnPlayerTurnStarted>d__ = new <OnPlayerTurnStarted>d__3(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnPlayerTurnStarted>d__.args = <>3__args;
				return <OnPlayerTurnStarted>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private sealed class <OnPlayerTurnStarting>d__2 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitEventArgs args;

			public UnitEventArgs <>3__args;

			public YYCelestialWizardrySe <>4__this;

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

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

			[DebuggerHidden]
			public <OnPlayerTurnStarting>d__2(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Unknown result type (might be due to invalid IL or missing references)
				//IL_0070: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					if (((StatusEffect)<>4__this).Count > 0)
					{
						<>4__this.<>n__0();
						<>2__current = (BattleAction)new ScryAction(new ScryInfo(((StatusEffect)<>4__this).Count));
						<>1__state = 1;
						return true;
					}
					break;
				case 1:
					<>1__state = -1;
					break;
				}
				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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnPlayerTurnStarting>d__2 <OnPlayerTurnStarting>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnPlayerTurnStarting>d__ = this;
				}
				else
				{
					<OnPlayerTurnStarting>d__ = new <OnPlayerTurnStarting>d__2(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnPlayerTurnStarting>d__.args = <>3__args;
				return <OnPlayerTurnStarting>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		protected override string GetBaseDescription()
		{
			if (((StatusEffect)this).Count == 0)
			{
				return ((GameEntity)this).GetBaseDescription();
			}
			return ((StatusEffect)this).ExtraDescription;
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarting, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarting);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
		}

		[IteratorStateMachine(typeof(<OnPlayerTurnStarting>d__2))]
		private IEnumerable<BattleAction> OnPlayerTurnStarting(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnPlayerTurnStarting>d__2(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[IteratorStateMachine(typeof(<OnPlayerTurnStarted>d__3))]
		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnPlayerTurnStarted>d__3(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YYDeusExMachinaSeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)2;
			defaultStatusEffectConfig.HasLevel = false;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YYDeusExMachinaSeDef))]
	public sealed class YYDeusExMachinaSe : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnPlayerTurnEnding>d__8 : IEnumerable<BattleAction>, IEnumerable, IEnumerator<BattleAction>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private UnitEventArgs args;

			public UnitEventArgs <>3__args;

			public YYDeusExMachinaSe <>4__this;

			private List<Card> <list>5__1;

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

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

			[DebuggerHidden]
			public <OnPlayerTurnEnding>d__8(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

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

			private bool MoveNext()
			{
				//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d4: Expected O, but got Unknown
				//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d6: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (!<>4__this.Active)
					{
						break;
					}
					<>4__this.<>n__0();
					<list>5__1 = ((StatusEffect)<>4__this).Battle.HandZone.Select((Card card) => card).ToList();
					if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)<list>5__1))
					{
						<>2__current = (BattleAction)new ExileManyCardAction((IEnumerable<Card>)<list>5__1);
						<>1__state = 1;
						return true;
					}
					goto IL_00e6;
				case 1:
					<>1__state = -1;
					goto IL_00e6;
				case 2:
					<>1__state = -1;
					<>2__current = (BattleAction)(object)PerformAction.Sfx("ExtraTurnLaunch", 0f);
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<>2__current = (BattleAction)(object)PerformAction.Animation((Unit)(object)((StatusEffect)<>4__this).Battle.Player, "spell", 1.6f, (string)null, 0f, -1);
					<>1__state = 4;
					return true;
				case 4:
					<>1__state = -1;
					if (!((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						<>2__current = ((StatusEffect)<>4__this).BuffAction<ExtraTurn>(1, 0, 0, 0, 0.2f);
						<>1__state = 5;
						return true;
					}
					goto IL_01c9;
				case 5:
					<>1__state = -1;
					goto IL_01c9;
				case 6:
					{
						<>1__state = -1;
						<list>5__1 = null;
						break;
					}
					IL_00e6:
					<>2__current = (BattleAction)(object)PerformAction.Effect((Unit)(object)((StatusEffect)<>4__this).Battle.Player, "ExtraTime", 0f, (string)null, 0f, (EffectBehavior)0, 0f);
					<>1__state = 2;
					return true;
					IL_01c9:
					<>2__current = (BattleAction)new RequestEndPlayerTurnAction();
					<>1__state = 6;
					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();
			}

			[DebuggerHidden]
			IEnumerator<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnPlayerTurnEnding>d__8 <OnPlayerTurnEnding>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnPlayerTurnEnding>d__ = this;
				}
				else
				{
					<OnPlayerTurnEnding>d__ = new <OnPlayerTurnEnding>d__8(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnPlayerTurnEnding>d__.args = <>3__args;
				return <OnPlayerTurnEnding>d__;
			}

			[DebuggerHidden]
			IEnumerator IEnumerable.GetEnumerator()
			{
				return ((IEnumerable<BattleAction>)this).GetEnumerator();
			}
		}

		public int DrawZoneCount
		{
			get
			{
				if (((StatusEffect)this).Battle == null)
				{
					return 0;
				}
				return ((StatusEffect)this).Battle.DrawZone.Count;
			}
		}

		private bool Active => DrawZoneCount != 0 && DrawZoneCount % 2 == 0;

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).HandleOwnerEvent<CardEventArgs>(((StatusEffect)this).Battle.CardDrawn, (GameEventHandler<CardEventArgs>)OnCardDrawn);
			((StatusEffect)this).HandleOwnerEvent<CardsAddingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardsAddedToDrawZone, (GameEventHandler<CardsAddingToDrawZoneEventArgs>)OnCardsAddedToDrawZone);
			((StatusEffect)this).HandleOwnerEvent<CardMovingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardMovedToDrawZone, (GameEventHandler<CardMovingToDrawZoneEventArgs>)OnCardMovedToDrawZone);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
		}

		private void OnCardDrawn(CardEventArgs args)
		{
			((StatusEffect)this).Highlight = Active;
		}

		private void OnCardsAddedToDrawZone(CardsAddingToDrawZoneEventArgs args)
		{
			((StatusEffect)this).Highlight = Active;
		}

		private void OnCardMovedToDrawZone(CardMovingToDrawZoneEventArgs args)
		{
			((StatusEffect)this).Highlight = Active;
		}

		[IteratorStateMachine(typeof(<OnPlayerTurnEnding>d__8))]
		private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnPlayerTurnEnding>d__8(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YYFantasticBlossomSeDef : YukariYakumoStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YukariYakumoStatusEffectTemplate.GetDefaultSt