Decompiled source of Booster Packet v1.0.1

BoosterPacket.dll

Decompiled a month ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using AddWatermark;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using BoosterPacket.Cards.Curses;
using BoosterPacket.GunName;
using HarmonyLib;
using JetBrains.Annotations;
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.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Cards.Character.Cirno;
using LBoL.EntityLib.Cards.Character.Cirno.Friend;
using LBoL.EntityLib.Cards.Character.Sakuya;
using LBoL.EntityLib.Cards.Enemy;
using LBoL.EntityLib.Cards.Misfortune;
using LBoL.EntityLib.Cards.Neutral.Black;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Cirno;
using LBoL.EntityLib.StatusEffects.Enemy;
using LBoL.EntityLib.StatusEffects.Others;
using LBoL.EntityLib.StatusEffects.Sakuya;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using UnityEngine;

[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("BoosterPacket")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("BoosterPacket")]
[assembly: AssemblyTitle("BoosterPacket")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace BoosterPacket
{
	[BepInPlugin("xeno.lbol.boosterpack", "Booster Packet", "1.0.1")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		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("xeno.lbol.boosterpack", "");

		internal static BatchLocalization CardBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(CardTemplate), "Cards", (Locale)0, false);

		internal static BatchLocalization StatusEffectBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(StatusEffectTemplate), "StatusEffects", (Locale)0, false);

		private void Awake()
		{
			log = ((BaseUnityPlugin)this).Logger;
			Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			EntityManager.RegisterSelf();
			harmony.PatchAll();
			if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark"))
			{
				WatermarkWrapper.ActivateWatermark();
			}
		}

		private void OnDestroy()
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
	}
	public static class PInfo
	{
		public const string GUID = "xeno.lbol.boosterpack";

		public const string Name = "Booster Packet";

		public const string version = "1.0.1";

		public static readonly Harmony harmony = new Harmony("xeno.lbol.boosterpack");
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace BoosterPacket.GunName
{
	public static class GunNameID
	{
		private static readonly IReadOnlyList<GunConfig> gunConfig = GunConfig.AllConfig();

		public static string GetGunFromId(int id)
		{
			string text = "";
			try
			{
				return (from config in gunConfig
					where config.Id == id
					select config.Name).ToList()[0];
			}
			catch
			{
				Debug.Log((object)("id: " + id + " doesn't exist. Check whether the ID is correct."));
				return "Instant";
			}
		}
	}
}
namespace BoosterPacket.Cards
{
	public sealed class AunnFluffDef : CardTemplate
	{
		[EntityLogic(typeof(AunnFluffDef))]
		public sealed class AunnFluff : Card
		{
			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 ((Card)this).DefenseAction(true);
				yield return ((Card)this).BuffAction<MaoyuBlock>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)4,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Red = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6016, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)0, (CardType)2, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)1, (int?)3, (int?)null, (int?)null, (int?)25, (int?)32, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)512, (Keyword)512, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class ChenRedBlueDef : CardTemplate
	{
		[EntityLogic(typeof(ChenRedBlueDef))]
		public sealed class ChenRedBlue : Card
		{
			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)
				List<ChenRedBlue> list = Library.CreateCards<ChenRedBlue>(2, ((Card)this).IsUpgraded).ToList();
				ChenRedBlue first = list[0];
				ChenRedBlue chenRedBlue = list[1];
				((Card)first).ShowWhichDescription = 1;
				((Card)chenRedBlue).ShowWhichDescription = 2;
				((Card)first).SetBattle(((Card)this).Battle);
				((Card)chenRedBlue).SetBattle(((Card)this).Battle);
				MiniSelectCardInteraction interaction = new MiniSelectCardInteraction((IEnumerable<Card>)list, false, false, false)
				{
					Source = (GameEntity)(object)this
				};
				yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, false);
				if (interaction.SelectedCard == first)
				{
					yield return ((Card)this).BuffAction<TempFirepower>(((Card)this).Value1, 0, 0, 0, 0.2f);
				}
				else
				{
					yield return ((Card)this).BuffAction<TempSpirit>(((Card)this).Value2, 0, 0, 0, 0.2f);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)4
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 5;
			return new CardConfig(6013, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)0, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)3, (int?)3, (int?)4, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)8388608, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "TempFirepower", "TempSpirit" }, (IReadOnlyList<string>)new List<string> { "TempFirepower", "TempSpirit" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CirnoIceBreakDef : CardTemplate
	{
		[EntityLogic(typeof(CirnoIceBreakDef))]
		public sealed class CirnoIceBreak : Card
		{
			public override Interaction Precondition()
			{
				//IL_0070: Unknown result type (might be due to invalid IL or missing references)
				//IL_0077: Expected O, but got Unknown
				List<Card> list = ((Card)this).Battle.DrawZone.ToList();
				list.Reverse();
				List<Card> list2 = new List<Card>();
				for (int i = 1; i <= ((Card)this).Value1; i++)
				{
					if (list.FirstOrDefault() == null)
					{
						break;
					}
					list2.Add(list.FirstOrDefault());
					list.RemoveAt(0);
				}
				if (list2.Count > 0)
				{
					return (Interaction)new SelectCardInteraction(0, ((Card)this).Value1, (IEnumerable<Card>)list2, (SelectedCardHandling)0);
				}
				return null;
			}

			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)
				if (precondition != null)
				{
					IReadOnlyList<Card> cards = ((SelectCardInteraction)precondition).SelectedCards;
					if (cards.Count > 0)
					{
						yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)cards);
						yield return (BattleAction)new DrawManyCardAction(cards.Count);
					}
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_0068: 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)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0190: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 4;
			ManaGroup val3 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 2;
			return new CardConfig(6008, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)3, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)131072, (Keyword)131072, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Cirno", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CirnoRecruitmentDef : CardTemplate
	{
		[EntityLogic(typeof(CirnoRecruitmentDef))]
		public sealed class CirnoRecruitment : Card
		{
			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)
				List<CirnoRecruitment> list = Library.CreateCards<CirnoRecruitment>(2, ((Card)this).IsUpgraded).ToList();
				CirnoRecruitment first = list[0];
				CirnoRecruitment cirnoRecruitment = list[1];
				((Card)first).ShowWhichDescription = 1;
				((Card)cirnoRecruitment).ShowWhichDescription = 2;
				((Card)first).SetBattle(((Card)this).Battle);
				((Card)cirnoRecruitment).SetBattle(((Card)this).Battle);
				MiniSelectCardInteraction interaction = new MiniSelectCardInteraction((IEnumerable<Card>)list, false, false, false)
				{
					Source = (GameEntity)(object)this
				};
				yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, false);
				if (interaction.SelectedCard == first)
				{
					List<Card> listU = ((Card)this).Battle.RollCardsWithoutManaLimit(new CardWeightTable(RarityWeightTable.NoneRare, OwnerWeightTable.AllOnes, CardTypeWeightTable.OnlyFriend, false), 1, (Predicate<CardConfig>)((CardConfig config) => config.Colors.Contains((ManaColor)2))).ToList();
					listU.AddRange(((Card)this).Battle.RollCardsWithoutManaLimit(new CardWeightTable(RarityWeightTable.NoneRare, OwnerWeightTable.AllOnes, CardTypeWeightTable.OnlyFriend, false), 1, (Predicate<CardConfig>)((CardConfig config) => config.Colors.Contains((ManaColor)2))).ToList());
					foreach (Card card2 in listU)
					{
						card2.Summon();
					}
					yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)listU, (AddCardsType)0);
				}
				else
				{
					List<Card> listU2 = ((Card)this).Battle.RollCardsWithoutManaLimit(new CardWeightTable(RarityWeightTable.NoneRare, OwnerWeightTable.AllOnes, CardTypeWeightTable.OnlyFriend, false), 1, (Predicate<CardConfig>)((CardConfig config) => config.Colors.Contains((ManaColor)5))).ToList();
					listU2.AddRange(((Card)this).Battle.RollCardsWithoutManaLimit(new CardWeightTable(RarityWeightTable.NoneRare, OwnerWeightTable.AllOnes, CardTypeWeightTable.OnlyFriend, false), 1, (Predicate<CardConfig>)((CardConfig config) => config.Colors.Contains((ManaColor)5))).ToList());
					foreach (Card card in listU2)
					{
						card.Summon();
					}
					yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)listU2, (AddCardsType)0);
				}
				yield return (BattleAction)new LockRandomTurnManaAction(((Card)this).Value2);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 3;
			((ManaGroup)(ref val2)).Blue = 1;
			((ManaGroup)(ref val2)).Green = 1;
			ManaGroup val3 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 2;
			((ManaGroup)(ref val2)).Blue = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6007, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)null, (int?)2, (int?)1, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)299067162755072L, (Keyword)299067162755072L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Cirno", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CirnoShadowFlowerDef : CardTemplate
	{
		[EntityLogic(typeof(CirnoShadowFlowerDef))]
		public sealed class CirnoShadowFlower : Card
		{
			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)
				int total2 = ((Card)this).GrowCount + 2;
				while (total2 > 0)
				{
					int num = Math.Min(5, total2);
					total2 -= num;
					List<Card> list = new List<Card>();
					for (int i = 0; i < num; i++)
					{
						list.Add(Library.CreateCard(typeof(SummerFlower)));
					}
					if (((Card)this).IsUpgraded)
					{
						foreach (Card card in list)
						{
							card.IsReplenish = true;
						}
					}
					yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)list, (DrawZoneTarget)2, (AddCardsType)1);
				}
				total2 = ((Card)this).GrowCount + 1;
				while (total2 > 0)
				{
					int num2 = Math.Min(5, total2);
					total2 -= num2;
					List<Card> list2 = new List<Card>();
					for (int j = 0; j < num2; j++)
					{
						list2.Add(Library.CreateCard(typeof(Shadow)));
					}
					if (((Card)this).IsUpgraded)
					{
						foreach (Card card2 in list2)
						{
							card2.IsReplenish = true;
						}
					}
					yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)list2, (AddCardsType)1);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_01b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Black = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6009, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)null, (int?)1, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)4398046511104L, (Keyword)4398054899712L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "SummerFlower", "Shadow" }, (IReadOnlyList<string>)new List<string> { "SummerFlower", "Shadow" }, "Cirno", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class HinaFriendDef : CardTemplate
	{
		[EntityLogic(typeof(HinaFriendDef))]
		public sealed class HinaFriend : Card
		{
			public string Indent { get; } = "<indent=80>";


			public string PassiveCostIcon => $"<indent=0><sprite=\"Passive\" name=\"{((Card)this).PassiveCost}\">{Indent}";

			public string ActiveCostIcon => $"<indent=0><sprite=\"Active\" name=\"{((Card)this).ActiveCost}\">{Indent}";

			public string UltimateCostIcon => $"<indent=0><sprite=\"Ultimate\" name=\"{((Card)this).UltimateCost}\">{Indent}";

			public override IEnumerable<BattleAction> OnTurnStartedInHand()
			{
				return ((Card)this).GetPassiveActions();
			}

			public override IEnumerable<BattleAction> GetPassiveActions()
			{
				if (!((Card)this).Summoned || ((Card)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				<>n__0();
				((Card)this).Loyalty = ((Card)this).Loyalty + ((Card)this).PassiveCost;
				for (int i = 0; i < ((Card)this).Battle.FriendPassiveTimes; i++)
				{
					if (((Card)this).Battle.BattleShouldEnd)
					{
						break;
					}
					List<Card> Exile = (from card in ((Card)this).Battle.HandZone.Concat(((Card)this).Battle.DrawZoneToShow).Concat(((Card)this).Battle.DiscardZone)
						where (int)card.CardType == 8 || (int)card.CardType == 7
						select card).ToList();
					if (Exile.Count > 0)
					{
						List<Card> ExileCard = CollectionsExtensions.SampleManyOrAll<Card>((IEnumerable<Card>)Exile, 1, ((GameEntity)this).GameRun.BattleRng).ToList();
						yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)ExileCard);
					}
				}
			}

			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)
				((Card)this).Loyalty = ((Card)this).Loyalty + ((Card)this).ActiveCost;
				((Card)this).CardGuns = new Guns(((Card)this).GunName, ((Card)this).Value1, true);
				foreach (GunPair gunPair in ((Card)this).CardGuns.GunPairs)
				{
					_ = gunPair;
					yield return ((Card)this).AttackAction((Unit)(object)((Card)this).Battle.RandomAliveEnemy);
				}
				List<Card> Curse = new List<Card>
				{
					((GameEntity)this).GameRun.GetRandomCurseCard(((GameEntity)this).GameRun.BattleCardRng, true),
					((GameEntity)this).GameRun.GetRandomCurseCard(((GameEntity)this).GameRun.BattleCardRng, true)
				};
				yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)Curse, (AddCardsType)0);
				yield return (BattleAction)(object)((Card)this).SkillAnime;
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((Card)this).NotifyActivating();
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Expected O, but got Unknown
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(7030);
			string gunFromId2 = GunNameID.GetGunFromId(7031);
			TargetType? val = (TargetType)0;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Blue = 1;
			((ManaGroup)(ref val2)).Black = 1;
			return new CardConfig(6015, "", 10, true, array, gunFromId, gunFromId2, 0, false, true, true, false, true, (Rarity)1, (CardType)5, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)15, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)3, (int?)2, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)3, (int?)5, (int?)(-1), (int?)null, (int?)2, (int?)3, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)131080, (Keyword)131080, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class KeineHistoryEaterDef : CardTemplate
	{
		[EntityLogic(typeof(KeineHistoryEaterDef))]
		public sealed class KeineHistoryEater : Card
		{
			public override Interaction Precondition()
			{
				//IL_004a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0050: Expected O, but got Unknown
				List<Card> list = (from card in ((Card)this).Battle.DrawZoneToShow.Concat(((Card)this).Battle.DiscardZone)
					where card != this
					select card).ToList();
				if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list))
				{
					return (Interaction)new SelectCardInteraction(1, ((Card)this).Value1, (IEnumerable<Card>)list, (SelectedCardHandling)0);
				}
				return null;
			}

			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)
				if (precondition != null)
				{
					IReadOnlyList<Card> readOnlyList = ((SelectCardInteraction)precondition).SelectedCards;
					if (readOnlyList.Count > 0)
					{
						yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)readOnlyList);
					}
				}
				yield return (BattleAction)new AddCardsToDiscardAction((Card[])(object)new Card[1] { Library.CreateCard<KeineHistoryMakerDef.KeineHistoryMaker>(((Card)this).IsUpgraded) });
			}

			public override IEnumerable<BattleAction> AfterUseAction()
			{
				yield return ((Card)this).EchoCloneAction();
				yield return (BattleAction)new RemoveCardAction((Card)(object)this);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Blue = 1;
			((ManaGroup)(ref val2)).Black = 1;
			return new CardConfig(6019, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)5, (int?)7, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)8388608, false, (Keyword)131072, (Keyword)131072, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "KeineHistoryMaker" }, (IReadOnlyList<string>)new List<string> { "KeineHistoryMaker" }, (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class KeineHistoryMakerDef : CardTemplate
	{
		[EntityLogic(typeof(KeineHistoryMakerDef))]
		public sealed class KeineHistoryMaker : Card
		{
			public override ManaGroup? PlentifulMana => ((Card)this).Mana;

			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)
				Card[] array = CollectionsExtensions.SampleManyOrAll<Card>((IEnumerable<Card>)((Card)this).Battle.ExileZone, ((Card)this).Value1, ((GameEntity)this).GameRun.BattleRng);
				if (array.Length != 0)
				{
					MiniSelectCardInteraction interaction = new MiniSelectCardInteraction((IEnumerable<Card>)array, false, false, false)
					{
						Source = (GameEntity)(object)this
					};
					yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, false);
					Card card = interaction.SelectedCard;
					yield return (BattleAction)new MoveCardAction(card, (CardZone)2);
				}
				yield return (BattleAction)new AddCardsToDiscardAction((Card[])(object)new Card[1] { Library.CreateCard<KeineHistoryEaterDef.KeineHistoryEater>(((Card)this).IsUpgraded) });
			}

			public override IEnumerable<BattleAction> AfterUseAction()
			{
				yield return ((Card)this).EchoCloneAction();
				yield return (BattleAction)new RemoveCardAction((Card)(object)this);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b2: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).White = 1;
			((ManaGroup)(ref val2)).Green = 1;
			ManaGroup val3 = val2;
			int? num = 3;
			int? num2 = 5;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 1;
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Philosophy = 1;
			return new CardConfig(6020, "", 10, true, array, "", "", 0, false, false, true, true, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, num, num2, (int?)null, (int?)null, val4, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)131072, (Keyword)131072, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "KeineHistoryEater" }, (IReadOnlyList<string>)new List<string> { "KeineHistoryEater" }, (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class MizuchiRetainOverdraftDef : CardTemplate
	{
		[EntityLogic(typeof(MizuchiRetainOverdraftDef))]
		public sealed class MizuchiRetainOverdraft : Card
		{
			public override IEnumerable<BattleAction> OnRetain()
			{
				if ((int)((Card)this).Zone == 2)
				{
					yield return (BattleAction)new LockRandomTurnManaAction(((Card)this).Value2);
				}
			}

			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 ((Card)this).DefenseAction(true);
				yield return ((Card)this).AttackAction(selector, ((Card)this).GunName);
				yield return ((Card)this).DebuffAction<Weak>((Unit)(object)selector.GetEnemy(((Card)this).Battle), 0, ((Card)this).Value1, 0, 0, true, 0.2f);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Expected O, but got Unknown
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(7080);
			string gunFromId2 = GunNameID.GetGunFromId(7081);
			TargetType? val = (TargetType)1;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 4;
			((ManaGroup)(ref val2)).White = 1;
			((ManaGroup)(ref val2)).Black = 1;
			return new CardConfig(6012, "", 10, true, array, gunFromId, gunFromId2, 0, false, true, true, false, true, (Rarity)2, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)38, (int?)52, (int?)38, (int?)52, (int?)null, (int?)null, (int?)2, (int?)3, (int?)2, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2097408, (Keyword)2097408, false, (Keyword)17592186044928L, (Keyword)17592186044928L, (IReadOnlyList<string>)new List<string> { "Weak" }, (IReadOnlyList<string>)new List<string> { "Weak" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class ParseeJealousDef : CardTemplate
	{
		[EntityLogic(typeof(ParseeJealousDef))]
		public sealed class ParseeJealous : Card
		{
			private static readonly List<Type> CurseCommon = new List<Type>
			{
				typeof(Regret),
				typeof(Jealousy),
				typeof(BefuddledLife),
				typeof(XiaosanJingxia),
				typeof(MarisaForget),
				typeof(Yuebiao),
				typeof(BuyPeace),
				typeof(SweetPoison),
				typeof(Misfortune),
				typeof(CurseDiscardDef.CurseDiscard),
				typeof(CurseNecromancyDef.CurseNecromancy)
			};

			private static readonly List<Type> CurseUncommon = new List<Type>
			{
				typeof(Pressure),
				typeof(YuyukoMisfortune),
				typeof(Drunk),
				typeof(Zhukeling),
				typeof(Psychedelic),
				typeof(CurseFirelightDef.CurseFirelight),
				typeof(CurseMoonlightDef.CurseMoonlight),
				typeof(CurseStarlightDef.CurseStarlight),
				typeof(CurseVulnerableDef.CurseVulnerable)
			};

			private static readonly List<Type> CurseRare = new List<Type>
			{
				typeof(FanzhuanChongdong),
				typeof(CurseCopyDef.CurseCopy),
				typeof(CurseFullDef.CurseFull)
			};

			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)
				if (((Card)this).IsUpgraded)
				{
					yield return (BattleAction)new GainManaAction(((Card)this).Mana);
				}
				List<Card> choice = ((Card)this).Battle.RollCards(new CardWeightTable(RarityWeightTable.OnlyCommon, OwnerWeightTable.Valid, CardTypeWeightTable.CanBeLoot, false), 1, (Predicate<CardConfig>)null).ToList();
				choice.AddRange(((Card)this).Battle.RollCards(new CardWeightTable(RarityWeightTable.OnlyUncommon, OwnerWeightTable.Valid, CardTypeWeightTable.CanBeLoot, false), 1, (Predicate<CardConfig>)null));
				choice.AddRange(((Card)this).Battle.RollCards(new CardWeightTable(RarityWeightTable.OnlyRare, OwnerWeightTable.Valid, CardTypeWeightTable.CanBeLoot, false), 1, (Predicate<CardConfig>)null));
				if (choice.Count > 0)
				{
					MiniSelectCardInteraction interaction = new MiniSelectCardInteraction((IEnumerable<Card>)choice, false, false, false)
					{
						Source = (GameEntity)(object)this
					};
					yield return (BattleAction)new InteractionAction((Interaction)(object)interaction, false);
					Card selectedCard = interaction.SelectedCard;
					selectedCard.IsRetain = true;
					selectedCard.IsExile = true;
					yield return (BattleAction)new AddCardsToHandAction((Card[])(object)new Card[1] { selectedCard });
					Card Curse;
					if (selectedCard == choice[0])
					{
						List<Type> list3 = ObjectExtensions.Copy<List<Type>>(CurseCommon);
						CollectionsExtensions.Shuffle<Type>((IList<Type>)list3, ((GameEntity)this).GameRun.BattleRng);
						Curse = Library.CreateCard(list3.First());
					}
					else if (selectedCard == choice[1])
					{
						List<Type> list2 = ObjectExtensions.Copy<List<Type>>(CurseUncommon);
						CollectionsExtensions.Shuffle<Type>((IList<Type>)list2, ((GameEntity)this).GameRun.BattleRng);
						Curse = Library.CreateCard(list2.First());
					}
					else
					{
						List<Type> list = ObjectExtensions.Copy<List<Type>>(CurseRare);
						CollectionsExtensions.Shuffle<Type>((IList<Type>)list, ((GameEntity)this).GameRun.BattleRng);
						Curse = Library.CreateCard(list.First());
					}
					yield return (BattleAction)new AddCardsToDiscardAction((Card[])(object)new Card[1] { Curse });
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 8;
			ManaGroup val3 = val2;
			int? num = 3;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Black = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6010, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)0, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, num, (int?)null, (int?)null, (int?)null, (ManaGroup?)val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)131072, (Keyword)131072, false, (Keyword)2097160, (Keyword)2097160, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SakuyaBlockDiscardDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaBlockDiscardDef))]
		public sealed class SakuyaBlockDiscard : Card
		{
			public override IEnumerable<BattleAction> OnDiscard(CardZone srcZone)
			{
				//IL_000f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0010: Unknown result type (might be due to invalid IL or missing references)
				yield return (BattleAction)new MoveCardAction((Card)(object)this, (CardZone)2);
				((Card)this).SetTurnCost(((Card)this).Mana);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor> { (ManaColor)2 };
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 2;
			((ManaGroup)(ref val2)).Blue = 1;
			ManaGroup val3 = val2;
			int? num = 20;
			int? num2 = 24;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Blue = 1;
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			return new CardConfig(6003, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)2, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, num, num2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, val4, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)512, (Keyword)512, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Sakuya", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SakuyaButterDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaButterDef))]
		public sealed class SakuyaButter : Card
		{
			protected override void OnEnterBattle(BattleController battle)
			{
				((Card)this).ReactBattleEvent<CardEventArgs>(((Card)this).Battle.CardDrawn, (EventSequencedReactor<CardEventArgs>)OnCardDrawn);
			}

			private IEnumerable<BattleAction> OnCardDrawn(CardEventArgs args)
			{
				if (!((Card)this).Battle.BattleShouldEnd && (int)((Card)this).Zone == 2 && args.Card is Knife)
				{
					<>n__0();
					List<Card> card = ((Card)this).Battle.HandZone.Where((Card hand) => hand == args.Card).ToList();
					if (((Card)this).IsUpgraded)
					{
						card[0].IsUpgraded = true;
					}
					yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)card);
				}
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((Card)this).NotifyActivating();
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Expected O, but got Unknown
			return new CardConfig(6005, "", 10, true, new string[0][], "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, (TargetType?)(TargetType)4, (IReadOnlyList<ManaColor>)new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			}, false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2228224, (Keyword)2228224, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "Knife" }, (IReadOnlyList<string>)new List<string> { "Knife" }, "Sakuya", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SakuyaKasumiDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaKasumiDef))]
		public sealed class SakuyaKasumi : Card
		{
			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)
				List<Card> card = new List<Card> { Library.CreateCard(typeof(MaidFriend)) };
				card[0].Summon();
				card[0].IsUpgraded = true;
				yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)card, (AddCardsType)0);
				if (((Card)this).IsUpgraded)
				{
					yield return ((Card)this).BuffAction<MaidFriendSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Blue = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6006, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)6, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)281474976710656L, (Keyword)281474976710656L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "MaidFriend" }, (IReadOnlyList<string>)new List<string> { "MaidFriend" }, "Sakuya", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SakuyaPulseDiscardDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaPulseDiscardDef))]
		public sealed class SakuyaPulseDiscard : Card
		{
			public override bool DiscardCard => true;

			public override Interaction Precondition()
			{
				//IL_005d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0063: Expected O, but got Unknown
				List<Card> list = (from hand in ((Card)this).Battle.HandZone
					where hand != this
					select hand into c
					where (int)c.Config.Type == 1
					select c).ToList();
				if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list))
				{
					return (Interaction)new SelectHandInteraction(0, list.Count, (IEnumerable<Card>)list);
				}
				return null;
			}

			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)
				SelectHandInteraction selectHandInteraction = (SelectHandInteraction)precondition;
				int Count = 0;
				if (selectHandInteraction != null)
				{
					Count = selectHandInteraction.SelectedCards.Count;
					yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)selectHandInteraction.SelectedCards);
				}
				yield return ((Card)this).AttackAction(selector, ((Card)this).GunName);
				if (!((Card)this).Battle.BattleShouldEnd)
				{
					yield return ((Card)this).BuffAction<TimeAuraSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
					for (int i = 0; i < Count; i++)
					{
						yield return ((Card)this).BuffAction<TimeAuraSe>(((Card)this).Value2, 0, 0, 0, 0.2f);
					}
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Expected O, but got Unknown
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(4032);
			string gunFromId2 = GunNameID.GetGunFromId(4032);
			TargetType? val = (TargetType)2;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)2
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).White = 1;
			((ManaGroup)(ref val2)).Blue = 1;
			return new CardConfig(6004, "", 10, true, array, gunFromId, gunFromId2, 0, false, true, true, false, true, (Rarity)2, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)12, (int?)15, (int?)null, (int?)null, (int?)null, (int?)null, (int?)6, (int?)null, (int?)3, (int?)4, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)256, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "TimeAuraSe" }, (IReadOnlyList<string>)new List<string> { "TimeAuraSe" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Sakuya", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SakuyaSharpenUpDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaSharpenUpDef))]
		public sealed class SakuyaSharpenUp : Card
		{
			public override ManaGroup AdditionalCost
			{
				get
				{
					//IL_0025: Unknown result type (might be due to invalid IL or missing references)
					//IL_002b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0030: Unknown result type (might be due to invalid IL or missing references)
					//IL_0010: Unknown result type (might be due to invalid IL or missing references)
					//IL_001c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0021: Unknown result type (might be due to invalid IL or missing references)
					//IL_0033: Unknown result type (might be due to invalid IL or missing references)
					if (((Card)this).Battle != null)
					{
						return ((Card)this).Mana * -KnifeHandCount;
					}
					return ((Card)this).Mana * 0;
				}
			}

			private int KnifeHandCount
			{
				get
				{
					if (((Card)this).Battle != null)
					{
						return ((Card)this).Battle.HandZone.Count((Card card) => card is Knife);
					}
					return 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 ((Card)this).BuffAction<Firepower>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: 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_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor> { (ManaColor)1 };
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 5;
			((ManaGroup)(ref val2)).White = 2;
			ManaGroup val3 = val2;
			int? num = 5;
			int? num2 = 8;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			return new CardConfig(6002, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)4, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, num, num2, (int?)null, (int?)null, (ManaGroup?)val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "Firepower" }, (IReadOnlyList<string>)new List<string> { "Firepower" }, (IReadOnlyList<string>)new List<string> { "Knife" }, (IReadOnlyList<string>)new List<string> { "Knife" }, "Sakuya", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SukunaExileDef : CardTemplate
	{
		[EntityLogic(typeof(SukunaExileDef))]
		public sealed class SukunaExile : Card
		{
			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)
				List<Card> list = (from card in ((Card)this).Battle.HandZone.Concat(((Card)this).Battle.DrawZoneToShow).Concat(((Card)this).Battle.DiscardZone)
					where card != this && ((Enum)card.Keywords).HasFlag((Enum)(object)(Keyword)2)
					select card).ToList();
				if (CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list))
				{
					yield break;
				}
				int count = list.Count;
				int total = list.Count;
				while (total > 0)
				{
					int num = Math.Min(5, total);
					total -= num;
					List<Card> exile = new List<Card>();
					for (int i = 0; i < num; i++)
					{
						exile.Add(list[0]);
						list.RemoveAt(0);
					}
					yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)exile);
				}
				for (int j = 0; j < count; j++)
				{
					yield return ((Card)this).DefenseAction(true);
					yield return ((Card)this).AttackAction(selector, ((Card)this).GunName);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)2;
			List<ManaColor> obj = new List<ManaColor> { (ManaColor)6 };
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 3;
			((ManaGroup)(ref val2)).Colorless = 1;
			return new CardConfig(6018, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)2, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val2, (ManaGroup?)null, (int?)null, (int?)5, (int?)8, (int?)5, (int?)7, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)131072, (Keyword)1179648, false, (Keyword)2, (Keyword)2, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class SukunaMalletDef : CardTemplate
	{
		[EntityLogic(typeof(SukunaMalletDef))]
		public sealed class SukunaMallet : Card
		{
			public override DamageInfo Damage => CalculateDamage(((Card)this).PendingManaUsage);

			private DamageInfo CalculateDamage(ManaGroup? manaGroup)
			{
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_004d: Unknown result type (might be due to invalid IL or missing references)
				//IL_000f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0014: Unknown result type (might be due to invalid IL or missing references)
				//IL_001c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0033: Unknown result type (might be due to invalid IL or missing references)
				//IL_0038: Unknown result type (might be due to invalid IL or missing references)
				//IL_0050: Unknown result type (might be due to invalid IL or missing references)
				if (manaGroup.HasValue)
				{
					ManaGroup valueOrDefault = manaGroup.GetValueOrDefault();
					return DamageInfo.Attack((float)(((Card)this).RawDamage + ((Card)this).SynergyAmount(valueOrDefault, (ManaColor)0, 1) * ((Card)this).Value1), ((Card)this).IsAccuracy);
				}
				return DamageInfo.Attack((float)((Card)this).RawDamage, ((Card)this).IsAccuracy);
			}

			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)
				DamageInfo val = CalculateDamage(consumingMana);
				if (((DamageInfo)(ref val)).Amount >= 30f)
				{
					yield return ((Card)this).AttackAction((Unit)(object)selector.SelectedEnemy, CalculateDamage(consumingMana), GunNameID.GetGunFromId(903));
				}
				else
				{
					yield return ((Card)this).AttackAction((Unit)(object)selector.SelectedEnemy, CalculateDamage(consumingMana), GunNameID.GetGunFromId(902));
				}
				if (!((Card)this).Battle.BattleShouldEnd)
				{
					yield return (BattleAction)new GainManaAction(((Card)this).Mana);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Expected O, but got Unknown
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(902);
			string gunFromId2 = GunNameID.GetGunFromId(903);
			TargetType? val = (TargetType)1;
			List<ManaColor> obj = new List<ManaColor> { (ManaColor)6 };
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 2;
			ManaGroup val3 = val2;
			int? num = 1;
			int? num2 = 3;
			int? num3 = 1;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 2;
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 3;
			return new CardConfig(6017, "", 10, true, array, gunFromId, gunFromId2, 0, false, true, true, false, true, (Rarity)1, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, true, val3, (ManaGroup?)null, (int?)null, num, num2, (int?)null, (int?)null, (int?)null, (int?)null, num3, (int?)null, (int?)null, (int?)null, val4, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)258, (Keyword)258, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class TojikoStaticDef : CardTemplate
	{
		[EntityLogic(typeof(TojikoStaticDef))]
		public sealed class TojikoStatic : Card
		{
			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 ((Card)this).BuffAction<LifeElectricDef.LifeElectric>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).White = 1;
			((ManaGroup)(ref val2)).Green = 1;
			ManaGroup val3 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).White = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(6014, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)1, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)3, (int?)4, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "LifeElectric" }, (IReadOnlyList<string>)new List<string> { "LifeElectric" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class LifeElectricDef : StatusEffectTemplate
	{
		[EntityLogic(typeof(LifeElectricDef))]
		public sealed class LifeElectric : StatusEffect
		{
			public override string UnitEffectName => "ElectricLoop";

			protected override void OnAdded(Unit unit)
			{
				((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
				((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnPlayerDamageReceived);
			}

			private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
			{
				if (args.Source != ((StatusEffect)this).Owner && args.Source.IsAlive)
				{
					DamageInfo damageInfo = args.DamageInfo;
					if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2 && ((DamageInfo)(ref damageInfo)).Amount > 0f)
					{
						<>n__0();
						yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, args.Source, DamageInfo.Reaction((float)((StatusEffect)this).Level, false), "电击", (GunType)0);
					}
					damageInfo = default(DamageInfo);
				}
			}

			private IEnumerable<BattleAction> OnPlayerDamageReceived(DamageEventArgs args)
			{
				DamageInfo damageInfo = args.DamageInfo;
				if (((DamageInfo)(ref damageInfo)).Damage > 0f)
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
				}
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((StatusEffect)this).NotifyActivating();
			}
		}

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

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override Sprite LoadSprite()
		{
			return ResourceLoader.LoadSprite("LifeElectric.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
		}

		public override StatusEffectConfig MakeConfig()
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			return new StatusEffectConfig(BepinexPlugin.sequenceTable.Next(typeof(StatusEffectConfig)), "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	public sealed class YamamePlagueDef : CardTemplate
	{
		[EntityLogic(typeof(YamamePlagueDef))]
		public sealed class YamamePlague : Card
		{
			[UsedImplicitly]
			public int Special
			{
				get
				{
					if (((Card)this).Battle != null)
					{
						int num = 0;
						foreach (EnemyUnit allAliveEnemy in ((Card)this).Battle.AllAliveEnemies)
						{
							if (((Unit)allAliveEnemy).HasStatusEffect<Poison>())
							{
								num += ((StatusEffect)((Unit)allAliveEnemy).GetStatusEffect<Poison>()).Level;
							}
						}
						return num;
					}
					return 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)
				if (Special != 0)
				{
					List<EnemyUnit> units = ((Card)this).Battle.AllAliveEnemies.ToList();
					if (((Card)this).IsUpgraded && units.Count == 1)
					{
						yield return ((Card)this).BuffAction<NextTurnAreaPoisonDef.NextTurnAreaPoison>(Special * 2, 0, 0, 0, 0.2f);
					}
					else
					{
						yield return ((Card)this).BuffAction<NextTurnAreaPoisonDef.NextTurnAreaPoison>(Special, 0, 0, 0, 0.2f);
					}
				}
				foreach (EnemyUnit enemy in ((Card)this).Battle.AllAliveEnemies)
				{
					if (((Unit)enemy).HasStatusEffect<Poison>())
					{
						Poison removal = ((Unit)enemy).GetStatusEffect<Poison>();
						yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)removal, true, 0.1f);
					}
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0044: 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_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Expected O, but got Unknown
			string[][] array = new string[0][];
			TargetType? val = (TargetType)2;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Black = 1;
			((ManaGroup)(ref val2)).Green = 1;
			ManaGroup val3 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 8;
			return new CardConfig(6011, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)2, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "Poison" }, (IReadOnlyList<string>)new List<string> { "Poison" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class NextTurnAreaPoisonDef : StatusEffectTemplate
	{
		[EntityLogic(typeof(NextTurnAreaPoisonDef))]
		public sealed class NextTurnAreaPoison : StatusEffect
		{
			protected override void OnAdded(Unit unit)
			{
				((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			}

			private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
			{
				if (((StatusEffect)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				<>n__0();
				foreach (BattleAction item in ((StatusEffect)this).DebuffAction<Poison>((IEnumerable<Unit>)((StatusEffect)this).Battle.AllAliveEnemies, ((StatusEffect)this).Level, 0, 0, 0, true, 0.1f))
				{
					yield return item;
				}
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((StatusEffect)this).NotifyActivating();
			}
		}

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

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override Sprite LoadSprite()
		{
			return ResourceLoader.LoadSprite("NextTurnAreaPoison.png", BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
		}

		public override StatusEffectConfig MakeConfig()
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			return new StatusEffectConfig(BepinexPlugin.sequenceTable.Next(typeof(StatusEffectConfig)), "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
}
namespace BoosterPacket.Cards.Curses
{
	public sealed class CurseCopyDef : CardTemplate
	{
		[EntityLogic(typeof(CurseCopyDef))]
		public sealed class CurseCopy : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				return EnterHandReactor();
			}

			public override IEnumerable<BattleAction> OnMove(CardZone srcZone, CardZone dstZone)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0003: Invalid comparison between Unknown and I4
				if ((int)dstZone != 2)
				{
					return null;
				}
				return EnterHandReactor();
			}

			protected override void OnEnterBattle(BattleController battle)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				if ((int)((Card)this).Zone == 2 && !((Card)this).IsCopy)
				{
					((GameEntity)this).React(EnterHandReactor());
				}
			}

			private IEnumerable<BattleAction> EnterHandReactor()
			{
				if (!((Card)this).Battle.BattleShouldEnd)
				{
					if ((int)((Card)this).Zone != 2)
					{
						Debug.LogWarning((object)(((GameEntity)this).Name + " is not in hand."));
						yield break;
					}
					Card card = ((Card)this).CloneBattleCard();
					yield return (BattleAction)new AddCardsToDiscardAction((Card[])(object)new Card[1] { card });
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Expected O, but got Unknown
			return new CardConfig(6027, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)2, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)1114112, (Keyword)1114112, false, (Keyword)35184372088840L, (Keyword)35184372088840L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseDiscardDef : CardTemplate
	{
		[EntityLogic(typeof(CurseDiscardDef))]
		public sealed class CurseDiscard : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				List<Card> list = ((Card)this).Battle.HandZone.ToList();
				if (list.Count > 1)
				{
					List<Card> discard = new List<Card> { CollectionsExtensions.Sample<Card>((IEnumerable<Card>)list, ((GameEntity)this).GameRun.BattleCardRng) };
					yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)discard);
				}
				else
				{
					yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)list);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Expected O, but got Unknown
			return new CardConfig(6021, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)0, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)65536, (Keyword)65536, false, (Keyword)8, (Keyword)8, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseFirelightDef : CardTemplate
	{
		[EntityLogic(typeof(CurseFirelightDef))]
		public sealed class CurseFirelight : Card
		{
			protected override void OnEnterBattle(BattleController battle)
			{
				((Card)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Card)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
			}

			private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
			{
				if (!((Card)this).Battle.BattleShouldEnd && (int)((Card)this).Zone == 2)
				{
					<>n__0();
					yield return ((Card)this).DamageSelfAction(((Card)this).Value1 + Math.Max(0, ((Unit)((Card)this).Battle.Player).TotalFirepower), "ESunnyCard");
				}
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((Card)this).NotifyActivating();
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Expected O, but got Unknown
			return new CardConfig(6023, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)1, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)5, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)65536, (Keyword)65536, false, (Keyword)8, (Keyword)8, (IReadOnlyList<string>)new List<string> { "Firepower" }, (IReadOnlyList<string>)new List<string> { "Firepower" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseFullDef : CardTemplate
	{
		[EntityLogic(typeof(CurseFullDef))]
		public sealed class CurseFull : Card
		{
			protected override void OnEnterBattle(BattleController battle)
			{
				((Card)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Card)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			}

			private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
			{
				if (((Card)this).Battle.MaxHand - ((Card)this).Battle.HandZone.Count == 0)
				{
					<>n__0();
					List<Card> card = ((Card)this).Battle.HandZone.Where((Card hand) => hand == this).ToList();
					yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)card);
					yield return ((Card)this).SacrificeAction(((Card)this).Value1);
				}
			}

			[CompilerGenerated]
			[DebuggerHidden]
			private void <>n__0()
			{
				((Card)this).NotifyActivating();
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Expected O, but got Unknown
			return new CardConfig(6028, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)2, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)7, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)2162688, (Keyword)2162688, false, (Keyword)8, (Keyword)8, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseMoonlightDef : CardTemplate
	{
		[EntityLogic(typeof(CurseMoonlightDef))]
		public sealed class CurseMoonlight : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				yield return (BattleAction)new LockRandomTurnManaAction(((Card)this).Value1);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Expected O, but got Unknown
			return new CardConfig(6024, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)1, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)3, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)65536, (Keyword)65536, false, (Keyword)17592186044424L, (Keyword)17592186044424L, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseNecromancyDef : CardTemplate
	{
		[EntityLogic(typeof(CurseNecromancyDef))]
		public sealed class CurseNecromancy : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				yield return ((Card)this).HealAction(((Card)this).Value1);
				yield return ((Card)this).DebuffAction<NextTurnLoseHp>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value2, 0, 0, 0, true, 0.2f);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Expected O, but got Unknown
			return new CardConfig(6022, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)0, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)null, (int?)8, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)589824, (Keyword)589824, false, (Keyword)8, (Keyword)8, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseStarlightDef : CardTemplate
	{
		[EntityLogic(typeof(CurseStarlightDef))]
		public sealed class CurseStarlight : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				List<Card> cards = new List<Card>
				{
					Library.CreateCard(typeof(Xingguang)),
					Library.CreateCard(typeof(Xingguang))
				};
				yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)cards, (DrawZoneTarget)2, (AddCardsType)0);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.CardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Expected O, but got Unknown
			return new CardConfig(6025, "", 10, true, new string[0][], "", "", 0, false, false, true, false, false, (Rarity)1, (CardType)8, (TargetType?)(TargetType)0, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)2, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)65536, (Keyword)65536, false, (Keyword)8, (Keyword)8, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string> { "Xingguang" }, (IReadOnlyList<string>)new List<string> { "Xingguang" }, (string)null, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class CurseVulnerableDef : CardTemplate
	{
		[EntityLogic(typeof(CurseVulnerableDef))]
		public sealed class CurseVulnerable : Card
		{
			public override IEnumerable<BattleAction> OnDraw()
			{
				return EnterHandReactor();
			}

			public override IEnumerable<BattleAction> OnMove(CardZone srcZone, CardZone dstZone)
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0003: Invalid comparison between Unknown and I4
				if ((int)dstZone != 2)
				{
					return null;
				}
				return EnterHandReactor();
			}

			protected override void OnEnterBattle(BattleController battle)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Invalid comparison between Unknown and I4
				if ((int)((Card)this).Zone == 2 && !((Card)this).IsCopy)
				{
					((GameEntity)this).React(EnterHandReactor());
				}
			}

			private IEnumerable<BattleAction> EnterHandReactor()
			{
				if (((Card)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				if ((int)((Card)this).Zone != 2)
				{
					Debug.LogWarning((object)(((GameEntity)this).Name + " is not in hand."));
					yield break;
				}
				yield return ((Card)this).BuffAction<Graze>(((Card)this).Value1, 0, 0, 0, 0.2f);
				yield return ((Card)this).DebuffAction<Vulnerable>((Unit)(object)((Card)this).Battle.Player, 0, ((Card)this).Value2, 0, 0, true, 0.2f);
				List<Card> card