Decompiled source of Booster Packet v1.2.0

BoosterPacket.dll

Decompiled 3 weeks 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.Other;
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.Cards.Neutral.NoColor;
using LBoL.EntityLib.Exhibits.Shining;
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.2.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.2.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.Other
{
	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)32768))
			{
				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);
		}
	}
	public sealed class ModNormalConfig
	{
		public static string GetDefaultID(EntityDefinition entity)
		{
			string name = ((object)entity).GetType().Name;
			return name.Remove(name.Length - 3);
		}

		public static CardConfig GetCardDefaultConfig()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_015c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Expected O, but got Unknown
			return new CardConfig(0, "", 10, true, new string[0][], "", "", 0, false, true, true, false, true, (Rarity)0, (CardType)0, (TargetType?)null, (IReadOnlyList<ManaColor>)new List<ManaColor>(), false, default(ManaGroup), (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (ManaGroup?)null, (ManaGroup?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (int?)null, (Keyword)0, (Keyword)0, 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 static ExhibitConfig GetDefaultExhibitConfig()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Expected O, but got Unknown
			return new ExhibitConfig(0, "", 10, false, false, false, false, (AppearanceType)3, (string)null, (ExhibitLosableType)1, (Rarity)3, (int?)null, (int?)null, (int?)null, (ManaGroup?)default(ManaGroup), (ManaColor?)null, (ManaColor?)(ManaColor)1, 1, false, (int?)null, (Keyword)0, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
		}

		public static StatusEffectConfig GetDefaultStatusEffectConfig()
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}

		public static UltimateSkillConfig GetDefaultUltConfig()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 1, 0, 0, (Keyword)256, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
		}
	}
}
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_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)2 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 2;
			((ManaGroup)(ref val)).Blue = 1;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 20;
			cardDefaultConfig.UpgradedBlock = 24;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Blue = 1;
			cardDefaultConfig.Mana = val;
			val = default(ManaGroup);
			cardDefaultConfig.UpgradedMana = val;
			cardDefaultConfig.RelativeKeyword = (Keyword)512;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)512;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 222320;
			return cardDefaultConfig;
		}
	}
	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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			};
			cardDefaultConfig.Cost = default(ManaGroup);
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Keywords = (Keyword)2162688;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2162688;
			cardDefaultConfig.RelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 242030;
			return cardDefaultConfig;
		}
	}
	public sealed class SakuyaFusionCardDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaFusionCardDef))]
		public sealed class SakuyaFusionCard : Card
		{
			public override Interaction Precondition()
			{
				//IL_0049: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Expected O, but got Unknown
				List<Card> list = ((Card)this).Battle.HandZone.Where((Card hand) => hand != this).ToList();
				if (list.Count <= 0 || !((Card)this).IsUpgraded)
				{
					return null;
				}
				return (Interaction)new SelectHandInteraction(0, list.Count, (IEnumerable<Card>)list);
			}

			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<KnifeManaCDef.KnifeManaC>(1, 0, 0, 0, 0.2f);
				yield return ((Card)this).BuffAction<KnifeDamageUpSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
				if (precondition != null)
				{
					SelectHandInteraction selectHandInteraction = (SelectHandInteraction)precondition;
					IReadOnlyList<Card> cards = ((selectHandInteraction != null) ? selectHandInteraction.SelectedCards : null);
					if (cards != null)
					{
						yield return (BattleAction)new DiscardManyAction((IEnumerable<Card>)cards);
						yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<Knife>(cards.Count, false), (AddCardsType)0);
					}
				}
			}
		}

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

		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_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: 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)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)2,
				(ManaColor)4
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 2;
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Blue = 1;
			((ManaGroup)(ref val)).Red = 1;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 6;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.RelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 250540;
			return cardDefaultConfig;
		}
	}
	public sealed class KnifeManaCDef : StatusEffectTemplate
	{
		[EntityLogic(typeof(KnifeManaCDef))]
		public sealed class KnifeManaC : StatusEffect
		{
			public ManaGroup Mana
			{
				get
				{
					//IL_0003: Unknown result type (might be due to invalid IL or missing references)
					//IL_0012: Unknown result type (might be due to invalid IL or missing references)
					//IL_0013: Unknown result type (might be due to invalid IL or missing references)
					//IL_0016: Unknown result type (might be due to invalid IL or missing references)
					ManaGroup result = default(ManaGroup);
					((ManaGroup)(ref result)).Colorless = 1;
					return result;
				}
			}

			protected override void OnAdded(Unit unit)
			{
				((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToHand, (EventSequencedReactor<CardsEventArgs>)OnAddCard);
				((StatusEffect)this).ReactOwnerEvent<CardMovingEventArgs>(((StatusEffect)this).Battle.CardMoved, (EventSequencedReactor<CardMovingEventArgs>)OnMoveCard);
				((StatusEffect)this).ReactOwnerEvent<CardEventArgs>(((StatusEffect)this).Battle.CardDrawn, (EventSequencedReactor<CardEventArgs>)OnDrawCard);
			}

			private IEnumerable<BattleAction> OnAddCard(CardsEventArgs args)
			{
				int count = 0;
				Card[] cards = args.Cards;
				foreach (Card card in cards)
				{
					if (card is Knife)
					{
						count++;
					}
				}
				if (count != 0)
				{
					yield return (BattleAction)new GainManaAction(ManaGroup.Colorlesses(count * ((StatusEffect)this).Level));
				}
			}

			private IEnumerable<BattleAction> OnMoveCard(CardMovingEventArgs args)
			{
				if (args.Card is Knife && (int)args.DestinationZone == 2)
				{
					yield return (BattleAction)new GainManaAction(ManaGroup.Colorlesses(((StatusEffect)this).Level));
				}
			}

			private IEnumerable<BattleAction> OnDrawCard(CardEventArgs args)
			{
				if (args.Card is Knife)
				{
					yield return (BattleAction)new GainManaAction(ManaGroup.Colorlesses(((StatusEffect)this).Level));
				}
			}
		}

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

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

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			return new StatusEffectConfig(BepinexPlugin.sequenceTable.Next(typeof(StatusEffectConfig)), "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	public sealed class 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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Blue = 1;
			((ManaGroup)(ref cost)).Green = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 6;
			cardDefaultConfig.RelativeKeyword = (Keyword)281474976710656L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)281474976710656L;
			cardDefaultConfig.RelativeCards = new List<string> { "MaidFriend" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "MaidFriend" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 249330;
			return cardDefaultConfig;
		}
	}
	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 + ((Card)this).Value2 * Count, 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_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(4032);
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)2
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).White = 1;
			((ManaGroup)(ref cost)).Blue = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Damage = 12;
			cardDefaultConfig.UpgradedDamage = 15;
			cardDefaultConfig.Value1 = 6;
			cardDefaultConfig.Value2 = 3;
			cardDefaultConfig.UpgradedValue2 = 4;
			cardDefaultConfig.UpgradedKeywords = (Keyword)256;
			cardDefaultConfig.RelativeEffects = new List<string> { "TimeAuraSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TimeAuraSe" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 239310;
			return cardDefaultConfig;
		}
	}
	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_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)1 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 5;
			((ManaGroup)(ref val)).White = 2;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 5;
			cardDefaultConfig.Scry = 8;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.RelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.RelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "Knife" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 221740;
			return cardDefaultConfig;
		}
	}
	public sealed class SakuyaTarotMoonDef : CardTemplate
	{
		[EntityLogic(typeof(SakuyaTarotMoonDef))]
		public sealed class SakuyaTarotMoon : Card
		{
			protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
			{
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				int scry2 = ((Card)this).Battle.DiscardZone.Count;
				yield return (BattleAction)new ScryAction(((Card)this).Scry);
				if (!((Card)this).Battle.BattleShouldEnd)
				{
					scry2 = ((Card)this).Battle.DiscardZone.Count - scry2;
					yield return ((Card)this).BuffAction<TimeAuraSe>(((Card)this).Value1 * scry2, 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("SakuyaTarotMoon");
		}

		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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Blue = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.Scry = 5;
			cardDefaultConfig.UpgradedScry = 8;
			cardDefaultConfig.RelativeKeyword = (Keyword)68719476736L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)68719476736L;
			cardDefaultConfig.RelativeEffects = new List<string> { "TimeAuraSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TimeAuraSe" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Sakuya";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 243130;
			return cardDefaultConfig;
		}
	}
}
namespace BoosterPacket.Cards.Reimu
{
	public sealed class ReimuFusionCardDef : CardTemplate
	{
		[EntityLogic(typeof(ReimuFusionCardDef))]
		public sealed class ReimuFusionCard : Card
		{
			private readonly int _value3 = 30;

			private readonly int _upgradedValue3 = 40;

			public int Value3
			{
				get
				{
					if (((Card)this).IsUpgraded)
					{
						return _upgradedValue3;
					}
					return _value3;
				}
			}

			public override Interaction Precondition()
			{
				//IL_0049: Unknown result type (might be due to invalid IL or missing references)
				//IL_004f: Expected O, but got Unknown
				List<Card> list = ((Card)this).Battle.HandZone.Where((Card card) => card != this).ToList();
				if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list) && list.Count > 2)
				{
					return (Interaction)new SelectHandInteraction(((Card)this).Value1, ((Card)this).Value1, (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)
				yield return ((Card)this).DefenseAction(true);
				if (precondition != null)
				{
					IReadOnlyList<Card> readOnlyList = ((SelectHandInteraction)precondition).SelectedCards;
					if (readOnlyList.Count > 0)
					{
						yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)readOnlyList);
					}
				}
				else if (((Card)this).Battle.HandZone.Where((Card card) => card != this).ToList().Count > 0)
				{
					foreach (Card card2 in ((Card)this).Battle.HandZone.Where((Card card) => card != this).ToList())
					{
						yield return (BattleAction)new ExileCardAction(card2);
					}
				}
				yield return ((Card)this).BuffAction<AmuletForCard>(((Card)this).Value2, 0, 0, 0, 0.2f);
				foreach (EnemyUnit unit in ((Card)this).Battle.AllAliveEnemies)
				{
					if (((Unit)unit).Hp <= Value3)
					{
						yield return (BattleAction)new ForceKillAction((Unit)(object)((Card)this).Battle.Player, (Unit)(object)unit);
					}
				}
			}
		}

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

		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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 2;
			((ManaGroup)(ref cost)).White = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 15;
			cardDefaultConfig.UpgradedBlock = 20;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.UpgradedValue2 = 3;
			cardDefaultConfig.RelativeKeyword = (Keyword)66048;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)66048;
			cardDefaultConfig.RelativeEffects = new List<string> { "AmuletForCard" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "AmuletForCard" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Reimu";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 45420;
			return cardDefaultConfig;
		}
	}
	public sealed class ReimuTarotPriestDef : CardTemplate
	{
		[EntityLogic(typeof(ReimuTarotPriestDef))]
		public sealed class ReimuTarotPriest : 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 (BattleAction)new ScryAction(((Card)this).Scry);
				if (!((Card)this).Battle.BattleShouldEnd)
				{
					Card card = ((Card)this).Battle.DrawZone.FirstOrDefault();
					if (card != null)
					{
						yield return (BattleAction)new ExileCardAction(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("ReimuTarotPriest");
		}

		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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Scry = 2;
			cardDefaultConfig.UpgradedScry = 5;
			cardDefaultConfig.RelativeKeyword = (Keyword)68719542272L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)68719542272L;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Owner = "Reimu";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 45130;
			return cardDefaultConfig;
		}
	}
}
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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)4,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Red = 1;
			((ManaGroup)(ref cost)).Green = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 1;
			cardDefaultConfig.UpgradedBlock = 3;
			cardDefaultConfig.Value1 = 25;
			cardDefaultConfig.UpgradedValue1 = 32;
			cardDefaultConfig.RelativeKeyword = (Keyword)512;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)512;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 751220;
			return cardDefaultConfig;
		}
	}
	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).ChoiceCardIndicator = 1;
				((Card)chenRedBlue).ChoiceCardIndicator = 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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)4
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 5;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.Value2 = 4;
			cardDefaultConfig.UpgradedValue2 = 5;
			cardDefaultConfig.UpgradedKeywords = (Keyword)8388608;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower", "TempSpirit" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower", "TempSpirit" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 721130;
			return cardDefaultConfig;
		}
	}
	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_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(7030);
			cardDefaultConfig.GunNameBurst = GunNameID.GetGunFromId(7031);
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Blue = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)5;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Damage = 15;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 3;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.Loyalty = 3;
			cardDefaultConfig.UpgradedLoyalty = 5;
			cardDefaultConfig.PassiveCost = -1;
			cardDefaultConfig.ActiveCost = 2;
			cardDefaultConfig.UpgradedActiveCost = 3;
			cardDefaultConfig.RelativeKeyword = (Keyword)562949953486856L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)562949953486856L;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower", "TempSpirit" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower", "TempSpirit" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 742350;
			return cardDefaultConfig;
		}
	}
	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 IEnumerable<BattleAction> AfterFollowPlayAction()
			{
				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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Blue = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 5;
			cardDefaultConfig.UpgradedValue1 = 7;
			cardDefaultConfig.UpgradedKeywords = (Keyword)8388608;
			cardDefaultConfig.RelativeKeyword = (Keyword)65536;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)65536;
			cardDefaultConfig.RelativeCards = new List<string> { "KeineHistoryMaker" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "KeineHistoryMaker" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 742230;
			return cardDefaultConfig;
		}
	}
	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 IEnumerable<BattleAction> AfterFollowPlayAction()
			{
				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_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: 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)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.IsPooled = false;
			cardDefaultConfig.HideMesuem = true;
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 5;
			val = default(ManaGroup);
			cardDefaultConfig.Mana = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 1;
			cardDefaultConfig.UpgradedMana = val;
			cardDefaultConfig.UpgradedKeywords = (Keyword)8796093022208L;
			cardDefaultConfig.RelativeKeyword = (Keyword)65536;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)65536;
			cardDefaultConfig.RelativeCards = new List<string> { "KeineHistoryEater" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "KeineHistoryEater" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 732330;
			return cardDefaultConfig;
		}
	}
	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_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(25180);
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 3;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Damage = 16;
			cardDefaultConfig.UpgradedDamage = 18;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 6;
			cardDefaultConfig.Keywords = (Keyword)1114112;
			cardDefaultConfig.UpgradedKeywords = (Keyword)1114112;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempSpirit" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempSpirit" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 731210;
			return cardDefaultConfig;
		}
	}
	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_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(7080);
			cardDefaultConfig.GunNameBurst = GunNameID.GetGunFromId(7081);
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)3
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 5;
			((ManaGroup)(ref cost)).White = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 38;
			cardDefaultConfig.UpgradedDamage = 52;
			cardDefaultConfig.Block = 38;
			cardDefaultConfig.UpgradedBlock = 52;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 3;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.Keywords = (Keyword)2097408;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2097408;
			cardDefaultConfig.RelativeKeyword = (Keyword)17592186044928L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)17592186044928L;
			cardDefaultConfig.RelativeEffects = new List<string> { "Weak" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Weak" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 713610;
			return cardDefaultConfig;
		}
	}
	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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)2,
				(ManaColor)5
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 3;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			val = default(ManaGroup);
			cardDefaultConfig.Mana = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.UpgradedMana = val;
			cardDefaultConfig.Keywords = (Keyword)557056;
			cardDefaultConfig.UpgradedKeywords = (Keyword)8796093579264L;
			cardDefaultConfig.RelativeKeyword = (Keyword)8388608;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)8388608;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 643030;
			return cardDefaultConfig;
		}
	}
	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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Hybrid = 1;
			((ManaGroup)(ref val)).HybridColor = 8;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Keywords = (Keyword)65536;
			cardDefaultConfig.UpgradedKeywords = (Keyword)65536;
			cardDefaultConfig.RelativeKeyword = (Keyword)2097160;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)2097160;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 651130;
			return cardDefaultConfig;
		}
	}
	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_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(826);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)6 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 3;
			((ManaGroup)(ref cost)).Colorless = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Damage = 5;
			cardDefaultConfig.UpgradedDamage = 8;
			cardDefaultConfig.Block = 5;
			cardDefaultConfig.UpgradedBlock = 7;
			cardDefaultConfig.Keywords = (Keyword)65536;
			cardDefaultConfig.UpgradedKeywords = (Keyword)1114112;
			cardDefaultConfig.RelativeKeyword = (Keyword)2;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)2;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 563410;
			return cardDefaultConfig;
		}
	}
	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_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: 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)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(23071);
			cardDefaultConfig.GunNameBurst = GunNameID.GetGunFromId(23072);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)6 };
			cardDefaultConfig.IsXCost = true;
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 2;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 1;
			cardDefaultConfig.UpgradedDamage = 3;
			cardDefaultConfig.Value1 = 1;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 2;
			cardDefaultConfig.Mana = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Colorless = 3;
			cardDefaultConfig.UpgradedMana = val;
			cardDefaultConfig.Keywords = (Keyword)258;
			cardDefaultConfig.UpgradedKeywords = (Keyword)258;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 562910;
			return cardDefaultConfig;
		}
	}
	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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)1,
				(ManaColor)5
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.RelativeEffects = new List<string> { "LifeElectric" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "LifeElectric" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 732330;
			return cardDefaultConfig;
		}
	}
	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_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = ModNormalConfig.GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Hybrid = 1;
			((ManaGroup)(ref val)).HybridColor = 8;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 653330;
			return cardDefaultConfig;
		}
	}
	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 mi