Decompiled source of Booster Packet v1.1.0

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.Cards.Curses.DeadlySins;
using BoosterPacket.GunName;
using BoosterPacket.Localization;
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.1.0")]
	[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", "");

		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.1.0";

		public static readonly Harmony harmony = new Harmony("xeno.lbol.boosterpack");
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace BoosterPacket.Localization
{
	public static class CardIndexGenerator
	{
		private static int? initial_offset = null;

		private static HashSet<int> uniqueIds = new HashSet<int>();

		public const int milx1 = 1000000;

		public static HashSet<int> UniqueIds
		{
			get
			{
				if (uniqueIds == null)
				{
					uniqueIds = new HashSet<int>();
				}
				return uniqueIds;
			}
		}

		public static int Initial_offset
		{
			get
			{
				if (!initial_offset.HasValue)
				{
					int num = 0;
					if (UniqueTracker.Instance.configIndexes.TryGetValue(typeof(CardConfig), out var value))
					{
						num = value.Where((int i) => i >= 1000000).DefaultIfEmpty().Max() / 1000000;
					}
					num++;
					initial_offset = num * 1000000;
				}
				return initial_offset.Value;
			}
		}

		internal static void PromiseClearIndexSet()
		{
			EntityManager.AddPostLoadAction((Action)delegate
			{
				uniqueIds = null;
			}, (Assembly)null);
		}

		public static int GetUniqueIndex(CardConfig config)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Expected I4, but got Unknown
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			int num = Initial_offset;
			num += ((!((Enum)config.Keywords).HasFlag((Enum)(object)(Keyword)2)) ? ((config.Rarity + 1) * 100000) : 0);
			int num2 = ((config.Colors.Count > 1) ? 9 : ((int)config.Colors[0]));
			num += num2 * 10000;
			int num3;
			if (!config.IsXCost && !((Enum)config.Keywords).HasFlag((Enum)(object)(Keyword)65536))
			{
				ManaGroup cost = config.Cost;
				if (((ManaGroup)(ref cost)).Total <= 9)
				{
					cost = config.Cost;
					num3 = ((ManaGroup)(ref cost)).Total;
					goto IL_00a8;
				}
			}
			num3 = 9;
			goto IL_00a8;
			IL_00a8:
			int num4 = num3;
			num += num4 * 1000;
			num += config.Type * 100;
			if (UniqueTracker.Instance.configIndexes.TryGetValue(typeof(CardConfig), out var value))
			{
				for (; value.Contains(num); num++)
				{
				}
			}
			return num;
		}
	}
	public sealed class PacketLocalization
	{
		public static string Cards = "Cards";

		public static string Exhibits = "Exhibits";

		public static string PlayerUnit = "PlayerUnit";

		public static string UnitModel = "UnitModel";

		public static string UltimateSkills = "UltimateSkills";

		public static string StatusEffects = "StatusEffects";

		public static BatchLocalization CardsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(CardTemplate), Cards, (Locale)0, false);

		public static BatchLocalization ExhibitsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(ExhibitTemplate), Exhibits, (Locale)0, false);

		public static BatchLocalization PlayerUnitBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(PlayerUnitTemplate), PlayerUnit, (Locale)0, false);

		public static BatchLocalization UnitModelBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UnitModelTemplate), UnitModel, (Locale)0, false);

		public static BatchLocalization UltimateSkillsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(UltimateSkillTemplate), UltimateSkills, (Locale)0, false);

		public static BatchLocalization StatusEffectsBatchLoc = new BatchLocalization((IResourceSource)(object)BepinexPlugin.directorySource, typeof(StatusEffectTemplate), StatusEffects, (Locale)0, false);

		public static void Init()
		{
			CardsBatchLoc.DiscoverAndLoadLocFiles(Cards);
			ExhibitsBatchLoc.DiscoverAndLoadLocFiles(Exhibits);
			PlayerUnitBatchLoc.DiscoverAndLoadLocFiles(PlayerUnit);
			UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel);
			UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills);
			StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects);
		}
	}
}
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.Sakuya
{
	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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: 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_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 222320;
			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? num2 = 20;
			int? num3 = 24;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Blue = 1;
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			return new CardConfig(num, "", 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, num2, num3, (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)
				{
					((Card)this).NotifyActivating();
					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);
				}
			}
		}

		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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_018b: Expected O, but got Unknown
			return new CardConfig(CardIndexGenerator.Initial_offset + 242030, "", 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();
				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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 249330;
			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(num, "", 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 239310;
			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(num, "", 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 221740;
			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? num2 = 5;
			int? num3 = 8;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			return new CardConfig(num, "", 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, num2, num3, (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>());
		}
	}
}
namespace BoosterPacket.Cards.Neutral
{
	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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 751220;
			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(num, "", 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 721130;
			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(num, "", 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 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;
				}
				((Card)this).NotifyActivating();
				((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;
			}
		}

		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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 742350;
			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(num, "", 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 742230;
			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(num, "", 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
			{
				get
				{
					//IL_000d: Unknown result type (might be due to invalid IL or missing references)
					if (((Card)this).IsUpgraded)
					{
						return ((Card)this).Mana;
					}
					return null;
				}
			}

			private string UpgradedExtraDescription1 => ((GameEntity)this).LocalizeProperty("UpgradedExtraDescription1", true, true);

			protected override string GetBaseDescription()
			{
				if (((Card)this).IsUpgraded && ((Card)this).PlentifulHappenThisTurn)
				{
					return UpgradedExtraDescription1;
				}
				return ((Card)this).GetBaseDescription();
			}

			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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 732330;
			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? num2 = 3;
			int? num3 = 5;
			val2 = default(ManaGroup);
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 1;
			return new CardConfig(num, "", 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, num2, num3, (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)8796093022208L, 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 KutakaInnateDef : CardTemplate
	{
		[EntityLogic(typeof(KutakaInnateDef))]
		public sealed class KutakaInnate : Card
		{
			public override bool Triggered => ((Card)this).Battle != null && ((Card)this).Battle.TurnCardUsageHistory.Count == 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 (((Card)this).PlayInTriggered)
				{
					yield return ((Card)this).AttackAction(selector, GunNameID.GetGunFromId(25182));
					yield return ((Card)this).BuffAction<TempSpirit>(((Card)this).Value1, 0, 0, 0, 0.2f);
				}
				else
				{
					yield return ((Card)this).AttackAction(selector, (GunPair)null);
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: 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
			int num = CardIndexGenerator.Initial_offset + 731210;
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(25180);
			TargetType? val = (TargetType)2;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 3;
			ManaGroup val3 = val2;
			int? num2 = 16;
			int? num3 = 18;
			int? num4 = 2;
			int? num5 = 6;
			val2 = default(ManaGroup);
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			return new CardConfig(num, "", 10, true, array, gunFromId, "", 0, false, true, true, false, true, (Rarity)0, (CardType)1, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, num2, num3, (int?)null, (int?)null, (int?)null, (int?)null, num4, num5, (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)1179648, (Keyword)1179648, false, (Keyword)0, (Keyword)0, (IReadOnlyList<string>)new List<string> { "TempSpirit" }, (IReadOnlyList<string>)new List<string> { "TempSpirit" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), (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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 713610;
			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(num, "", 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 MomijiReplenishDef : CardTemplate
	{
		[EntityLogic(typeof(MomijiReplenishDef))]
		public sealed class MomijiReplenish : Card
		{
			public override ManaGroup? PlentifulMana
			{
				get
				{
					//IL_000d: Unknown result type (might be due to invalid IL or missing references)
					if (((Card)this).IsUpgraded)
					{
						return ((Card)this).Mana;
					}
					return null;
				}
			}

			private string UpgradedExtraDescription1 => ((GameEntity)this).LocalizeProperty("UpgradedExtraDescription1", true, true);

			protected override string GetBaseDescription()
			{
				if (((Card)this).IsUpgraded && ((Card)this).PlentifulHappenThisTurn)
				{
					return UpgradedExtraDescription1;
				}
				return ((Card)this).GetBaseDescription();
			}

			protected override void OnEnterBattle(BattleController battle)
			{
				((Card)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Card)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnTurnEnding);
			}

			private IEnumerable<BattleAction> OnTurnEnding(UnitEventArgs args)
			{
				if (((Card)this).Battle.BattleShouldEnd || (int)((Card)this).Zone != 2)
				{
					yield break;
				}
				((Card)this).NotifyActivating();
				foreach (Card card2 in ((Card)this).Battle.HandZone.Where((Card card) => card != this))
				{
					card2.IsReplenish = true;
				}
			}
		}

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

		public override CardImages LoadCardImages()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: 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_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_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 643030;
			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 val3 = val2;
			val2 = default(ManaGroup);
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(num, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)2, (CardType)3, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (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)589824, (Keyword)8796093612032L, false, (Keyword)8388608, (Keyword)8388608, (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 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(CurseLustDef.CurseLust),
				typeof(FanzhuanChongdong),
				typeof(CurseGreedDef.CurseGreed),
				typeof(CurseSlothDef.CurseSloth),
				typeof(CurseWrathDef.CurseWrath),
				typeof(CurseEnvyDef.CurseEnvy),
				typeof(CursePrideDef.CursePride)
			};

			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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 651130;
			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? num2 = 3;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Black = 1;
			((ManaGroup)(ref val2)).Green = 1;
			return new CardConfig(num, "", 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, num2, (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 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 563410;
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(826);
			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(num, "", 10, true, array, gunFromId, "", 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 562910;
			string[][] array = new string[0][];
			string gunFromId = GunNameID.GetGunFromId(23071);
			string gunFromId2 = GunNameID.GetGunFromId(23072);
			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? num2 = 1;
			int? num3 = 3;
			int? num4 = 1;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 2;
			ManaGroup? val4 = val2;
			val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Colorless = 3;
			return new CardConfig(num, "", 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, num2, num3, (int?)null, (int?)null, (int?)null, (int?)null, num4, (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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ab: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 732330;
			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(num, "", 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)
					{
						((StatusEffect)this).NotifyActivating();
						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);
				}
			}
		}

		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)PacketLocalization.StatusEffectsBatchLoc.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", "Electric");
		}
	}
	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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 653330;
			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(num, "", 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;
				}
				((StatusEffect)this).NotifyActivating();
				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);
			}
		}

		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)PacketLocalization.StatusEffectsBatchLoc.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.Marisa
{
	public sealed class MarisaScryFireDef : CardTemplate
	{
		[EntityLogic(typeof(MarisaScryFireDef))]
		public sealed class MarisaScryFire : 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<MarisaScryFireSeDef.MarisaScryFireSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
				yield return (BattleAction)new ScryAction(((Card)this).Scry);
			}
		}

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

		public override CardImages LoadCardImages()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 139140;
			string[][] array = new string[0][];
			TargetType? val = (TargetType)4;
			List<ManaColor> obj = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)4
			};
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Hybrid = 1;
			((ManaGroup)(ref val2)).HybridColor = 7;
			ManaGroup val3 = val2;
			val2 = default(ManaGroup);
			return new CardConfig(num, "", 10, true, array, "", "", 0, false, true, true, false, true, (Rarity)2, (CardType)4, val, (IReadOnlyList<ManaColor>)obj, false, val3, (ManaGroup?)val2, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)1, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)3, (int?)7, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, false, (Keyword)68719476736L, (Keyword)68719476736L, (IReadOnlyList<string>)new List<string> { "TempFirepower" }, (IReadOnlyList<string>)new List<string> { "TempFirepower" }, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>(), "Marisa", "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}
	}
	public sealed class MarisaScryFireSeDef : StatusEffectTemplate
	{
		[EntityLogic(typeof(MarisaScryFireSeDef))]
		public sealed class MarisaScryFireSe : StatusEffect
		{
			protected override void OnAdded(Unit unit)
			{
				((StatusEffect)this).ReactOwnerEvent<CardMovingEventArgs>(((StatusEffect)this).Battle.CardMoved, (EventSequencedReactor<CardMovingEventArgs>)OnCardMoved);
				((StatusEffect)this).ReactOwnerEvent<CardEventArgs>(((StatusEffect)this).Battle.CardDiscarded, (EventSequencedReactor<CardEventArgs>)OnCardDiscarded);
			}

			private IEnumerable<BattleAction> OnCardMoved(CardMovingEventArgs args)
			{
				if ((int)args.DestinationZone == 4 && (int)((GameEventArgs)args).Cause != 13 && (int)((GameEventArgs)args).Cause != 2)
				{
					yield return ((StatusEffect)this).BuffAction<TempFirepower>(((StatusEffect)this).Level, 0, 0, 0, 0.1f);
				}
			}

			private IEnumerable<BattleAction> OnCardDiscarded(CardEventArgs args)
			{
				yield return ((StatusEffect)this).BuffAction<TempFirepower>(((StatusEffect)this).Level, 0, 0, 0, 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("MarisaScryFireSe");
		}

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

		public override Sprite LoadSprite()
		{
			return ResourceLoader.LoadSprite("MarisaScryFireSe.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 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0168: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 910101;
			string[][] array = new string[0][];
			TargetType? val = (TargetType)0;
			List<ManaColor> list = new List<ManaColor>();
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 1;
			return new CardConfig(num, "", 10, true, array, "", "", 0, false, false, true, false, false, (Rarity)0, (CardType)8, val, (IReadOnlyList<ManaColor>)list, false, 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, (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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 920101;
			string[][] array = new string[0][];
			TargetType? val = (TargetType)0;
			List<ManaColor> list = new List<ManaColor>();
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 2;
			return new CardConfig(num, "", 10, true, array, "", "", 0, false, false, true, false, false, (Rarity)1, (CardType)8, val, (IReadOnlyList<ManaColor>)list, false, val2, (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 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()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			CardImages val = new CardImages(BepinexPlugin.embeddedSource);
			val.AutoLoad((CardTemplate)(object)this, ".png", "", false);
			return val;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)PacketLocalization.CardsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Expected O, but got Unknown
			int num = CardIndexGenerator.Initial_offset + 920102;
			string[][] array = new string[0][];
			TargetType? val = (TargetType)0;
			List<ManaColor> list = new List<ManaColor>();
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Any = 2;
			return new CardConfig(num, "", 10, true, array, "", "", 0, false, false, true, false, false, (Rarity)1, (CardType)8, val, (IReadOnlyList<ManaColor>)list, false, val2, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?