Decompiled source of Yoshika Miyako v0.0.2

Yoshika_Miyako.dll

Decompiled 18 hours 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 Cysharp.Threading.Tasks;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Cards.Character.Cirno;
using LBoL.EntityLib.Cards.Enemy;
using LBoL.EntityLib.Cards.Neutral.Black;
using LBoL.EntityLib.Cards.Neutral.NoColor;
using LBoL.EntityLib.Cards.Tool;
using LBoL.EntityLib.Exhibits;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Cirno;
using LBoL.EntityLib.StatusEffects.Others;
using LBoL.Presentation;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using Yoshika_Miyako.Cards.Template;
using Yoshika_Miyako.GunName;
using Yoshika_Miyako.ImageLoader;
using Yoshika_Miyako.Localization;
using Yoshika_Miyako.Source.Loadouts;
using Yoshika_Miyako.Source.StatusEffects;
using Yoshika_Miyako.YoshikaUlt;

[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("Yoshika_Miyako")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Yoshika_Miyako")]
[assembly: AssemblyTitle("Yoshika_Miyako")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Sanae_Kochiya.Source.Cards.Starter
{
	public sealed class YoshikaStarterGDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Green = 1;
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 8;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Value1 = 5;
			cardDefaultConfig.UpgradedValue1 = 8;
			cardDefaultConfig.Value2 = 1;
			cardDefaultConfig.UpgradedValue2 = 2;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison", "Weak", "Vulnerable" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison", "Weak", "Vulnerable" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.Initial_offset + 92301;
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaStarterGDef))]
	public sealed class YoshikaStarterG : YoshikaCard
	{
		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)
			Unit enemy = (Unit)(object)selector.GetEnemy(((Card)this).Battle);
			yield return ((Card)this).DebuffAction<Poison>(enemy, ((Card)this).Value1, 0, 0, 0, true, 0.2f);
			yield return ((Card)this).DebuffAction<Weak>(enemy, 0, ((Card)this).Value2, 0, 0, true, 0.2f);
			yield return ((Card)this).DebuffAction<Vulnerable>(enemy, 0, ((Card)this).Value2, 0, 0, true, 0.2f);
		}
	}
}
namespace Yoshika_Miyako
{
	[BepInPlugin("xeno.lbol.character.Yoshika_Miyako", "Yoshika_Miyako", "0.0.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		public static string modUniqueID = "Yoshika_Miyako";

		public static string playerName = "Yoshika";

		public static bool useInGameModel = true;

		public static string model_name = "Youmu";

		public static bool model_is_flipped = true;

		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.character.Yoshika_Miyako", "");

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

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

		public const string Name = "Yoshika_Miyako";

		public const string version = "0.0.2";

		public static readonly Harmony harmony = new Harmony("xeno.lbol.character.Yoshika_Miyako");
	}
	public sealed class YoshikaPlayerDef : PlayerUnitTemplate
	{
		[EntityLogic(typeof(YoshikaPlayerDef))]
		public sealed class Yoshika_Miyako : PlayerUnit
		{
		}

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

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

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

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

		public override PlayerUnitConfig MakeConfig()
		{
			return YoshikaLoadouts.playerUnitConfig;
		}
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace Yoshika_Miyako.YoshikaUlt
{
	public class YoshikaUltTemplate : UltimateSkillTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public UltimateSkillConfig GetDefaulUltConfig()
		{
			return YoshikaDefaultConfig.GetDefaultUltConfig();
		}
	}
}
namespace Yoshika_Miyako.model
{
	public sealed class Yoshika_Miyakoel : UnitModelTemplate
	{
		public static bool useInGameModel = BepinexPlugin.useInGameModel;

		public static string model_name = (useInGameModel ? BepinexPlugin.model_name : "Yoshika_Miyakoel.png");

		public static string spellsprite_name = "YoshikaStand.png";

		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 ((EntityDefinition)new YoshikaPlayerDef()).UniqueId;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YoshikaLocalization.UnitModelBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override ModelOption LoadModelOptions()
		{
			//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_0053: Expected O, but got Unknown
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			if (useInGameModel)
			{
				return new ModelOption(ResourcesHelper.LoadSpineUnitAsync(model_name));
			}
			return new ModelOption(ResourceLoader.LoadSpriteAsync(model_name, BepinexPlugin.directorySource, 565, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://"));
		}

		public override UniTask<Sprite> LoadSpellSprite()
		{
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: 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_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			if (useInGameModel)
			{
				return ResourcesHelper.LoadSpellPortraitAsync(model_name);
			}
			return ResourceLoader.LoadSpriteAsync(spellsprite_name, BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
		}

		public override UnitModelConfig MakeConfig()
		{
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			if (useInGameModel)
			{
				UnitModelConfig val = ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName(model_name));
				val.Flip = BepinexPlugin.model_is_flipped;
				return val;
			}
			UnitModelConfig val2 = ObjectExtensions.Copy<UnitModelConfig>(((UnitModelTemplate)this).DefaultConfig());
			val2.Flip = BepinexPlugin.model_is_flipped;
			val2.Type = 0;
			val2.Offset = new Vector2(0f, -0.1f);
			val2.HasSpellPortrait = true;
			return val2;
		}
	}
}
namespace Yoshika_Miyako.Localization
{
	public sealed class YoshikaLocalization
	{
		public static string Cards = "Cards";

		public static string Exhibits = "Exhibits";

		public static string PlayerUnit = "PlayerUnit";

		public static string UnitModel = "UnitModel";

		public static string UltimateSkills = "UltimateSkills";

		public static string StatusEffects = "StatusEffects";

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

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

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

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

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

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

		public static void Init()
		{
			CardsBatchLoc.DiscoverAndLoadLocFiles(Cards);
			ExhibitsBatchLoc.DiscoverAndLoadLocFiles(Exhibits);
			PlayerUnitBatchLoc.DiscoverAndLoadLocFiles(PlayerUnit);
			UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel);
			UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills);
			StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects);
		}
	}
}
namespace Yoshika_Miyako.GunName
{
	public static class GunNameID
	{
		private static 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 Yoshika_Miyako.Exhibits
{
	public class YoshikaExhibitTemplate : ExhibitTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YoshikaLocalization.ExhibitsBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override ExhibitSprites LoadSprite()
		{
			return YoshikaImageLoader.LoadExhibitSprite((ExhibitTemplate)(object)this);
		}

		public override ExhibitConfig MakeConfig()
		{
			return GetDefaultExhibitConfig();
		}

		public ExhibitConfig GetDefaultExhibitConfig()
		{
			return YoshikaDefaultConfig.GetDefaultExhibitConfig();
		}
	}
	public sealed class YoshikaExhibitBDef : YoshikaExhibitTemplate
	{
		public override ExhibitConfig MakeConfig()
		{
			//IL_0025: 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)
			ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig();
			defaultExhibitConfig.Value1 = 1;
			defaultExhibitConfig.Value2 = 1;
			ManaGroup value = default(ManaGroup);
			((ManaGroup)(ref value)).Green = 1;
			defaultExhibitConfig.Mana = value;
			defaultExhibitConfig.BaseManaColor = (ManaColor)5;
			defaultExhibitConfig.RelativeEffects = new List<string> { "Poison" };
			return defaultExhibitConfig;
		}
	}
	[EntityLogic(typeof(YoshikaExhibitBDef))]
	public sealed class YoshikaExhibitB : ShiningExhibit
	{
		protected override void OnGain(PlayerUnit player)
		{
			((ShiningExhibit)this).OnGain(player);
			List<Card> list = new List<Card> { (Card)(object)Library.CreateCard<ToolAmulet>() };
			((GameEntity)this).GameRun.AddDeckCards((IEnumerable<Card>)list, false, (VisualSourceData)null);
		}

		protected override void OnEnterBattle()
		{
			((Exhibit)this).ReactBattleEvent<StatusEffectApplyEventArgs>(((Unit)((Exhibit)this).Owner).StatusEffectAdded, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnStatusEffectAdded);
		}

		private IEnumerable<BattleAction> OnStatusEffectAdded(StatusEffectApplyEventArgs args)
		{
			if (args.Effect is Poison)
			{
				<>n__0();
				yield return (BattleAction)(object)new ApplyStatusEffectAction<PermaPoison>(args.Unit, args.Level, args.Duration, args.Count, (int?)0, 0.1f, true);
				((GameEventArgs)args).CancelBy((GameEntity)(object)this);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Exhibit)this).NotifyActivating();
		}
	}
	public sealed class YoshikaExhibitADef : YoshikaExhibitTemplate
	{
		public override ExhibitConfig MakeConfig()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig();
			defaultExhibitConfig.Value1 = 2;
			ManaGroup value = default(ManaGroup);
			((ManaGroup)(ref value)).Red = 1;
			defaultExhibitConfig.Mana = value;
			defaultExhibitConfig.BaseManaColor = (ManaColor)4;
			return defaultExhibitConfig;
		}
	}
	[EntityLogic(typeof(YoshikaExhibitADef))]
	public sealed class YoshikaExhibitA : ShiningExhibit
	{
		public ManaGroup HeartMana
		{
			get
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: 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_001f: Unknown result type (might be due to invalid IL or missing references)
				ManaGroup result = default(ManaGroup);
				((ManaGroup)(ref result)).Red = 2;
				((ManaGroup)(ref result)).Philosophy = 1;
				return result;
			}
		}

		protected override void OnEnterBattle()
		{
			((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			if (((Unit)((Exhibit)this).Battle.Player).TurnCounter == 2)
			{
				<>n__0();
				yield return (BattleAction)new DamageAction((Unit)(object)((Exhibit)this).Owner, (Unit)(object)((Exhibit)this).Owner, DamageInfo.HpLose((float)((Exhibit)this).Value1, false), "Instant", (GunType)0);
				yield return (BattleAction)new GainManaAction(HeartMana);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Exhibit)this).NotifyActivating();
		}
	}
}
namespace Yoshika_Miyako.ImageLoader
{
	public sealed class YoshikaDefaultConfig
	{
		private static readonly string OwnerName = BepinexPlugin.modUniqueID;

		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_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: 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, (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>(), OwnerName, "", "", false, (string)null, (IReadOnlyList<string>)new List<string>());
		}

		public static ExhibitConfig GetDefaultExhibitConfig()
		{
			//IL_0032: 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_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			return new ExhibitConfig(0, "", 10, false, false, false, false, (AppearanceType)3, OwnerName, (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>());
		}
	}
	public sealed class YoshikaImageLoader
	{
		public static string file_extension = ".png";

		public static PlayerImages LoadPlayerImages(string name)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			PlayerImages val = new PlayerImages();
			val.AutoLoad(name, (Func<string, Sprite>)((string s) => ResourceLoader.LoadSprite(s, (IResourceSource)(object)BepinexPlugin.directorySource, 100, 1, (FilterMode)1, true, (Rect?)null, (Vector2?)null)), (Func<string, UniTask<Sprite>>)((string s) => ResourceLoader.LoadSpriteAsync(s, BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://")), (UseSame)2, ".png", "");
			return val;
		}

		public static CardImages LoadCardImages(CardTemplate cardTemplate)
		{
			//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, file_extension, "", false);
			return val;
		}

		public static ExhibitSprites LoadExhibitSprite(ExhibitTemplate exhibit)
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			ExhibitSprites val = new ExhibitSprites();
			Func<string, Sprite> func = (string s) => ResourceLoader.LoadSprite(IdContainer.op_Implicit(((EntityDefinition)exhibit).GetId()) + s + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
			val.main = func("");
			return val;
		}

		public static Sprite LoadUltLoader(UltimateSkillTemplate ult)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			return LoadSprite(((EntityDefinition)ult).GetId());
		}

		public static Sprite LoadStatusEffectLoader(StatusEffectTemplate status)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			return LoadSprite(((EntityDefinition)status).GetId());
		}

		public static Sprite LoadSprite(IdContainer ID)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			return ResourceLoader.LoadSprite(IdContainer.op_Implicit(ID) + file_extension, BepinexPlugin.embeddedSource, (Rect?)null, 1, (Vector2?)null);
		}
	}
}
namespace Yoshika_Miyako.Cards.Template
{
	public class YoshikaCard : Card
	{
	}
	public static class CardIndexGenerator
	{
		private static int? initial_offset = null;

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

		public const int milx1 = 1000000;

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

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

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

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

		public override CardImages LoadCardImages()
		{
			return YoshikaImageLoader.LoadCardImages((CardTemplate)(object)this);
		}

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

		public CardConfig GetCardDefaultConfig()
		{
			return YoshikaDefaultConfig.GetCardDefaultConfig();
		}
	}
}
namespace Yoshika_Miyako.Source.UltimateSkills
{
	public sealed class YoshikaUltADef : YoshikaUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 10;
			defaulUltConfig.Value1 = 1;
			defaulUltConfig.Value2 = 2;
			defaulUltConfig.RelativeEffects = new List<string> { "TempFirepower" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YoshikaUltADef))]
	public sealed class YoshikaUltA : UltimateSkill
	{
		public YoshikaUltA()
		{
			((UltimateSkill)this).TargetType = (TargetType)2;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4532);
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			List<Card> hand = ((UltimateSkill)this).Battle.HandZone.ToList();
			if (hand.Count > 0)
			{
				yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)hand);
				yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((UltimateSkill)this).Owner, (int?)(((UltimateSkill)this).Value1 * hand.Count), (int?)0, (int?)0, (int?)0, 0.2f, false);
				yield return (BattleAction)new HealAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)((UltimateSkill)this).Owner, ((UltimateSkill)this).Value2 * hand.Count, (HealType)0, 0.2f);
			}
			EnemyUnit[] enemy = selector.GetEnemies(((UltimateSkill)this).Battle);
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)(object)enemy, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)(object)enemy, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
		}
	}
	public sealed class YoshikaUltBDef : YoshikaUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 15;
			defaulUltConfig.Value1 = 12;
			defaulUltConfig.RelativeEffects = new List<string> { "Poison" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YoshikaUltBDef))]
	public sealed class YoshikaUltB : UltimateSkill
	{
		public YoshikaUltB()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4158);
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			EnemyUnit enemy2 = selector.GetEnemy(((UltimateSkill)this).Battle);
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)enemy2, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
			if (((Unit)enemy2).IsAlive)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)enemy2, (int?)((UltimateSkill)this).Value1, (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
			foreach (EnemyUnit enemyUnit in ((UltimateSkill)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<Poison>()))
			{
				if (((UltimateSkill)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				foreach (BattleAction item in ((Unit)enemyUnit).GetStatusEffect<Poison>().TakeEffect())
				{
					yield return item;
				}
			}
			foreach (EnemyUnit enemyUnit2 in ((UltimateSkill)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<PermaPoison>()))
			{
				if (((UltimateSkill)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				foreach (BattleAction item2 in ((Unit)enemyUnit2).GetStatusEffect<PermaPoison>().TakeEffect())
				{
					yield return item2;
				}
			}
		}
	}
}
namespace Yoshika_Miyako.Source.StatusEffects
{
	public sealed class NextTurnLoseHpOwnerDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)1;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(NextTurnLoseHpOwnerDef))]
	public sealed class NextTurnLoseHpOwner : 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)
			{
				<>n__0();
				yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, DamageInfo.HpLose((float)((StatusEffect)this).Level, false), "Instant", (GunType)0);
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class PermaPoisonDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)2;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(PermaPoisonDef))]
	public sealed class PermaPoison : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			if (unit is EnemyUnit)
			{
				((StatusEffect)this).ReactOwnerEvent<GameEventArgs>(((StatusEffect)this).Battle.AllEnemyTurnStarted, (EventSequencedReactor<GameEventArgs>)OnAllEnemyTurnStarted);
				((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnEnemyTurnStarted);
			}
			else
			{
				((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			}
		}

		private IEnumerable<BattleAction> OnAllEnemyTurnStarted(GameEventArgs args)
		{
			return TakeEffect();
		}

		private IEnumerable<BattleAction> OnEnemyTurnStarted(UnitEventArgs args)
		{
			Unit owner = ((StatusEffect)this).Owner;
			if (owner == null || !owner.IsExtraTurn)
			{
				yield break;
			}
			foreach (BattleAction item in TakeEffect())
			{
				yield return item;
			}
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			return TakeEffect();
		}

		public IEnumerable<BattleAction> TakeEffect()
		{
			if (((StatusEffect)this).Owner != null && !((StatusEffect)this).Battle.BattleShouldEnd)
			{
				<>n__0();
				yield return (BattleAction)(object)DamageAction.LoseLife(((StatusEffect)this).Owner, ((StatusEffect)this).Level, "Poison");
				int num = ((StatusEffect)this).Level - 1;
				((StatusEffect)this).Level = num;
				if (((StatusEffect)this).Level == 0)
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
				}
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class RegenerationDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(RegenerationDef))]
	public sealed class Regeneration : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, ((StatusEffect)this).Level, (HealType)0, 0.2f);
			int num = ((((StatusEffect)this).Level != 1) ? (((StatusEffect)this).Level / 2) : 0);
			((StatusEffect)this).Level = num;
			if (((StatusEffect)this).Level == 0)
			{
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}
	}
	public class YoshikaStatusEffectTemplate : StatusEffectTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit(YoshikaDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public static StatusEffectConfig GetDefaultStatusEffectConfig()
		{
			return YoshikaDefaultConfig.GetDefaultStatusEffectConfig();
		}
	}
	public sealed class YoshikaDeathFlawlessSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)2;
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YoshikaDeathFlawlessSeDef))]
	public sealed class YoshikaDeathFlawlessSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
		}

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			DamageInfo damageInfo = args.DamageInfo;
			int num;
			if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0)
			{
				damageInfo = args.DamageInfo;
				num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0);
			}
			else
			{
				num = 1;
			}
			if (num != 0 && ((StatusEffect)this).Count != 0)
			{
				((StatusEffect)this).Count = ((StatusEffect)this).Count - 1;
			}
			yield break;
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			if (((StatusEffect)this).Count != 0)
			{
				<>n__0();
				if (((StatusEffect)this).Owner.HasStatusEffect<InvincibleEternal>())
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)((StatusEffect)this).Owner.GetStatusEffect<InvincibleEternal>(), true, 0.1f);
				}
				if (((StatusEffect)this).Owner.HasStatusEffect<Invincible>())
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)((StatusEffect)this).Owner.GetStatusEffect<Invincible>(), true, 0.1f);
				}
				yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, DamageInfo.Reaction(9999f, false), "Instant", (GunType)0);
				Unit owner = ((StatusEffect)this).Owner;
				if (owner != null && !owner.IsDead)
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
				}
			}
			else
			{
				((StatusEffect)this).Count = ((StatusEffect)this).Level;
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaFirepowerBleedSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerBleedSeDef))]
	public sealed class YoshikaFirepowerBleedSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((Unit)((StatusEffect)this).Battle.Player).DamageDealt, (EventSequencedReactor<DamageEventArgs>)OnDamageDealt);
		}

		private IEnumerable<BattleAction> OnDamageDealt(DamageEventArgs args)
		{
			DamageInfo damageInfo = args.DamageInfo;
			int num;
			if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0)
			{
				damageInfo = args.DamageInfo;
				num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0);
			}
			else
			{
				num = 1;
			}
			if (num != 0 && !((StatusEffect)this).Battle.BattleShouldEnd && args.Target != ((StatusEffect)this).Battle.Player)
			{
				<>n__0();
				yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0f, true);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaFirepowerDeathSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerDeathSeDef))]
	public sealed class YoshikaFirepowerDeathSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied);
		}

		private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs arg)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				<>n__0();
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0f, true);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaFlowerTriggerSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.HasLevel = false;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFlowerTriggerSeDef))]
	public sealed class YoshikaFlowerTriggerSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
		}

		private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd || !(args.Card is SummerFlower))
			{
				yield break;
			}
			<>n__0();
			foreach (EnemyUnit enemyUnit in ((StatusEffect)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<Poison>()))
			{
				if (((StatusEffect)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				foreach (BattleAction item in ((Unit)enemyUnit).GetStatusEffect<Poison>().TakeEffect())
				{
					yield return item;
				}
			}
			foreach (EnemyUnit enemyUnit2 in ((StatusEffect)this).Battle.AllAliveEnemies.Where((EnemyUnit enemy) => ((Unit)enemy).HasStatusEffect<PermaPoison>()))
			{
				if (((StatusEffect)this).Battle.BattleShouldEnd)
				{
					yield break;
				}
				foreach (BattleAction item2 in ((Unit)enemyUnit2).GetStatusEffect<PermaPoison>().TakeEffect())
				{
					yield return item2;
				}
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaHealBleedSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.HasLevel = false;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YoshikaHealBleedSeDef))]
	public sealed class YoshikaHealBleedSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
		}

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			DamageInfo damageInfo = args.DamageInfo;
			int num;
			if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0)
			{
				damageInfo = args.DamageInfo;
				num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0);
			}
			else
			{
				num = 1;
			}
			if (num != 0)
			{
				<>n__0();
				yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, 1, (HealType)0, 0.2f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaHealSacrificeSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YoshikaHealSacrificeSeDef))]
	public sealed class YoshikaHealSacrificeSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnTurnEnding);
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)(object)DamageAction.LoseLife(((StatusEffect)this).Owner, ((StatusEffect)this).Level, "Poison");
		}

		private IEnumerable<BattleAction> OnTurnEnding(GameEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new HealAction(((StatusEffect)this).Owner, ((StatusEffect)this).Owner, ((StatusEffect)this).Level, (HealType)0, 0.2f);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaManaBleedSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)1;
			defaultStatusEffectConfig.HasLevel = false;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YoshikaManaBleedSeDef))]
	public sealed class YoshikaManaBleedSe : StatusEffect
	{
		public ManaGroup Mana
		{
			get
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_001b: 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_001f: Unknown result type (might be due to invalid IL or missing references)
				ManaGroup result = default(ManaGroup);
				((ManaGroup)(ref result)).Green = 1;
				((ManaGroup)(ref result)).Colorless = 1;
				return result;
			}
		}

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

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			DamageInfo damageInfo = args.DamageInfo;
			if (!((DamageInfo)(ref damageInfo)).IsGrazed)
			{
				<>n__0();
				yield return (BattleAction)new GainManaAction(Mana);
			}
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YoshikaPoisonTriggerMasterSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YoshikaPoisonTriggerMasterSeDef))]
	public sealed class YoshikaPoisonTriggerMasterSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Battle.EnemySpawned, (EventSequencedReactor<UnitEventArgs>)OnEnemySpawned);
		}

		private IEnumerable<BattleAction> OnEnemySpawned(UnitEventArgs args)
		{
			yield return (BattleAction)(object)new ApplyStatusEffectAction<YoshikaPoisonTriggerSe>(args.Unit, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true);
		}
	}
	public sealed class YoshikaPoisonTriggerSeDef : YoshikaStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YoshikaStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.Type = (StatusEffectType)2;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonTriggerSeDef))]
	public sealed class YoshikaPoisonTriggerSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DamageEventArgs>(((StatusEffect)this).Owner.DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
			((StatusEffect)this).ReactOwnerEvent<StatusEffectEventArgs>(((Unit)((StatusEffect)this).Battle.Player).StatusEffectRemoved, (EventSequencedReactor<StatusEffectEventArgs>)OnStatusEffectRemoved);
		}

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			if ((int)((GameEventArgs)args).Cause != 7)
			{
				yield break;
			}
			DamageInfo damageInfo = args.DamageInfo;
			int num;
			if ((int)((DamageInfo)(ref damageInfo)).DamageType != 0)
			{
				damageInfo = args.DamageInfo;
				num = ((((DamageInfo)(ref damageInfo)).Damage > 0f) ? 1 : 0);
			}
			else
			{
				num = 1;
			}
			if (num != 0)
			{
				<>n__0();
				EnemyUnit target = ((StatusEffect)this).Battle.RandomAliveEnemy;
				if (target != null)
				{
					yield return (BattleAction)(object)new ApplyStatusEffectAction<Poison>((Unit)(object)target, (int?)((StatusEffect)this).Level, (int?)null, (int?)null, (int?)null, 0.2f, true);
				}
			}
		}

		private IEnumerable<BattleAction> OnStatusEffectRemoved(StatusEffectEventArgs args)
		{
			if (args.Effect is YoshikaPoisonTriggerMasterSe)
			{
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
}
namespace Yoshika_Miyako.Source.Loadouts
{
	public class YoshikaLoadouts
	{
		public static string UltimateSkillA = "YoshikaUltA";

		public static string UltimateSkillB = "YoshikaUltB";

		public static string ExhibitA = "YoshikaExhibitA";

		public static string ExhibitB = "YoshikaExhibitB";

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

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

		public static PlayerUnitConfig playerUnitConfig;

		static YoshikaLoadouts()
		{
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Expected O, but got Unknown
			string modUniqueID = BepinexPlugin.modUniqueID;
			int? num = 0;
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 0;
			((ManaGroup)(ref val)).Blue = 0;
			((ManaGroup)(ref val)).Black = 2;
			((ManaGroup)(ref val)).Red = 1;
			((ManaGroup)(ref val)).Green = 1;
			((ManaGroup)(ref val)).Colorless = 0;
			((ManaGroup)(ref val)).Philosophy = 0;
			playerUnitConfig = new PlayerUnitConfig(modUniqueID, 8, 0, num, "", "#7c66ff", true, 85, val, 2, 0, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 2, 2);
		}
	}
}
namespace Yoshika_Miyako.Source.Cards.Uncommon
{
	public sealed class YoshikaAttackBleedDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(6094);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 4;
			((ManaGroup)(ref val)).Red = 1;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 32;
			cardDefaultConfig.UpgradedDamage = 44;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Keywords = (Keyword)256;
			cardDefaultConfig.UpgradedKeywords = (Keyword)256;
			cardDefaultConfig.RelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaAttackBleedDef))]
	public sealed class YoshikaAttackBleed : YoshikaCard
	{
		protected override void OnEnterBattle(BattleController battle)
		{
			((Card)this).ReactBattleEvent<DamageEventArgs>(((Unit)((Card)this).Battle.Player).DamageReceived, (EventSequencedReactor<DamageEventArgs>)OnDamageReceived);
		}

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			int num;
			if ((int)((Card)this).Zone == 2)
			{
				DamageInfo damageInfo = args.DamageInfo;
				num = (((int)((DamageInfo)(ref damageInfo)).DamageType == 0) ? 1 : 0);
			}
			else
			{
				num = 0;
			}
			if (num != 0)
			{
				((Card)this).DecreaseTurnCost(((Card)this).Mana);
			}
			yield break;
		}
	}
	public sealed class YoshikaAttackDamageDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(6094);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 2;
			((ManaGroup)(ref cost)).Green = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 20;
			cardDefaultConfig.Value1 = 15;
			cardDefaultConfig.Value2 = 5;
			cardDefaultConfig.Keywords = (Keyword)256;
			cardDefaultConfig.UpgradedKeywords = (Keyword)256;
			cardDefaultConfig.RelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)1099511627776L;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaAttackDamageDef))]
	public sealed class YoshikaAttackDamage : YoshikaCard
	{
		public DamageInfo FlowerDamage
		{
			get
			{
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_003f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0044: 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)
				if (((Card)this).Battle != null && ((Unit)((Card)this).Battle.Player).HasStatusEffect<SummerFlowerSe>())
				{
					return DamageInfo.Attack((float)(((Card)this).Value1 + ((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<SummerFlowerSe>()).Level), false);
				}
				return DamageInfo.Attack((float)((Card)this).Value1, false);
			}
		}

		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 ((Card)this).AttackAction(selector, FlowerDamage, (GunPair)null);
			}
			else
			{
				yield return ((Card)this).AttackAction(selector, <>n__0(), (GunPair)null);
			}
			yield return ((Card)this).BuffAction<SummerFlowerSe>(((Card)this).Value2, 0, 0, 0, 0.2f);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private DamageInfo <>n__0()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			return ((Card)this).Damage;
		}
	}
	public sealed class YoshikaBleedDamageDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)5
			};
			cardDefaultConfig.Cost = default(ManaGroup);
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.Keywords = (Keyword)2228224;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2228224;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaBleedDamageDef))]
	public sealed class YoshikaBleedDamage : YoshikaCard
	{
		protected override void OnEnterBattle(BattleController battle)
		{
			((Card)this).HandleBattleEvent<HealEventArgs>(((Unit)((Card)this).Battle.Player).HealingReceived, (GameEventHandler<HealEventArgs>)OnHealingReceived, (GameEventPriority)0);
			((Card)this).HandleBattleEvent<DamageEventArgs>(((Unit)((Card)this).Battle.Player).DamageReceived, (GameEventHandler<DamageEventArgs>)OnDamageReceived, (GameEventPriority)0);
			((Card)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Card)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
		}

		private void OnHealingReceived(HealEventArgs args)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Invalid comparison between Unknown and I4
			if ((int)((Card)this).Zone == 2)
			{
				((Card)this).DeltaValue1 = ((Card)this).DeltaValue1 + ((Card)this).Value2;
			}
		}

		private void OnDamageReceived(DamageEventArgs args)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Invalid comparison between Unknown and I4
			//IL_000b: 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_0013: Unknown result type (might be due to invalid IL or missing references)
			if ((int)((Card)this).Zone == 2)
			{
				DamageInfo damageInfo = args.DamageInfo;
				if ((int)((DamageInfo)(ref damageInfo)).DamageType == 0 && ((Card)this).IsUpgraded)
				{
					((Card)this).DeltaValue1 = ((Card)this).DeltaValue1 + ((Card)this).Value2;
				}
			}
		}

		private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
		{
			if (!((Card)this).Battle.BattleShouldEnd && (int)((Card)this).Zone == 2)
			{
				EnemyUnit randomEnemy = CollectionsExtensions.SampleOrDefault<EnemyUnit>(((Card)this).Battle.EnemyGroup.Alives, ((Card)this).Battle.GameRun.BattleRng);
				if (randomEnemy != null)
				{
					<>n__0();
					yield return (BattleAction)(object)PerformAction.Effect((Unit)(object)randomEnemy, "Changzhi", 0f, "ReimuBoundaryHit", 0f, (EffectBehavior)0, 0.3f);
					yield return (BattleAction)new DamageAction((Unit)(object)((Card)this).Battle.Player, (Unit)(object)randomEnemy, DamageInfo.Reaction((float)((Card)this).Value1, false), "Instant", (GunType)0);
				}
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Card)this).NotifyActivating();
		}
	}
	public sealed class YoshikaBlockGrowthDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 4;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 3;
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 21;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.UpgradedValue1 = 2;
			cardDefaultConfig.RelativeKeyword = (Keyword)4398046511104L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)4398046511104L;
			cardDefaultConfig.RelativeEffects = new List<string> { "Graze" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Graze" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaBlockGrowthDef))]
	public sealed class YoshikaBlockGrowth : YoshikaCard
	{
		protected override void OnEnterBattle(BattleController battle)
		{
			((Card)this).HandleBattleEvent<GameEventArgs>(((Card)this).Battle.BattleStarted, (GameEventHandler<GameEventArgs>)OnBattleStarted, (GameEventPriority)0);
		}

		private void OnBattleStarted(GameEventArgs args)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			if (((Card)this).Battle.CardExtraGrowAmount > 0)
			{
				((Card)this).DecreaseBaseCost(((Card)this).Mana * ((Card)this).Battle.CardExtraGrowAmount);
			}
		}

		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<Graze>(((Card)this).Value1, 0, 0, 0, 0.2f);
		}

		public override IEnumerable<BattleAction> AfterUseAction()
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			((Card)this).DecreaseBaseCost(((Card)this).Mana);
			return ((Card)this).AfterUseAction();
		}
	}
	public sealed class YoshikaDrawExileDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.RelativeKeyword = (Keyword)35184372088832L;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)35184372088832L;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaDrawExileDef))]
	public sealed class YoshikaDrawExile : YoshikaCard
	{
		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 DrawManyCardAction(((Card)this).Value1);
		}

		public override IEnumerable<BattleAction> OnExile(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)
			Card card = ((Card)this).Clone();
			card.IsCopy = true;
			yield return (BattleAction)new AddCardsToHandAction((Card[])(object)new Card[1] { card });
		}
	}
	public sealed class YoshikaDrawFirepowerDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 };
			cardDefaultConfig.Cost = default(ManaGroup);
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.UpgradedValue1 = 2;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.RelativeKeyword = (Keyword)131072;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)131072;
			cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaDrawFirepowerDef))]
	public sealed class YoshikaDrawFirepower : YoshikaCard
	{
		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)
			DrawManyCardAction drawAction = new DrawManyCardAction(((Card)this).Value1);
			yield return (BattleAction)(object)drawAction;
			IReadOnlyList<Card> drawnCards = drawAction.DrawnCards;
			if (drawnCards == null || drawnCards.Count <= 0)
			{
				yield break;
			}
			foreach (Card card in drawnCards)
			{
				if ((int)card.CardType != 1)
				{
					yield return (BattleAction)new ExileCardAction(card);
					yield return ((Card)this).BuffAction<Firepower>(((Card)this).Value2, 0, 0, 0, 0.2f);
				}
			}
		}
	}
	public sealed class YoshikaExileStatusDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.RelativeKeyword = (Keyword)131072;
			cardDefaultConfig.UpgradedRelativeKeyword = (Keyword)131072;
			cardDefaultConfig.RelativeCards = new List<string> { "Shadow" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "Shadow" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaExileStatusDef))]
	public sealed class YoshikaExileStatus : YoshikaCard
	{
		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 && (int)card.Config.Rarity == 0
				select card).ToList();
			if (!CollectionsExtensions.Empty<Card>((IReadOnlyCollection<Card>)list))
			{
				return (Interaction)new SelectCardInteraction(0, ((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 AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<Shadow>(((Card)this).Value2, false), (AddCardsType)0);
		}
	}
	public sealed class YoshikaFirepowerAreaDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 };
			cardDefaultConfig.Cost = default(ManaGroup);
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 8;
			cardDefaultConfig.UpgradedValue1 = 12;
			cardDefaultConfig.Value2 = 5;
			cardDefaultConfig.UpgradedValue2 = 8;
			cardDefaultConfig.Keywords = (Keyword)131072;
			cardDefaultConfig.UpgradedKeywords = (Keyword)131072;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerAreaDef))]
	public sealed class YoshikaFirepowerArea : YoshikaCard
	{
		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<TempFirepower>(((Card)this).Value1, 0, 0, 0, 0.2f);
			IEnumerable<EnemyUnit> target = ((Card)this).Battle.AllAliveEnemies;
			if (target == null)
			{
				yield break;
			}
			foreach (EnemyUnit targetUnit in target)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)targetUnit, (int?)((Card)this).Value2, (int?)null, (int?)null, (int?)null, 0.2f, true);
			}
		}
	}
	public sealed class YoshikaFirepowerDoubleDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Red = 2;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.Keywords = (Keyword)2097152;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2097152;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepower" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerDoubleDef))]
	public sealed class YoshikaFirepowerDouble : YoshikaCard
	{
		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 ((Card)this).BuffAction<TempFirepower>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
			if (((Unit)((Card)this).Battle.Player).HasStatusEffect<TempFirepower>())
			{
				yield return ((Card)this).BuffAction<TempFirepower>(((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<TempFirepower>()).Level, 0, 0, 0, 0.2f);
			}
			else if (((Unit)((Card)this).Battle.Player).HasStatusEffect<TempFirepowerNegative>())
			{
				yield return ((Card)this).DebuffAction<TempFirepowerNegative>((Unit)(object)((Card)this).Battle.Player, ((StatusEffect)((Unit)((Card)this).Battle.Player).GetStatusEffect<TempFirepowerNegative>()).Level, 0, 0, 0, true, 0.2f);
			}
		}
	}
	public sealed class YoshikaFirepowerManaDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: 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_0087: 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_00b7: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = 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)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Green = 1;
			((ManaGroup)(ref val)).Colorless = 2;
			cardDefaultConfig.Mana = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Green = 1;
			((ManaGroup)(ref val)).Philosophy = 2;
			cardDefaultConfig.UpgradedMana = val;
			cardDefaultConfig.Value1 = 13;
			cardDefaultConfig.RelativeEffects = new List<string> { "TempFirepowerNegative" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "TempFirepowerNegative" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerManaDef))]
	public sealed class YoshikaFirepowerMana : YoshikaCard
	{
		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).DebuffAction<TempFirepowerNegative>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value1, 0, 0, 0, true, 0.2f);
			yield return (BattleAction)new GainManaAction(((Card)this).Mana);
		}
	}
	public sealed class YoshikaFirepowerStatusDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.IsPooled = false;
			cardDefaultConfig.FindInBattle = false;
			cardDefaultConfig.HideMesuem = true;
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 2;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 5;
			cardDefaultConfig.UpgradedValue1 = 8;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.RelativeCards = new List<string> { "BlackResidue" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "BlackResidue" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerStatusDef))]
	public sealed class YoshikaFirepowerStatus : YoshikaCard
	{
		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);
			yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<BlackResidue>(((Card)this).Value2, false), (AddCardsType)0);
		}
	}
	public sealed class YoshikaFirepowerZombieDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)4
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 2;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 5;
			cardDefaultConfig.Keywords = (Keyword)589824;
			cardDefaultConfig.UpgradedKeywords = (Keyword)589824;
			cardDefaultConfig.RelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Firepower" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaFirepowerZombieDef))]
	public sealed class YoshikaFirepowerZombie : YoshikaCard
	{
		public bool Active => ((Card)this).Battle != null && ((Unit)((Card)this).Battle.Player).IsAlive && ((Unit)((Card)this).Battle.Player).Hp <= (((Unit)((Card)this).Battle.Player).MaxHp + 1) / 2;

		protected override void OnEnterBattle(BattleController battle)
		{
			((Card)this).ReactBattleEvent<GameEventArgs>(((Card)this).Battle.BattleStarted, (EventSequencedReactor<GameEventArgs>)OnBattleStarted);
		}

		private IEnumerable<BattleAction> OnBattleStarted(GameEventArgs args)
		{
			if (Active && this == ((Card)this).Battle.EnumerateAllCards().First((Card card) => card is YoshikaFirepowerZombie))
			{
				List<Card> list = ((Card)this).Battle.DrawZone.Where((Card card) => card is YoshikaFirepowerZombie).ToList();
				int fire = list.Sum((Card card) => card.Value1);
				yield return (BattleAction)new ExileManyCardAction((IEnumerable<Card>)list);
				yield return ((Card)this).BuffAction<Firepower>(fire, 0, 0, 0, 0.2f);
			}
		}
	}
	public sealed class YoshikaHealBleedDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)3,
				(ManaColor)4
			};
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 3;
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Red = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Black = 1;
			((ManaGroup)(ref val)).Red = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.Value2 = 5;
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaHealBleedDef))]
	public sealed class YoshikaHealBleed : YoshikaCard
	{
		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<YoshikaHealBleedSe>(1, 0, 0, 0, 0.2f);
			yield return (BattleAction)new HealAction((Unit)(object)((Card)this).Battle.Player, (Unit)(object)((Card)this).Battle.Player, ((Card)this).Value2, (HealType)0, 0.2f);
		}
	}
	public sealed class YoshikaHealVulnerableDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = 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)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 22;
			cardDefaultConfig.UpgradedValue1 = 26;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.UpgradedValue2 = 1;
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Vulnerable", "Regeneration" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaHealVulnerableDef))]
	public sealed class YoshikaHealVulnerable : YoshikaCard
	{
		public override bool Triggered => ((Card)this).Battle != null && ((Unit)((Card)this).Battle.Player).IsAlive && ((Unit)((Card)this).Battle.Player).Hp <= (((Unit)((Card)this).Battle.Player).MaxHp + 1) / 2;

		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).BuffAction<Regeneration>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
			else
			{
				yield return (BattleAction)new HealAction((Unit)(object)((Card)this).Battle.Player, (Unit)(object)((Card)this).Battle.Player, ((Card)this).Value1, (HealType)0, 0.2f);
			}
			yield return ((Card)this).DebuffAction<Vulnerable>((Unit)(object)((Card)this).Battle.Player, 0, ((Card)this).Value2, 0, 0, true, 0.1f);
		}
	}
	public sealed class YoshikaManaBleedDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Green = 2;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Green = 1;
			((ManaGroup)(ref val)).Colorless = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Value1 = 12;
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Reflect" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaManaBleedDef))]
	public sealed class YoshikaManaBleed : YoshikaCard
	{
		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 ((Card)this).BuffAction<Reflect>(((Card)this).Value1, 0, 0, 0, 0.2f);
			}
			foreach (BattleAction item in ((Card)this).DebuffAction<YoshikaManaBleedSe>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, 1, 0, 0, 0, true, 0.1f))
			{
				yield return item;
			}
			yield return (BattleAction)new RequestEndPlayerTurnAction();
		}
	}
	public sealed class YoshikaPoisonFirepowerDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor>
			{
				(ManaColor)4,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Red = 1;
			((ManaGroup)(ref cost)).Green = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Value1 = 11;
			cardDefaultConfig.UpgradedValue1 = 17;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonFirepowerDef))]
	public sealed class YoshikaPoisonFirepower : YoshikaCard
	{
		protected override int AdditionalValue1
		{
			get
			{
				if (((Card)this).Battle != null)
				{
					return PlayerFirepowerPositive;
				}
				return 0;
			}
		}

		private int PlayerFirepowerPositive => Math.Max(0, ((Unit)((Card)this).Battle.Player).TotalFirepower);

		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)
			foreach (BattleAction item in ((Card)this).DebuffAction<Poison>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.1f))
			{
				yield return item;
			}
		}
	}
	public sealed class YoshikaPoisonFlawlessDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Black = 2;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 3;
			cardDefaultConfig.Value2 = 20;
			cardDefaultConfig.Keywords = (Keyword)2228224;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2228224;
			cardDefaultConfig.RelativeEffects = new List<string> { "Invincible", "Poison" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Invincible", "Poison" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonFlawlessDef))]
	public sealed class YoshikaPoisonFlawless : YoshikaCard
	{
		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<Invincible>(0, ((Card)this).Value1, 0, 0, 0.2f);
			yield return ((Card)this).DebuffAction<Poison>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value2, 0, 0, 0, true, 0.2f);
		}
	}
	public sealed class YoshikaPoisonFlowerDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: 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_0038: 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_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Green = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Value1 = 6;
			cardDefaultConfig.UpgradedValue1 = 9;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.UpgradedValue2 = 3;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.RelativeCards = new List<string> { "SummerFlower" };
			cardDefaultConfig.UpgradedRelativeCards = new List<string> { "SummerFlower" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonFlowerDef))]
	public sealed class YoshikaPoisonFlower : YoshikaCard
	{
		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 GainManaAction(((Card)this).Mana);
			List<YoshikaPoisonFlower> list = Library.CreateCards<YoshikaPoisonFlower>(2, ((Card)this).IsUpgraded).ToList();
			YoshikaPoisonFlower first = list[0];
			YoshikaPoisonFlower yoshikaPoisonFlower = list[1];
			((Card)first).ShowWhichDescription = 1;
			((Card)yoshikaPoisonFlower).ShowWhichDescription = 2;
			((Card)first).SetBattle(((Card)this).Battle);
			((Card)yoshikaPoisonFlower).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)
			{
				EnemyUnit target = ((Card)this).Battle.HighestHpEnemy;
				if (target != null)
				{
					yield return ((Card)this).DebuffAction<Poison>((Unit)(object)target, ((Card)this).Value1, 0, 0, 0, true, 0.2f);
				}
			}
			else
			{
				yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)Library.CreateCards<SummerFlower>(((Card)this).Value2, false), (AddCardsType)0);
			}
		}
	}
	public sealed class YoshikaPoisonTriggerDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 2;
			((ManaGroup)(ref cost)).Black = 2;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 4;
			cardDefaultConfig.UpgradedValue1 = 7;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonTriggerDef))]
	public sealed class YoshikaPoisonTrigger : YoshikaCard
	{
		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<YoshikaPoisonTriggerMasterSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
			IEnumerable<EnemyUnit> target = ((Card)this).Battle.AllAliveEnemies;
			if (target == null)
			{
				yield break;
			}
			foreach (EnemyUnit targetUnit in target)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<YoshikaPoisonTriggerSe>((Unit)(object)targetUnit, (int?)((Card)this).Value1, (int?)null, (int?)null, (int?)null, 0.2f, true);
			}
		}
	}
	public sealed class YoshikaPoisonWeakDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)5 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Green = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Value1 = 7;
			cardDefaultConfig.UpgradedValue1 = 11;
			cardDefaultConfig.Value2 = 1;
			cardDefaultConfig.UpgradedValue2 = 2;
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison", "Weak" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison", "Weak" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaPoisonWeakDef))]
	public sealed class YoshikaPoisonWeak : YoshikaCard
	{
		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)
			foreach (BattleAction item in ((Card)this).DebuffAction<Poison>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.1f))
			{
				yield return item;
			}
			foreach (BattleAction item2 in ((Card)this).DebuffAction<Weak>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, 0, ((Card)this).Value2, 0, 0, true, 0.1f))
			{
				yield return item2;
			}
		}
	}
	public sealed class YoshikaReflectStaticDef : YoshikaCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_001f: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)4 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Red = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 12;
			cardDefaultConfig.UpgradedValue1 = 16;
			cardDefaultConfig.Value2 = 6;
			cardDefaultConfig.UpgradedValue2 = 12;
			cardDefaultConfig.RelativeEffects = new List<string> { "Reflect", "TempElectric" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Reflect", "TempElectric" };
			cardDefaultConfig.Illustrator = "";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YoshikaReflectStaticDef))]
	public sealed class YoshikaReflectStatic : YoshikaCard
	{
		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<Reflect>(((Card)this).Value1, 0, 0, 0, 0.2f);
			yield return ((Card)this).BuffAction<TempElectric>(((Card)this).Value2, 0, 0, 0, 0.2f);
		}
	}
	public sealed class YoshikaSacrificeVulnerableDef : YoshikaCardTemplate
	{
		pub