Decompiled source of Clownpiece v0.1.4

Clownpiece.dll

Decompiled 2 weeks 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 Clownpiece.Cards.CardsR;
using Clownpiece.CustomClasses;
using Clownpiece.Status;
using Cysharp.Threading.Tasks;
using HarmonyLib;
using LBoL.Base;
using LBoL.Base.Extensions;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Battle.Interactions;
using LBoL.Core.Cards;
using LBoL.Core.Intentions;
using LBoL.Core.Randoms;
using LBoL.Core.StatusEffects;
using LBoL.Core.Units;
using LBoL.EntityLib.Cards.Character.Reimu;
using LBoL.EntityLib.Cards.Enemy;
using LBoL.EntityLib.Cards.Neutral.NoColor;
using LBoL.EntityLib.Exhibits;
using LBoL.EntityLib.StatusEffects.Basic;
using LBoL.EntityLib.StatusEffects.Enemy;
using LBoL.EntityLib.StatusEffects.Others;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using LBoLEntitySideloader.Utils;
using UnityEngine;
using UnityEngine.Experimental.Rendering;

[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("Clownpiece")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+a80c75261ab8194d4a0eb76428053d032e422730")]
[assembly: AssemblyProduct("Clownpiece")]
[assembly: AssemblyTitle("Clownpiece")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Clownpiece
{
	[BepInPlugin("gameglitcher.character.clownpiece", "Clownpiece", "0.1.4")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		private static readonly Harmony harmony = PInfo.harmony;

		internal static ManualLogSource log;

		internal static TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0);

		internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly());

		internal static DirectorySource directorySource = new DirectorySource("gameglitcher.character.clownpiece", "");

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

		private void OnDestroy()
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
	}
	public sealed class ClownpiecePlayerDef : PlayerUnitTemplate
	{
		[EntityLogic(typeof(ClownpiecePlayerDef))]
		public sealed class Clownpiece : PlayerUnit
		{
		}

		public static string name = "Clownpiece";

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

		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "PlayerUnitEn.yaml");
			return (LocalizationOption)(object)val;
		}

		public override PlayerImages LoadPlayerImages()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			//IL_019c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_022b: Unknown result type (might be due to invalid IL or missing references)
			PlayerImages val = new PlayerImages();
			Sprite imprint = ResourceLoader.LoadSprite("ClownpieceImprint.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
			Sprite collectionIconLoading = ResourceLoader.LoadSprite("ClownpieceCollectionIcon.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
			Sprite selectionCircleIconLoading = ResourceLoader.LoadSprite("EmptyIcon.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
			Sprite avatarLoading = ResourceLoader.LoadSprite("EmptyIcon.png", (IResourceSource)(object)BepinexPlugin.directorySource, (Rect?)null, 1, (Vector2?)null);
			UniTask<Sprite> value = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			UniTask<Sprite> value2 = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			UniTask<Sprite> value3 = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			UniTask<Sprite> value4 = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			UniTask<Sprite> value5 = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			UniTask<Sprite> value6 = ResourceLoader.LoadSpriteAsync("Clownpiece.png", BepinexPlugin.directorySource, 100, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
			val.SetStartPanelStand((UniTask<Sprite>?)value, (Func<Sprite>)null);
			val.SetDeckStand((UniTask<Sprite>?)value, (Func<Sprite>)null);
			val.SetWinStand((UniTask<Sprite>?)value2, (Func<Sprite>)null);
			val.SetDefeatedStand((UniTask<Sprite>?)value3, (Func<Sprite>)null);
			val.SetPerfectWinIcon((UniTask<Sprite>?)value4, (Func<Sprite>)null);
			val.SetWinIcon((UniTask<Sprite>?)value5, (Func<Sprite>)null);
			val.SetDefeatedIcon((UniTask<Sprite>?)value6, (Func<Sprite>)null);
			val.SetCollectionIcon((Func<Sprite>)(() => collectionIconLoading));
			val.SetSelectionCircleIcon((Func<Sprite>)(() => selectionCircleIconLoading));
			val.SetInRunAvatarPic((Func<Sprite>)(() => avatarLoading));
			val.SetCardImprint((Func<Sprite>)(() => imprint));
			return val;
		}

		public override PlayerUnitConfig MakeConfig()
		{
			//IL_002d: 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_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Expected O, but got Unknown
			PlayerUnitConfig val = ObjectExtensions.Copy<PlayerUnitConfig>(PlayerUnitConfig.FromId("Reimu"));
			int? num = 0;
			ManaGroup val2 = default(ManaGroup);
			((ManaGroup)(ref val2)).Red = 2;
			((ManaGroup)(ref val2)).Black = 2;
			return new PlayerUnitConfig("", 6, 0, num, "", "#3f7ab0", true, 80, val2, 10, 0, "ClownpieceUltA", "ClownpieceUltB", "TorchOfLunacy", "TorchOfMania", (IReadOnlyList<string>)new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "TorchBullet", "TorchBullet", "LunarShield", "LunarShield", "LunarShield", "BlackButterfly" }, (IReadOnlyList<string>)new List<string> { "Shoot", "Shoot", "Boundary", "Boundary", "LunarSlam", "LunarSlam", "FlameWall", "FlameWall", "FlameWall", "UndyingFlame" }, 3, 3);
		}

		public override EikiSummonInfo AssociateEikiSummon()
		{
			return null;
		}
	}
	public sealed class ClownpieceModelDef : UnitModelTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return ((EntityDefinition)new ClownpiecePlayerDef()).UniqueId;
		}

		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "UnitModelEn.yaml");
			return (LocalizationOption)(object)val;
		}

		public override ModelOption LoadModelOptions()
		{
			return null;
		}

		public override UniTask<Sprite> LoadSpellSprite()
		{
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			return ResourceLoader.LoadSpriteAsync("SpellCard.png", BepinexPlugin.directorySource, 336, (GraphicsFormat)4, 1, (FilterMode)1, (SpriteMeshType)1, (Rect?)null, (Vector2?)null, "file://");
		}

		public override UnitModelConfig MakeConfig()
		{
			return ObjectExtensions.Copy<UnitModelConfig>(UnitModelConfig.FromName("Reimu"));
		}
	}
	public sealed class ClownpieceUltADef : UltimateSkillTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit("ClownpieceUltA");
		}

		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization((IResourceSource)(object)BepinexPlugin.directorySource);
			val.DiscoverAndLoadLocFiles((EntityDefinition)(object)this);
			return (LocalizationOption)(object)val;
		}

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

		public override UltimateSkillConfig MakeConfig()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 15, 0, 0, (Keyword)256, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
		}
	}
	[EntityLogic(typeof(ClownpieceUltADef))]
	public sealed class ClownpieceUltA : UltimateSkill
	{
		public ClownpieceUltA()
		{
			((UltimateSkill)this).TargetType = (TargetType)2;
			((UltimateSkill)this).GunName = "Clownpiece2";
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Battle.Player, "ClownpieceUltA");
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (IEnumerable<Unit>)((UltimateSkill)this).Battle.EnemyGroup.Alives, ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
			if (!((Unit)((UltimateSkill)this).Owner).HasStatusEffect<LunaticTorchSe>() || ((UltimateSkill)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			foreach (Card card2 in ((UltimateSkill)this).Battle.HandZone.Where((Card card) => (int)card.CardType == 5 && card.Summoned).ToList())
			{
				IEnumerable<BattleAction> passiveActions = card2.GetPassiveActions();
				if (passiveActions == null)
				{
					continue;
				}
				foreach (BattleAction item in passiveActions)
				{
					yield return item;
				}
			}
		}

		private IEnumerator DeactivateDeez(GameObject go)
		{
			yield return (object)new WaitForSeconds(5f);
			go.SetActive(false);
		}
	}
	public sealed class ClownpieceUltBDef : UltimateSkillTemplate
	{
		public override IdContainer GetId()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit("ClownpieceUltB");
		}

		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "UltimateSkillEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override UltimateSkillConfig MakeConfig()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			return new UltimateSkillConfig("", 10, 100, 100, 2, (UsRepeatableType)1, 30, 0, 0, (Keyword)256, (IReadOnlyList<string>)new List<string>(), (IReadOnlyList<string>)new List<string>());
		}
	}
	[EntityLogic(typeof(ClownpieceUltBDef))]
	public sealed class ClownpieceUltB : UltimateSkill
	{
		public ClownpieceUltB()
		{
			((UltimateSkill)this).TargetType = (TargetType)1;
			((UltimateSkill)this).GunName = "Clownpiece1";
		}

		protected override IEnumerable<BattleAction> Actions(UnitSelector selector)
		{
			yield return (BattleAction)(object)PerformAction.Spell((Unit)(object)((UltimateSkill)this).Battle.Player, "ClownpieceUltB");
			yield return (BattleAction)new DamageAction((Unit)(object)((UltimateSkill)this).Owner, (Unit)(object)selector.GetEnemy(((UltimateSkill)this).Battle), ((UltimateSkill)this).Damage, ((UltimateSkill)this).GunName, (GunType)0);
		}
	}
	public static class PInfo
	{
		public const string GUID = "gameglitcher.character.clownpiece";

		public const string Name = "Clownpiece";

		public const string version = "0.1.4";

		public static readonly Harmony harmony = new Harmony("gameglitcher.character.clownpiece");
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace Clownpiece.Status
{
	public sealed class ChaoticDrawSeDef : StatusEffectTemplate
	{
		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("ChaoticDrawSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: 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)48, false, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(ChaoticDrawSeDef))]
	public sealed class ChaoticDrawSe : ClownStatus
	{
		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.BattleShouldEnd)
			{
				((StatusEffect)this).Level = 1;
				<>n__0();
				yield return (BattleAction)new DrawManyCardAction(((StatusEffect)this).Level);
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class ChaoticGrazeSeDef : StatusEffectTemplate
	{
		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("ChaoticGrazeSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: 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)48, false, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "Graze" }, "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(ChaoticGrazeSeDef))]
	public sealed class ChaoticGrazeSe : ClownStatus
	{
		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.BattleShouldEnd)
			{
				((StatusEffect)this).Level = 1;
				<>n__0();
				yield return ((StatusEffect)this).BuffAction<Graze>(((StatusEffect)this).Level, 0, 0, 0, 0.2f);
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class DummyThreeBodiesSeDef : StatusEffectTemplate
	{
		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("DummyThreeBodiesSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)2, false, false, (int?)null, false, (StackType?)null, false, (StackType?)null, (DurationDecreaseTiming)48, false, (StackType?)(StackType)1, (StackType?)(StackType)1, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(DummyThreeBodiesSeDef))]
	public sealed class DummyThreeBodiesSe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0.2f, false)));
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
		}

		private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
		{
			yield break;
		}
	}
	public sealed class DummyLunacySeDef : StatusEffectTemplate
	{
		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("DummyLunacySe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)2, false, false, (int?)null, false, (StackType?)null, false, (StackType?)null, (DurationDecreaseTiming)48, false, (StackType?)(StackType)1, (StackType?)(StackType)1, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "LunaticTorchSe" }, "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(DummyLunacySeDef))]
	public sealed class DummyLunacySe : ClownStatus
	{
		public DummyLunacySe()
		{
			base.Counter = 1;
		}

		protected override void OnAdded(Unit unit)
		{
			((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0.2f, false)));
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
		}

		private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				if (base.Counter % 5 == 0)
				{
					yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)1, (int?)null, (int?)null, (int?)null, 0.2f, false);
				}
				base.Counter++;
			}
		}
	}
	public sealed class EmbodimentOfImpuritySeDef : StatusEffectTemplate
	{
		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("EmbodimentOfImpuritySe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//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");
		}
	}
	[EntityLogic(typeof(EmbodimentOfImpuritySeDef))]
	public sealed class EmbodimentOfImpuritySe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<ManaEventArgs>(((StatusEffect)this).Battle.ManaConsumed, (EventSequencedReactor<ManaEventArgs>)OnManaConsumed);
		}

		private IEnumerable<BattleAction> OnManaConsumed(ManaEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			ManaGroup value = args.Value;
			if (((ManaGroup)(ref value)).Colorless > 0)
			{
				<>n__0();
				int num = ((StatusEffect)this).Level * ((ManaGroup)(ref value)).Colorless;
				yield return ((StatusEffect)this).BuffAction<Reflect>(num, 0, 0, 0, 0.2f);
				if (((Unit)((StatusEffect)this).Battle.Player).HasStatusEffect<Reflect>())
				{
					((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<Reflect>().Gun = "JunkoLunatic";
				}
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class GreaterFairyEnergyBSeDef : StatusEffectTemplate
	{
		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("GreaterFairyEnergyBSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)3, (DurationDecreaseTiming)0, false, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)8388608, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(GreaterFairyEnergyBSeDef))]
	public sealed class GreaterFairyEnergyBSe : ClownStatus
	{
		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.BattleShouldEnd)
			{
				List<Card> list = new List<Card>();
				for (int i = 0; i < ((StatusEffect)this).Level; i++)
				{
					Card card = (Card)(object)Library.CreateCard<BManaCard>();
					card.IsReplenish = true;
					list.Add(card);
				}
				((StatusEffect)this).NotifyActivating();
				yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)list, (AddCardsType)0);
			}
		}
	}
	public sealed class GreaterFairyEnergyPSeDef : StatusEffectTemplate
	{
		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("GreaterFairyEnergyPSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)3, (DurationDecreaseTiming)0, false, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)8388608, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(GreaterFairyEnergyPSeDef))]
	public sealed class GreaterFairyEnergyPSe : ClownStatus
	{
		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.BattleShouldEnd)
			{
				List<Card> list = new List<Card>();
				for (int i = 0; i < ((StatusEffect)this).Level; i++)
				{
					Card card = (Card)(object)Library.CreateCard<PManaCard>();
					card.IsReplenish = true;
					list.Add(card);
				}
				((StatusEffect)this).NotifyActivating();
				yield return (BattleAction)new AddCardsToDiscardAction((IEnumerable<Card>)list, (AddCardsType)0);
			}
		}
	}
	public sealed class LockOnTouchSeDef : StatusEffectTemplate
	{
		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("LockOnTouchSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)null, (DurationDecreaseTiming)48, true, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "LockedOn" }, "Default", "Default", "Default");
		}
	}
	[EntityLogic(typeof(LockOnTouchSeDef))]
	public sealed class LockOnTouchSe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<StatisticalDamageEventArgs>(((StatusEffect)this).Owner.StatisticalTotalDamageReceived, (EventSequencedReactor<StatisticalDamageEventArgs>)OnStatisticalDamageReceived);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
		}

		private IEnumerable<BattleAction> OnStatisticalDamageReceived(StatisticalDamageEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd || args.DamageSource == ((StatusEffect)this).Owner || !args.DamageSource.IsAlive)
			{
				yield break;
			}
			foreach (KeyValuePair<Unit, IReadOnlyList<DamageEventArgs>> item in args.ArgsTable)
			{
				item.Deconstruct(out var unit, out var readOnlyList);
				Unit unit2 = unit;
				IReadOnlyList<DamageEventArgs> source = readOnlyList;
				if (unit2 == ((StatusEffect)this).Owner && source.Any(delegate(DamageEventArgs damage)
				{
					//IL_0001: Unknown result type (might be due to invalid IL or missing references)
					//IL_0006: Unknown result type (might be due to invalid IL or missing references)
					//IL_0009: Unknown result type (might be due to invalid IL or missing references)
					//IL_000f: Invalid comparison between Unknown and I4
					DamageInfo damageInfo = damage.DamageInfo;
					return (int)((DamageInfo)(ref damageInfo)).DamageType == 2;
				}))
				{
					<>n__0();
					yield return (BattleAction)(object)new ApplyStatusEffectAction<LockedOn>(args.DamageSource, (int?)((StatusEffect)this).Count, (int?)((StatusEffect)this).Count, (int?)((StatusEffect)this).Count, (int?)null, 0f, true);
					int level = ((StatusEffect)this).Level - 1;
					((StatusEffect)this).Level = level;
					if (((StatusEffect)this).Level == 0)
					{
						yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
					}
				}
				unit = null;
				readOnlyList = null;
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class LunaticEmbraceSeDef : StatusEffectTemplate
	{
		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("LunaticEmbraceSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//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");
		}
	}
	[EntityLogic(typeof(LunaticEmbraceSeDef))]
	public sealed class LunaticEmbraceSe : ClownStatus
	{
		public LunaticEmbraceSe()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			base.Mana = default(ManaGroup);
		}

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

		private IEnumerable<BattleAction> OnPlayerTurnStarted(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd || ((StatusEffect)this).Battle.DrawZone.Count <= 0)
			{
				yield break;
			}
			for (int i = 1; i <= ((StatusEffect)this).Level; i++)
			{
				if (((StatusEffect)this).Battle.DrawZone.Count == 0)
				{
					break;
				}
				if (((StatusEffect)this).Battle.HandZone.Count == ((StatusEffect)this).Battle.MaxHand)
				{
					break;
				}
				List<Card> list = ((StatusEffect)this).Battle.DrawZone.Select((Card card) => card).ToList();
				if (list.Count > 0)
				{
					Card card2 = list[0];
					card2.SetTurnCost(base.Mana);
					((StatusEffect)this).NotifyActivating();
					yield return (BattleAction)new DrawCardAction();
				}
			}
		}
	}
	public sealed class LunaticLightSeDef : StatusEffectTemplate
	{
		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("LunaticLightSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)2, false, false, (int?)null, false, (StackType?)null, false, (StackType?)null, (DurationDecreaseTiming)0, true, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "Firepower" }, "Default", "Default", "Lunatic");
		}
	}
	[EntityLogic(typeof(LunaticLightSeDef))]
	public sealed class LunaticLightSe : ClownStatus
	{
		public LunaticLightSe()
		{
			base.Value1 = 1;
			base.Value2 = 5;
			base.Counter = 1;
		}

		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).Count = 5;
			base.Counter = 1;
			((StatusEffect)this).NotifyActivating();
			((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)base.Value1, (int?)null, (int?)null, (int?)null, 0.2f, false)));
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnOwnerTurnStarted);
		}

		protected override void OnRemoved(Unit unit)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				((StatusEffect)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<FirepowerNegative>(((StatusEffect)this).Owner, (int?)base.Counter, (int?)null, (int?)null, (int?)null, 0.2f, false)));
				((StatusEffect)this).Count = 5;
				base.Counter = 1;
			}
		}

		private IEnumerable<BattleAction> OnOwnerTurnStarted(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				if (((StatusEffect)this).Count == 1)
				{
					((StatusEffect)this).NotifyActivating();
					base.Value3++;
					yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>(((StatusEffect)this).Owner, (int?)base.Value1, (int?)null, (int?)null, (int?)null, 0.2f, false);
					((StatusEffect)this).Count = 5;
				}
				else
				{
					int count = ((StatusEffect)this).Count;
					((StatusEffect)this).Count = count - 1;
				}
			}
		}
	}
	public sealed class LunaticTorchSeDef : StatusEffectTemplate
	{
		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("LunaticTorchSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)2, false, true, (int?)null, false, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "LunaticLightSe" }, "Default", "Default", "LunaticTorch");
		}
	}
	[EntityLogic(typeof(LunaticTorchSeDef))]
	public sealed class LunaticTorchSe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Expected O, but got Unknown
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnEnding, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnEnding);
			((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToDiscard, (EventSequencedReactor<CardsEventArgs>)OnAddCard);
			((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToHand, (EventSequencedReactor<CardsEventArgs>)OnAddCard);
			((StatusEffect)this).ReactOwnerEvent<CardsEventArgs>(((StatusEffect)this).Battle.CardsAddedToExile, (EventSequencedReactor<CardsEventArgs>)OnAddCard);
			((StatusEffect)this).ReactOwnerEvent<CardsAddingToDrawZoneEventArgs>(((StatusEffect)this).Battle.CardsAddedToDrawZone, (EventSequencedReactor<CardsAddingToDrawZoneEventArgs>)OnAddCardToDraw);
			List<Card> list = (from card in ((StatusEffect)this).Battle.EnumerateAllCards()
				where card is ClownCard clownCard2 && clownCard2.CanTransform
				select card).ToList();
			if (list.Count > 0 && ((StatusEffect)this).Owner.HasStatusEffect<LunaticTorchSe>())
			{
				foreach (ClownCard item in list)
				{
					Card val = Library.CreateCard(item.TransformTo, ((Card)item).IsUpgraded);
					val.Summoned = ((Card)item).Summoned;
					((StatusEffect)this).React(Reactor.op_Implicit((BattleAction)new TransformCardAction((Card)(object)item, val)));
				}
			}
			foreach (EnemyUnit alife in ((StatusEffect)this).Battle.EnemyGroup.Alives)
			{
				if (((Unit)alife).IsAlive && !((Unit)alife).HasStatusEffect<LunaticLightSe>())
				{
					((StatusEffect)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<LunaticLightSe>((Unit)(object)alife, (int?)1, (int?)null, (int?)null, (int?)null, 0.2f, false)));
				}
			}
		}

		protected override void OnRemoved(Unit unit)
		{
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Expected O, but got Unknown
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Expected O, but got Unknown
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				return;
			}
			List<Card> list = (from card in ((StatusEffect)this).Battle.EnumerateAllCards()
				where card is ClownCard clownCard2 && clownCard2.IsTransformed
				select card).ToList();
			if (list.Count <= 0 || ((StatusEffect)this).Owner.HasStatusEffect<LunaticTorchSe>())
			{
				return;
			}
			foreach (ClownCard item in list)
			{
				Card val = Library.CreateCard(item.TransformTo, ((Card)item).IsUpgraded);
				val.Summoned = ((Card)item).Summoned;
				((StatusEffect)this).React(Reactor.op_Implicit((BattleAction)new TransformCardAction((Card)(object)item, val)));
			}
			foreach (EnemyUnit alife in ((StatusEffect)this).Battle.EnemyGroup.Alives)
			{
				if (((Unit)alife).IsAlive && ((Unit)alife).HasStatusEffect<LunaticLightSe>())
				{
					((StatusEffect)this).React(Reactor.op_Implicit((BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)((Unit)alife).GetStatusEffect<LunaticLightSe>(), true, 0.1f)));
				}
			}
		}

		private IEnumerable<BattleAction> OnAddCard(CardsEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			List<Card> cards = (from card in ((StatusEffect)this).Battle.EnumerateAllCards()
				where card is ClownCard clownCard && clownCard.CanTransform
				select card).ToList();
			if (cards.Count <= 0 || !((StatusEffect)this).Owner.HasStatusEffect<LunaticTorchSe>())
			{
				yield break;
			}
			foreach (ClownCard sourceCard in cards)
			{
				Card card2 = Library.CreateCard(sourceCard.TransformTo, ((Card)sourceCard).IsUpgraded);
				card2.Summoned = ((Card)sourceCard).Summoned;
				yield return (BattleAction)new TransformCardAction((Card)(object)sourceCard, card2);
			}
		}

		private IEnumerable<BattleAction> OnAddCardToDraw(CardsAddingToDrawZoneEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			List<Card> cards = (from card in ((StatusEffect)this).Battle.EnumerateAllCards()
				where card is ClownCard clownCard && clownCard.CanTransform
				select card).ToList();
			if (cards.Count <= 0 || !((StatusEffect)this).Owner.HasStatusEffect<LunaticTorchSe>())
			{
				yield break;
			}
			foreach (ClownCard sourceCard in cards)
			{
				Card card2 = Library.CreateCard(sourceCard.TransformTo, ((Card)sourceCard).IsUpgraded);
				card2.Summoned = ((Card)sourceCard).Summoned;
				yield return (BattleAction)new TransformCardAction((Card)(object)sourceCard, card2);
			}
		}

		private IEnumerable<BattleAction> OnPlayerTurnEnding(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			foreach (EnemyUnit enemyUnit in ((StatusEffect)this).Battle.EnemyGroup.Alives)
			{
				if (((Unit)enemyUnit).IsAlive && !((Unit)enemyUnit).HasStatusEffect<LunaticLightSe>())
				{
					yield return (BattleAction)(object)new ApplyStatusEffectAction<LunaticLightSe>((Unit)(object)enemyUnit, (int?)1, (int?)null, (int?)null, (int?)null, 0.2f, false);
				}
			}
		}
	}
	public sealed class ManiaSeDef : StatusEffectTemplate
	{
		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("ManiaSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//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)1, false, true, (int?)null, true, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)0, (StackType?)(StackType)0, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Lunatic");
		}
	}
	[EntityLogic(typeof(ManiaSeDef))]
	public sealed class ManiaSe : ClownStatus
	{
		private bool error = false;

		private IEnemyMove attack;

		private Intention intention;

		protected override void OnAdded(Unit unit)
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Expected O, but got Unknown
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarting);
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((StatusEffect)this).Owner.TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnEnemyTurnStarting);
			EnemyUnit val = (EnemyUnit)((StatusEffect)this).Owner;
			randomAttack();
			List<Intention> list = val.Intentions.Where((Intention intention) => intention is SpellCardIntention || intention is AttackIntention || intention is CountDownIntention || intention is DoNothingIntention || intention is SpawnIntention || intention is KokoroDarkIntention || intention is SleepIntention).ToList();
			List<IEnemyMove> list2 = val._turnMoves.Where((IEnemyMove turnMove) => turnMove.Intention is SpellCardIntention || turnMove.Intention is AttackIntention || turnMove.Intention is CountDownIntention || intention is DoNothingIntention || turnMove.Intention is SpawnIntention || turnMove.Intention is KokoroDarkIntention || turnMove.Intention is SleepIntention).ToList();
			intention.Source = val;
			if (!list.Any((Intention intention) => intention is AttackIntention) && (list.Any(delegate(Intention intention)
			{
				SpellCardIntention val2 = (SpellCardIntention)(object)((intention is SpellCardIntention) ? intention : null);
				return val2 != null && !val2.Damage.HasValue;
			}) || !list.Any((Intention intention) => intention is SpellCardIntention)))
			{
				((StatusEffect)this).NotifyActivating();
				list2.Add(attack);
				list.Add(intention);
			}
			val._turnMoves.Clear();
			val.ClearIntentions();
			foreach (IEnemyMove item in list2)
			{
				val._turnMoves.Add(item);
			}
			val.Intentions = list;
			val.NotifyIntentionsChanged();
		}

		private IEnumerable<BattleAction> OnEnemyTurnStarting(UnitEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				int level = ((StatusEffect)this).Level;
				((StatusEffect)this).Level = level - 1;
				if (((StatusEffect)this).Level == 0)
				{
					yield return (BattleAction)new RemoveStatusEffectAction((StatusEffect)(object)this, true, 0.1f);
				}
			}
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarting(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			EnemyUnit enemy = (EnemyUnit)((StatusEffect)this).Owner;
			randomAttack();
			List<Intention> intentions = enemy.Intentions.Where((Intention intention) => intention is SpellCardIntention || intention is AttackIntention || intention is CountDownIntention || intention is DoNothingIntention || intention is SpawnIntention || intention is KokoroDarkIntention || intention is SleepIntention).ToList();
			List<IEnemyMove> _turnMoves = enemy._turnMoves.Where((IEnemyMove turnMove) => turnMove.Intention is SpellCardIntention || turnMove.Intention is AttackIntention || turnMove.Intention is CountDownIntention || intention is DoNothingIntention || turnMove.Intention is SpawnIntention || turnMove.Intention is KokoroDarkIntention || turnMove.Intention is SleepIntention).ToList();
			intention.Source = enemy;
			if (!intentions.Any((Intention intention) => intention is AttackIntention) && (intentions.Any(delegate(Intention intention)
			{
				SpellCardIntention val = (SpellCardIntention)(object)((intention is SpellCardIntention) ? intention : null);
				return val != null && !val.Damage.HasValue;
			}) || !intentions.Any((Intention intention) => intention is SpellCardIntention)))
			{
				<>n__0();
				_turnMoves.Add(attack);
				intentions.Add(intention);
			}
			enemy._turnMoves.Clear();
			enemy.ClearIntentions();
			foreach (IEnemyMove attack2 in _turnMoves)
			{
				enemy._turnMoves.Add(attack2);
			}
			enemy.Intentions = intentions;
			enemy.NotifyIntentionsChanged();
		}

		private void randomAttack()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_0029: 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_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Expected I4, but got Unknown
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Expected I4, but got Unknown
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Expected I4, but got Unknown
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Expected I4, but got Unknown
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Invalid comparison between Unknown and I4
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Invalid comparison between Unknown and I4
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Invalid comparison between Unknown and I4
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Invalid comparison between Unknown and I4
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Invalid comparison between Unknown and I4
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Invalid comparison between Unknown and I4
			//IL_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_023f: Invalid comparison between Unknown and I4
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Invalid comparison between Unknown and I4
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Invalid comparison between Unknown and I4
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Invalid comparison between Unknown and I4
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Invalid comparison between Unknown and I4
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Invalid comparison between Unknown and I4
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Invalid comparison between Unknown and I4
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Invalid comparison between Unknown and I4
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a7: Invalid comparison between Unknown and I4
			//IL_0374: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_0379: Unknown result type (might be due to invalid IL or missing references)
			//IL_037b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Expected I4, but got Unknown
			//IL_0418: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_041d: Unknown result type (might be due to invalid IL or missing references)
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Expected I4, but got Unknown
			//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04da: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f3: Expected I4, but got Unknown
			//IL_057d: Unknown result type (might be due to invalid IL or missing references)
			//IL_057e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0580: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Unknown result type (might be due to invalid IL or missing references)
			//IL_0584: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Expected I4, but got Unknown
			//IL_060b: Unknown result type (might be due to invalid IL or missing references)
			//IL_060c: Unknown result type (might be due to invalid IL or missing references)
			//IL_060e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0610: Unknown result type (might be due to invalid IL or missing references)
			//IL_0612: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Expected I4, but got Unknown
			//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e3: Expected I4, but got Unknown
			//IL_077f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0780: Unknown result type (might be due to invalid IL or missing references)
			//IL_0782: Unknown result type (might be due to invalid IL or missing references)
			//IL_0784: Unknown result type (might be due to invalid IL or missing references)
			//IL_0786: Unknown result type (might be due to invalid IL or missing references)
			//IL_079d: Expected I4, but got Unknown
			//IL_0850: Unknown result type (might be due to invalid IL or missing references)
			//IL_0851: Unknown result type (might be due to invalid IL or missing references)
			//IL_0853: Unknown result type (might be due to invalid IL or missing references)
			//IL_0855: Unknown result type (might be due to invalid IL or missing references)
			//IL_0857: Unknown result type (might be due to invalid IL or missing references)
			//IL_086e: Expected I4, but got Unknown
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_0397: Invalid comparison between Unknown and I4
			//IL_03af: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Invalid comparison between Unknown and I4
			//IL_03dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Invalid comparison between Unknown and I4
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_043e: Invalid comparison between Unknown and I4
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_046b: Invalid comparison between Unknown and I4
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_0498: Invalid comparison between Unknown and I4
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Invalid comparison between Unknown and I4
			//IL_0511: Unknown result type (might be due to invalid IL or missing references)
			//IL_0513: Invalid comparison between Unknown and I4
			//IL_053e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0540: Invalid comparison between Unknown and I4
			//IL_062f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0631: Invalid comparison between Unknown and I4
			//IL_064e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0650: Invalid comparison between Unknown and I4
			//IL_0682: Unknown result type (might be due to invalid IL or missing references)
			//IL_0684: Invalid comparison between Unknown and I4
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06eb: Invalid comparison between Unknown and I4
			//IL_0708: Unknown result type (might be due to invalid IL or missing references)
			//IL_070a: Invalid comparison between Unknown and I4
			//IL_073c: Unknown result type (might be due to invalid IL or missing references)
			//IL_073e: Invalid comparison between Unknown and I4
			//IL_07a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a5: Invalid comparison between Unknown and I4
			//IL_07c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c7: Invalid comparison between Unknown and I4
			//IL_0801: Unknown result type (might be due to invalid IL or missing references)
			//IL_0803: Invalid comparison between Unknown and I4
			//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c3: Invalid comparison between Unknown and I4
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f0: Invalid comparison between Unknown and I4
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Invalid comparison between Unknown and I4
			//IL_047b: Unknown result type (might be due to invalid IL or missing references)
			//IL_047d: Invalid comparison between Unknown and I4
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04aa: Invalid comparison between Unknown and I4
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)
			//IL_0525: Invalid comparison between Unknown and I4
			//IL_0550: Unknown result type (might be due to invalid IL or missing references)
			//IL_0552: Invalid comparison between Unknown and I4
			//IL_0663: Unknown result type (might be due to invalid IL or missing references)
			//IL_0665: Invalid comparison between Unknown and I4
			//IL_0697: Unknown result type (might be due to invalid IL or missing references)
			//IL_0699: Invalid comparison between Unknown and I4
			//IL_071d: Unknown result type (might be due to invalid IL or missing references)
			//IL_071f: Invalid comparison between Unknown and I4
			//IL_0751: Unknown result type (might be due to invalid IL or missing references)
			//IL_0753: Invalid comparison between Unknown and I4
			//IL_07dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07de: Invalid comparison between Unknown and I4
			//IL_0818: Unknown result type (might be due to invalid IL or missing references)
			//IL_081a: Invalid comparison between Unknown and I4
			EnemyUnit val = (EnemyUnit)((StatusEffect)this).Owner;
			int level = ((GameEntity)this).GameRun.CurrentStage.Level;
			EnemyType enemyType = ((StatusEffect)this).Battle.EnemyGroup.EnemyType;
			GameDifficulty difficulty = ((GameEntity)this).GameRun.Difficulty;
			int num = ((GameEntity)this).GameRun.BattleRng.NextInt(1, 20);
			int num2 = 0;
			int num3 = 0;
			bool flag = false;
			string text = "";
			if (num >= 1 && num <= 9)
			{
				text = "Manic Barrage";
				switch (level)
				{
				case 1:
				{
					GameDifficulty val8 = difficulty;
					GameDifficulty val9 = val8;
					switch ((int)val9)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 6;
							num3 = 2;
						}
						else
						{
							num2 = 5;
							num3 = 2;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 7;
							num3 = 2;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 2;
						}
						else
						{
							num2 = 5;
							num3 = 2;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 2;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 2;
						}
						else
						{
							num2 = 6;
							num3 = 2;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 2:
				{
					GameDifficulty val6 = difficulty;
					GameDifficulty val7 = val6;
					switch ((int)val7)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 7;
							num3 = 3;
						}
						else
						{
							num2 = 6;
							num3 = 2;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 7;
							num3 = 2;
						}
						else
						{
							num2 = 6;
							num3 = 2;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 7;
							num3 = 3;
						}
						else
						{
							num2 = 7;
							num3 = 2;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 3:
				{
					GameDifficulty val4 = difficulty;
					GameDifficulty val5 = val4;
					switch ((int)val5)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 3;
						}
						else
						{
							num2 = 7;
							num3 = 2;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 8;
							num3 = 3;
						}
						else
						{
							num2 = 7;
							num3 = 2;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 10;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 9;
							num3 = 3;
						}
						else
						{
							num2 = 7;
							num3 = 2;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 4:
				{
					GameDifficulty val2 = difficulty;
					GameDifficulty val3 = val2;
					switch ((int)val3)
					{
					case 0:
					case 1:
						num2 = 7;
						num3 = 4;
						break;
					case 2:
						num2 = 8;
						num3 = 4;
						break;
					case 3:
						num2 = 8;
						num3 = 5;
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				default:
					error = true;
					break;
				}
			}
			else if (num >= 10 && num <= 19)
			{
				text = "Manic Bash";
				num3 = 1;
				switch (level)
				{
				case 1:
				{
					GameDifficulty val16 = difficulty;
					GameDifficulty val17 = val16;
					switch ((int)val17)
					{
					case 0:
					case 1:
						num2 = (((int)enemyType != 3) ? 8 : 11);
						break;
					case 2:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 9 : 10) : 12);
						break;
					case 3:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 9 : 10) : 12);
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 2:
				{
					GameDifficulty val14 = difficulty;
					GameDifficulty val15 = val14;
					switch ((int)val15)
					{
					case 0:
					case 1:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 10 : 12) : 14);
						break;
					case 2:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 11 : 13) : 15);
						break;
					case 3:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 11 : 15) : 18);
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 3:
				{
					flag = true;
					GameDifficulty val12 = difficulty;
					GameDifficulty val13 = val12;
					switch ((int)val13)
					{
					case 0:
					case 1:
						num2 = (((int)enemyType != 3) ? 10 : 15);
						break;
					case 2:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 10 : 15) : 20);
						break;
					case 3:
						num2 = (((int)enemyType != 3) ? (((int)enemyType != 2) ? 15 : 20) : 25);
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 4:
				{
					num3 = 1;
					flag = true;
					GameDifficulty val10 = difficulty;
					GameDifficulty val11 = val10;
					switch ((int)val11)
					{
					case 0:
					case 1:
						num2 = 35;
						break;
					case 2:
						num2 = 40;
						break;
					case 3:
						num2 = 45;
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				default:
					error = true;
					break;
				}
			}
			else if (num == 20)
			{
				text = "Overdrive Barrage";
				switch (level)
				{
				case 1:
				{
					GameDifficulty val24 = difficulty;
					GameDifficulty val25 = val24;
					switch ((int)val25)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 2;
						}
						else
						{
							num2 = 5;
							num3 = 2;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 2;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 2;
						}
						else
						{
							num2 = 6;
							num3 = 2;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 3;
						}
						else
						{
							num2 = 7;
							num3 = 2;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 2:
				{
					GameDifficulty val22 = difficulty;
					GameDifficulty val23 = val22;
					switch ((int)val23)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 3;
						}
						else
						{
							num2 = 5;
							num3 = 3;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 3;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 7;
							num3 = 3;
						}
						else
						{
							num2 = 8;
							num3 = 2;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 9;
							num3 = 4;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 5;
							num3 = 4;
						}
						else
						{
							num2 = 5;
							num3 = 3;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 3:
				{
					GameDifficulty val20 = difficulty;
					GameDifficulty val21 = val20;
					switch ((int)val21)
					{
					case 0:
					case 1:
						if ((int)enemyType == 3)
						{
							num2 = 7;
							num3 = 4;
						}
						else
						{
							num2 = 5;
							num3 = 3;
						}
						break;
					case 2:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 2;
							flag = true;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 2;
							flag = true;
						}
						else
						{
							num2 = 5;
							num3 = 2;
							flag = true;
						}
						break;
					case 3:
						if ((int)enemyType == 3)
						{
							num2 = 8;
							num3 = 3;
							flag = true;
						}
						else if ((int)enemyType == 2)
						{
							num2 = 6;
							num3 = 3;
							flag = true;
						}
						else
						{
							num2 = 5;
							num3 = 3;
							flag = true;
						}
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				case 4:
				{
					text = "Overturning Barrage";
					GameDifficulty val18 = difficulty;
					GameDifficulty val19 = val18;
					switch ((int)val19)
					{
					case 0:
					case 1:
						num2 = 4;
						num3 = 8;
						break;
					case 2:
						num2 = 4;
						num3 = 9;
						flag = true;
						break;
					case 3:
						num2 = 4;
						num3 = 10;
						flag = true;
						break;
					default:
						error = true;
						break;
					}
					break;
				}
				default:
					error = true;
					break;
				}
			}
			else
			{
				error = true;
			}
			if (error)
			{
				Debug.Log((object)"If you're seeing this, the random attack replacement somehow failed picking an outcome.");
			}
			attack = val.AttackMove(text, val.Gun1, num2, num3, flag, "Instant", false);
			intention = Intention.Attack(num2, num3, flag);
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class ManicFlameSeDef : StatusEffectTemplate
	{
		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("ManicFlameSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)2, false, true, (int?)null, false, (StackType?)(StackType)0, false, (StackType?)(StackType)0, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string> { "PermaManiaSe" }, "Default", "Default", "LunaticTorch");
		}
	}
	[EntityLogic(typeof(ManicFlameSeDef))]
	public sealed class ManicFlameSe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarting);
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarting(UnitEventArgs args)
		{
			yield break;
		}
	}
	public sealed class MightMakesRightSeDef : StatusEffectTemplate
	{
		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("MightMakesRightSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Expected O, but got Unknown
			return new StatusEffectConfig(0, "", 10, (StatusEffectType)0, false, false, (int?)null, false, (StackType?)null, false, (StackType?)null, (DurationDecreaseTiming)0, false, (StackType?)(StackType)3, (StackType?)(StackType)3, false, (Keyword)0, (IReadOnlyList<string>)new List<string>(), "Default", "Default", "Firepower");
		}
	}
	[EntityLogic(typeof(MightMakesRightSeDef))]
	public sealed class MightMakesRightSe : ClownStatus
	{
		protected override void OnAdded(Unit unit)
		{
			foreach (EnemyUnit allAliveEnemy in ((StatusEffect)this).Battle.AllAliveEnemies)
			{
				((StatusEffect)this).ReactOwnerEvent<StatusEffectApplyEventArgs>(((Unit)allAliveEnemy).StatusEffectAdded, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnEnemyStatusEffectAdded);
				TempFirepower statusEffect = ((Unit)allAliveEnemy).GetStatusEffect<TempFirepower>();
				int num = ((statusEffect != null) ? ((StatusEffect)statusEffect).Level : 0);
				TempFirepower statusEffect2 = ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<TempFirepower>();
				int num2 = ((statusEffect2 != null) ? ((StatusEffect)statusEffect2).Level : 0);
				if (num2 < num)
				{
					((StatusEffect)this).NotifyActivating();
					((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)(num - num2), (int?)null, (int?)null, (int?)null, 0f, true)));
				}
				Firepower statusEffect3 = ((Unit)allAliveEnemy).GetStatusEffect<Firepower>();
				int num3 = ((statusEffect3 != null) ? ((StatusEffect)statusEffect3).Level : 0);
				Firepower statusEffect4 = ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<Firepower>();
				int num4 = ((statusEffect4 != null) ? ((StatusEffect)statusEffect4).Level : 0);
				if (num4 < num3)
				{
					((StatusEffect)this).NotifyActivating();
					((GameEntity)this).React(Reactor.op_Implicit((BattleAction)(object)new ApplyStatusEffectAction<Firepower>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)(num3 - num4), (int?)null, (int?)null, (int?)null, 0f, true)));
				}
			}
			((StatusEffect)this).ReactOwnerEvent<StatusEffectApplyEventArgs>(((StatusEffect)this).Owner.StatusEffectAdding, (EventSequencedReactor<StatusEffectApplyEventArgs>)OnOwnerStatusEffectAdding);
		}

		private IEnumerable<BattleAction> OnEnemyStatusEffectAdded(StatusEffectApplyEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			foreach (EnemyUnit enemy in ((StatusEffect)this).Battle.AllAliveEnemies)
			{
				if (args.Effect is TempFirepower)
				{
					TempFirepower statusEffect = ((Unit)enemy).GetStatusEffect<TempFirepower>();
					int num = ((statusEffect != null) ? ((StatusEffect)statusEffect).Level : 0);
					TempFirepower statusEffect2 = ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<TempFirepower>();
					int num2 = ((statusEffect2 != null) ? ((StatusEffect)statusEffect2).Level : 0);
					if (num2 < num)
					{
						<>n__0();
						yield return (BattleAction)(object)new ApplyStatusEffectAction<TempFirepower>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)(num - num2), (int?)null, (int?)null, (int?)null, 0f, true);
					}
				}
				if (args.Effect is Firepower)
				{
					Firepower statusEffect3 = ((Unit)enemy).GetStatusEffect<Firepower>();
					int num3 = ((statusEffect3 != null) ? ((StatusEffect)statusEffect3).Level : 0);
					Firepower statusEffect4 = ((Unit)((StatusEffect)this).Battle.Player).GetStatusEffect<Firepower>();
					int num4 = ((statusEffect4 != null) ? ((StatusEffect)statusEffect4).Level : 0);
					if (num4 < num3)
					{
						<>n__0();
						yield return (BattleAction)(object)new ApplyStatusEffectAction<Firepower>((Unit)(object)((StatusEffect)this).Battle.Player, (int?)(num3 - num4), (int?)null, (int?)null, (int?)null, 0f, true);
					}
				}
			}
		}

		private IEnumerable<BattleAction> OnOwnerStatusEffectAdding(StatusEffectApplyEventArgs args)
		{
			if (!((StatusEffect)this).Battle.BattleShouldEnd)
			{
				StatusEffect effect = args.Effect;
				if (effect is FirepowerNegative || effect is TempFirepowerNegative)
				{
					((GameEventArgs)args).CancelBy((GameEntity)(object)this);
					<>n__0();
					yield return (BattleAction)(object)PerformAction.Sfx("Amulet", 0f);
					yield return (BattleAction)(object)PerformAction.SePop(((StatusEffect)this).Owner, ((GameEntity)args.Effect).Name);
				}
			}
		}

		[CompilerGenerated]
		[DebuggerHidden]
		private void <>n__0()
		{
			((StatusEffect)this).NotifyActivating();
		}
	}
	public sealed class PermaManiaSeDef : StatusEffectTemplate
	{
		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("PermaManiaSe");
		}

		[DontOverwrite]
		public override LocalizationOption LoadLocalization()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			GlobalLocalization val = new GlobalLocalization(BepinexPlugin.embeddedSource);
			val.LocalizationFiles.AddLocaleFile((Locale)0, "StatusEffectEn.yaml");
			return (LocalizationOption)(object)val;
		}

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

		public override StatusEffectConfig MakeConfig()
		{
			//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)2, false, true, (int?)null, false, (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", "Lunatic");
		}
	}
	[EntityLogic(typeof(PermaManiaSeDef))]
	public sealed class PermaManiaSe : ClownStatus
	{
		private bool error = false;

		private IEnemyMove attack;

		private Intention intention;

		protected override void OnAdded(Unit unit)
		{
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			((StatusEffect)this).ReactOwnerEvent<UnitEventArgs>(((Unit)((StatusEffect)this).Battle.Player).TurnStarted, (EventSequencedReactor<UnitEventArgs>)OnPlayerTurnStarting);
			EnemyUnit val = (EnemyUnit)((StatusEffect)this).Owner;
			randomAttack();
			List<Intention> list = val.Intentions.Where((Intention intention) => intention is SpellCardIntention || intention is AttackIntention || intention is CountDownIntention || intention is DoNothingIntention || intention is SpawnIntention || intention is KokoroDarkIntention || intention is SleepIntention).ToList();
			List<IEnemyMove> list2 = val._turnMoves.Where((IEnemyMove turnMove) => turnMove.Intention is SpellCardIntention || turnMove.Intention is AttackIntention || turnMove.Intention is CountDownIntention || intention is DoNothingIntention || turnMove.Intention is SpawnIntention || turnMove.Intention is KokoroDarkIntention || turnMove.Intention is SleepIntention).ToList();
			intention.Source = val;
			if (!list.Any((Intention intention) => intention is AttackIntention) && (list.Any(delegate(Intention intention)
			{
				SpellCardIntention val2 = (SpellCardIntention)(object)((intention is SpellCardIntention) ? intention : null);
				return val2 != null && !val2.Damage.HasValue;
			}) || !list.Any((Intention intention) => intention is SpellCardIntention)))
			{
				((StatusEffect)this).NotifyActivating();
				list2.Add(attack);
				list.Add(intention);
			}
			val._turnMoves.Clear();
			val.ClearIntentions();
			foreach (IEnemyMove item in list2)
			{
				val._turnMoves.Add(item);
			}
			val.Intentions = list;
			val.NotifyIntentionsChanged();
		}

		private IEnumerable<BattleAction> OnPlayerTurnStarting(UnitEventArgs args)
		{
			if (((StatusEffect)this).Battle.BattleShouldEnd)
			{
				yield break;
			}
			EnemyUnit enemy = (EnemyUnit)((StatusEffect)this).Owner;
			randomAttack();
			List<Intention> intentions = enemy.Intentions.Where((Intention intention) => intention is SpellCardIntention || intention is AttackIntention || intention is CountDownIntention || intention is DoNothingIntention || intention is SpawnIntention || intention is KokoroDarkIntention || intention is SleepIntention).ToList();
			List<IEnemyMove> _turnMoves = enemy._turnMoves.Where((IEnemyMove turnMove) => turnMove.Intention is SpellCardIntention || turnMove.Intention is AttackIntention || turnMove.Intention is CountDownIntention || intention is DoNothingIntention || turnMove.Intention is SpawnIntention || turnMove.Intention is KokoroDarkIntention || turnMove.Intention is SleepIntention).ToList();
			intention.Source = enemy;
			if (!intentions.Any((Intention intention) => intention is AttackIntention) && (intentions.Any(delegate(Intention intention)
			{
				SpellCardIntention val = (SpellCardIntention)(object)((intention is SpellCardIntention) ? intention : null);
				return val != null && !val.Damage.HasValue;
			}) || !intentions.Any((Intention intention) => intention is SpellCardIntention)))
			{
				<>n__0();
				_turnMoves.Add(attack);
				intentions.Add(intention);
			}
			enemy._turnMoves.Clear();
			enemy.ClearIntentions();
			foreach (IEnemyMove attack2 in _turnMoves)
			{
				enemy._turnMoves.Add(attack2);
			}
			enemy.Intentions = intentions;
			enemy.NotifyIntentionsChanged();
		}

		private void randomAttack()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_0029: 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_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Expected I4, but got Unknown
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_017e: Expected I4, but got Unknown
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Expected I4, but got Unknown
			//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Expected I4, but got Unknown
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: Invalid comparison between Unknown and I4
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Invalid comparison between Unknown and I4
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Invalid comparison between Unknown and I4
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0186: Invalid comparison between Unknown and I4
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a5: Invalid comparison between Unknown and I4
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: Invalid comparison between Unknown and I4
			//IL_023d: Unknown result type (might be due to invalid IL or missing references)
			//IL_023f: Invalid comparison between Unknown and I4
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_025e: Invalid comparison between Unknown and I4
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Invalid comparison between Unknown and I4
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Invalid comparison between Unknown and I4
			//IL_0132: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Invalid comparison between Unknown and I4
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Invalid comparison between Unknown and I4
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Invalid comparison between Unknown and I4
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Invalid comparison between Unknown and I4
			//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a7: Invalid comparison between Unknown and I4
			//IL_0374: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_0379: Unknown result type (might be due to invalid IL or missing references)
			//IL_037b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0392: Expected I4, but got Unknown
			//IL_0418: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_041d: Unknown result type (might be due to invalid IL or missing references)
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Expected I4, but got Unknown
			//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04da: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f3: Expected I4, but got Unknown
			//IL_057d: Unknown result type (might be due to invalid IL or missing references)
			//IL_057e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0580: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Unknown result type (might be due to invalid IL or missing references)
			//IL_0584: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Expected I4, but got Unknown
			//IL_060b: Unknown result type (might be due to invalid IL or missing references)
			//IL_060c: Unknown result type (might be due to invalid IL or missing references)
			//IL_060e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0610: Unknown result type (might be due to invalid IL or missing references)
			//IL_0612: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Expected I4, but got Unknown
			//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e3: Expected I4, but got Unknown
			//IL_077f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0780: Unknown result type (might be due to invalid IL or missing references)
			//IL_0782: Unknown result type (might be due to invalid IL or missing references)
			//IL_0784: Unknown result type (might be due to invalid IL or missing references)
			//IL_0786: Unknown result type (might be due to invalid IL or missing references)
			//IL_079d: Expected I4, but got Unknown
			//IL_0850: Unknown result type (might be due to invalid IL or missing references)
			//IL_0851: Unknown result type (might be due to invalid IL or missing references)
			//IL_0853: Unknown result type (might be due to invalid IL or missing references)
			//IL_0855: Unknown result type (might be due to invalid IL or missing references)
			//IL_0857: Unknown result type (might be due to invalid IL or missing references)
			//IL_086e: Expected I4, but got Unknown
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_0397: Invalid comparison between Unknown and I4
			//IL_03af: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Invalid comparison between Unknown and I4
			//IL_03dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Invalid comparison between Unknown and I4
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_043e: Invalid comparison between Unknown and I4
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_046b: Invalid comparison between Unknown and I4
			//IL_0496: Unknown result type (might be due to invalid IL or missing references)
			//IL_0498: Invalid comparison between Unknown and I4
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Invalid comparison between Unknown and I4
			//IL_0511: Unknown result type (might be due to invalid IL or missing references)
			//IL_0513: Invalid comparison between Unknown and I4
			//IL_053e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0540: Invalid comparison between Unknown and I4
			//IL_062f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0631: Invalid comparison between Unknown and I4
			//IL_064e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0650: Invalid comparison between Unknown and I4
			//IL_0682: Unknown result type (might be due to invalid IL or missing references)
			//IL_0684: Invalid comparison between Unknown and I4
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06eb: Invalid comparison between Unknown and I4
			//IL_0708: Unknown result type (might be due to invalid IL or missing references)
			//IL_070a: Invalid comparison between Unknown and I4
			//IL_073c: Unknown result type (might be due to invalid IL or missing references)
			//IL_073e: Invalid comparison between Unknown and I4
			//IL_07a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a5: Invalid comparison between Unknown and I4
			//IL_07c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c7: Invalid comparison between Unknown and I4
			//IL_0801: Unknown result type (might be due to invalid IL or missing references)
			//IL_0803: Invalid comparison between Unknown and I4
			//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c3: Invalid comparison between Unknown and I4
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f0: Invalid comparison between Unknown and I4
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Invalid comparison between Unknown and I4
			//IL_047b: Unknown result type (might be due to invalid IL or missing references)
			//IL_047d: Invalid comparison between Unknown and I4
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04aa: Invalid comparison between Unknown and I4
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)