Decompiled source of YuyukoCharacterMod v0.0.4

YuyukoCharacterMod.dll

Decompiled a week ago
using System;
using System.Collections;
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 DG.Tweening;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.Randoms;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Cards;
using LBoL.EntityLib.Cards.Neutral.Green;
using LBoL.EntityLib.Cards.Neutral.NoColor;
using LBoL.EntityLib.Exhibits;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Cirno;
using LBoL.EntityLib.StatusEffects.Enemy;
using LBoL.EntityLib.StatusEffects.ExtraTurn;
using LBoL.EntityLib.StatusEffects.Others;
using LBoL.Presentation;
using LBoL.Presentation.UI;
using LBoL.Presentation.UI.ExtraWidgets;
using LBoL.Presentation.UI.Panels;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using YuyukoCharacterMod.BattleActions;
using YuyukoCharacterMod.Cards;
using YuyukoCharacterMod.Cards.Template;
using YuyukoCharacterMod.GunName;
using YuyukoCharacterMod.ImageLoader;
using YuyukoCharacterMod.Localization;
using YuyukoCharacterMod.StatusEffects;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("LBoL.Base")]
[assembly: IgnoresAccessChecksTo("LBoL.ConfigData")]
[assembly: IgnoresAccessChecksTo("LBoL.Core")]
[assembly: IgnoresAccessChecksTo("LBoL.EntityLib")]
[assembly: IgnoresAccessChecksTo("LBoL.Presentation")]
[assembly: IgnoresAccessChecksTo("Untitled.ConfigDataBuilder.Base")]
[assembly: AssemblyCompany("YuyukoCharacterMod")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+4994d19a393b6ae392fc38dbb817690deedcc66e")]
[assembly: AssemblyProduct("YuyukoCharacterMod")]
[assembly: AssemblyTitle("YuyukoCharacterMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace YuyukoCharacterMod
{
	[BepInPlugin("rmrfmaxxc.lbol.YuyukoCharacterMod", "YuyukoCharacterMod", "0.0.4")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		public static string modUniqueID = "YuyukoCharacterMod";

		public static string playerName = "Yuyuko";

		public static bool useInGameModel = true;

		public static string modelName = "Yuyuko";

		public static bool modelIsFlipped = true;

		public static List<ManaColor> offColors = new List<ManaColor>
		{
			(ManaColor)2,
			(ManaColor)4
		};

		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("rmrfmaxxc.lbol.YuyukoCharacterMod", "");

		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();
			YuyukoCharacterLocalization.DiscoverAndLoad();
			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 = "rmrfmaxxc.lbol.YuyukoCharacterMod";

		public const string Name = "YuyukoCharacterMod";

		public const string version = "0.0.4";

		public static readonly Harmony harmony = new Harmony("rmrfmaxxc.lbol.YuyukoCharacterMod");
	}
	public class YuyukoCharacterLoadouts
	{
		public static string UltimateSkillA = "YuyukoCharacterUltA";

		public static string UltimateSkillB = "YuyukoCharacterUltB";

		public static string ExhibitA = "YuyukoCharacterExhibitA";

		public static string ExhibitB = "YuyukoCharacterExhibitB";

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

		public static List<string> DeckB = new List<string>
		{
			"Shoot", "Shoot", "Boundary", "Boundary", "YuyukoCharacterAttackW", "YuyukoCharacterAttackG", "YuyukoCharacterBlockB", "YuyukoCharacterBlockB", "YuyukoCharacterBlockB", "YuyukoCharacterButterflyDelusion",
			"YuyukoCharacterSwallowtailButterfly"
		};

		public static PlayerUnitConfig playerUnitConfig;

		static YuyukoCharacterLoadouts()
		{
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: 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_01a3: Expected O, but got Unknown
			string modUniqueID = BepinexPlugin.modUniqueID;
			int? num = 0;
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 1;
			((ManaGroup)(ref val)).Black = 2;
			((ManaGroup)(ref val)).Green = 1;
			playerUnitConfig = new PlayerUnitConfig(modUniqueID, 8, 0, num, "", "#aabccd", true, 78, val, 68, 0, UltimateSkillA, UltimateSkillB, ExhibitA, ExhibitB, (IReadOnlyList<string>)DeckA, (IReadOnlyList<string>)DeckB, 3, 2);
		}
	}
	public sealed class YuyukoCharacterPlayerDef : PlayerUnitTemplate
	{
		[EntityLogic(typeof(YuyukoCharacterPlayerDef))]
		public sealed class YuyukoCharacterMod : PlayerUnit
		{
			public GameEvent<MillEventArgs> Milling { get; } = new GameEvent<MillEventArgs>();


			public GameEvent<MillEventArgs> Milled { get; } = new GameEvent<MillEventArgs>();


			public GameEvent<ReflowerEventArgs> Reflowering { get; } = new GameEvent<ReflowerEventArgs>();


			public GameEvent<ReflowerEventArgs> Reflowered { get; } = new GameEvent<ReflowerEventArgs>();


			protected override void OnEnterBattle(BattleController battle)
			{
				((Unit)this).OnEnterBattle(battle);
				battle.ActionViewer.Register<MillCardAction>((BattleActionViewer<MillCardAction>)ViewMill, (Predicate<MillCardAction>)null);
				((Unit)this).ReactBattleEvent<CardUsingEventArgs>(((Unit)this).Battle.CardUsed, (Func<CardUsingEventArgs, IEnumerable<BattleAction>>)OnCardUsed);
			}

			private IEnumerator ViewMill(MillCardAction action)
			{
				CardUi ui = UiManager.GetPanel<PlayBoard>().CardUi;
				Card card = ((EventBattleAction<MillEventArgs>)action).Args.CardMilled;
				if ((int)action.TransitionType == 1)
				{
					Sequence s = DOTween.Sequence();
					HandCard cardWidget2 = ui.CreateHandWidget(card);
					Transform transform = ((Component)cardWidget2).transform;
					transform.position = ((Component)ui.discardZoneButton).transform.position;
					transform.localScale = new Vector3(0.2f, 0.2f);
					TweenSettingsExtensions.Join(s, (Tween)(object)ShortcutExtensions.DOScale(transform, Vector3.one, 0.3f));
					cardWidget2.IsDisappearing = false;
					cardWidget2.CardWidget.ShowManaHand = false;
					ui._specialReactingWidgets.Add(cardWidget2);
					cardWidget2.SpecialReacting = true;
					yield return (object)new WaitForSecondsRealtime(0.5f);
				}
				else if ((int)action.TransitionType == 2)
				{
					HandCard handCard3 = ((IEnumerable<HandCard>)ui._specialReactingWidgets).FirstOrDefault((Func<HandCard, bool>)((HandCard w) => w.Card == card));
					if ((Object)(object)handCard3 != (Object)null)
					{
						ui._specialReactingWidgets.Remove(handCard3);
						yield return ui.MoveCardToDiscard(handCard3, (int)((BattleAction)action).Cause != 13);
					}
					else
					{
						Debug.Log((object)("[CardUi] Discarding '" + ((GameEntity)card).DebugName + "' special reacted: widget not found."));
					}
				}
			}

			private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
			{
				if (!((Unit)this).Battle.BattleShouldEnd)
				{
					yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoCharacterButterflySe>((Unit)(object)((Unit)this).Battle.Player, (int?)1, (int?)0, (int?)0, (int?)0, 0.2f, true);
				}
			}
		}

		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)YuyukoCharacterLocalization.PlayerUnitBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

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

		public override PlayerUnitConfig MakeConfig()
		{
			return YuyukoCharacterLoadouts.playerUnitConfig;
		}
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace YuyukoCharacterMod.YuyukoCharacterUlt
{
	public sealed class YuyukoCharacterUltADef : YuyukoCharacterUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 12;
			defaulUltConfig.Value1 = 3;
			defaulUltConfig.Value2 = 3;
			defaulUltConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "Weak", "Vulnerable" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterUltADef))]
	public sealed class YuyukoCharacterUltA : UltimateSkill
	{
		public YuyukoCharacterUltA()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4001);
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			EnemyUnit enemy = selector.GetEnemy(((UltimateSkill)this).Battle);
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)enemy, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
			if (!((UltimateSkill)this).Battle.BattleShouldEnd)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoCharacterButterflySe>((Unit)(object)((UltimateSkill)this).Battle.Player, (int?)((UltimateSkill)this).Value1, (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
			if (((Unit)enemy).IsAlive)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Weak>((Unit)(object)enemy, (int?)0, (int?)((UltimateSkill)this).Value2, (int?)0, (int?)0, 0.2f, true);
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Vulnerable>((Unit)(object)enemy, (int?)0, (int?)((UltimateSkill)this).Value2, (int?)0, (int?)0, 0.2f, true);
			}
		}
	}
	public sealed class YuyukoCharacterUltBDef : YuyukoCharacterUltTemplate
	{
		public override UltimateSkillConfig MakeConfig()
		{
			UltimateSkillConfig defaulUltConfig = GetDefaulUltConfig();
			defaulUltConfig.Damage = 20;
			defaulUltConfig.Value1 = 2;
			defaulUltConfig.Value2 = 5;
			defaulUltConfig.RelativeCards = new List<string> { "YuyukoCharacterGhostlyButterfly" };
			return defaulUltConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterUltBDef))]
	public sealed class YuyukoCharacterUltB : UltimateSkill
	{
		public YuyukoCharacterUltB()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = GunNameID.GetGunFromId(4001);
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			EnemyUnit enemy = selector.GetEnemy(((UltimateSkill)this).Battle);
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)enemy, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
			if (!((UltimateSkill)this).Battle.BattleShouldEnd)
			{
				yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)Library.CreateCards<YuyukoCharacterGhostlyButterfly>(((UltimateSkill)this).Value1, false), (DrawZoneTarget)0, (AddCardsType)0);
				yield return (BattleAction)(object)new MillCardsAction(((UltimateSkill)this).Value2);
			}
		}
	}
	public class YuyukoCharacterUltTemplate : 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(YuyukoCharacterDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public UltimateSkillConfig GetDefaulUltConfig()
		{
			return YuyukoCharacterDefaultConfig.GetDefaultUltConfig();
		}
	}
}
namespace YuyukoCharacterMod.StatusEffects
{
	public sealed class YuyukoCharacterAncientPlaceOfDeathSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterAncientPlaceOfDeathSeDef))]
	public sealed class YuyukoCharacterAncientPlaceOfDeathSe : StatusEffect
	{
		private string GunName => GunNameID.GetGunFromId(502);

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<DieEventArgs>(((StatusEffect)this).Battle.EnemyDied, (EventSequencedReactor<DieEventArgs>)OnEnemyDied);
		}

		private IEnumerable<BattleAction> OnEnemyDied(DieEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd && ((StatusEffect)this).Battle.EnemyGroup.Alives != null)
			{
				int damageToDeal = args.Unit.MaxHp * ((StatusEffect)this).Level;
				<>n__0();
				yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (IEnumerable<Unit>)((StatusEffect)this).Battle.EnemyGroup.Alives, DamageInfo.Reaction((float)damageToDeal, false), GunName, (GunType)0);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterBriefInLifeSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterBriefInLifeSeDef))]
	public sealed class YuyukoCharacterBriefInLifeSe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterButterflySeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterButterflySeDef))]
	public sealed class YuyukoCharacterButterflySe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterDanceOfTheDeadButterfliesSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe", "YuyukoCharacterDeathSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDanceOfTheDeadButterfliesSeDef))]
	public sealed class YuyukoCharacterDanceOfTheDeadButterfliesSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<MillEventArgs>(yuyukoCharacterMod.Milled, (EventSequencedReactor<MillEventArgs>)OnMilled);
			}
		}

		private IEnumerable<BattleAction> OnMilled(MillEventArgs args)
		{
			<>n__0();
			foreach (BattleAction item in ((StatusEffect)this).DebuffAction<YuyukoDeath>((IEnumerable<Unit>)((StatusEffect)this).Battle.AllAliveEnemies, ((StatusEffect)this).Level, 0, 0, 0, true, 0.2f))
			{
				yield return item;
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterDeadButterflySeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeadButterflySeDef))]
	public sealed class YuyukoCharacterDeadButterflySe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle == null || ((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			<>n__0();
			foreach (BattleAction item in ((StatusEffect)this).DebuffAction<YuyukoDeath>((IEnumerable<Unit>)((StatusEffect)this).Battle.AllAliveEnemies, ((StatusEffect)this).Level, 0, 0, 0, true, 0.2f))
			{
				yield return item;
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterDeepRootedButterflySeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeepRootedButterflySeDef))]
	public sealed class YuyukoCharacterDeepRootedButterflySe : 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>)OnOwnerTurnStarted);
		}

		private IEnumerable<BattleAction> OnDamageReceived(DamageEventArgs args)
		{
			int num;
			if (args.Source != ((StatusEffect)this).Owner && args.Source.IsAlive)
			{
				DamageInfo damageInfo = args.DamageInfo;
				if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2)
				{
					damageInfo = args.DamageInfo;
					num = ((((DamageInfo)(ref damageInfo)).Amount > 0f) ? 1 : 0);
					goto IL_0080;
				}
			}
			num = 0;
			goto IL_0080;
			IL_0080:
			if (num != 0)
			{
				<>n__0();
				yield return ((StatusEffect)this).DebuffAction<YuyukoDeath>(args.Source, ((StatusEffect)this).Level, 0, 0, 0, true, 0.2f);
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(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 YuyukoCharacterEndlessCherryBlossomsSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterEndlessCherryBlossomsSeDef))]
	public sealed class YuyukoCharacterEndlessCherryBlossomsSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			for (int i = 0; i < ((StatusEffect)this).Level; i++)
			{
				Card card = (Card)(object)Library.CreateCard<YuyukoCharacterGhostlyButterfly>();
				card.IsReplenish = true;
				yield return (BattleAction)new AddCardsToDrawZoneAction((IEnumerable<Card>)(object)new Card[1] { card }, (DrawZoneTarget)2, (AddCardsType)0);
			}
		}
	}
	public sealed class YuyukoCharacterEndlessEveningSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterEndlessEveningSeDef))]
	public sealed class YuyukoCharacterEndlessEveningSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<ReflowerEventArgs>(yuyukoCharacterMod.Reflowered, (EventSequencedReactor<ReflowerEventArgs>)OnReflower);
			}
		}

		private IEnumerable<BattleAction> OnReflower(ReflowerEventArgs args)
		{
			for (int i = 0; i < ((StatusEffect)this).Level; i++)
			{
				List<Card> list = ((StatusEffect)this).Battle.HandZone.Where((Card card) => card.CanUpgrade && !card.IsUpgraded).ToList();
				if (list.Count > 0)
				{
					Card card2 = CollectionsExtensions.Sample<Card>((IEnumerable<Card>)list, ((GameEntity)this).GameRun.BattleRng);
					<>n__0();
					yield return (BattleAction)new UpgradeCardAction(card2);
				}
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnEnded(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 YuyukoCharacterFeastOfLingeringRegretsSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterFeastOfLingeringRegretsSeDef))]
	public sealed class YuyukoCharacterFeastOfLingeringRegretsSe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterFlowerButterflyWindMoonSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterFlowerButterflyWindMoonSeDef))]
	public sealed class YuyukoCharacterFlowerButterflyWindMoonSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle != null && !((StatusEffect)this).Battle.BattleShouldEnd)
			{
				<>n__0();
				yield return (BattleAction)(object)new MillCardsAction(((StatusEffect)this).Level);
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				((StatusEffect)this).Count = 0;
			}
			yield break;
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterDeathSeDef : YuyukoCharacterStatusEffectTemplate
	{
	}
	[EntityLogic(typeof(YuyukoCharacterDeathSeDef))]
	public sealed class YuyukoCharacterDeathSe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterMillKeywordSeDef : YuyukoCharacterStatusEffectTemplate
	{
	}
	[EntityLogic(typeof(YuyukoCharacterMillKeywordSeDef))]
	public sealed class YuyukoCharacterMillKeywordSe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterReflowerKeywordSeDef : YuyukoCharacterStatusEffectTemplate
	{
	}
	[EntityLogic(typeof(YuyukoCharacterReflowerKeywordSeDef))]
	public sealed class YuyukoCharacterReflowerKeywordSe : StatusEffect
	{
	}
	public sealed class YuyukoCharacterLandOfDeathSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterLandOfDeathSeDef))]
	public sealed class YuyukoCharacterLandOfDeathSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<MillEventArgs>(yuyukoCharacterMod.Milled, (EventSequencedReactor<MillEventArgs>)OnMilled);
			}
		}

		private IEnumerable<BattleAction> OnMilled(MillEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new CastBlockShieldAction(((StatusEffect)this).Owner, ((StatusEffect)this).Level, 0, (BlockShieldType)1, true);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterLightTrapOfPassingAwaySeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe" };
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterLightTrapOfPassingAwaySeDef))]
	public sealed class YuyukoCharacterLightTrapOfPassingAwaySe : StatusEffect
	{
		public ManaGroup ManaCost
		{
			get
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0013: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				ManaGroup result = default(ManaGroup);
				((ManaGroup)(ref result)).Any = 0;
				return result;
			}
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<CardUsingEventArgs>(((StatusEffect)this).Battle.CardUsed, (EventSequencedReactor<CardUsingEventArgs>)OnCardUsed);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
		}

		private IEnumerable<BattleAction> OnCardUsed(CardUsingEventArgs args)
		{
			if (((StatusEffect)this).Count < ((StatusEffect)this).Level)
			{
				Card card2 = args.Card;
				YuyukoCharacterCard yCard = card2 as YuyukoCharacterCard;
				if (yCard?.IsReflower ?? false)
				{
					<>n__0();
					List<Card> list = new List<Card>();
					Card card = ((Card)yCard).CloneBattleCard();
					card.SetTurnCost(ManaCost);
					card.IsExile = true;
					card.IsEthereal = true;
					list.Add(card);
					yield return (BattleAction)new AddCardsToHandAction((IEnumerable<Card>)list, (AddCardsType)0);
					((StatusEffect)this).Count = ((StatusEffect)this).Count + 1;
				}
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				((StatusEffect)this).Count = 0;
			}
			yield break;
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterNetherworldMysterySpotSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe" };
			defaultStatusEffectConfig.HasCount = true;
			defaultStatusEffectConfig.CountStackType = (StackType)0;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterNetherworldMysterySpotSeDef))]
	public sealed class YuyukoCharacterNetherworldMysterySpotSe : StatusEffect
	{
		private string GunName => GunNameID.GetGunFromId(863);

		private bool Reflower(int consume = 1)
		{
			if (consume <= 0)
			{
				throw new InvalidOperationException("Card: " + ((GameEntity)this).Name + " is trying to overdrive with consume blow zero.");
			}
			YuyukoCharacterButterflySe statusEffect = ((StatusEffect)this).Owner.GetStatusEffect<YuyukoCharacterButterflySe>();
			return statusEffect != null && ((StatusEffect)statusEffect).Level >= consume;
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd && ((StatusEffect)this).Battle.EnemyGroup.Alives != null && Reflower(((StatusEffect)this).Count))
			{
				<>n__0();
				yield return (BattleAction)(object)new ReflowerAction(((StatusEffect)this).Count);
				yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (IEnumerable<Unit>)((StatusEffect)this).Battle.EnemyGroup.Alives, DamageInfo.Reaction((float)((StatusEffect)this).Level, false), GunName, (GunType)0);
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args)
		{
			yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoCharacterButterflySe>(((StatusEffect)this).Owner, (int?)((StatusEffect)this).Count, (int?)0, (int?)0, (int?)0, 0.2f, true);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterRefloweringSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe", "Firepower", "Spirit" };
			defaultStatusEffectConfig.HasCount = true;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterRefloweringSeDef))]
	public sealed class YuyukoCharacterRefloweringSe : StatusEffect
	{
		public int ButterflyThreshold = 10;

		public int ButterflyAmount = 5;

		public int WhiteManaThreshold = 20;

		public int FirepowerThreshold = 30;

		public int FirepowerAmount = 2;

		public int GreenManaThreshold = 50;

		public int SpiritThreshold = 80;

		public int SpiritAmount = 2;

		public int DoubleDamageThreshold = 100;

		public int DoubleDamageAmount = 2;

		public ManaGroup ManaWhite;

		public ManaGroup ManaBlack;

		public ManaGroup ManaGreen;

		public int DamageRate { get; set; } = 2;


		public ManaGroup Mana
		{
			get
			{
				//IL_0003: Unknown result type (might be due to invalid IL or missing references)
				//IL_0055: Unknown result type (might be due to invalid IL or missing references)
				//IL_0056: 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)
				ManaGroup result = default(ManaGroup);
				((ManaGroup)(ref result)).White = ((((StatusEffect)this).Count >= WhiteManaThreshold) ? ((StatusEffect)this).Level : 0);
				((ManaGroup)(ref result)).Black = ((StatusEffect)this).Level;
				((ManaGroup)(ref result)).Green = ((((StatusEffect)this).Count >= GreenManaThreshold) ? ((StatusEffect)this).Level : 0);
				return result;
			}
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
			((StatusEffect)this).HandleOwnerEvent<DamageDealingEventArgs>(unit.DamageDealing, (GameEventHandler<DamageDealingEventArgs>)OnDamageDealing);
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<ReflowerEventArgs>(yuyukoCharacterMod.Reflowered, (EventSequencedReactor<ReflowerEventArgs>)OnReflower);
			}
		}

		private void OnDamageDealing(DamageDealingEventArgs args)
		{
			//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_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Invalid comparison between Unknown and I4
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: 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_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Invalid comparison between Unknown and I4
			if (((StatusEffect)this).Count < DoubleDamageThreshold)
			{
				return;
			}
			DamageInfo damageInfo = args.DamageInfo;
			if ((int)((DamageInfo)(ref damageInfo)).DamageType == 2)
			{
				damageInfo = args.DamageInfo;
				args.DamageInfo = ((DamageInfo)(ref damageInfo)).MultiplyBy(DamageRate + ((StatusEffect)this).Level - 1);
				((GameEventArgs)args).AddModifier((GameEntity)(object)this);
				if ((int)((GameEventArgs)args).Cause != 20)
				{
					((StatusEffect)this).NotifyActivating();
				}
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new GainManaAction(Mana);
			if (((StatusEffect)this).Count >= ButterflyThreshold)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoCharacterButterflySe>(((StatusEffect)this).Owner, (int?)(((StatusEffect)this).Level * ButterflyAmount), (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
			if (((StatusEffect)this).Count >= FirepowerThreshold)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)(((StatusEffect)this).Level * FirepowerAmount), (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
			if (((StatusEffect)this).Count >= SpiritThreshold)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<Spirit>(((StatusEffect)this).Owner, (int?)(((StatusEffect)this).Level * SpiritAmount), (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
		}

		private IEnumerable<BattleAction> OnReflower(ReflowerEventArgs args)
		{
			if (((StatusEffect)this).Count != 100)
			{
				if (((StatusEffect)this).Count + args.Consume > 100)
				{
					((StatusEffect)this).Count = 100;
				}
				else
				{
					((StatusEffect)this).Count = ((StatusEffect)this).Count + args.Consume;
				}
			}
			yield break;
		}

		public YuyukoCharacterRefloweringSe()
		{
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: 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)
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 1;
			ManaWhite = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			ManaBlack = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Green = 1;
			ManaGreen = val;
			((StatusEffect)this)..ctor();
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterRepositoryOfHirokawaSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterRepositoryOfHirokawaSeDef))]
	public sealed class YuyukoCharacterRepositoryOfHirokawaSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<ReflowerEventArgs>(yuyukoCharacterMod.Reflowered, (EventSequencedReactor<ReflowerEventArgs>)OnReflower);
			}
		}

		private IEnumerable<BattleAction> OnReflower(ReflowerEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new CastBlockShieldAction(((StatusEffect)this).Owner, 0, ((StatusEffect)this).Level, (BlockShieldType)1, true);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterSaigyoujiParinirvanaSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			return YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
		}
	}
	[EntityLogic(typeof(YuyukoCharacterSaigyoujiParinirvanaSeDef))]
	public sealed class YuyukoCharacterSaigyoujiParinirvanaSe : StatusEffect
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnEnded, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnEnded);
		}

		private IEnumerable<BattleAction> OnOwnerTurnEnded(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle != null && !((StatusEffect)this).Battle.BattleShouldEnd)
			{
				<>n__0();
				yield return (BattleAction)(object)new TriggerLawOfMortalityAction(((StatusEffect)this).Level);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public class YuyukoCharacterStatusEffectTemplate : 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(YuyukoCharacterDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public static StatusEffectConfig GetDefaultStatusEffectConfig()
		{
			return YuyukoCharacterDefaultConfig.GetDefaultStatusEffectConfig();
		}
	}
	public sealed class YuyukoCharacterWeepingHiganSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			defaultStatusEffectConfig.Order = 5;
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterWeepingHiganSeDef))]
	public sealed class YuyukoCharacterWeepingHiganSe : StatusEffect
	{
		public string GunName => GunNameID.GetGunFromId(862);

		public int DamageTaken { get; set; } = 0;


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

		private void OnPlayerDamageTaking(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_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_0047: Unknown result type (might be due to invalid IL or missing references)
			if ((int)((GameEventArgs)args).Cause == 7)
			{
				DamageInfo damageInfo = args.DamageInfo;
				DamageTaken = MathExtensions.RoundToInt(((DamageInfo)(ref damageInfo)).Damage);
				if (DamageTaken > 0)
				{
					((StatusEffect)this).NotifyActivating();
					args.DamageInfo = ((DamageInfo)(ref damageInfo)).ReduceActualDamageBy(DamageTaken);
					((GameEventArgs)args).AddModifier((GameEntity)(object)this);
				}
			}
		}

		private IEnumerable<BattleAction> OnPlayerDamageReceived(DamageEventArgs args)
		{
			if ((int)((GameEventArgs)args).Cause == 7 && DamageTaken > 0)
			{
				<>n__0();
				yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (IEnumerable<Unit>)((StatusEffect)this).Battle.AllAliveEnemies, DamageInfo.HpLose((float)DamageTaken * (float)((StatusEffect)this).Level, false), GunName, (GunType)0);
				DamageTaken = 0;
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterYoumuFriendSeDef : YuyukoCharacterStatusEffectTemplate
	{
		public override StatusEffectConfig MakeConfig()
		{
			StatusEffectConfig defaultStatusEffectConfig = YuyukoCharacterStatusEffectTemplate.GetDefaultStatusEffectConfig();
			defaultStatusEffectConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			return defaultStatusEffectConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterYoumuFriendSeDef))]
	public sealed class YuyukoCharacterYoumuFriendSe : StatusEffect
	{
		public string GunName => GunNameID.GetGunFromId(520);

		protected override void OnAdded(Unit unit)
		{
			if (((StatusEffect)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((StatusEffect)this).ReactOwnerEvent<MillEventArgs>(yuyukoCharacterMod.Milled, (EventSequencedReactor<MillEventArgs>)OnMilled);
			}
		}

		private IEnumerable<BattleAction> OnMilled(MillEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new DamageAction(((StatusEffect)this).Owner, (IEnumerable<Unit>)((StatusEffect)this).Battle.AllAliveEnemies, DamageInfo.Reaction((float)((StatusEffect)this).Level, false), GunName, (GunType)0);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
}
namespace YuyukoCharacterMod.model
{
	public sealed class YuyukoCharacterModel : UnitModelTemplate
	{
		public static bool useInGameModel = BepinexPlugin.useInGameModel;

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

		public static string spellsprite_name = "YuyukoCharacterStand.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 YuyukoCharacterPlayerDef()).UniqueId;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)YuyukoCharacterLocalization.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.modelIsFlipped;
				return val;
			}
			UnitModelConfig val2 = ObjectExtensions.Copy<UnitModelConfig>(((UnitModelTemplate)this).DefaultConfig());
			val2.Flip = BepinexPlugin.modelIsFlipped;
			val2.Type = 0;
			val2.Offset = new Vector2(0f, -0.1f);
			val2.HasSpellPortrait = true;
			return val2;
		}
	}
}
namespace YuyukoCharacterMod.Localization
{
	public sealed class YuyukoCharacterLocalization
	{
		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 DiscoverAndLoad()
		{
			CardsBatchLoc.DiscoverAndLoadLocFiles(Cards);
			ExhibitsBatchLoc.DiscoverAndLoadLocFiles(Exhibits);
			PlayerUnitBatchLoc.DiscoverAndLoadLocFiles(PlayerUnit);
			UnitModelBatchLoc.DiscoverAndLoadLocFiles(UnitModel);
			UltimateSkillsBatchLoc.DiscoverAndLoadLocFiles(UltimateSkills);
			StatusEffectsBatchLoc.DiscoverAndLoadLocFiles(StatusEffects);
		}
	}
}
namespace YuyukoCharacterMod.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 YuyukoCharacterMod.Exhibits
{
	public sealed class YuyukoCharacterExhibitADef : YuyukoCharacterExhibitTemplate
	{
		public override ExhibitConfig MakeConfig()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			ExhibitConfig defaultExhibitConfig = GetDefaultExhibitConfig();
			defaultExhibitConfig.Value1 = 12;
			defaultExhibitConfig.Value2 = 3;
			defaultExhibitConfig.HasCounter = true;
			ManaGroup value = default(ManaGroup);
			((ManaGroup)(ref value)).White = 1;
			defaultExhibitConfig.Mana = value;
			defaultExhibitConfig.BaseManaColor = (ManaColor)1;
			defaultExhibitConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe" };
			return defaultExhibitConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterExhibitADef))]
	public sealed class YuyukoCharacterExhibitA : ShiningExhibit
	{
		protected override void OnEnterBattle()
		{
			((Exhibit)this).Counter = 0;
			((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			if (((Exhibit)this).Battle.Player is YuyukoCharacterPlayerDef.YuyukoCharacterMod yuyukoCharacterMod)
			{
				((Exhibit)this).ReactBattleEvent<ReflowerEventArgs>(yuyukoCharacterMod.Reflowered, (EventSequencedReactor<ReflowerEventArgs>)OnReflower);
			}
		}

		private IEnumerable<BattleAction> OnReflower(ReflowerEventArgs args)
		{
			int value;
			for (value = ((Exhibit)this).Counter + args.Consume; value > ((Exhibit)this).Value1; value -= ((Exhibit)this).Value1)
			{
				yield return (BattleAction)new GainManaAction(((Exhibit)this).Mana);
			}
			((Exhibit)this).Counter = value;
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			if (((Unit)((Exhibit)this).Battle.Player).TurnCounter == 1)
			{
				<>n__0();
				yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoCharacterButterflySe>((Unit)(object)((Exhibit)this).Battle.Player, (int?)((Exhibit)this).Value2, (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
		}

		protected override void OnLeaveBattle()
		{
			((Exhibit)this).Counter = 0;
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Exhibit)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterExhibitBDef : YuyukoCharacterExhibitTemplate
	{
		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 = 2;
			defaultExhibitConfig.Value2 = 4;
			ManaGroup value = default(ManaGroup);
			((ManaGroup)(ref value)).Green = 1;
			defaultExhibitConfig.Mana = value;
			defaultExhibitConfig.BaseManaColor = (ManaColor)5;
			defaultExhibitConfig.RelativeEffects = new List<string>();
			return defaultExhibitConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterExhibitBDef))]
	public sealed class YuyukoCharacterExhibitB : ShiningExhibit
	{
		protected override void OnEnterBattle()
		{
			((Exhibit)this).ReactBattleEvent<UnitEventArgs>(((Unit)((Exhibit)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarted);
			((Exhibit)this).ReactBattleEvent<GameEventArgs>(((Exhibit)this).Battle.Reshuffled, (EventSequencedReactor<GameEventArgs>)OnReshuffled);
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			if (((Unit)((Exhibit)this).Battle.Player).TurnCounter != 1)
			{
				yield break;
			}
			<>n__0();
			foreach (EnemyUnit enemy in ((Exhibit)this).Battle.AllAliveEnemies)
			{
				yield return (BattleAction)(object)new ApplyStatusEffectAction<YuyukoDeath>((Unit)(object)enemy, (int?)((Exhibit)this).Value1, (int?)0, (int?)0, (int?)0, 0.2f, true);
			}
		}

		private IEnumerable<BattleAction> OnReshuffled(GameEventArgs args)
		{
			<>n__0();
			yield return (BattleAction)new CastBlockShieldAction((Unit)(object)((Exhibit)this).Owner, (Unit)(object)((Exhibit)this).Owner, ((Exhibit)this).Value2, 0, (BlockShieldType)1, true);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Exhibit)this).NotifyActivating();
		}
	}
	public class YuyukoCharacterExhibitTemplate : 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(YuyukoCharacterDefaultConfig.GetDefaultID((EntityDefinition)(object)this));
		}

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

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

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

		public ExhibitConfig GetDefaultExhibitConfig()
		{
			return YuyukoCharacterDefaultConfig.GetDefaultExhibitConfig();
		}
	}
}
namespace YuyukoCharacterMod.ImageLoader
{
	public sealed class YuyukoCharacterDefaultConfig
	{
		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 YuyukoCharacterImageLoader
	{
		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 YuyukoCharacterMod.Cards
{
	public sealed class YuyukoCharacterDeadlyDanceDef : YuyukoCharacterCardTemplate
	{
		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(4004);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 12;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Illustrator = "@ruju_amn";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeadlyDanceDef))]
	public sealed class YuyukoCharacterDeadlyDance : YuyukoCharacterCard
	{
		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).AttackAction(selector, ((Card)this).GunName);
			if (((Unit)selector.SelectedEnemy).IsAlive && !((Card)this).Battle.BattleShouldEnd)
			{
				yield return ((Card)this).DebuffAction<YuyukoDeath>((Unit)(object)selector.SelectedEnemy, ((Card)this).Value1, 0, 0, 0, true, 0.2f);
			}
			if (!((Card)this).Battle.BattleShouldEnd && ((Card)this).IsUpgraded)
			{
				yield return (BattleAction)(object)new TriggerLawOfMortalityAction();
			}
		}
	}
	public sealed class YuyukoCharacterDeepRootedButterflyDef : YuyukoCharacterCardTemplate
	{
		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 = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 17;
			cardDefaultConfig.UpgradedBlock = 23;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.UpgradedValue1 = 2;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Illustrator = "モ誰";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeepRootedButterflyDef))]
	public sealed class YuyukoCharacterDeepRootedButterfly : YuyukoCharacterCard
	{
		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<YuyukoCharacterDeepRootedButterflySe>(((Card)this).Value1, 0, 0, 0, 0.2f);
		}
	}
	public sealed class YuyukoCharacterPastSinDef : YuyukoCharacterCardTemplate
	{
		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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 0;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Value1 = 4;
			cardDefaultConfig.UpgradedValue1 = 5;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Illustrator = "たるつ";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterPastSinDef))]
	public sealed class YuyukoCharacterPastSin : YuyukoCharacterCard
	{
		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<YuyukoDeath>((Unit)(object)selector.SelectedEnemy, ((Card)this).Value1, 0, 0, 0, true, 0.2f);
			yield return (BattleAction)(object)new TriggerLawOfMortalityAction();
		}
	}
	public sealed class YuyukoCharacterBlockBDef : YuyukoCharacterCardTemplate
	{
		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_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.IsPooled = false;
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 2;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 10;
			cardDefaultConfig.UpgradedBlock = 13;
			cardDefaultConfig.Keywords = (Keyword)2;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2;
			cardDefaultConfig.Illustrator = "@fujimori_shiki";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterBlockBDef))]
	public sealed class YuyukoCharacterBlockB : YuyukoCharacterCard
	{
	}
	public sealed class YuyukoCharacterDeathOfOnesHomeDef : YuyukoCharacterCardTemplate
	{
		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_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 0;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.Value2 = 5;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 3;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Keywords = (Keyword)131072;
			cardDefaultConfig.UpgradedKeywords = (Keyword)131072;
			cardDefaultConfig.Illustrator = "kumatangent";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeathOfOnesHomeDef))]
	public sealed class YuyukoCharacterDeathOfOnesHome : YuyukoCharacterCard
	{
		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);
			yield return (BattleAction)new DrawManyCardAction(((Card)this).Value1);
			yield return ((Card)this).DebuffAction<NextTurnLoseHp>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value2, 0, 0, 0, true, 0.2f);
		}
	}
	public sealed class YuyukoCharacterSaigyoujiParinirvanaDef : YuyukoCharacterCardTemplate
	{
		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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 2;
			((ManaGroup)(ref val)).Black = 2;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.Illustrator = "kumatangent";
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterSaigyoujiParinirvanaDef))]
	public sealed class YuyukoCharacterSaigyoujiParinirvana : YuyukoCharacterCard
	{
		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<YuyukoCharacterSaigyoujiParinirvanaSe>(((Card)this).Value1, 0, 0, 0, 0.2f);
		}
	}
	public sealed class YuyukoCharacterTemptationOfTheNextWorldDef : YuyukoCharacterCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0030: 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_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(4003);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Black = 2;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.IsXCost = true;
			cardDefaultConfig.Rarity = (Rarity)2;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 8;
			cardDefaultConfig.UpgradedDamage = 10;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.Value2 = 1;
			cardDefaultConfig.UpgradedValue2 = 2;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Illustrator = "cheeseroll8443";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterTemptationOfTheNextWorldDef))]
	public sealed class YuyukoCharacterTemptationOfTheNextWorld : YuyukoCharacterCard
	{
		private readonly int _value3 = 2;

		private readonly int _upgradedValue3 = 2;

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

		protected override int AdditionalValue2
		{
			get
			{
				//IL_001d: 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_0024: Unknown result type (might be due to invalid IL or missing references)
				if (((Card)this).PendingManaUsage.HasValue)
				{
					ManaGroup valueOrDefault = ((Card)this).PendingManaUsage.GetValueOrDefault();
					return ((Card)this).SynergyAmount(valueOrDefault, (ManaColor)0, 1) * Value3;
				}
				return 0;
			}
		}

		public override ManaGroup GetXCostFromPooled(ManaGroup pooledMana)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return pooledMana;
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			((Card)this).CardGuns = new Guns(((Card)this).GunName, ((Card)this).Value1, false);
			foreach (GunPair gunPair in ((Card)this).CardGuns.GunPairs)
			{
				yield return ((Card)this).AttackAction(selector, gunPair);
			}
			if (((Unit)selector.SelectedEnemy).IsAlive && !((Card)this).Battle.BattleShouldEnd)
			{
				yield return ((Card)this).DebuffAction<YuyukoDeath>((Unit)(object)selector.SelectedEnemy, ((Card)this).Value2, 0, 0, 0, true, 0.2f);
			}
		}
	}
	public sealed class YuyukoCharacterBewildermentDef : YuyukoCharacterCardTemplate
	{
		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 = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)2;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Block = 12;
			cardDefaultConfig.UpgradedBlock = 16;
			cardDefaultConfig.Value1 = 4;
			cardDefaultConfig.Value2 = 3;
			cardDefaultConfig.UpgradedValue2 = 4;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe", "TempFirepowerNegative" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterButterflySe", "YuyukoCharacterReflowerKeywordSe", "TempFirepowerNegative" };
			cardDefaultConfig.Illustrator = "@yanagi_marie";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterBewildermentDef))]
	public sealed class YuyukoCharacterBewilderment : YuyukoCharacterCard
	{
		public override bool IsReflower { get; } = true;


		public override int ReflowerCost => ((Card)this).Value1;

		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 (Reflower(ReflowerCost))
			{
				yield return (BattleAction)(object)new ReflowerAction(ReflowerCost);
				yield return ((Card)this).DefenseAction(true);
				foreach (BattleAction item in ((Card)this).DebuffAction<TempFirepowerNegative>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value2, 0, 0, 0, true, 0.2f))
				{
					yield return item;
				}
			}
			else
			{
				yield return ((Card)this).DefenseAction(true);
			}
		}
	}
	public sealed class YuyukoCharacterDeadButterflyDef : YuyukoCharacterCardTemplate
	{
		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 = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)4;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 3;
			cardDefaultConfig.Illustrator = "ぷっち";
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterDeadButterflyDef))]
	public sealed class YuyukoCharacterDeadButterfly : YuyukoCharacterCard
	{
		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).Battle != null && !((Card)this).Battle.BattleShouldEnd)
			{
				foreach (BattleAction item in ((Card)this).DebuffAction<YuyukoDeath>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.2f))
				{
					yield return item;
				}
			}
			yield return ((Card)this).BuffAction<YuyukoCharacterDeadButterflySe>(((Card)this).Value1, 0, 0, 0, 0.2f);
		}
	}
	public sealed class YuyukoCharacterFoolishBurialDef : YuyukoCharacterCardTemplate
	{
		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)).Any = 0;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 1;
			cardDefaultConfig.UpgradedKeywords = (Keyword)2097152;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			cardDefaultConfig.Illustrator = "飛者@秋例 ぬ09ab";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterFoolishBurialDef))]
	public sealed class YuyukoCharacterFoolishBurial : YuyukoCharacterCard
	{
		public override Interaction Precondition()
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected O, but got Unknown
			List<Card> list = ((Card)this).Battle.DrawZone.ToList();
			if (list.Count <= 0)
			{
				return null;
			}
			return (Interaction)new SelectHandInteraction(0, ((Card)this).Value1, (IEnumerable<Card>)list);
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			if (precondition == null)
			{
				yield break;
			}
			IReadOnlyList<Card> cards = ((SelectHandInteraction)precondition).SelectedCards;
			if (cards.Count <= 0)
			{
				yield break;
			}
			foreach (Card card in cards)
			{
				yield return (BattleAction)new MoveCardToDrawZoneAction(card, (DrawZoneTarget)0);
				yield return (BattleAction)(object)new MillCardsAction();
			}
		}
	}
	public sealed class YuyukoCharacterInkBlackCherryBlossomDef : YuyukoCharacterCardTemplate
	{
		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_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.GunName = GunNameID.GetGunFromId(4002);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 3;
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.Cost = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 2;
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.UpgradedCost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Damage = 15;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.Value2 = 5;
			cardDefaultConfig.Illustrator = "ファルケン@リクエスト受付中";
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterInkBlackCherryBlossomDef))]
	public sealed class YuyukoCharacterInkBlackCherryBlossom : YuyukoCharacterCard
	{
		private int _milledThisCombat = 0;

		public override bool IsMill { get; } = true;


		public override IEnumerable<BattleAction> OnMill()
		{
			if (((Card)this).Battle != null && !((Card)this).Battle.BattleShouldEnd)
			{
				<>n__0();
				yield return (BattleAction)(object)new TriggerLawOfMortalityAction();
			}
		}

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

		private IEnumerable<BattleAction> OnBattleEnding(GameEventArgs args)
		{
			_milledThisCombat = 0;
			yield break;
		}

		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).AttackAction(selector, ((Card)this).GunName);
			if (((Card)this).Battle == null || ((Card)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			foreach (BattleAction item in ((Card)this).DebuffAction<YuyukoDeath>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.2f))
			{
				yield return item;
			}
			yield return (BattleAction)(object)new TriggerLawOfMortalityAction();
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Card)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterLostAgainDef : YuyukoCharacterCardTemplate
	{
		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_0078: 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)
			CardConfig cardDefaultConfig = GetCardDefaultConfig();
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 1;
			((ManaGroup)(ref val)).Black = 1;
			cardDefaultConfig.Cost = val;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)0;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.UpgradedValue1 = 3;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 0;
			cardDefaultConfig.Mana = val;
			cardDefaultConfig.Illustrator = "Unlike-";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterLostAgainDef))]
	public sealed class YuyukoCharacterLostAgain : YuyukoCharacterCard
	{
		private ManaGroup _manaWhite { get; set; }

		public ManaGroup ManaWhite => _manaWhite;

		private ManaGroup _manaGreen { get; set; }

		public ManaGroup ManaGreen => _manaGreen;

		public ManaGroup ManaToGain { get; set; }

		public override bool Triggered => ((Card)this).Battle != null && ((Card)this).Battle.BattleCardUsageHistory.Count != 0 && (((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)1) || ((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)5));

		protected override string GetBaseDescription()
		{
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			if (((Card)this).Battle != null && ((Card)this).Battle.BattleCardUsageHistory.Count != 0)
			{
				if (((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)1) || ((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)5))
				{
					int white = (((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)1) ? 1 : 0);
					int green = (((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)5) ? 1 : 0);
					ManaGroup manaToGain = default(ManaGroup);
					((ManaGroup)(ref manaToGain)).White = white;
					((ManaGroup)(ref manaToGain)).Green = green;
					ManaToGain = manaToGain;
				}
				else
				{
					ManaToGain = ((Card)this).Mana;
				}
				((GameEntity)this).NotifyChanged();
			}
			return ((Card)this).GetBaseDescription();
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			yield return (BattleAction)new DrawManyCardAction(((Card)this).Value1);
			if (((Card)this).PlayInTriggered && (((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)1) || ((Card)this).Battle.BattleCardUsageHistory.Last().Config.Colors.Contains((ManaColor)5)))
			{
				yield return (BattleAction)new GainManaAction(ManaToGain);
			}
		}

		public YuyukoCharacterLostAgain()
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			ManaGroup val = default(ManaGroup);
			((ManaGroup)(ref val)).White = 1;
			_manaWhite = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Green = 1;
			_manaGreen = val;
			val = default(ManaGroup);
			((ManaGroup)(ref val)).Any = 0;
			ManaToGain = val;
			base..ctor();
		}
	}
	public sealed class YuyukoCharacterPoisonousMothDef : YuyukoCharacterCardTemplate
	{
		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 = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Value1 = 4;
			cardDefaultConfig.UpgradedValue1 = 6;
			cardDefaultConfig.Illustrator = "wankosoradayo";
			cardDefaultConfig.RelativeEffects = new List<string> { "Poison", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "Poison", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterPoisonousMothDef))]
	public sealed class YuyukoCharacterPoisonousMoth : YuyukoCharacterCard
	{
		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).Battle != null && !((Card)this).Battle.BattleShouldEnd)
			{
				foreach (BattleAction item in ((Card)this).DebuffAction<Poison>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.2f))
				{
					yield return item;
				}
			}
			foreach (EnemyUnit enemy in ((Card)this).Battle.AllAliveEnemies)
			{
				if (((Unit)enemy).HasStatusEffect<Poison>())
				{
					Poison poison = ((Unit)enemy).GetStatusEffect<Poison>();
					int poisonAmount = ((StatusEffect)poison).Level;
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)poison, true, 0.1f);
					yield return ((Card)this).DebuffAction<YuyukoDeath>((Unit)(object)enemy, poisonAmount, 0, 0, 0, true, 0.2f);
				}
			}
			yield return (BattleAction)(object)new TriggerLawOfMortalityAction();
		}
	}
	public sealed class YuyukoCharacterSelfLossDef : YuyukoCharacterCardTemplate
	{
		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(6150);
			cardDefaultConfig.Colors = new List<ManaColor> { (ManaColor)3 };
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Any = 1;
			((ManaGroup)(ref cost)).Black = 1;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)1;
			cardDefaultConfig.TargetType = (TargetType)1;
			cardDefaultConfig.Damage = 10;
			cardDefaultConfig.UpgradedDamage = 13;
			cardDefaultConfig.Value1 = 2;
			cardDefaultConfig.Value2 = 3;
			cardDefaultConfig.Keywords = (Keyword)256;
			cardDefaultConfig.UpgradedKeywords = (Keyword)256;
			cardDefaultConfig.Illustrator = "のこき";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterSelfLossDef))]
	public sealed class YuyukoCharacterSelfLoss : YuyukoCharacterCard
	{
		protected override IEnumerable<BattleAction> Actions(UnitSelector selector, ManaGroup consumingMana, Interaction precondition)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			((Card)this).CardGuns = new Guns(((Card)this).GunName, ((Card)this).Value1, false);
			foreach (GunPair gunPair in ((Card)this).CardGuns.GunPairs)
			{
				yield return ((Card)this).AttackAction(selector, gunPair);
			}
			yield return ((Card)this).DebuffAction<NextTurnLoseHp>((Unit)(object)((Card)this).Battle.Player, ((Card)this).Value2, 0, 0, 0, true, 0.2f);
		}
	}
	public sealed class YuyukoCharacterButterflyDelusionDef : YuyukoCharacterCardTemplate
	{
		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)3,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 8;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)0;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)2;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.Value2 = 2;
			cardDefaultConfig.UpgradedValue2 = 3;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe", "YuyukoCharacterDeathSe" };
			cardDefaultConfig.Illustrator = "ずか";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterButterflyDelusionDef))]
	public sealed class YuyukoCharacterButterflyDelusion : YuyukoCharacterCard
	{
		public override bool IsMill { get; } = true;


		public override IEnumerable<BattleAction> OnMill()
		{
			if (((Card)this).Battle == null || ((Card)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			<>n__0();
			foreach (BattleAction item in ((Card)this).DebuffAction<YuyukoDeath>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.2f))
			{
				yield return item;
			}
		}

		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<YuyukoDeath>((IEnumerable<Unit>)((Card)this).Battle.AllAliveEnemies, ((Card)this).Value1, 0, 0, 0, true, 0.2f))
			{
				yield return item;
			}
			yield return (BattleAction)(object)new MillCardsAction(((Card)this).Value2);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((Card)this).NotifyActivating();
		}
	}
	public sealed class YuyukoCharacterComeFullCircleDef : YuyukoCharacterCardTemplate
	{
		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)3,
				(ManaColor)5
			};
			ManaGroup cost = default(ManaGroup);
			((ManaGroup)(ref cost)).Hybrid = 1;
			((ManaGroup)(ref cost)).HybridColor = 8;
			cardDefaultConfig.Cost = cost;
			cardDefaultConfig.Rarity = (Rarity)1;
			cardDefaultConfig.Type = (CardType)3;
			cardDefaultConfig.TargetType = (TargetType)4;
			cardDefaultConfig.Value1 = 3;
			cardDefaultConfig.UpgradedValue1 = 4;
			cardDefaultConfig.Value2 = 1;
			cardDefaultConfig.UpgradedValue2 = 2;
			cardDefaultConfig.RelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			cardDefaultConfig.UpgradedRelativeEffects = new List<string> { "YuyukoCharacterMillKeywordSe" };
			cardDefaultConfig.Illustrator = "cheeseroll8443";
			cardDefaultConfig.Index = CardIndexGenerator.GetUniqueIndex(cardDefaultConfig);
			return cardDefaultConfig;
		}
	}
	[EntityLogic(typeof(YuyukoCharacterComeFullCircleDef))]
	public sealed class YuyukoCharacterComeFullCircle : YuyukoCharacterCard
	{
		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 ReshuffleAction();
			yield return (BattleAction)(object)new MillCardsAction(((Card)this).Value1);
			yield return (BattleAction)new DrawManyCardAction(((Card)this).Value2);
		}
	}
	public sealed class YuyukoCharacterDanceOfTheDeadButterfliesDef : YuyukoCharacterCardTemplate
	{
		public override CardConfig MakeConfig()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references