Decompiled source of Everyone Is Here v0.0.30

lvalonmeme.dll

Decompiled 3 days ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using Cysharp.Threading.Tasks;
using DG.Tweening;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
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.Randoms;
using LBoL.Core.Stations;
using LBoL.Core.Stats;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Adventures;
using LBoL.EntityLib.Cards;
using LBoL.EntityLib.Cards.Adventure;
using LBoL.EntityLib.Cards.Character.Cirno;
using LBoL.EntityLib.Cards.Character.Cirno.Friend;
using LBoL.EntityLib.Cards.Character.Marisa;
using LBoL.EntityLib.Cards.Character.Reimu;
using LBoL.EntityLib.Cards.Character.Sakuya;
using LBoL.EntityLib.Cards.Enemy;
using LBoL.EntityLib.Cards.Neutral.MultiColor;
using LBoL.EntityLib.Cards.Neutral.NoColor;
using LBoL.EntityLib.Cards.Neutral.Red;
using LBoL.EntityLib.Cards.Neutral.TwoColor;
using LBoL.EntityLib.EnemyUnits.Character;
using LBoL.EntityLib.Exhibits;
using LBoL.EntityLib.Exhibits.Common;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Cirno;
using LBoL.EntityLib.StatusEffects.Enemy;
using LBoL.EntityLib.StatusEffects.Enemy.Seija;
using LBoL.EntityLib.StatusEffects.Koishi;
using LBoL.EntityLib.StatusEffects.Marisa;
using LBoL.EntityLib.StatusEffects.Neutral.Black;
using LBoL.EntityLib.StatusEffects.Neutral.Green;
using LBoL.EntityLib.StatusEffects.Neutral.MultiColor;
using LBoL.EntityLib.StatusEffects.Others;
using LBoL.EntityLib.StatusEffects.Reimu;
using LBoL.EntityLib.StatusEffects.Sakuya;
using LBoL.Presentation;
using LBoL.Presentation.UI;
using LBoL.Presentation.UI.Panels;
using LBoL.Presentation.UI.Widgets;
using LBoL.Presentation.Units;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.CustomHandlers;
using LBoLEntitySideloader.CustomKeywords;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.PersistentValues;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Experimental.Rendering;
using Yarn;
using lvalonmeme.Cards;
using lvalonmeme.Cards.Template;
using lvalonmeme.Config;
using lvalonmeme.Enemies.Template;
using lvalonmeme.Exhibits;
using lvalonmeme.GunName;
using lvalonmeme.ImageLoader;
using lvalonmeme.Localization;
using lvalonmeme.Patches;
using lvalonmeme.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("lvalonmeme")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+5038df119c5f8e1734a345934d80bd17011482b7")]
[assembly: AssemblyProduct("lvalonmeme")]
[assembly: AssemblyTitle("lvalonmeme")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace VanillaTweaks
{
	[OverwriteVanilla]
	public sealed class ColdHeartedDefinition : CardTemplate
	{
		[EntityLogic(typeof(ColdHeartedDefinition))]
		public sealed class ColdHearted : Card
		{
			[CompilerGenerated]
			private sealed class <Actions>d__0 : 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;

				private ManaGroup consumingMana;

				public ManaGroup <>3__consumingMana;

				private Interaction precondition;

				public Interaction <>3__precondition;

				public ColdHearted <>4__this;

				private List<Card> <list>5__1;

				private int <i>5__2;

				private List<Card>.Enumerator <>s__3;

				private Card <iceLance>5__4;

				private List<IceLance> <list>5__5;

				private List<IceLance>.Enumerator <>s__6;

				private IceLance <iceLance>5__7;

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

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

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

				[DebuggerHidden]
				void IDisposable.Dispose()
				{
					<list>5__1 = null;
					<>s__3 = default(List<Card>.Enumerator);
					<iceLance>5__4 = null;
					<list>5__5 = null;
					<>s__6 = default(List<IceLance>.Enumerator);
					<iceLance>5__7 = null;
					<>1__state = -2;
				}

				private bool MoveNext()
				{
					//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
					//IL_0257: Unknown result type (might be due to invalid IL or missing references)
					//IL_0261: Expected O, but got Unknown
					//IL_0119: Unknown result type (might be due to invalid IL or missing references)
					//IL_017d: Unknown result type (might be due to invalid IL or missing references)
					//IL_0187: Expected O, but got Unknown
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<>2__current = ((Card)<>4__this).BuffAction<ColdHeartedSe>(0, 0, 0, 0, 0.2f);
						<>1__state = 1;
						return true;
					case 1:
					{
						<>1__state = -1;
						List<string> packs = Singleton<GameMaster>.Instance.CurrentGameRun.Packs;
						string text = "packoldDef";
						if (packs.Contains(text.Substring(0, text.Length - 3)))
						{
							<list>5__1 = new List<Card>();
							<i>5__2 = 0;
							while (<i>5__2 < ((Card)<>4__this).Value1)
							{
								<list>5__1.Add(Library.CreateCard("cardIceLance"));
								<i>5__2++;
							}
							<>s__3 = <list>5__1.GetEnumerator();
							try
							{
								while (<>s__3.MoveNext())
								{
									<iceLance>5__4 = <>s__3.Current;
									<iceLance>5__4.SetTurnCost(((Card)<>4__this).Mana);
									<iceLance>5__4.IsEthereal = true;
									<iceLance>5__4.IsExile = true;
									<iceLance>5__4 = null;
								}
							}
							finally
							{
								((IDisposable)<>s__3).Dispose();
							}
							<>s__3 = default(List<Card>.Enumerator);
							<>2__current = (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)<list>5__1, (AddCardsType)0, false);
							<>1__state = 2;
							return true;
						}
						<list>5__5 = Library.CreateCards<IceLance>(((Card)<>4__this).Value1, false).ToList();
						<>s__6 = <list>5__5.GetEnumerator();
						try
						{
							while (<>s__6.MoveNext())
							{
								<iceLance>5__7 = <>s__6.Current;
								((Card)<iceLance>5__7).SetTurnCost(((Card)<>4__this).Mana);
								((Card)<iceLance>5__7).IsEthereal = true;
								((Card)<iceLance>5__7).IsExile = true;
								<iceLance>5__7 = null;
							}
						}
						finally
						{
							((IDisposable)<>s__6).Dispose();
						}
						<>s__6 = default(List<IceLance>.Enumerator);
						<>2__current = (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)<list>5__5, (AddCardsType)0, false);
						<>1__state = 3;
						return true;
					}
					case 2:
						<>1__state = -1;
						<list>5__1 = null;
						break;
					case 3:
						<>1__state = -1;
						<list>5__5 = null;
						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()
				{
					//IL_0043: Unknown result type (might be due to invalid IL or missing references)
					//IL_0048: Unknown result type (might be due to invalid IL or missing references)
					<Actions>d__0 <Actions>d__;
					if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
					{
						<>1__state = 0;
						<Actions>d__ = this;
					}
					else
					{
						<Actions>d__ = new <Actions>d__0(0)
						{
							<>4__this = <>4__this
						};
					}
					<Actions>d__.selector = <>3__selector;
					<Actions>d__.consumingMana = <>3__consumingMana;
					<Actions>d__.precondition = <>3__precondition;
					return <Actions>d__;
				}

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

			[IteratorStateMachine(typeof(<Actions>d__0))]
			protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
				return new <Actions>d__0(-2)
				{
					<>4__this = this,
					<>3__selector = selector,
					<>3__consumingMana = consumingMana,
					<>3__precondition = precondition
				};
			}
		}

		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("ColdHearted");
		}

		[DontOverwrite]
		public override CardImages LoadCardImages()
		{
			return null;
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			return null;
		}

		[DontOverwrite]
		public override CardConfig MakeConfig()
		{
			return null;
		}
	}
}
namespace lvalonmeme
{
	[BepInPlugin("llbol.meme.meme", "Everyone Is Here", "0.0.30")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		[HarmonyPatch(typeof(Debut), "InitVariables")]
		private class Debut_InitVariables_Patch
		{
			private static void Postfix(Debut __instance, ref IVariableStorage storage)
			{
				if (Singleton<GameMaster>.Instance.CurrentGameRun.JadeBoxes.Any((JadeBox jb) => ((GameEntity)jb).Id == "JadeBoxSwapBlank"))
				{
					storage.SetValue("$twoColorStart", true);
				}
			}
		}

		[HarmonyPatch(typeof(StartGamePanel), "Awake")]
		private class StartGamePanel_Awake_Patch
		{
			private static void Postfix(ref StartGamePanel __instance)
			{
				try
				{
					JadeBoxToggle color5Toggle = null;
					JadeBoxToggle color7Toggle = null;
					JadeBoxToggle myfav = null;
					JadeBoxToggle best10 = null;
					foreach (KeyValuePair<JadeBox, JadeBoxToggle> jadeBoxToggle in __instance._jadeBoxToggles)
					{
						if (((GameEntity)jadeBoxToggle.Value.JadeBox).Id == "JadeBox5Color")
						{
							Debug.Log((object)"found 5colors");
							color5Toggle = jadeBoxToggle.Value;
						}
						if (((GameEntity)jadeBoxToggle.Value.JadeBox).Id == "JadeBox7Color")
						{
							Debug.Log((object)"found 7colors");
							color7Toggle = jadeBoxToggle.Value;
						}
						if (((GameEntity)jadeBoxToggle.Value.JadeBox).Id == "JadeBoxFav")
						{
							Debug.Log((object)"found myfav");
							myfav = jadeBoxToggle.Value;
						}
						if (((GameEntity)jadeBoxToggle.Value.JadeBox).Id == "SelectCard")
						{
							Debug.Log((object)"found best10");
							best10 = jadeBoxToggle.Value;
						}
					}
					if ((Object)(object)myfav != (Object)null && (Object)(object)best10 != (Object)null)
					{
						((UnityEvent<bool>)(object)myfav.Toggle.onValueChanged).AddListener((UnityAction<bool>)delegate
						{
							Debug.Log((object)"toggled myfav");
							if ((Object)(object)best10 != (Object)null && best10.IsOn)
							{
								Debug.Log((object)"disabling best10");
								best10.Toggle.SetIsOnWithoutNotify(false);
							}
						});
						((UnityEvent<bool>)(object)best10.Toggle.onValueChanged).AddListener((UnityAction<bool>)delegate
						{
							Debug.Log((object)"toggled best10");
							if ((Object)(object)myfav != (Object)null && myfav.IsOn)
							{
								Debug.Log((object)"disabling myfav");
								myfav.Toggle.SetIsOnWithoutNotify(false);
							}
						});
					}
					if (!((Object)(object)color5Toggle != (Object)null) || !((Object)(object)color7Toggle != (Object)null))
					{
						return;
					}
					((UnityEvent<bool>)(object)color5Toggle.Toggle.onValueChanged).AddListener((UnityAction<bool>)delegate
					{
						Debug.Log((object)"toggled color5Toggle");
						if ((Object)(object)color7Toggle != (Object)null && color7Toggle.IsOn)
						{
							Debug.Log((object)"disabling color7Toggle");
							color7Toggle.Toggle.SetIsOnWithoutNotify(false);
						}
					});
					((UnityEvent<bool>)(object)color7Toggle.Toggle.onValueChanged).AddListener((UnityAction<bool>)delegate
					{
						Debug.Log((object)"toggled color7Toggle");
						if ((Object)(object)color5Toggle != (Object)null && color5Toggle.IsOn)
						{
							Debug.Log((object)"disabling color5Toggle");
							color5Toggle.Toggle.SetIsOnWithoutNotify(false);
						}
					});
				}
				catch (Exception ex)
				{
					Debug.Log((object)("error when checking jadebox toggles: " + ex.Message + ex.StackTrace));
				}
			}
		}

		public class lvalonmemedata : CustomGameRunSaveData
		{
			public override void Restore(GameRunController gameRun)
			{
			}

			public override void Save(GameRunController gameRun)
			{
			}
		}

		public static string modUniqueID = "lvalonmeme";

		public static string playerName = "SampleCharacter";

		public static bool useInGameModel = true;

		public static string modelName = "Youmu";

		public static bool modelIsFlipped = true;

		public static List<ManaColor> offColors = new List<ManaColor> { (ManaColor)6 };

		public static ConfigEntry<bool> oldcard;

		public static CustomConfigEntry<bool> oldcardentry = new CustomConfigEntry<bool>(value: false, "1. 模组偏好设定 / Mod Preferences", "版本迭代者补充包支援 / Re-version Iterator Suppoprt", "在「版本迭代者」补充包被启用的游戏开始时,将一张「版本迭代者」加入牌组。 / At the start of a run where the \"Re-vision Iterator\" Pack is enabled, add a \"Re-vision Iterator\" to the library.");

		public static ConfigEntry<string> blankid;

		public static CustomConfigEntry<string> blankidentry = new CustomConfigEntry<string>("kongbaikapai", "1. 模组偏好设定 / Mod Preferences", "玉匣「广纳百川」展品 / All-Accepting Jadebox Exhibit", "在玉匣「广纳百川」被启用的游戏开始时,将会以此展品进行换四(填写展品id,填下「none」则不会获得展品,获得时生成介面的展品不会生效)。 / At the start of a run where the jadebox \"All-Accepting\" is enabled, swap with this specified exhibit (enter exhibit id, entering \"none\" will give no exhibits, exhibits that generates an interface when obtained will not take effect)");

		public static ConfigEntry<bool> color5support;

		public static CustomConfigEntry<bool> color5supportentry = new CustomConfigEntry<bool>(value: true, "1. 模组偏好设定 / Mod Preferences", "玉匣「五彩斑斓」升级 / Pentachromatic Jadebox Upgrade", "在玉匣「五彩斑斓」被启用的第一场战斗开始时,升级牌组和战场内的所有卡牌。 / At the start of the first battle where the jadebox \"Pentachromatic\" is enabled, upgrade all cards in the library and battlefield.");

		public static ConfigEntry<int> balancebot;

		public static CustomConfigEntry<int> balancebotentry = new CustomConfigEntry<int>(1, "1. 模组偏好设定 / Mod Preferences", "玉匣「守恒」费用增加的总费用门槛 / Plasma Jadebox Threshold of Total Cost for Cost Increasing", "玉匣「守恒」中,使得费用增加的总费用门槛。 / On the jadebox \"Plasma\", this sets the threshold of total cost to be qualified for cost increasing.");

		public static ConfigEntry<int> balancetop;

		public static CustomConfigEntry<int> balancetopentry = new CustomConfigEntry<int>(4, "1. 模组偏好设定 / Mod Preferences", "玉匣「守恒」费用降低的总费用门槛 / Plasma Jadebox Threshold of Total Cost for Cost Reducing", "玉匣「守恒」中,使得费用降低的总费用门槛。 / On the jadebox \"Plasma\", this sets the threshold of total cost to be qualified for cost reducing.");

		public static ConfigEntry<string> balanceban;

		public static CustomConfigEntry<string> balancebanentry = new CustomConfigEntry<string>("danmujade", "1. 模组偏好设定 / Mod Preferences", "玉匣「守恒」卡牌黑名单 / Plasma Jadebox Card Blacklist", "黑名单内的卡牌不受玉匣「守恒」的影响(填写卡牌id并以「,」分隔) / Cards in the blacklist are immune from the effects of jadebox \"Plasma\" (enter card id, separated by commas)");

		public static ConfigEntry<bool> favpure;

		public static CustomConfigEntry<bool> favpureentry = new CustomConfigEntry<bool>(value: true, "1. 模组偏好设定 / Mod Preferences", "玉匣「我的最爱」基础支援 / My Favourite Jadebox Basic Support", "在玉匣「我的最爱」被启用时,如实将 5 张射击+及结界+加入牌库。此设定关闭时,额外获得一点彩色基础费用。 / At the start of a run where the jadebox \"My Favourite\" is enabled, add 5 Shoots+ and Boundaries+ to the library as written in the description. When this setting is disabled, gain an extra Philosophy base mana.");

		public static ConfigEntry<bool> favdebug;

		public static CustomConfigEntry<bool> favdebugentry = new CustomConfigEntry<bool>(value: false, "1. 模组偏好设定 / Mod Preferences", "玉匣「我的最爱」显示内测 / My Favourite Jadebox Show Debug", "在玉匣「我的最爱」被启用时,显示内测卡牌(警告!!!内测卡牌含剧透,也可能含模组的剧透,开启请三思) / At the start of a run where the jadebox \"My Favourite\" is enabled, all debug cards will be shown (WARNING!!! Debug cards contain spoilers and may also contain mod spoilers, please think carefully before enabling).");

		public static ConfigEntry<bool> doublelife;

		public static CustomConfigEntry<bool> doublelifeentry = new CustomConfigEntry<bool>(value: true, "1. 模组偏好设定 / Mod Preferences", "玉匣「宏观宇宙」血量加倍 / Macro Cosmos Jadebox Double Life", "在玉匣「宏观宇宙」被启用的游戏开始时,玩家血量加倍。 / At the start of a run where the jadebox \"Macro Cosmos\" is enabled, double the player's life.");

		public static ConfigEntry<bool> doublepower;

		public static CustomConfigEntry<bool> doublepowerentry = new CustomConfigEntry<bool>(value: true, "1. 模组偏好设定 / Mod Preferences", "玉匣「宏观宇宙」能量加倍 / Macro Cosmos Jadebox Double Power", "在玉匣「宏观宇宙」被启用时,收到的所有能量加倍,上限加倍,能多次使用。 / In a run where the jadebox \"Macro Cosmos\" is enabled, double the Power gained from all sources, double the charge limit, and allows multiple uses.");

		public static ConfigEntry<bool> doublemoney;

		public static CustomConfigEntry<bool> doublemoneyentry = new CustomConfigEntry<bool>(value: false, "1. 模组偏好设定 / Mod Preferences", "玉匣「宏观宇宙」金钱加倍 / Macro Cosmos Jadebox Double Money", "在玉匣「宏观宇宙」被启用时,收到的所有金钱加倍。 / In a run where the jadebox \"Macro Cosmos\" is enabled, double the Money gained from all sources.");

		public static ConfigEntry<bool> doublemana;

		public static CustomConfigEntry<bool> doublemanaentry = new CustomConfigEntry<bool>(value: false, "1. 模组偏好设定 / Mod Preferences", "玉匣「宏观宇宙」双倍法力 / Macro Cosmos Jadebox Double Mana", "在玉匣「宏观宇宙」被启用时,玩家的回合开始额外获得基础法力。 / At the start of the player's turn in a run where the jadebox \"Macro Cosmos\" is enabled, gain extra mana equal to the player's base mana.");

		public static ConfigEntry<bool> doubleplay;

		public static CustomConfigEntry<bool> doubleplayentry = new CustomConfigEntry<bool>(value: false, "1. 模组偏好设定 / Mod Preferences", "玉匣「宏观宇宙」回响形态 / Macro Cosmos Jadebox Echo Form", "在玉匣「宏观宇宙」被启用时,每张打出的牌都会额外打出一次。 / In a run where the jadebox \"Macro Cosmos\" is enabled, each card played will be played an additional time.");

		public static ConfigEntry<int> mult;

		public static CustomConfigEntry<int> multentry = new CustomConfigEntry<int>(1, "2. 内容设定 / Content Modifications", "群友卡牌战斗外比重倍率 / Meme Card Non-Battle Weight Mult", "提升群友卡牌战斗外比重倍率至设定的倍数 / Multiplies non-battle weight of meme cards by the set multiplier.");

		public static ConfigEntry<string> cardban;

		public static CustomConfigEntry<string> cardbanentry = new CustomConfigEntry<string>("", "2. 内容设定 / Content Modifications", "卡牌禁卡表 / Card Banlist", "禁止指定的卡牌以随机选取的方式出现在游戏里(填写卡牌id并以「,」分隔) / Bans selected cards from being rolled in the game (enter card id, separated by commas)");

		public static ConfigEntry<bool> banlistoverride;

		public static CustomConfigEntry<bool> banlistoverrideentry = new CustomConfigEntry<bool>(value: false, "2. 内容设定 / Content Modifications", "卡牌禁卡表凌驾 / Card Banlist Override", "卡牌禁卡表里的卡牌将全面禁止在局内出现,也会主动被移除。 / Cards in the Card Banlist will not exist in the game run, and will be removed actively.");

		public static ConfigEntry<string> cardwhite;

		public static CustomConfigEntry<string> cardwhiteentry = new CustomConfigEntry<string>("", "2. 内容设定 / Content Modifications", "卡牌白名单 / Card Whitelist", "不在卡牌白名单里的卡将包含在卡牌禁卡表里,卡牌禁卡表里原先的牌会被覆盖。(填写卡牌id并以「,」分隔)(警告!!!请填写足够的卡牌以确保商店,产牌和事件等不会因卡池太小而卡死) / Cards not in the Card Whitelist will be added to the Card Banlist, and the original cards in the Card Banlist will be overrwritten. (enter card id, separated by commas)(WARNING!!! Please fill in enough cards to ensure that the shop, card generation and event cards don't softlock due to having too small of a card pool)");

		public static ConfigEntry<int> imult;

		public static CustomConfigEntry<int> imultentry = new CustomConfigEntry<int>(1, "2. 内容设定 / Content Modifications", "自订卡牌比重倍率 / Custom Card Weight Mult", "提升自订卡牌比重倍率至设定的倍数 / Multiplies weight of the cards in the following Custom Card List by the set multiplier.");

		public static ConfigEntry<string> imultlist;

		public static CustomConfigEntry<string> imultlistentry = new CustomConfigEntry<string>("", "2. 内容设定 / Content Modifications", "自订卡牌表 / Custom Card List", "自订卡牌表里的卡受自订卡牌比重倍率影响(填写卡牌id并以「,」分隔) / Cards in the Custom Card List are affected by the Custom Card Weight Mult (enter card id, separated by commas)");

		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("llbol.meme.meme", "");

		private void Awake()
		{
			//IL_075c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0763: Expected O, but got Unknown
			log = ((BaseUnityPlugin)this).Logger;
			oldcard = ((BaseUnityPlugin)this).Config.Bind<bool>(oldcardentry.Section, oldcardentry.Key, oldcardentry.Value, oldcardentry.Description);
			blankid = ((BaseUnityPlugin)this).Config.Bind<string>(blankidentry.Section, blankidentry.Key, blankidentry.Value, blankidentry.Description);
			color5support = ((BaseUnityPlugin)this).Config.Bind<bool>(color5supportentry.Section, color5supportentry.Key, color5supportentry.Value, color5supportentry.Description);
			balancebot = ((BaseUnityPlugin)this).Config.Bind<int>(balancebotentry.Section, balancebotentry.Key, balancebotentry.Value, balancebotentry.Description);
			balancetop = ((BaseUnityPlugin)this).Config.Bind<int>(balancetopentry.Section, balancetopentry.Key, balancetopentry.Value, balancetopentry.Description);
			balanceban = ((BaseUnityPlugin)this).Config.Bind<string>(balancebanentry.Section, balancebanentry.Key, balancebanentry.Value, balancebanentry.Description);
			favpure = ((BaseUnityPlugin)this).Config.Bind<bool>(favpureentry.Section, favpureentry.Key, favpureentry.Value, favpureentry.Description);
			favdebug = ((BaseUnityPlugin)this).Config.Bind<bool>(favdebugentry.Section, favdebugentry.Key, favdebugentry.Value, favdebugentry.Description);
			doublelife = ((BaseUnityPlugin)this).Config.Bind<bool>(doublelifeentry.Section, doublelifeentry.Key, doublelifeentry.Value, doublelifeentry.Description);
			doublepower = ((BaseUnityPlugin)this).Config.Bind<bool>(doublepowerentry.Section, doublepowerentry.Key, doublepowerentry.Value, doublepowerentry.Description);
			doublemoney = ((BaseUnityPlugin)this).Config.Bind<bool>(doublemoneyentry.Section, doublemoneyentry.Key, doublemoneyentry.Value, doublemoneyentry.Description);
			doublemana = ((BaseUnityPlugin)this).Config.Bind<bool>(doublemanaentry.Section, doublemanaentry.Key, doublemanaentry.Value, doublemanaentry.Description);
			doubleplay = ((BaseUnityPlugin)this).Config.Bind<bool>(doubleplayentry.Section, doubleplayentry.Key, doubleplayentry.Value, doubleplayentry.Description);
			mult = ((BaseUnityPlugin)this).Config.Bind<int>(multentry.Section, multentry.Key, multentry.Value, multentry.Description);
			cardban = ((BaseUnityPlugin)this).Config.Bind<string>(cardbanentry.Section, cardbanentry.Key, cardbanentry.Value, cardbanentry.Description);
			banlistoverride = ((BaseUnityPlugin)this).Config.Bind<bool>(banlistoverrideentry.Section, banlistoverrideentry.Key, banlistoverrideentry.Value, banlistoverrideentry.Description);
			cardwhite = ((BaseUnityPlugin)this).Config.Bind<string>(cardwhiteentry.Section, cardwhiteentry.Key, cardwhiteentry.Value, cardwhiteentry.Description);
			log.LogDebug((object)"lvalonmeme bepinex loaded all configs");
			string[] array = cardban.Value.Split(',');
			string[] array2 = new string[0];
			string[] array3 = array;
			foreach (string text in array3)
			{
				CollectionExtensions.AddItem<string>((IEnumerable<string>)array2, text.ToLowerInvariant());
			}
			string[] array4 = array2;
			foreach (string text2 in array4)
			{
				if (text2.ToLowerInvariant() != "")
				{
					log.LogDebug((object)("lvalonmeme bepinex cardban: " + text2.ToLowerInvariant()));
				}
			}
			imult = ((BaseUnityPlugin)this).Config.Bind<int>(imultentry.Section, imultentry.Key, imultentry.Value, imultentry.Description);
			imultlist = ((BaseUnityPlugin)this).Config.Bind<string>(imultlistentry.Section, imultlistentry.Key, imultlistentry.Value, imultlistentry.Description);
			string[] array5 = imultlist.Value.Split(',');
			string[] array6 = array5;
			foreach (string text3 in array6)
			{
				if (text3.ToLowerInvariant() != "")
				{
					log.LogDebug((object)("lvalonmeme bepinex imultlist: " + text3.ToLowerInvariant()));
				}
			}
			Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			CardIndexGenerator.PromiseClearIndexSet();
			EntityManager.RegisterSelf();
			harmony.PatchAll();
			CHandlerManager.RegisterGameEventHandler<CardsEventArgs>((EventProvider<CardsEventArgs, GameRunController>)((GameRunController gr) => gr.DeckCardsAdding), (GameEventHandler<CardsEventArgs>)CustomHandlers.OnDeckCardsAdding, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<CardsEventArgs>((EventProvider<CardsEventArgs, GameRunController>)((GameRunController gr) => gr.DeckCardsAdded), (GameEventHandler<CardsEventArgs>)CustomHandlers.OnDeckCardsAdded, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<CardsEventArgs>((EventProvider<CardsEventArgs, GameRunController>)((GameRunController gr) => gr.DeckCardsRemoving), (GameEventHandler<CardsEventArgs>)CustomHandlers.OnDeckCardsRemoving, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<CardsEventArgs>((EventProvider<CardsEventArgs, GameRunController>)((GameRunController gr) => gr.DeckCardsRemoved), (GameEventHandler<CardsEventArgs>)CustomHandlers.OnDeckCardsRemoved, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<StationEventArgs>((EventProvider<StationEventArgs, GameRunController>)((GameRunController gr) => gr.StationRewardGenerating), (GameEventHandler<StationEventArgs>)CustomHandlers.StationRewardGenerating, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<StationEventArgs>((EventProvider<StationEventArgs, GameRunController>)((GameRunController gr) => gr.StationEntering), (GameEventHandler<StationEventArgs>)CustomHandlers.StationEntering, (GameEventPriority)10);
			CHandlerManager.RegisterGameEventHandler<StationEventArgs>((EventProvider<StationEventArgs, GameRunController>)((GameRunController gr) => gr.StationEntered), (GameEventHandler<StationEventArgs>)CustomHandlers.StationEntered, (GameEventPriority)10);
			CustomHandlers.addreactors();
			((CustomGameRunSaveData)new lvalonmemedata()).RegisterSelf("llbol.meme.meme");
			Func<Sprite> func = () => ResourceLoader.LoadSprite("BossIcon.png", (IResourceSource)(object)directorySource, (Rect?)null, 1, (Vector2?)null);
			EnemyUnitTemplate.AddBossNodeIcon("lvalonmeme", func, (Assembly)null);
			List<string> list = new List<string> { "cardkotk", "cardyoumi" };
			foreach (string item in list)
			{
				CardImages val = new CardImages(embeddedSource);
				val.AutoLoad(item + 2, SampleCharacterImageLoader.file_extension, "Resources.Cards.", (List<string>)null, false);
				DictionaryExtensions.AlwaysAdd<string, Texture>(ResourcesHelper.CardImages, item + 2, (Texture)(object)val.main);
			}
		}

		private void OnDestroy()
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
	}
	public class CustomHandlers
	{
		private static bool youmiplayed;

		public static void OnDeckCardsAdding(CardsEventArgs args)
		{
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			BattleController battle = currentGameRun.Battle;
			List<string> packs = currentGameRun.Packs;
			string text = "packoldDef";
			if (packs.Contains(text.Substring(0, text.Length - 3)))
			{
				for (int num = args.Cards.Length - 1; num >= 0; num--)
				{
					Card val = args.Cards[num];
					if (CustomGameEventManager.GetList("oldban").Contains(((GameEntity)val).Id))
					{
						string text2 = "card" + ((GameEntity)val).Id;
						Card val2 = Library.TryCreateCard(text2, val.IsUpgraded, val.UpgradeCounter);
						args.Cards[num] = val2;
					}
				}
			}
			string[] arr = toolbox.banlistgetter();
			List<Card> list = args.Cards.Where((Card c) => BepinexPlugin.banlistoverride.Value && arr.Contains(((GameEntity)c).Id.ToLowerInvariant())).ToList();
			foreach (Card card in list)
			{
				List<string> packs2 = currentGameRun.Packs;
				text = "packoldDef";
				if (!packs2.Contains(text.Substring(0, text.Length - 3)) || !CustomGameEventManager.GetList("oldban").Contains(((GameEntity)card).Id))
				{
					args.Cards = args.Cards.Where((Card c) => c != card).ToArray();
				}
			}
		}

		public static void OnDeckCardsAdded(CardsEventArgs args)
		{
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			BattleController battle = currentGameRun.Battle;
			bool flag = currentGameRun.BaseDeck.Any((Card card) => card is cardyoumi) && currentGameRun.BaseDeck.Any((Card card) => card is cardkotk);
			IEnumerable<Card> enumerable = currentGameRun.BaseDeck;
			if (battle != null)
			{
				enumerable = enumerable.Concat(battle.EnumerateAllCards());
			}
			foreach (Card item in enumerable)
			{
				if (item is cardyoumi)
				{
					if (flag)
					{
						CardConfig.FromId("cardyoumi").ImageId = "cardyoumi" + 2;
						CardConfig.FromId("cardyoumi").UpgradeImageId = "cardyoumi" + 2;
					}
					else
					{
						CardConfig.FromId("cardyoumi").ImageId = "cardyoumi";
						CardConfig.FromId("cardyoumi").UpgradeImageId = "cardyoumi";
					}
				}
				else if (item is cardkotk)
				{
					if (flag)
					{
						CardConfig.FromId("cardkotk").ImageId = "cardkotk" + 2;
						CardConfig.FromId("cardkotk").UpgradeImageId = "cardkotk" + 2;
						CardConfig.FromId("cardkotk").Illustrator = "Hajin";
					}
					else
					{
						CardConfig.FromId("cardkotk").ImageId = "cardkotk";
						CardConfig.FromId("cardkotk").UpgradeImageId = "cardkotk";
						CardConfig.FromId("cardkotk").Illustrator = "哈基双朋友";
					}
				}
			}
		}

		public static void OnDeckCardsRemoving(CardsEventArgs args)
		{
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			BattleController battle = currentGameRun.Battle;
		}

		public static void OnDeckCardsRemoved(CardsEventArgs args)
		{
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			BattleController battle = currentGameRun.Battle;
			bool flag = currentGameRun.BaseDeck.Any((Card card) => card is cardyoumi) && currentGameRun.BaseDeck.Any((Card card) => card is cardkotk);
			IEnumerable<Card> enumerable = currentGameRun.BaseDeck;
			if (battle != null)
			{
				enumerable = enumerable.Concat(battle.EnumerateAllCards());
			}
			foreach (Card item in enumerable)
			{
				if (item is cardyoumi)
				{
					if (flag)
					{
						CardConfig.FromId("cardyoumi").ImageId = "cardyoumi" + 2;
						CardConfig.FromId("cardyoumi").UpgradeImageId = "cardyoumi" + 2;
					}
					else
					{
						CardConfig.FromId("cardyoumi").ImageId = "cardyoumi";
						CardConfig.FromId("cardyoumi").UpgradeImageId = "cardyoumi";
					}
				}
				else if (item is cardkotk)
				{
					if (flag)
					{
						CardConfig.FromId("cardkotk").ImageId = "cardkotk" + 2;
						CardConfig.FromId("cardkotk").UpgradeImageId = "cardkotk" + 2;
						CardConfig.FromId("cardkotk").Illustrator = "Hajin";
					}
					else
					{
						CardConfig.FromId("cardkotk").ImageId = "cardkotk";
						CardConfig.FromId("cardkotk").UpgradeImageId = "cardkotk";
						CardConfig.FromId("cardkotk").Illustrator = "哈基双朋友";
					}
				}
			}
		}

		public static void StationEntering(StationEventArgs args)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			youmiplayed = false;
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			Station station = args.Station;
			EntryStation val = (EntryStation)((station is EntryStation) ? station : null);
			if (val != null && CollectionsExtensions.IndexOf<Stage>(currentGameRun.Stages, ((Station)val).Stage) == 0)
			{
				return;
			}
			ManaGroup baseMana = currentGameRun.BaseMana;
			if (((ManaGroup)(ref baseMana)).HasTrivial || currentGameRun.Player.Exhibits.Any((Exhibit e) => e.Config.Id == "KongbaiKapai"))
			{
				return;
			}
			BepinexPlugin.log.LogWarning((object)"lvalonmeme station entering, no trivial mana and blank card detected");
			Singleton<GameMaster>.Instance.CurrentGameRun.GainExhibitInstantly(Library.CreateExhibit("KongbaiKapai"), false, (VisualSourceData)null);
			baseMana = currentGameRun.BaseMana;
			if (((ManaGroup)(ref baseMana)).Philosophy > 1)
			{
				currentGameRun.TryLoseBaseMana(ManaGroup.Single((ManaColor)7), false);
				return;
			}
			BepinexPlugin.log.LogWarning((object)"lvalonmeme station entering, no trivial mana after blank card");
			baseMana = currentGameRun.BaseMana;
			if (((ManaGroup)(ref baseMana)).Colorless > 0)
			{
				currentGameRun.TryLoseBaseMana(ManaGroup.Single((ManaColor)6), false);
			}
		}

		public static void StationEntered(StationEventArgs args)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			Station station = args.Station;
			EntryStation val = (EntryStation)((station is EntryStation) ? station : null);
			string[] arr = toolbox.banlistgetter();
			List<Card> list = currentGameRun.BaseDeck.Where((Card c) => BepinexPlugin.banlistoverride.Value && arr.Contains(((GameEntity)c).Id.ToLowerInvariant())).ToList();
			string text;
			foreach (Card item in list)
			{
				List<string> packs = currentGameRun.Packs;
				text = "packoldDef";
				if (!packs.Contains(text.Substring(0, text.Length - 3)) || !CustomGameEventManager.GetList("oldban").Contains(((GameEntity)item).Id))
				{
					currentGameRun.RemoveDeckCard(item, false);
				}
			}
			Station station2 = args.Station;
			EntryStation val2 = (EntryStation)(object)((station2 is EntryStation) ? station2 : null);
			if (val2 == null || CollectionsExtensions.IndexOf<Stage>(currentGameRun.Stages, ((Station)val2).Stage) != 0)
			{
				return;
			}
			List<string> packs2 = currentGameRun.Packs;
			text = "packoldDef";
			if (!packs2.Contains(text.Substring(0, text.Length - 3)))
			{
				return;
			}
			if (BepinexPlugin.oldcard.Value)
			{
				List<Card> list2 = new List<Card> { (Card)(object)Library.CreateCard<cardold>() };
				string[] array = toolbox.banlistgetter();
				bool flag = false;
				string[] array2 = array;
				foreach (string text2 in array2)
				{
					if (text2.ToLowerInvariant() == ((GameEntity)list2[0]).Id.ToLowerInvariant())
					{
						flag = true;
						break;
					}
				}
				if (!flag)
				{
					currentGameRun.AddDeckCards((IEnumerable<Card>)list2, false, (VisualSourceData)null);
				}
			}
			List<Card> list3 = currentGameRun.BaseDeck.Where((Card card2) => CustomGameEventManager.GetList("oldban").Contains(((GameEntity)card2).Id)).ToList();
			foreach (Card item2 in list3)
			{
				string id = ((GameEntity)item2).Id;
				string text3 = id;
				if (!(text3 == "YaoguaiBuster"))
				{
					if (text3 == "IceLance")
					{
						currentGameRun.RemoveDeckCard(item2, true);
						currentGameRun.AddDeckCard((Card)(object)Library.CreateCard<cardIceLance>(), false, (VisualSourceData)null);
					}
				}
				else
				{
					currentGameRun.RemoveDeckCard(item2, true);
					currentGameRun.AddDeckCard((Card)(object)Library.CreateCard<cardYaoguaiBuster>(), false, (VisualSourceData)null);
				}
			}
		}

		public static void StationRewardGenerating(StationEventArgs args)
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Invalid comparison between Unknown and I4
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			Station station = args.Station;
			if (!currentGameRun.BaseDeck.Any((Card c) => c is cardkotk) && youmiplayed && (int)currentGameRun.CurrentStation.Type != 10)
			{
				station.Rewards.Clear();
			}
		}

		public static void addreactors()
		{
			CHandlerManager.RegisterBattleEventHandler<GameEventArgs>((EventProvider<GameEventArgs, BattleController>)((BattleController b) => b.BattleStarting), (GameEventHandler<GameEventArgs>)addbattlereactor, (Predicate<BattleController>)null, (GameEventPriority)int.MinValue);
		}

		private static void addbattlereactor(GameEventArgs args)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			PlayerUnit player = Singleton<GameMaster>.Instance.CurrentGameRun.Battle.Player;
			battlereactor((Unit)player);
		}

		private static void battlereactor(Unit unit)
		{
			GameRunController gamerun = Singleton<GameMaster>.Instance.CurrentGameRun;
			unit.ReactBattleEvent<CardsEventArgs>(gamerun.Battle.CardsAddedToDiscard, (Func<CardsEventArgs, IEnumerable<BattleAction>>)((CardsEventArgs args) => battlefieldyeet(args)));
			unit.ReactBattleEvent<CardsEventArgs>(gamerun.Battle.CardsAddedToExile, (Func<CardsEventArgs, IEnumerable<BattleAction>>)((CardsEventArgs args) => battlefieldyeet(args)));
			unit.ReactBattleEvent<CardsEventArgs>(gamerun.Battle.CardsAddedToHand, (Func<CardsEventArgs, IEnumerable<BattleAction>>)((CardsEventArgs args) => battlefieldyeet(args)));
			unit.ReactBattleEvent<CardsAddingToDrawZoneEventArgs>(gamerun.Battle.CardsAddedToDrawZone, (Func<CardsAddingToDrawZoneEventArgs, IEnumerable<BattleAction>>)((CardsAddingToDrawZoneEventArgs args) => battlefieldyeet2(args)));
			unit.ReactBattleEvent<CardUsingEventArgs>(gamerun.Battle.CardUsed, (Func<CardUsingEventArgs, IEnumerable<BattleAction>>)((CardUsingEventArgs args) => CardUsed(args)));
			static IEnumerable<BattleAction> CardUsed(CardUsingEventArgs args)
			{
				if (args.Card is cardyoumi)
				{
					youmiplayed = true;
				}
				return new List<BattleAction>();
			}
			IEnumerable<BattleAction> battlefieldyeet(CardsEventArgs args)
			{
				//IL_008a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Expected O, but got Unknown
				//IL_0229: Unknown result type (might be due to invalid IL or missing references)
				//IL_0233: Expected O, but got Unknown
				//IL_0105: Unknown result type (might be due to invalid IL or missing references)
				//IL_010a: Unknown result type (might be due to invalid IL or missing references)
				//IL_010c: Unknown result type (might be due to invalid IL or missing references)
				//IL_010e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0110: Unknown result type (might be due to invalid IL or missing references)
				//IL_0113: Unknown result type (might be due to invalid IL or missing references)
				//IL_0114: Unknown result type (might be due to invalid IL or missing references)
				//IL_0116: Unknown result type (might be due to invalid IL or missing references)
				//IL_0118: Unknown result type (might be due to invalid IL or missing references)
				//IL_011a: Unknown result type (might be due to invalid IL or missing references)
				//IL_012d: Expected I4, but got Unknown
				//IL_0134: Unknown result type (might be due to invalid IL or missing references)
				//IL_013e: Expected O, but got Unknown
				//IL_0145: Unknown result type (might be due to invalid IL or missing references)
				//IL_014f: Expected O, but got Unknown
				//IL_0163: Unknown result type (might be due to invalid IL or missing references)
				//IL_016d: Expected O, but got Unknown
				List<BattleAction> list4 = new List<BattleAction>();
				List<string> packs3 = gamerun.Packs;
				string text3 = "packoldDef";
				if (packs3.Contains(text3.Substring(0, text3.Length - 3)))
				{
					string[] source2 = toolbox.banlistgetter();
					bool value2 = BepinexPlugin.banlistoverride.Value;
					foreach (Card item in args.Cards.Where((Card card) => CustomGameEventManager.GetList("oldban").Contains(((GameEntity)card).Id)))
					{
						list4.Add((BattleAction)new RemoveCardAction(item));
						string text4 = "card" + ((GameEntity)item).Id;
						if (!value2 || !source2.Contains(text4.ToLowerInvariant()))
						{
							List<Card> list5 = new List<Card> { Library.TryCreateCard(text4, item.IsUpgraded, item.UpgradeCounter) };
							Card val2 = Library.TryCreateCard(text4, item.IsUpgraded, item.UpgradeCounter);
							CardZone zone = item.Zone;
							CardZone val3 = zone;
							CardZone val4 = (CardZone)(val3 - 2);
							CardZone val5 = val4;
							switch ((int)val5)
							{
							case 0:
								list4.Add((BattleAction)new AddCardsToHandAction((IEnumerable<Card>)list5, (AddCardsType)0, false));
								break;
							case 1:
								list4.Add((BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)list5, (AddCardsType)0));
								break;
							case 2:
								list4.Add((BattleAction)new AddCardsToExileAction((Card[])(object)new Card[1] { val2 }));
								break;
							}
						}
					}
				}
				else
				{
					string[] arr2 = toolbox.banlistgetter();
					List<Card> list6 = args.Cards.Where((Card c) => BepinexPlugin.banlistoverride.Value && arr2.Contains(((GameEntity)c).Id.ToLowerInvariant())).ToList();
					foreach (Card item2 in list6)
					{
						List<string> packs4 = gamerun.Packs;
						text3 = "packoldDef";
						if (!packs4.Contains(text3.Substring(0, text3.Length - 3)) || !CustomGameEventManager.GetList("oldban").Contains(((GameEntity)item2).Id))
						{
							list4.Add((BattleAction)new RemoveCardAction(item2));
						}
					}
				}
				return list4;
			}
			IEnumerable<BattleAction> battlefieldyeet2(CardsAddingToDrawZoneEventArgs args)
			{
				//IL_008a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Expected O, but got Unknown
				//IL_01db: Unknown result type (might be due to invalid IL or missing references)
				//IL_01e5: Expected O, but got Unknown
				//IL_0102: Unknown result type (might be due to invalid IL or missing references)
				//IL_0108: Invalid comparison between Unknown and I4
				//IL_0116: Unknown result type (might be due to invalid IL or missing references)
				//IL_0120: Expected O, but got Unknown
				List<BattleAction> list = new List<BattleAction>();
				List<string> packs = gamerun.Packs;
				string text = "packoldDef";
				if (packs.Contains(text.Substring(0, text.Length - 3)))
				{
					string[] source = toolbox.banlistgetter();
					bool value = BepinexPlugin.banlistoverride.Value;
					foreach (Card item3 in args.Cards.Where((Card card) => CustomGameEventManager.GetList("oldban").Contains(((GameEntity)card).Id)))
					{
						list.Add((BattleAction)new RemoveCardAction(item3));
						string text2 = "card" + ((GameEntity)item3).Id;
						if (!value || !source.Contains(text2.ToLowerInvariant()))
						{
							List<Card> list2 = new List<Card> { Library.TryCreateCard(text2, item3.IsUpgraded, item3.UpgradeCounter) };
							Card val = Library.TryCreateCard(text2, item3.IsUpgraded, item3.UpgradeCounter);
							if ((int)item3.Zone == 1)
							{
								list.Add((BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)list2, (DrawZoneTarget)2, (AddCardsType)0));
							}
						}
					}
				}
				else
				{
					string[] arr = toolbox.banlistgetter();
					List<Card> list3 = args.Cards.Where((Card c) => BepinexPlugin.banlistoverride.Value && arr.Contains(((GameEntity)c).Id.ToLowerInvariant())).ToList();
					foreach (Card item4 in list3)
					{
						List<string> packs2 = gamerun.Packs;
						text = "packoldDef";
						if (!packs2.Contains(text.Substring(0, text.Length - 3)) || !CustomGameEventManager.GetList("oldban").Contains(((GameEntity)item4).Id))
						{
							list.Add((BattleAction)new RemoveCardAction(item4));
						}
					}
				}
				return list;
			}
		}
	}
	public static class PInfo
	{
		public const string GUID = "llbol.meme.meme";

		public const string Name = "Everyone Is Here";

		public const string version = "0.0.30";

		public static readonly Harmony harmony = new Harmony("llbol.meme.meme");
	}
	public class SampleCharacterLoadouts
	{
		public static string UltimateSkillA = "SampleCharacterUltA";

		public static string UltimateSkillB = "SampleCharacterUltB";

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

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

		public static PlayerUnitConfig playerUnitConfig;

		static SampleCharacterLoadouts()
		{
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Expected O, but got Unknown
			string modUniqueID = BepinexPlugin.modUniqueID;
			int? num = 0;
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Blue = 1;
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Red = 1;
			((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?)0, (ManaColor)7, (ManaColor)6, val2, "#e58c27", 80, 99, 0, UltimateSkillA, UltimateSkillB, (string)null, (string)null, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 3, 2);
		}
	}
	public abstract class toolbox
	{
		[CompilerGenerated]
		private sealed class <EnumerateALLCardTypes>d__7 : IEnumerable<(Type, CardConfig)>, IEnumerable, IEnumerator<(Type, CardConfig)>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private (Type, CardConfig) <>2__current;

			private int <>l__initialThreadId;

			private IEnumerator<CardConfig> <>s__1;

			private CardConfig <item>5__2;

			private Type <type2>5__3;

			(Type, CardConfig) IEnumerator<(Type, CardConfig)>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

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

			[DebuggerHidden]
			public <EnumerateALLCardTypes>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();
					}
				}
				<>s__1 = null;
				<item>5__2 = null;
				<type2>5__3 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				try
				{
					int num = <>1__state;
					if (num != 0)
					{
						if (num != 1)
						{
							return false;
						}
						<>1__state = -3;
						goto IL_00a4;
					}
					<>1__state = -1;
					<>s__1 = CardConfig.AllConfig().GetEnumerator();
					<>1__state = -3;
					goto IL_00b3;
					IL_00a4:
					<type2>5__3 = null;
					<item>5__2 = null;
					goto IL_00b3;
					IL_00b3:
					if (<>s__1.MoveNext())
					{
						<item>5__2 = <>s__1.Current;
						<type2>5__3 = TypeFactory<Card>.TryGetType(<item>5__2.Id);
						if ((object)<type2>5__3 != null)
						{
							<>2__current = (<type2>5__3, <item>5__2);
							<>1__state = 1;
							return true;
						}
						goto IL_00a4;
					}
					<>m__Finally1();
					<>s__1 = null;
					return false;
				}
				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__1 != null)
				{
					<>s__1.Dispose();
				}
			}

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

			[DebuggerHidden]
			IEnumerator<(Type, CardConfig)> IEnumerable<(Type, CardConfig)>.GetEnumerator()
			{
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					return this;
				}
				return new <EnumerateALLCardTypes>d__7(0);
			}

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

		[CompilerGenerated]
		private sealed class <EnumerateALLExhibitTypes>d__8 : IEnumerable<(Type, ExhibitConfig)>, IEnumerable, IEnumerator<(Type, ExhibitConfig)>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private (Type, ExhibitConfig) <>2__current;

			private int <>l__initialThreadId;

			private IEnumerator<ExhibitConfig> <>s__1;

			private ExhibitConfig <item>5__2;

			private Type <type>5__3;

			(Type, ExhibitConfig) IEnumerator<(Type, ExhibitConfig)>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

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

			[DebuggerHidden]
			public <EnumerateALLExhibitTypes>d__8(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();
					}
				}
				<>s__1 = null;
				<item>5__2 = null;
				<type>5__3 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				try
				{
					int num = <>1__state;
					if (num != 0)
					{
						if (num != 1)
						{
							return false;
						}
						<>1__state = -3;
						goto IL_00a4;
					}
					<>1__state = -1;
					<>s__1 = ExhibitConfig.AllConfig().GetEnumerator();
					<>1__state = -3;
					goto IL_00b3;
					IL_00a4:
					<type>5__3 = null;
					<item>5__2 = null;
					goto IL_00b3;
					IL_00b3:
					if (<>s__1.MoveNext())
					{
						<item>5__2 = <>s__1.Current;
						<type>5__3 = TypeFactory<Exhibit>.TryGetType(<item>5__2.Id);
						if ((object)<type>5__3 != null)
						{
							<>2__current = (<type>5__3, <item>5__2);
							<>1__state = 1;
							return true;
						}
						goto IL_00a4;
					}
					<>m__Finally1();
					<>s__1 = null;
					return false;
				}
				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__1 != null)
				{
					<>s__1.Dispose();
				}
			}

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

			[DebuggerHidden]
			IEnumerator<(Type, ExhibitConfig)> IEnumerable<(Type, ExhibitConfig)>.GetEnumerator()
			{
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					return this;
				}
				return new <EnumerateALLExhibitTypes>d__8(0);
			}

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

		public static string[] banlistgetter()
		{
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Expected O, but got Unknown
			string[] array = BepinexPlugin.cardban.Value.Split(',');
			string[] array2 = new string[0];
			string text = "";
			if (BepinexPlugin.cardwhite.Value != "")
			{
				array = BepinexPlugin.cardwhite.Value.Split(',');
				for (int i = 0; i < array.Length; i++)
				{
					array[i] = array[i].ToLowerInvariant();
				}
				Card[] array3 = CreateAllCardsPoolList(new CardWeightTable(RarityWeightTable.AllOnes, OwnerWeightTable.AllOnes, CardTypeWeightTable.AllOnes, true));
				Card[] array4 = array3;
				foreach (Card val in array4)
				{
					if (!array.Contains(((GameEntity)val).Id.ToLowerInvariant()))
					{
						text = text + ((GameEntity)val).Id.ToLowerInvariant() + ",";
					}
				}
				return text.Split(',');
			}
			return BepinexPlugin.cardban.Value.Split(',');
		}

		public static Card[] RollCardsCustomIgnore(RandomGen rng, CardWeightTable weightTable, int count, ManaGroup? manaLimit = null, bool colorLimit = false, bool applyFactors = false, bool battleRolling = false, bool ensureCount = false, Predicate<Card> filter = null)
		{
			GameMaster instance = Singleton<GameMaster>.Instance;
			GameRunController val = ((instance != null) ? instance.CurrentGameRun : null);
			if (val == null)
			{
				throw new InvalidOperationException("Rolling cards when run is not started.");
			}
			UniqueRandomPool<Type> val2 = val.CreateValidCardsPool(weightTable, manaLimit, colorLimit, applyFactors, battleRolling, (Predicate<CardConfig>)null);
			UniqueRandomPool<Card> val3 = new UniqueRandomPool<Card>(false);
			foreach (RandomPoolEntry<Type> item in val2)
			{
				Card val4 = Library.CreateCard(item.Elem);
				if (filter(val4))
				{
					((GameEntity)val4).GameRun = val;
					val3.Add(val4, item.Weight);
				}
			}
			return val3.SampleMany(rng, count, ensureCount);
		}

		public static Card[] RollCardsCustom(RandomGen rng, CardWeightTable weightTable, int count, ManaGroup? manaLimit = null, bool colorLimit = false, bool applyFactors = false, bool battleRolling = false, bool ensureCount = false, Predicate<Card> filter = null)
		{
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			GameMaster instance = Singleton<GameMaster>.Instance;
			GameRunController val = ((instance != null) ? instance.CurrentGameRun : null);
			if (val == null)
			{
				throw new InvalidOperationException("Rolling cards when run is not started.");
			}
			UniqueRandomPool<Type> val2 = val.CreateValidCardsPool(weightTable, manaLimit, colorLimit, applyFactors, battleRolling, (Predicate<CardConfig>)null);
			UniqueRandomPool<Card> val3 = new UniqueRandomPool<Card>(false);
			foreach (RandomPoolEntry<Type> item in val2)
			{
				Card val4 = Library.CreateCard(item.Elem);
				if (filter(val4))
				{
					ManaGroup baseMana = val.BaseMana;
					if (((ManaGroup)(ref baseMana)).CanAfford(val4.Cost))
					{
						((GameEntity)val4).GameRun = val;
						val3.Add(val4, item.Weight);
					}
				}
			}
			return val3.SampleMany(rng, count, ensureCount);
		}

		public static Card[] RepeatableAllCards(RandomGen rng, CardWeightTable weightTable, int count, bool ensureCount = false, Predicate<Card> filter = null)
		{
			GameMaster instance = Singleton<GameMaster>.Instance;
			GameRunController val = ((instance != null) ? instance.CurrentGameRun : null);
			if (val == null)
			{
				throw new InvalidOperationException("Rolling cards when run is not started.");
			}
			UniqueRandomPool<Type> val2 = CreateAllCardsPool(weightTable);
			RepeatableRandomPool<Card> val3 = new RepeatableRandomPool<Card>();
			foreach (RandomPoolEntry<Type> item in val2)
			{
				Card val4 = Library.CreateCard(item.Elem);
				if (filter(val4))
				{
					((GameEntity)val4).GameRun = val;
					val3.Add(val4, item.Weight);
				}
			}
			return val3.SampleMany(rng, count, ensureCount);
		}

		public static Card[] UniqueAllCards(RandomGen rng, CardWeightTable weightTable, int count, bool ensureCount = false, Predicate<Card> filter = null)
		{
			GameMaster instance = Singleton<GameMaster>.Instance;
			GameRunController val = ((instance != null) ? instance.CurrentGameRun : null);
			if (val == null)
			{
				throw new InvalidOperationException("Rolling cards when run is not started.");
			}
			UniqueRandomPool<Type> val2 = CreateAllCardsPool(weightTable);
			UniqueRandomPool<Card> val3 = new UniqueRandomPool<Card>(false);
			foreach (RandomPoolEntry<Type> item in val2)
			{
				Card val4 = Library.CreateCard(item.Elem);
				if (filter(val4))
				{
					((GameEntity)val4).GameRun = val;
					val3.Add(val4, item.Weight);
				}
			}
			return val3.SampleMany(rng, count, ensureCount);
		}

		public static UniqueRandomPool<Type> CreateAllCardsPool(CardWeightTable weightTable, [MaybeNull] Predicate<CardConfig> filter = null)
		{
			GameRunController currentGameRun = Singleton<GameMaster>.Instance.CurrentGameRun;
			HashSet<string> hashSet = new HashSet<string>(from e in currentGameRun.Player.Exhibits
				where e.OwnerId != null
				select e.OwnerId);
			UniqueRandomPool<Type> val = new UniqueRandomPool<Type>(false);
			foreach (var (type, obj) in EnumerateALLCardTypes())
			{
				if (filter == null || filter(obj))
				{
					val.Add(type, 1f);
				}
			}
			return val;
		}

		public static Card[] CreateAllCardsPoolList(CardWeightTable weightTable, [MaybeNull] Predicate<CardConfig> filter = null)
		{
			return (from e in ((IEnumerable<RandomPoolEntry<Type>>)CreateAllCardsPool(weightTable, filter)).ToList()
				select Library.CreateCard(e.Elem)).ToArray();
		}

		[IteratorStateMachine(typeof(<EnumerateALLCardTypes>d__7))]
		public static IEnumerable<(Type, CardConfig)> EnumerateALLCardTypes()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <EnumerateALLCardTypes>d__7(-2);
		}

		[IteratorStateMachine(typeof(<EnumerateALLExhibitTypes>d__8))]
		public static IEnumerable<(Type, ExhibitConfig)> EnumerateALLExhibitTypes()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <EnumerateALLExhibitTypes>d__8(-2);
		}

		public static UniqueRandomPool<Type> CreateAllExhibitsPool(ExhibitWeightTable weightTable, [MaybeNull] Predicate<ExhibitConfig> filter = null)
		{
			UniqueRandomPool<Type> result = new UniqueRandomPool<Type>(false);
			foreach (var item2 in EnumerateALLExhibitTypes())
			{
				ExhibitConfig item = item2.Item2;
				if (filter != null && filter(item))
				{
				}
			}
			return result;
		}

		public static Card createcardwithidBACKUP(string id)
		{
			UniqueRandomPool<Type> val = new UniqueRandomPool<Type>(false);
			foreach (var (type, val2) in EnumerateALLCardTypes())
			{
				if (val2.Id == id)
				{
					val.Add(type, 1f);
				}
			}
			UniqueRandomPool<Card> val3 = new UniqueRandomPool<Card>(false);
			foreach (RandomPoolEntry<Type> item in val)
			{
				Card val4 = Library.CreateCard(item.Elem);
				val3.Add(val4, item.Weight);
			}
			return val3.Sample(RandomGen.InitGen);
		}

		public static Card createcardwithid(string id)
		{
			return TypeFactory<Card>.CreateInstance(TypeFactory<Card>.TryGetType(id));
		}
	}
}
namespace lvalonmeme.SampleCharacterUlt
{
	public sealed class SampleCharacterUltADef : lvalonmemeulttemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 50;
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(SampleCharacterUltADef))]
	public sealed class SampleCharacterUltA : UltimateSkill
	{
		[CompilerGenerated]
		private sealed class <Actions>d__1 : 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 SampleCharacterUltA <>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__1(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_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_0065: Unknown result type (might be due to invalid IL or missing references)
				//IL_006f: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<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 = 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()
			{
				<Actions>d__1 <Actions>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Actions>d__ = this;
				}
				else
				{
					<Actions>d__ = new <Actions>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<Actions>d__.selector = <>3__selector;
				return <Actions>d__;
			}

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

		public SampleCharacterUltA()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4158);
		}

		[IteratorStateMachine(typeof(<Actions>d__1))]
		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Actions>d__1(-2)
			{
				<>4__this = this,
				<>3__selector = selector
			};
		}
	}
	public sealed class SampleCharacterUltBDef : lvalonmemeulttemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 35;
			defaulUltConfig.Value1 = 2;
			defaulUltConfig.RelativeEffects = new List<string> { "Weak" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(SampleCharacterUltBDef))]
	public sealed class SampleCharacterUltB : UltimateSkill
	{
		[CompilerGenerated]
		private sealed class <Actions>d__1 : 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 SampleCharacterUltB <>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__1(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_0062: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007d: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<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 = 1;
					return true;
				case 1:
					<>1__state = -1;
					if (((Unit)<enemy>5__1).IsAlive)
					{
						<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<Weak>((Unit)(object)<enemy>5__1, (int?)0, (int?)((UltimateSkill)<>4__this).Value1, (int?)0, (int?)0, 0.2f, true);
						<>1__state = 2;
						return true;
					}
					return false;
				case 2:
					<>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__1 <Actions>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Actions>d__ = this;
				}
				else
				{
					<Actions>d__ = new <Actions>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<Actions>d__.selector = <>3__selector;
				return <Actions>d__;
			}

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

		public SampleCharacterUltB()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4158);
		}

		[IteratorStateMachine(typeof(<Actions>d__1))]
		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <Actions>d__1(-2)
			{
				<>4__this = this,
				<>3__selector = selector
			};
		}
	}
	public class lvalonmemeulttemplate : 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(SampleCharacterDefaultConfig.DefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public UltimateSkillConfig GetDefaulUltConfig()
		{
			return SampleCharacterDefaultConfig.DefaultUltConfig();
		}
	}
}
namespace lvalonmeme.StatusEffects
{
	public sealed class sememeDef : lvalonmemesetemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(sememeDef))]
	public sealed class sememe : StatusEffect
	{
	}
	public sealed class seoldDef : lvalonmemesetemplate
	{
		public override Sprite LoadSprite()
		{
			return null;
		}
	}
	[EntityLogic(typeof(seoldDef))]
	public sealed class seold : StatusEffect
	{
	}
	public sealed class se9999Def : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)1;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(se9999Def))]
	public sealed class se9999 : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnTurnEnding>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 se9999 <>4__this;

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

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

			[DebuggerHidden]
			public <OnTurnEnding>d__1(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;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					((StatusEffect)<>4__this).NotifyActivating();
					<>2__current = (BattleAction)(object)new ApplyStatusEffectAction<Poison>(((StatusEffect)<>4__this).Owner, (int?)((StatusEffect)<>4__this).Level, (int?)null, (int?)null, (int?)null, 0f, 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<BattleAction> IEnumerable<BattleAction>.GetEnumerator()
			{
				<OnTurnEnding>d__1 <OnTurnEnding>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnTurnEnding>d__ = this;
				}
				else
				{
					<OnTurnEnding>d__ = new <OnTurnEnding>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnTurnEnding>d__.args = <>3__args;
				return <OnTurnEnding>d__;
			}

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

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

		[IteratorStateMachine(typeof(<OnTurnEnding>d__1))]
		private IEnumerable<BattleAction> OnTurnEnding(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnTurnEnding>d__1(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class seallfriendsDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return lvalonmemesetemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(seallfriendsDef))]
	public sealed class seallfriends : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnTurnStarting>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 seallfriends <>4__this;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0089: Unknown result type (might be due to invalid IL or missing references)
				//IL_0093: Expected O, but got Unknown
				//IL_0062: Unknown result type (might be due to invalid IL or missing references)
				//IL_006c: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					((StatusEffect)<>4__this).NotifyActivating();
					<>2__current = (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)Library.CreateCards<GatherFairy>(((StatusEffect)<>4__this).Level, false), (DrawZoneTarget)2, (AddCardsType)0);
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)<>4__this, true, 0.1f);
					<>1__state = 2;
					return true;
				case 2:
					<>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()
			{
				<OnTurnStarting>d__1 <OnTurnStarting>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnTurnStarting>d__ = this;
				}
				else
				{
					<OnTurnStarting>d__ = new <OnTurnStarting>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnTurnStarting>d__.args = <>3__args;
				return <OnTurnStarting>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>)OnTurnStarting);
		}

		[IteratorStateMachine(typeof(<OnTurnStarting>d__1))]
		private IEnumerable<BattleAction> OnTurnStarting(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnTurnStarting>d__1(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class searashidadDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.IsStackable = false;
			defaultStatusEffectConfig.HasCount = true;
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "Grace", "TempFirepower", "TempSpirit" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(searashidadDef))]
	public sealed class searashidad : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <>c__DisplayClass6_0
		{
			public CardUsingEventArgs args;

			internal bool <OnCardUsed>b__2(Card c)
			{
				return c.InstanceId == args.Card.InstanceId;
			}
		}

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

			private BattleAction <>2__current;

			private int <>l__initialThreadId;

			private CardUsingEventArgs args;

			public CardUsingEventArgs <>3__args;

			public searashidad <>4__this;

			private <>c__DisplayClass6_0 <>8__1;

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

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

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

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

			private bool MoveNext()
			{
				//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
				//IL_02c4: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>8__1 = new <>c__DisplayClass6_0();
					<>8__1.args = args;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd || <>8__1.args.Card is cardarashidad)
					{
						List<string> packs = ((GameEntity)<>4__this).GameRun.Packs;
						string text = "packoldDef";
						if (packs.Contains(text.Substring(0, text.Length - 3)) && CustomGameEventManager.GetList("oldban").Intersect(<>4__this.thecards.Select((Card c) => ((GameEntity)c).Id)).Any() && !((StatusEffect)<>4__this).Highlight)
						{
							((StatusEffect)<>4__this).Count = ((StatusEffect)<>4__this).Count - CustomGameEventManager.GetList("oldban").Intersect(<>4__this.thecards.Select((Card c) => ((GameEntity)c).Id)).Count();
						}
						((StatusEffect)<>4__this).Highlight = true;
						return false;
					}
					if (<>4__this.thecards.Any((Card c) => c.InstanceId == <>8__1.args.Card.InstanceId))
					{
						<>4__this.thecards.Remove(<>8__1.args.Card);
						int count = ((StatusEffect)<>4__this).Count;
						((StatusEffect)<>4__this).Count = count - 1;
					}
					if (((StatusEffect)<>4__this).Count == 0)
					{
						((StatusEffect)<>4__this).NotifyActivating();
						<>2__current = ((StatusEffect)<>4__this).BuffAction<Grace>(((StatusEffect)<>4__this).Level, 0, 0, 0, 0.2f);
						<>1__state = 1;
						return true;
					}
					break;
				case 1:
					<>1__state = -1;
					<>2__current = ((StatusEffect)<>4__this).BuffAction<TempFirepower>(((StatusEffect)<>4__this).Level, 0, 0, 0, 0.2f);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<>2__current = ((StatusEffect)<>4__this).BuffAction<TempSpirit>(((StatusEffect)<>4__this).Level, 0, 0, 0, 0.2f);
					<>1__state = 3;
					return true;
				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;
					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()
			{
				<OnCardUsed>d__6 <OnCardUsed>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnCardUsed>d__ = this;
				}
				else
				{
					<OnCardUsed>d__ = new <OnCardUsed>d__6(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnCardUsed>d__.args = <>3__args;
				return <OnCardUsed>d__;
			}

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

		[CompilerGenerated]
		private sealed class <OnTurnEnded>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 searashidad <>4__this;

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

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

			[DebuggerHidden]
			public <OnTurnEnded>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_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0037: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)<>4__this, true, 0.1f);
					<>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()
			{
				<OnTurnEnded>d__2 <OnTurnEnded>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnTurnEnded>d__ = this;
				}
				else
				{
					<OnTurnEnded>d__ = new <OnTurnEnded>d__2(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnTurnEnded>d__.args = <>3__args;
				return <OnTurnEnded>d__;
			}

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

		private List<Card> thecards = new List<Card>();

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).Count = 0;
			thecards = new List<Card>();
			((StatusEffect)this).HandleOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddingToHand, (GameEventHandler<CardsEventArgs>)OnAddCard1);
			((StatusEffect)this).HandleOwnerEvent<CardsAddingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardsAddingToDrawZone, (GameEventHandler<CardsAddingToDrawZoneEventArgs>)OnAddCard2);
			((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
			((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardPlayed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnTurnEnded);
		}

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

		private void OnAddCard2(CardsAddingToDrawZoneEventArgs args)
		{
			if (!((StatusEffect)this).Highlight)
			{
				OnAddCard(args.Cards);
			}
		}

		private void OnAddCard1(CardsEventArgs args)
		{
			if (!((StatusEffect)this).Highlight)
			{
				OnAddCard(args.Cards);
			}
		}

		private void OnAddCard(Card[] cards)
		{
			thecards.AddRange(cards);
			((StatusEffect)this).Count = ((StatusEffect)this).Count + cards.Length;
		}

		[IteratorStateMachine(typeof(<OnCardUsed>d__6))]
		private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnCardUsed>d__6(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class sebbDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)2;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(sebbDef))]
	public sealed class sebb : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnOwnerTurnEnded>d__4 : 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 sebb <>4__this;

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

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

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

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

			private bool MoveNext()
			{
				//IL_002d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0037: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)<>4__this, true, 0.1f);
					<>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()
			{
				<OnOwnerTurnEnded>d__4 <OnOwnerTurnEnded>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnOwnerTurnEnded>d__ = this;
				}
				else
				{
					<OnOwnerTurnEnded>d__ = new <OnOwnerTurnEnded>d__4(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnOwnerTurnEnded>d__.args = <>3__args;
				return <OnOwnerTurnEnded>d__;
			}

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

		public override bool ForceNotShowDownText => true;

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).HandleOwnerEvent<DamageDealingEventArgs>(((StatusEffect)this).Owner.DamageDealing, (GameEventHandler<DamageDealingEventArgs>)OnDamageDealing);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
			((StatusEffect)this).Highlight = true;
		}

		private void OnDamageDealing(DamageDealingEventArgs 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)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Invalid comparison between Unknown and I4
			DamageInfo damageInfo = args.DamageInfo;
			args.DamageInfo = ((DamageInfo)(ref damageInfo)).MultiplyBy(0);
			((GameEventArgs)args).AddModifier((GameEntity)(object)this);
			if ((int)((GameEventArgs)args).Cause != 20)
			{
				((StatusEffect)this).NotifyActivating();
			}
		}

		[IteratorStateMachine(typeof(<OnOwnerTurnEnded>d__4))]
		private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnOwnerTurnEnded>d__4(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class secirnolevelDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(secirnolevelDef))]
	public sealed class secirnolevel : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnTurnEnding>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 secirnolevel <>4__this;

			private int <loss>5__1;

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

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

			[DebuggerHidden]
			public <OnTurnEnding>d__2(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;
					<loss>5__1 = Convert.ToInt32(Math.Floor((double)(((StatusEffect)<>4__this).Count / 10))) * ((StatusEffect)<>4__this).Level;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd || <loss>5__1 == 0)
					{
						return false;
					}
					((StatusEffect)<>4__this).NotifyActivating();
					<>2__current = (BattleAction)(object)DamageAction.LoseLife(((StatusEffect)<>4__this).Owner, <loss>5__1, "Poison");
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					((StatusEffect)<>4__this).Count = 0;
					((StatusEffect)<>4__this).Highlight = false;
					return false;
				}
			}

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

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

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

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

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).Count = 0;
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnTurnEnding);
			((StatusEffect)this).HandleOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (GameEventHandler<CardUsingEventArgs>)OnCardUsed);
		}

		public void OnCardUsed(CardUsingEventArgs args)
		{
			int count = ((StatusEffect)this).Count;
			((StatusEffect)this).Count = count + 1;
			if (((StatusEffect)this).Count >= 10)
			{
				((StatusEffect)this).Highlight = true;
			}
		}

		[IteratorStateMachine(typeof(<OnTurnEnding>d__2))]
		private IEnumerable<BattleAction> OnTurnEnding(UnitEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnTurnEnding>d__2(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class seDeepFreezeDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)1;
			defaultStatusEffectConfig.Order = 8;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(seDeepFreezeDef))]
	public sealed class seDeepFreeze : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnRoundEnding>d__4 : 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 seDeepFreeze <>4__this;

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

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

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

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

			private bool MoveNext()
			{
				//IL_0044: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: 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 RemoveStatusEffectAction((StatusEffect)(object)<>4__this, true, 0.1f);
					<>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()
			{
				<OnRoundEnding>d__4 <OnRoundEnding>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<OnRoundEnding>d__ = this;
				}
				else
				{
					<OnRoundEnding>d__ = new <OnRoundEnding>d__4(0)
					{
						<>4__this = <>4__this
					};
				}
				<OnRoundEnding>d__.args = <>3__args;
				return <OnRoundEnding>d__;
			}

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

		public override bool ForceNotShowDownText => true;

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).HandleOwnerEvent<DamageEventArgs>(unit.DamageReceiving, (GameEventHandler<DamageEventArgs>)OnDamageReceiving);
			((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.RoundEnding, (EventSequencedReactor<GameEventArgs>)OnRoundEnding);
		}

		private void OnDamageReceiving(DamageEventArgs args)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			DamageInfo damageInfo = args.DamageInfo;
			((DamageInfo)(ref damageInfo)).Damage = ((DamageInfo)(ref damageInfo)).Amount * 2f;
			args.DamageInfo = damageInfo;
			((GameEventArgs)args).AddModifier((GameEntity)(object)this);
		}

		[IteratorStateMachine(typeof(<OnRoundEnding>d__4))]
		private IEnumerable<BattleAction> OnRoundEnding(GameEventArgs args)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnRoundEnding>d__4(-2)
			{
				<>4__this = this,
				<>3__args = args
			};
		}
	}
	public sealed class seedgingDef : lvalonmemesetemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = lvalonmemesetemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.HasCount = true;
			defaultStatusEffectConfig.Type = (StatusEffectType)1;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(seedgingDef))]
	public sealed class seedging : StatusEffect
	{
		[CompilerGenerated]
		private sealed class <OnTurnEnding>d__4 : 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 seedging <>4__this;

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

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

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

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

			private bool MoveNext()
			{
				//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e0: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					if (((StatusEffect)<>4__this).Battle.BattleShouldEnd)
					{
						return false;
					}
					((StatusEffect)<>4__this).NotifyActivating();
					if (((StatusEffect)<>4__this).Count == 0 && !((StatusEffect)<>4__this).Owner.HasStatusEffect<FoxCharm>())
					{
						<>2__current = (BattleAction)(