Decompiled source of NovaRound v0.0.5

NovaRound.dll

Decompiled 2 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using InControl;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using ModsPlus;
using NovaRound.Cards;
using PlayerActionsHelper;
using UnboundLib.Cards;
using UnboundLib.GameModes;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("NovaRound")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("NovaRound")]
[assembly: AssemblyTitle("NovaRound")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
public class MouseShooting : MonoBehaviour
{
	public GameObject bulletPrefab;

	public float bulletSpeed = 10f;

	public float zDistanceFromCamera = 10f;

	private void Update()
	{
		//IL_000c: 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)
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0032: Unknown result type (might be due to invalid IL or missing references)
		//IL_0037: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		if (Input.GetMouseButtonDown(0))
		{
			Vector3 mousePosition = Input.mousePosition;
			mousePosition.z = zDistanceFromCamera;
			Vector3 val = Camera.main.ScreenToWorldPoint(mousePosition);
			Vector3 val2 = val - ((Component)this).transform.position;
			Vector2 val3 = Vector2.op_Implicit(((Vector3)(ref val2)).normalized);
			GameObject val4 = Object.Instantiate<GameObject>(bulletPrefab, val, Quaternion.identity);
		}
	}
}
namespace NovaRound
{
	internal class Assets
	{
		private static readonly AssetBundle Bundle = AssetUtils.LoadAssetBundleFromResources("novaroundcard", typeof(NovaRound).Assembly);

		public static GameObject FrogArt = Bundle.LoadAsset<GameObject>("C_Frog");

		public static GameObject SmallArt = Bundle.LoadAsset<GameObject>("C_Small");

		public static GameObject InfinityBlockArt = Bundle.LoadAsset<GameObject>("C_InfinityBlock");

		public static GameObject ImMaybeGodArt = Bundle.LoadAsset<GameObject>("C_ImMaybeGod");

		public static GameObject CactusManArt = Bundle.LoadAsset<GameObject>("C_CactusMan");

		public static GameObject CheatingArt = Bundle.LoadAsset<GameObject>("C_Cheating");

		public static GameObject DxxgArt = Bundle.LoadAsset<GameObject>("C_Dxxg");

		public static GameObject IdiotArt = Bundle.LoadAsset<GameObject>("C_Idiot");

		public static GameObject PatriotismArt = Bundle.LoadAsset<GameObject>("C_Patriotism");

		public static GameObject RainArt = Bundle.LoadAsset<GameObject>("C_Rain");

		public static GameObject YouAreFoolishArt = Bundle.LoadAsset<GameObject>("C_YouAreFoolish");

		public static GameObject BlowawayArt = Bundle.LoadAsset<GameObject>("C_Blowaway");

		public static GameObject CursorShootArt = Bundle.LoadAsset<GameObject>("C_CursorShoot");

		public static GameObject UniformrectilinearmotionArt = Bundle.LoadAsset<GameObject>("C_Uniformrectilinearmotion");

		public static GameObject NoGravityArt = Bundle.LoadAsset<GameObject>("C_NoGravity");

		public static GameObject CritChanceArt = Bundle.LoadAsset<GameObject>("C_CritChance");

		public static GameObject SniperArt = Bundle.LoadAsset<GameObject>("C_Sniper");

		public static GameObject ChillArt = Bundle.LoadAsset<GameObject>("C_Chill");

		public static GameObject WithArt = Bundle.LoadAsset<GameObject>("C_With");
	}
	internal class CactusManBuff : MonoBehaviour
	{
		public float damageAmount = 10000f;

		public float detectionRadius = 2f;

		public string playerTag = "Player";

		private float lastEffectTime;

		public float effectCooldown = 0.2f;

		private void Update()
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0105: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			if (!(Time.time >= lastEffectTime + effectCooldown))
			{
				return;
			}
			GameObject[] array = GameObject.FindGameObjectsWithTag(playerTag);
			GameObject[] array2 = array;
			Vector2 val2 = default(Vector2);
			Vector2 val3 = default(Vector2);
			foreach (GameObject val in array2)
			{
				if (!((Object)(object)val != (Object)(object)((Component)this).gameObject) || !(Vector3.Distance(((Component)this).transform.position, val.transform.position) < detectionRadius))
				{
					continue;
				}
				Player component = val.GetComponent<Player>();
				if (!((Object)(object)component != (Object)null))
				{
					continue;
				}
				CharacterData component2 = ((Component)component).GetComponent<CharacterData>();
				if ((Object)(object)component2 != (Object)null)
				{
					HealthHandler component3 = ((Component)component).GetComponent<HealthHandler>();
					if ((Object)(object)component3 != (Object)null)
					{
						((Vector2)(ref val2))..ctor(damageAmount, 0f);
						((Vector2)(ref val3))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y);
						component3.DoDamage(val2, val3, Color.red, ((Component)this).gameObject, component, false, true, true);
						Debug.Log("Damage dealt to player: " + ((Object)component).name);
					}
				}
			}
			lastEffectTime = Time.time;
		}
	}
	public class CursorShoot : CustomEffectCard<CursorShootB>
	{
		public override CardDetails<CursorShootB> Details => new CardDetails<CursorShootB>
		{
			Title = "現実は私の意のままに",
			Description = "カーソルから弾を発射します",
			ModName = "NQV4",
			Rarity = (Rarity)2,
			Theme = (CardThemeColorType)8,
			Art = Assets.CursorShootArt
		};

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((Component)player).gameObject.GetComponentInChildren<CursorShootB>();
		}

		protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			if ((Object)(object)((Component)player).gameObject.GetComponentInChildren<CursorShootB>() != (Object)null)
			{
				((Component)player).gameObject.GetComponentInChildren<CursorShootB>();
			}
		}
	}
	public class CursorShootB : CardEffect
	{
		public override void OnShoot(GameObject projectile)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			Vector3 position = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition);
			position.z = 0f;
			projectile.transform.position = position;
		}
	}
	internal class DxxgBuff : MonoBehaviour
	{
		public float damageAmount = 10f;

		public float damageInterval = 1f;

		private HealthHandler healthHandler;

		private void Start()
		{
			healthHandler = ((Component)this).GetComponent<HealthHandler>();
			if ((Object)(object)healthHandler != (Object)null)
			{
				((MonoBehaviour)this).InvokeRepeating("ApplySelfDamage", damageInterval, damageInterval);
			}
			else
			{
				Debug.LogError("HealthHandler not found on " + ((Object)((Component)this).gameObject).name);
			}
		}

		private void ApplySelfDamage()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)healthHandler != (Object)null)
			{
				Vector2 val = default(Vector2);
				((Vector2)(ref val))..ctor(damageAmount, 0f);
				Vector2 val2 = default(Vector2);
				((Vector2)(ref val2))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y);
				healthHandler.DoDamage(val, val2, Color.black, ((Component)this).gameObject, ((Component)this).GetComponent<Player>(), false, true, true);
				Debug.Log("Self-damage applied to: " + ((Object)((Component)this).gameObject).name);
			}
		}
	}
	internal class FoolishBuff : MonoBehaviour
	{
		public float healAmount = 10f;

		public float healInterval = 2f;

		private HealthHandler healthHandler;

		private void OnEnable()
		{
			healthHandler = ((Component)this).GetComponent<HealthHandler>();
			if ((Object)(object)healthHandler != (Object)null)
			{
				((MonoBehaviour)this).InvokeRepeating("ApplyHeal", healInterval, healInterval);
			}
			else
			{
				Debug.LogError("HealthHandler not found on " + ((Object)((Component)this).gameObject).name);
			}
		}

		private void OnDisable()
		{
			((MonoBehaviour)this).CancelInvoke("ApplyHeal");
		}

		private void ApplyHeal()
		{
			if ((Object)(object)healthHandler != (Object)null)
			{
				healthHandler.Heal(healAmount);
			}
		}
	}
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.My.Mod.Id", "NovaRound", "0.0.5")]
	[BepInProcess("Rounds.exe")]
	public class NovaRound : BaseUnityPlugin
	{
		[CompilerGenerated]
		private sealed class <>c__DisplayClass10_0
		{
			public Player player;

			internal bool <ExtraPicks>b__0(Player p)
			{
				return p.playerID == player.playerID;
			}
		}

		[CompilerGenerated]
		private sealed class <ExtraPicks>d__10 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public IGameModeHandler gm;

			public NovaRound <>4__this;

			private Player[] <players>5__1;

			private Player[] <>s__2;

			private int <>s__3;

			private <>c__DisplayClass10_0 <>8__4;

			private int <cardCount>5__5;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <ExtraPicks>d__10(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<players>5__1 = null;
				<>s__2 = null;
				<>8__4 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_0160: Unknown result type (might be due to invalid IL or missing references)
				//IL_016a: Expected O, but got Unknown
				//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
				//IL_01aa: Expected O, but got Unknown
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<players>5__1 = PlayerManager.instance.players.ToArray();
					<>s__2 = <players>5__1;
					<>s__3 = 0;
					goto IL_01d1;
				case 1:
					<>1__state = -1;
					CardChoiceVisuals.instance.Show(PlayerManager.instance.players.FindIndex((Player p) => p.playerID == <>8__4.player.playerID), true);
					<>2__current = CardChoice.instance.DoPick(1, <>8__4.player.playerID, (PickerType)1);
					<>1__state = 2;
					return true;
				case 2:
					<>1__state = -1;
					<>2__current = (object)new WaitForSecondsRealtime(0.1f);
					<>1__state = 3;
					return true;
				case 3:
					<>1__state = -1;
					<>2__current = GameModeManager.TriggerHook("PlayerPickEnd");
					<>1__state = 4;
					return true;
				case 4:
					<>1__state = -1;
					<>2__current = (object)new WaitForSecondsRealtime(0.1f);
					<>1__state = 5;
					return true;
				case 5:
					{
						<>1__state = -1;
						goto IL_01bb;
					}
					IL_01d1:
					if (<>s__3 < <>s__2.Length)
					{
						<>8__4 = new <>c__DisplayClass10_0();
						<>8__4.player = <>s__2[<>s__3];
						<cardCount>5__5 = <>8__4.player.data.currentCards.Count;
						if (<cardCount>5__5 % 2 == 0 && <cardCount>5__5 > 1)
						{
							<>2__current = GameModeManager.TriggerHook("PlayerPickStart");
							<>1__state = 1;
							return true;
						}
						goto IL_01bb;
					}
					<>s__2 = null;
					return false;
					IL_01bb:
					<>8__4 = null;
					<>s__3++;
					goto IL_01d1;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private const string ModId = "com.My.Mod.Id";

		private const string ModName = "NovaRound";

		public const string Version = "0.0.5";

		public const string ModInitials = "NOVA";

		public static NovaRound instance { get; private set; }

		private void Awake()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Expected O, but got Unknown
			Harmony val = new Harmony("com.My.Mod.Id");
			val.PatchAll();
		}

		private void Start()
		{
			instance = this;
			CustomCard.BuildCard<Frog>();
			CustomCard.BuildCard<Small>();
			CustomCard.BuildCard<InfinityBlock>();
			CustomCard.BuildCard<ImMaybeGod>();
			CustomCard.BuildCard<YouAreFoolish>();
			CustomCard.BuildCard<CactusMan>();
			CustomCard.BuildCard<Uniformrectilinearmotion>();
			CustomCard.BuildCard<Dxxg>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "xx");
			});
			CustomCard.BuildCard<Cheating>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "C");
			});
			CustomCard.BuildCard<Blowaway>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Ba");
			});
			CustomCard.BuildCard<CursorShoot>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Cs");
			});
			CustomCard.BuildCard<Patriotism>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Pa");
			});
			CustomCard.BuildCard<NoGravity>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Ng");
			});
			CustomCard.BuildCard<Rain>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Ra");
			});
			CustomCard.BuildCard<Idiot>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "mr");
			});
			CustomCard.BuildCard<CritChance>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "cr");
			});
			CustomCard.BuildCard<Sniper>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "Sn");
			});
			CustomCard.BuildCard<Chill>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "ch");
			});
			CustomCard.BuildCard<With>((Action<CardInfo>)delegate(CardInfo c)
			{
				ExtensionMethods.SetAbbreviation(c, "ch");
			});
			GameModeManager.AddHook("PickEnd", (Func<IGameModeHandler, IEnumerator>)ExtraPicks);
		}

		[IteratorStateMachine(typeof(<ExtraPicks>d__10))]
		private IEnumerator ExtraPicks(IGameModeHandler gm)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <ExtraPicks>d__10(0)
			{
				<>4__this = this,
				gm = gm
			};
		}
	}
}
namespace NovaRound.Cards
{
	internal class Blowaway : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.knockback += 30f;
			gun.damage *= 0.75f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "うわぁぁ!なんてノックバックだよ!!";
		}

		protected override string GetDescription()
		{
			return "";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.BlowawayArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "ノックバック",
					amount = "いままでよりもっと",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "ダメージ",
					amount = "75%",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)8;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	internal class CactusMan : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((Component)player).gameObject.AddComponent<CactusManBuff>();
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CactusManBuff[] components = ((Component)player).gameObject.GetComponents<CactusManBuff>();
			CactusManBuff[] array = components;
			foreach (CactusManBuff cactusManBuff in array)
			{
				Object.Destroy((Object)(object)cactusManBuff);
			}
		}

		protected override string GetTitle()
		{
			return "Cactus Man";
		}

		protected override string GetDescription()
		{
			return "接触した敵を殺す";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.CactusManArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)1;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "触れた敵",
					amount = "死ぬ",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)4;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	internal class Cheating : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.reloadTime = 0.1f;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "Cheating";
		}

		protected override string GetDescription()
		{
			return "リロードなんていらねぇ";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.CheatingArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)2;
		}

		protected override CardInfoStat[] GetStats()
		{
			return (CardInfoStat[])(object)new CardInfoStat[0];
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)8;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class Chill : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "ゆっくりしなって";
				val.Description = "";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)7;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						amount = "非常に遅い",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "弾のスピード"
					}
				};
				val.Art = Assets.ChillArt;
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			gun.projectielSimulatonSpeed /= 4f;
			gun.gravity /= 2f;
			gun.projectileColor = new Color(0.9f, 0.1f, 0.5f, 1f);
		}
	}
	public class CritChance : CustomEffectCard<CritChanceBuff>
	{
		public override CardDetails<CritChanceBuff> Details
		{
			get
			{
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Expected O, but got Unknown
				CardDetails<CritChanceBuff> val = new CardDetails<CritChanceBuff>();
				val.Title = "こういうのが好きなんでしょ";
				val.Description = "you can get crit chance";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						amount = "+20%",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "クリティカル率"
					},
					new CardInfoStat
					{
						amount = "+200%",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "クリティカルダメージ倍率"
					}
				};
				val.Art = Assets.CritChanceArt;
				return val;
			}
		}
	}
	public class CritChanceBuff : CardEffect
	{
		private float critChance = 0.2f;

		private float originalDamage;

		public override void OnShoot(GameObject projectile)
		{
			ProjectileHit component = projectile.GetComponent<ProjectileHit>();
			Gun componentInParent = projectile.GetComponentInParent<Gun>();
			if ((Object)(object)component != (Object)null)
			{
				originalDamage = component.damage;
				float num = Random.Range(0f, 1f);
				if (num < critChance)
				{
					component.damage *= 3f;
				}
				else
				{
					component.damage = originalDamage;
				}
			}
		}
	}
	internal class Dxxg : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			gun.damage *= 2f;
			characterStats.attackSpeedMultiplier *= 2f;
			characterStats.movementSpeed *= 2f;
			block.cooldown /= 2f;
			((Component)player).gameObject.AddComponent<DxxgBuff>();
			gunAmmo.reloadTime /= 2f;
			gunAmmo.maxAmmo += 10;
			((Component)player).gameObject.GetComponent<SpriteRenderer>().color = Color.red;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			DxxgBuff[] components = ((Component)player).gameObject.GetComponents<DxxgBuff>();
			DxxgBuff[] array = components;
			foreach (DxxgBuff dxxgBuff in array)
			{
				Object.Destroy((Object)(object)dxxgBuff);
			}
		}

		protected override string GetTitle()
		{
			return "Dxxg";
		}

		protected override string GetDescription()
		{
			return "あなたは命を削り薬で力を手に入れた";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.DxxgArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Expected O, but got Unknown
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: 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_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Expected O, but got Unknown
			//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Expected O, but got Unknown
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Expected O, but got Unknown
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[7]
			{
				new CardInfoStat
				{
					positive = false,
					stat = "継続ダメージ",
					amount = "10DPS",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "与えるダメージ",
					amount = "+50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "移動速度",
					amount = "+100%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "防御クールダウン",
					amount = "-50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "攻撃速度",
					amount = "+100%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "リロード速度",
					amount = "-50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "弾数",
					amount = "+10",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)5;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	internal class EvasiveManeuvers : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			block.forceToAdd = -10f;
			statModifiers.health = 1f;
			block.cdAdd = 0.25f;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "Back";
		}

		protected override string GetDescription()
		{
			return "If you block you can back";
		}

		protected override GameObject GetCardArt()
		{
			return null;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "Health",
					amount = "+20%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Block Cooldown",
					amount = "+0.25s",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)7;
		}

		public override string GetModName()
		{
			return "NovaRound";
		}
	}
	internal class Frog : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CharacterStatModifiers statModifiers = base.statModifiers;
			statModifiers.jump *= 2f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "Frog";
		}

		protected override string GetDescription()
		{
			return "ジャンプ力が向上する";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.FrogArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "Jump",
					amount = "おおよそ2倍",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)7;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class Idiot : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Idiot";
				val.Description = "あなたはブロックを失いました、代わりといってはなんですが、連射速度をプレゼントしましょう";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						amount = "爆速",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "攻撃速度"
					},
					new CardInfoStat
					{
						amount = "無効化",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "ブロック"
					}
				};
				val.Art = Assets.IdiotArt;
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.attackSpeed /= 8f;
			((Behaviour)block).enabled = false;
		}

		private void RemoveRandomCards(List<CardInfo> playerHand, int numberToRemove)
		{
		}
	}
	internal class ImMaybeGod : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.movementSpeed *= 1.5f;
			float num = Random.Range(0.5f, 3f);
			data.maxHealth *= num;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.movementSpeed /= 1.5f;
		}

		protected override string GetTitle()
		{
			return "I'm May be God";
		}

		protected override string GetDescription()
		{
			return "きっと多分恐らくね...";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.ImMaybeGodArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Expected O, but got Unknown
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: 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_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					stat = "ヘルス",
					amount = "50% ~ 300%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "移動速度",
					amount = "150%",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)8;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class InvincibilityEffect : MonoBehaviour
	{
		private Player player;

		private float duration;

		public void StartEffect(Player player, float duration)
		{
			this.player = player;
			this.duration = duration;
		}
	}
	internal class InfinityBlock : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			data.maxHealth *= 0.01f;
			CharacterStatModifiers statModifiers = base.statModifiers;
			statModifiers.sizeMultiplier += 1f;
			block.cooldown *= 0.01f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "forever block";
		}

		protected override string GetDescription()
		{
			return "体力がなくてもはじけば問題ないもんね!";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.InfinityBlockArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)2;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "防御クールダウン",
					amount = "限りなく短い",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "ヘルス",
					amount = "限りなく低い",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)3;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class NoGravity : CustomEffectCard<NoGravityBuff>
	{
		public override CardDetails<NoGravityBuff> Details
		{
			get
			{
				//IL_004f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				//IL_005f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0079: Expected O, but got Unknown
				//IL_007b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0080: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0092: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a5: Expected O, but got Unknown
				CardDetails<NoGravityBuff> val = new CardDetails<NoGravityBuff>();
				val.Title = "無重力";
				val.Description = "重力を削除してみました";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)0;
				val.Art = Assets.NoGravityArt;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						amount = "0",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "あなたにかかる重力"
					},
					new CardInfoStat
					{
						amount = "+150%",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "空中移動速度"
					}
				};
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((CustomCard)this).statModifiers.gravity = 0f;
		}

		protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}
	}
	public class NoGravityBuff : CardEffect
	{
		private Player player;

		private CharacterStatModifiers stats;

		private float originalMovementSpeed;

		private bool isAirborne;

		private void Start()
		{
			player = ((Component)this).GetComponent<Player>();
			stats = player.data.stats;
			originalMovementSpeed = stats.movementSpeed;
			stats.gravity = 0f;
		}

		private void Update()
		{
			bool flag = !player.data.isGrounded;
			if (flag && !isAirborne)
			{
				CharacterStatModifiers obj = stats;
				obj.movementSpeed *= 1.5f;
				isAirborne = true;
			}
			else if (!flag && isAirborne)
			{
				stats.movementSpeed = originalMovementSpeed;
				isAirborne = false;
			}
		}

		private void OnDestroy()
		{
			stats.movementSpeed = originalMovementSpeed;
			stats.gravity = 1f;
		}
	}
	internal class Patriotism : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((Component)player).gameObject.AddComponent<PatriotismHandler>();
			data.maxHealth *= 2f;
			gun.damage *= 2f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			PatriotismHandler[] components = ((Component)player).gameObject.GetComponents<PatriotismHandler>();
			PatriotismHandler[] array = components;
			foreach (PatriotismHandler patriotismHandler in array)
			{
				Object.Destroy((Object)(object)patriotismHandler);
			}
		}

		protected override string GetTitle()
		{
			return "Patriotism";
		}

		protected override string GetDescription()
		{
			return "後退してはならない";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.PatriotismArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)1;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[3]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "体力",
					amount = "+100%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "ダメージ",
					amount = "+100%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "後退すると得る",
					amount = "死",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)1;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class PatriotismHandler : MonoBehaviour
	{
		[CompilerGenerated]
		private sealed class <OnRoundStart>d__7 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			public IGameModeHandler gm;

			public PatriotismHandler <>4__this;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <OnRoundStart>d__7(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<>2__current = null;
					<>1__state = 1;
					return true;
				case 1:
					<>1__state = -1;
					<>4__this.UpdateLeftyo();
					return false;
				}
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		private Player player;

		private bool leftyo;

		private string team;

		private PlayerActions playerActions;

		private void Awake()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Expected O, but got Unknown
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Expected O, but got Unknown
			PlayerActionManager.RegisterPlayerAction(new ActionInfo("BackA", (BindingSource)new KeyBindingSource((Key[])(object)new Key[1] { (Key)36 }), (BindingSource)null));
			PlayerActionManager.RegisterPlayerAction(new ActionInfo("BackD", (BindingSource)new KeyBindingSource((Key[])(object)new Key[1] { (Key)39 }), (BindingSource)null));
			player = ((Component)this).GetComponentInParent<Player>();
			playerActions = player.data.playerActions;
		}

		private void Start()
		{
			player = ((Component)this).GetComponentInParent<Player>();
			UpdateLeftyo();
			team = player.playerID.ToString();
			GameModeManager.AddHook("PointStart", (Func<IGameModeHandler, IEnumerator>)OnRoundStart);
		}

		private void OnDestroy()
		{
			GameModeManager.RemoveHook("PointStart", (Func<IGameModeHandler, IEnumerator>)OnRoundStart);
		}

		[IteratorStateMachine(typeof(<OnRoundStart>d__7))]
		private IEnumerator OnRoundStart(IGameModeHandler gm)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <OnRoundStart>d__7(0)
			{
				<>4__this = this,
				gm = gm
			};
		}

		private void UpdateLeftyo()
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)player != (Object)null)
			{
				leftyo = ((Component)player).transform.position.x < 0f;
			}
		}

		private void Update()
		{
			float x = player.data.input.direction.x;
			if (leftyo && x < 0f)
			{
				Die();
			}
			else if (!leftyo && x > 0f)
			{
				Die();
			}
		}

		private void Die()
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			HealthHandler componentInParent = ((Component)this).GetComponentInParent<HealthHandler>();
			if ((Object)(object)componentInParent != (Object)null)
			{
				Vector2 val = default(Vector2);
				((Vector2)(ref val))..ctor(100000000f, 0f);
				Vector2 val2 = default(Vector2);
				((Vector2)(ref val2))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y);
				componentInParent.DoDamage(val, val2, Color.red, ((Component)this).gameObject, ((Component)this).GetComponent<Player>(), false, true, true);
			}
		}
	}
	internal class Rain : CustomEffectCard<RainShooting>
	{
		public override CardDetails<RainShooting> Details
		{
			get
			{
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Expected O, but got Unknown
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a0: 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_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c5: Expected O, but got Unknown
				CardDetails<RainShooting> val = new CardDetails<RainShooting>();
				val.Title = "Rain";
				val.Description = "明日の天気は爆撃のち死";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)4;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						amount = "+40",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "弾数"
					},
					new CardInfoStat
					{
						amount = "爆速",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "攻撃速度"
					},
					new CardInfoStat
					{
						amount = "-95%",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "ダメージ"
					}
				};
				val.Art = Assets.RainArt;
				return val;
			}
		}

		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			gun.projectileColor = new Color(0.7f, 0.8f, 1f, 1f);
			gunAmmo.maxAmmo += 40;
			gun.damage /= 20f;
			gun.attackSpeed /= 8f;
			gun.gravity *= 20f;
			gun.projectileSpeed /= 2f;
		}

		protected override void Removed(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}
	}
	public class RainShooting : CardEffect
	{
		public override void OnShoot(GameObject projectile)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			Vector3 position = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition);
			position.x += Random.Range(-5f, 5f);
			position.y = 20f;
			position.z = 0f;
			projectile.transform.position = position;
			MoveTransform component = projectile.GetComponent<MoveTransform>();
			if ((Object)(object)component != (Object)null)
			{
				component.velocity = new Vector3(0f, -1000f, 0f);
			}
		}
	}
	internal class Small : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.sizeMultiplier *= 0.75f;
			gun.damage *= 0.5f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "mini";
		}

		protected override string GetDescription()
		{
			return "ちいさくなる";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.SmallArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "size",
					amount = "0.75倍",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "与えるダメージ",
					amount = "0.5倍",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)7;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class Sniper : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				//IL_006f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0099: Expected O, but got Unknown
				//IL_009b: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a0: 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_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c5: Expected O, but got Unknown
				//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00de: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f1: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Sniper";
				val.Description = "葬れ";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[4]
				{
					new CardInfoStat
					{
						amount = "スナイパー",
						positive = true,
						simepleAmount = (SimpleAmount)0,
						stat = "弾"
					},
					new CardInfoStat
					{
						amount = "無効化",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "ブロック"
					},
					new CardInfoStat
					{
						amount = "-50%",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "移動速度"
					},
					new CardInfoStat
					{
						amount = "1",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "弾"
					}
				};
				val.Art = Assets.SniperArt;
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			((Behaviour)block).enabled = false;
			gun.projectileSpeed *= 5f;
			gun.damage *= 5f;
			gun.gravity = 0f;
			gunAmmo.maxAmmo -= 1000;
			characterStats.movementSpeed /= 2f;
			gun.projectileColor = new Color(0.3f, 0.3f, 0.3f, 1f);
		}
	}
	internal class Template : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "CardName";
		}

		protected override string GetDescription()
		{
			return "CardDescription";
		}

		protected override GameObject GetCardArt()
		{
			return null;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "Effect",
					amount = "No",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)7;
		}

		public override string GetModName()
		{
			return "ModName";
		}
	}
	internal class Uniformrectilinearmotion : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.gravity = 0f;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
		}

		protected override string GetTitle()
		{
			return "等速直線運動";
		}

		protected override string GetDescription()
		{
			return "説明要らんやろ";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.UniformrectilinearmotionArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)1;
		}

		protected override CardInfoStat[] GetStats()
		{
			return (CardInfoStat[])(object)new CardInfoStat[0];
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)6;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
	public class With : CustomEffectCard<ShadowBlockBuff>
	{
		public override CardDetails<ShadowBlockBuff> Details
		{
			get
			{
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Expected O, but got Unknown
				CardDetails<ShadowBlockBuff> val = new CardDetails<ShadowBlockBuff>();
				val.Title = "一緒";
				val.Description = "ブロックするとプレイヤー全員が最大体力の半分のダメージを受けます";
				val.ModName = "NQV4";
				val.Rarity = (Rarity)1;
				val.Theme = (CardThemeColorType)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						amount = "+10s",
						positive = false,
						simepleAmount = (SimpleAmount)0,
						stat = "防御クールダウン"
					}
				};
				val.Art = Assets.WithArt;
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			block.cooldown += 10f;
		}
	}
	public class ShadowBlockBuff : CardEffect
	{
		public float detectionRadius = 128f;

		public string playerTag = "Player";

		private float lastEffectTime;

		public float effectCooldown = 1f;

		private float invisibilityDuration = 2f;

		public override void OnBlock(BlockTriggerType blockTriggerType)
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			GameObject[] array = GameObject.FindGameObjectsWithTag(playerTag);
			GameObject[] array2 = array;
			Vector2 val2 = default(Vector2);
			Vector2 val3 = default(Vector2);
			foreach (GameObject val in array2)
			{
				if (!((Object)(object)val != (Object)(object)((Component)this).gameObject) || !(Vector3.Distance(((Component)this).transform.position, val.transform.position) < detectionRadius))
				{
					continue;
				}
				Player component = val.GetComponent<Player>();
				if (!((Object)(object)component != (Object)null))
				{
					continue;
				}
				CharacterData component2 = ((Component)component).GetComponent<CharacterData>();
				if ((Object)(object)component2 != (Object)null)
				{
					HealthHandler component3 = ((Component)component).GetComponent<HealthHandler>();
					if ((Object)(object)component3 != (Object)null)
					{
						float num = component2.maxHealth / 2f;
						((Vector2)(ref val2))..ctor(num, 0f);
						((Vector2)(ref val3))..ctor(((Component)this).transform.position.x, ((Component)this).transform.position.y);
						component3.DoDamage(val2, val3, Color.red, ((Component)this).gameObject, component, false, true, true);
						Debug.Log("Damage dealt to player: " + ((Object)component).name + " with " + num + " damage.");
					}
				}
			}
		}
	}
	internal class YouAreFoolish : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((Component)player).gameObject.AddComponent<FoolishBuff>();
			data.maxHealth *= 0.75f;
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			FoolishBuff[] components = ((Component)player).gameObject.GetComponents<FoolishBuff>();
			FoolishBuff[] array = components;
			foreach (FoolishBuff foolishBuff in array)
			{
				Object.Destroy((Object)(object)foolishBuff);
			}
		}

		protected override string GetTitle()
		{
			return "You Are Foolish";
		}

		protected override string GetDescription()
		{
			return "気にしたら負け";
		}

		protected override GameObject GetCardArt()
		{
			return Assets.YouAreFoolishArt;
		}

		protected override Rarity GetRarity()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (Rarity)0;
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: 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)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Expected O, but got Unknown
			//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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[2]
			{
				new CardInfoStat
				{
					positive = false,
					stat = "ヘルス",
					amount = "75%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "自動回復",
					amount = "10h/2s",
					simepleAmount = (SimpleAmount)0
				}
			};
		}

		protected override CardThemeColorType GetTheme()
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			return (CardThemeColorType)4;
		}

		public override string GetModName()
		{
			return "NQV4";
		}
	}
}