Decompiled source of ChaosPoppycarsCardsClassic v1.0.0

ChaosPoppycarsCardsClassic.dll

Decompiled a month ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using CPCClassic.MonoBehaviours;
using CPCCore;
using CPCCore.Extensions;
using CPCCore.Utilities;
using CardChoiceSpawnUniqueCardPatch.CustomCategories;
using HarmonyLib;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using ModdingUtils.Extensions;
using ModdingUtils.MonoBehaviours;
using ModdingUtils.Utils;
using RarityLib.Utils;
using UnboundLib;
using UnboundLib.Cards;
using UnboundLib.Utils;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace CPCClassic
{
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("com.Poppycars.CPCClassic.Id", "ChaosPoppycarsCardsClassic", "1.0.0")]
	[BepInProcess("Rounds.exe")]
	public class ChaosPoppycarsCardsClassic : BaseUnityPlugin
	{
		private const string ModId = "com.Poppycars.CPCClassic.Id";

		private const string ModName = "ChaosPoppycarsCardsClassic";

		public const string Version = "1.0.0";

		public const string ModInitials = "CPCClassic";

		internal static List<BaseUnityPlugin> plugins;

		public static AssetBundle Bundle;

		public static ChaosPoppycarsCardsClassic Instance { get; private set; }

		private void Awake()
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Expected O, but got Unknown
			Bundle = AssetUtils.LoadAssetBundleFromResources("cpcclassic", typeof(ChaosPoppycarsCardsClassic).Assembly);
			Harmony val = new Harmony("com.Poppycars.CPCClassic.Id");
			val.PatchAll();
			GameObject val2 = Bundle.LoadAsset<GameObject>("ModCards");
			CardHolder component = val2.GetComponent<CardHolder>();
			component.RegisterCards();
		}

		private void Start()
		{
			plugins = (List<BaseUnityPlugin>)typeof(Chainloader).GetField("_plugins", BindingFlags.Static | BindingFlags.NonPublic).GetValue(null);
			Instance = this;
			ChaosPoppycarsCardsCore.RegisterCards(typeof(ChaosPoppycarsCardsClassic).Assembly, Bundle);
			ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)this, 60, (Action)delegate
			{
				CardManager.cards.Values.ToList().ForEach(delegate(Card card)
				{
					AddMod(card);
				});
			});
		}

		private void AddMod(Card card)
		{
			string text = "__Rarity-" + ((object)(Rarity)(ref card.cardInfo.rarity)).ToString();
			CardCategory val = CustomCardCategories.instance.CardCategory(text);
			CardCategory[] categories = CollectionExtensions.AddToArray<CardCategory>(card.cardInfo.categories, val);
			card.cardInfo.categories = categories;
		}
	}
}
namespace CPCClassic.MonoBehaviours
{
	internal class BouncyMono : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 5f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.blue);
		}

		public override void OnStart()
		{
			//IL_001f: 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)
			base.gunStatModifier.reflects_add = 3;
			base.gunStatModifier.reflects_mult = 3;
			base.gunStatModifier.projectileColor = Color.blue;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class CenterPullMono : MonoBehaviour
	{
		private Player player;

		public void Start()
		{
			player = ((Component)this).GetComponentInParent<Player>();
		}

		public void Update()
		{
			//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_003f: 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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: 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_0049: 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_00e2: 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_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: 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_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: 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)
			if (PlayerStatus.PlayerAliveAndSimulated(player))
			{
				Vector2 val = default(Vector2);
				((Vector2)(ref val))..ctor(0f, 0f);
				Vector2 val2 = Vector2.op_Implicit(((Component)player).gameObject.transform.position);
				Vector2 val3 = val - val2;
				if (Vector2.Distance(val, val2) >= 1f)
				{
					ExtensionMethods.SetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity", (object)((Vector2)ExtensionMethods.GetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity") + val3 * 1f / (Vector2.Distance(val, val2) / 1.5f)));
				}
				else
				{
					ExtensionMethods.SetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity", (object)((Vector2)ExtensionMethods.GetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity") + val3));
				}
				if (Vector2.Distance(val, val2) <= 6f)
				{
					player.data.sinceGrounded = 0f;
				}
			}
		}

		public void Remove()
		{
		}
	}
	internal class CenterPushMono : MonoBehaviour
	{
		private Player player;

		public void Start()
		{
			player = ((Component)this).GetComponentInParent<Player>();
		}

		public void Update()
		{
			//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_003f: 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_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: 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_0049: 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_00e2: 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_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: 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_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: 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)
			if (PlayerStatus.PlayerAliveAndSimulated(player))
			{
				Vector2 val = default(Vector2);
				((Vector2)(ref val))..ctor(0f, 0f);
				Vector2 val2 = Vector2.op_Implicit(((Component)player).gameObject.transform.position);
				Vector2 val3 = val - val2;
				if (Vector2.Distance(val, val2) >= 1f)
				{
					ExtensionMethods.SetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity", (object)((Vector2)ExtensionMethods.GetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity") - val3 * 1f / (Vector2.Distance(val, val2) / 1.5f)));
				}
				else
				{
					ExtensionMethods.SetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity", (object)((Vector2)ExtensionMethods.GetFieldValue((object)((Component)player).GetComponent<PlayerVelocity>(), "velocity") - val3));
				}
				if (Vector2.Distance(val, val2) <= 6f)
				{
					player.data.sinceGrounded = 0f;
				}
			}
		}

		public void Remove()
		{
		}
	}
	internal class DupeEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 5f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.gray);
		}

		public override void OnStart()
		{
			//IL_0023: 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)
			base.gunStatModifier.numberOfProjectiles_mult = 2;
			base.gunStatModifier.spread_add = 0.1f;
			base.gunStatModifier.projectileColor = Color.grey;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class JumpBurstEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Remove(jump.JumpAction, new Action(OnJump));
		}

		private void OnJump()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 0.65f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(new Color(0.6f, 0f, 0.923f));
		}

		public override void OnStart()
		{
			base.gunStatModifier.bursts_add = 2;
			base.gunStatModifier.timeBetweenBullets_add = 0.1f;
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Combine(jump.JumpAction, new Action(OnJump));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class JumpPowerEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Remove(jump.JumpAction, new Action(OnJump));
		}

		private void OnJump()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 0.65f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(new Color(1f, 0.1f, 0.1f));
		}

		public override void OnStart()
		{
			base.gunStatModifier.damage_mult = 2f;
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Combine(jump.JumpAction, new Action(OnJump));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class JumpShrinkEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Remove(jump.JumpAction, new Action(OnJump));
		}

		private void OnJump()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 0.75f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(new Color(0.6f, 0f, 0.923f));
		}

		public override void OnStart()
		{
			base.characterStatModifiersModifier.sizeMultiplier_mult = 0.5f;
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Combine(jump.JumpAction, new Action(OnJump));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class JumpSpeedEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Remove(jump.JumpAction, new Action(OnJump));
		}

		private void OnJump()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 0.65f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(new Color(0.2f, 0.1f, 1f));
		}

		public override void OnStart()
		{
			base.characterStatModifiersModifier.movementSpeed_mult = 2f;
			PlayerJump jump = base.data.jump;
			jump.JumpAction = (Action)Delegate.Combine(jump.JumpAction, new Action(OnJump));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class COCSodaEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 2f;
			ColorEffect orAddComponent = ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)base.player).gameObject, false);
			orAddComponent.SetColor(Color.red);
		}

		public override void OnStart()
		{
			base.gravityModifier.gravityForce_mult = 0.5f;
			base.characterDataModifier.maxHealth_mult = 1.5f;
			base.healthHandlerModifier.regen_add = 10f;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)base.player).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)base.player).gameObject, false));
		}
	}
	internal class DRSodaEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 2f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.red);
		}

		public override void OnStart()
		{
			base.gunStatModifier.damage_mult = 1.5f;
			base.gunAmmoStatModifier.reloadTimeMultiplier_mult = 0.5f;
			base.gunStatModifier.attackSpeed_mult = 0.5f;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class MTDSodaEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 2f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.green);
		}

		public override void OnStart()
		{
			base.characterStatModifiersModifier.movementSpeed_mult = 2f;
			base.characterStatModifiersModifier.sizeMultiplier_mult = 1.5f;
			base.characterStatModifiersModifier.jump_mult = 1.25f;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class PEPSodaEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 2f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.blue);
		}

		public override void OnStart()
		{
			base.characterStatModifiersModifier.movementSpeed_mult = 1.25f;
			base.characterStatModifiersModifier.secondsToTakeDamageOver_add = 3f;
			base.characterDataModifier.maxHealth_mult = 1.25f;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
	internal class SPRSodaEffect : ReversibleEffect
	{
		private float duration = 0f;

		public override void OnOnDestroy()
		{
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
		}

		private void OnBlock(BlockTriggerType trigger)
		{
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			if (duration <= 0f)
			{
				((ReversibleEffect)this).ApplyModifiers();
			}
			duration = 2f;
			ColorEffect val = ((Component)base.player).gameObject.AddComponent<ColorEffect>();
			val.SetColor(Color.green);
		}

		public override void OnStart()
		{
			base.characterStatModifiersModifier.lifeSteal_add = 1f;
			base.characterStatModifiersModifier.sizeMultiplier_mult = 0.75f;
			Block block = base.data.block;
			block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, new Action<BlockTriggerType>(OnBlock));
			((ReversibleEffect)this).SetLivesToEffect(int.MaxValue);
		}

		public override void OnUpdate()
		{
			if (!(duration <= 0f))
			{
				duration -= TimeHandler.deltaTime;
				return;
			}
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}

		public override void OnOnDisable()
		{
			duration = 0f;
			((ReversibleEffect)this).ClearModifiers(true);
			Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<ColorEffect>(((Component)this).gameObject, false));
		}
	}
}
namespace CPCClassic.Cards
{
	internal class AbsorbingBullets : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.dmgMOnBounce = 1.1f;
			gun.reflects = 2;
			CPCDebug.Log((object)("[CPCCore][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			ObjectsToSpawn item = ((GameObject)Resources.Load("0 cards/Mayhem")).GetComponent<Gun>().objectsToSpawn[0];
			List<ObjectsToSpawn> list = gun.objectsToSpawn.ToList();
			list.Add(item);
			gun.objectsToSpawn = list.ToArray();
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCCore", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Plant-like bullets";
		}

		protected override string GetDescription()
		{
			return "Your bullets absorb nutrients from the ground as they bounce making them stronger";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_AbsorbingBullets");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Damage on Bounce",
					amount = "+10%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Bounces",
					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)6;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class ActivatedDuplicator : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			block.cdMultiplier = 1.15f;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			DupeEffect orAddComponent = ExtensionMethods.GetOrAddComponent<DupeEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			DupeEffect orAddComponent = ExtensionMethods.GetOrAddComponent<DupeEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Activated Duplicator";
		}

		protected override string GetDescription()
		{
			return "When you block you activate a duplicator that doubles your projectiles for 5 seconds";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_ActivatedDuplicator");
		}

		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 = false,
					stat = "Block Cooldown",
					amount = "+15%",
					simepleAmount = (SimpleAmount)2
				}
			};
		}

		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 "CPC";
		}
	}
	internal class AmmoChest : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.reloadTime = 1.5f;
			gun.ammo = 20;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Ammo Chest";
		}

		protected override string GetDescription()
		{
			return "You find a chest full of ammo";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_AmmoChest");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Ammo",
					amount = "+20",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Reload Time",
					amount = "+50%",
					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 "CPC";
		}
	}
	internal class BalloonBullets : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.projectileSize = 1.75f;
			gun.damage = 0.75f;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Balloon Bullets";
		}

		protected override string GetDescription()
		{
			return "Your bullets are now inflated like balloons, making them larger but they do less damage";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_BalloonBullets");
		}

		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 = "Projectile Size",
					amount = "+175%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Damage",
					amount = "-25%",
					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 "CPC";
		}
	}
	internal class BouncyGel : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			block.cdMultiplier = 1.15f;
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			BouncyMono orAddComponent = ExtensionMethods.GetOrAddComponent<BouncyMono>(((Component)player).gameObject, false);
			ObjectsToSpawn item = ((GameObject)Resources.Load("0 cards/Mayhem")).GetComponent<Gun>().objectsToSpawn[0];
			List<ObjectsToSpawn> list = gun.objectsToSpawn.ToList();
			list.Add(item);
			gun.objectsToSpawn = list.ToArray();
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			BouncyMono orAddComponent = ExtensionMethods.GetOrAddComponent<BouncyMono>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Bouncy Gel";
		}

		protected override string GetDescription()
		{
			return "You get bouncy bullets for 5 seconds after blocking";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_BouncyGel");
		}

		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 = false,
					stat = "Block Cooldown",
					amount = "+15%",
					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 "CPC";
		}
	}
	internal class DoubleDuplicator : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
			gun.spread = 0.2f;
			gun.damage = 0.5f;
			gun.numberOfProjectiles = 2;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Double Duplicator";
		}

		protected override string GetDescription()
		{
			return "Gives you TWO projectiles";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_DoubleDuplicator");
		}

		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
			//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 = "Projectiles",
					amount = "+2",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Damage",
					amount = "-50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Spread",
					amount = "+20%",
					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 "CPC";
		}
	}
	internal class Duplicator : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
			gun.spread = 0.1f;
			gun.damage = 0.75f;
			gun.numberOfProjectiles = 1;
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

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

		protected override string GetDescription()
		{
			return "Gives you an additional projectile";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_Duplicator");
		}

		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 = "Projectiles",
					amount = "+1",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Damage",
					amount = "-25%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Spread",
					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)1;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class Getaway : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			HealthBasedEffect val = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			((ReversibleEffect)val).characterStatModifiersModifier.movementSpeed_mult = 2f;
			((ReversibleEffect)val).gunStatModifier.attackSpeed_mult = 0.5f;
			((ReversibleEffect)val).gunStatModifier.knockback_mult = 11f;
			val.SetPercThresholdMax(0.5f);
			val.SetColor(Color.yellow);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "GET OFF OF ME";
		}

		protected override string GetDescription()
		{
			return "Once below 50% hp gain movment speed, attack speed, and knockback";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_GETAWAY");
		}

		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
			//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
			return (CardInfoStat[])(object)new CardInfoStat[4]
			{
				new CardInfoStat
				{
					positive = true,
					stat = "WHEN BELOW 50%",
					amount = "",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Movement Speed",
					amount = "+100%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Attack Speed",
					amount = "+50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Knockback",
					amount = "+1000%",
					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)2;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class HealingBlock : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			block.healing = 30f;
			block.cdAdd = -0.25f;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

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

		protected override string GetDescription()
		{
			return "Heal 30 health on block";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_HealingBlock");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Heal on block",
					amount = "+30",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					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 "CPC";
		}
	}
	internal class IcySprings : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			//IL_0023: 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)
			gun.knockback = 2.5f;
			gun.slow = 0.5f;
			gun.damage = 0.75f;
			gun.projectileColor = Color.cyan;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Icy springs";
		}

		protected override string GetDescription()
		{
			return "Your bullets are now frozen springs and freeze launch your opponents";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_IcySprings");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Slow",
					amount = "+50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Knockback",
					amount = "+150%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Damage",
					amount = "-25%",
					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 "CPC";
		}
	}
	internal class JumpBursts : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			JumpBurstEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpBurstEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			JumpBurstEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpBurstEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Burst Jumps";
		}

		protected override string GetDescription()
		{
			return "When you jump you get some bursts";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_BurstJumps");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat()
			};
		}

		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 "CPC";
		}
	}
	internal class JumpPower : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			JumpPowerEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpPowerEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			JumpPowerEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpPowerEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Power Jumps";
		}

		protected override string GetDescription()
		{
			return "When you jump you get some damage";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_PowerJumps");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat()
			};
		}

		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 "CPC";
		}
	}
	internal class JumpShrink : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			JumpShrinkEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpShrinkEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			JumpShrinkEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpShrinkEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Shrinking Jumps";
		}

		protected override string GetDescription()
		{
			return "When you jump you get smaller";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_ShrinkingJumps");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat()
			};
		}

		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 "CPC";
		}
	}
	internal class JumpSpeed : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			JumpSpeedEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpSpeedEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			JumpSpeedEffect orAddComponent = ExtensionMethods.GetOrAddComponent<JumpSpeedEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Speedy Jumps";
		}

		protected override string GetDescription()
		{
			return "When you jump you get some movement speed";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_SpeedyJumps");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		protected override CardInfoStat[] GetStats()
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Expected O, but got Unknown
			return (CardInfoStat[])(object)new CardInfoStat[1]
			{
				new CardInfoStat()
			};
		}

		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 "CPC";
		}
	}
	internal class NanoMachines : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			statModifiers.health = 1.15f;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CharacterStatModifiersAdditionalData additionalData = CharacterStatModifiersExtension.GetAdditionalData(characterStats);
			additionalData.NanoMachines++;
			HealthBasedEffect val = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier = ((ReversibleEffect)val).healthHandlerModifier;
			healthHandlerModifier.regen_add += 0.1f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val.SetPercThresholdMax(1f);
			val.SetPercThresholdMin(0.9f);
			HealthBasedEffect val2 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier2 = ((ReversibleEffect)val2).healthHandlerModifier;
			healthHandlerModifier2.regen_add += 0.5f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val2.SetPercThresholdMax(0.9f);
			val2.SetPercThresholdMin(0.8f);
			HealthBasedEffect val3 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier3 = ((ReversibleEffect)val3).healthHandlerModifier;
			healthHandlerModifier3.regen_add += 1f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val3.SetPercThresholdMax(0.8f);
			val3.SetPercThresholdMin(0.7f);
			HealthBasedEffect val4 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier4 = ((ReversibleEffect)val4).healthHandlerModifier;
			healthHandlerModifier4.regen_add += 2f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val4.SetPercThresholdMax(0.7f);
			val4.SetPercThresholdMin(0.6f);
			HealthBasedEffect val5 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier5 = ((ReversibleEffect)val5).healthHandlerModifier;
			healthHandlerModifier5.regen_add += 4f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val5.SetPercThresholdMax(0.6f);
			val5.SetPercThresholdMin(0.5f);
			HealthBasedEffect val6 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier6 = ((ReversibleEffect)val6).healthHandlerModifier;
			healthHandlerModifier6.regen_add += 6f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val6.SetPercThresholdMax(0.5f);
			val6.SetPercThresholdMin(0.4f);
			HealthBasedEffect val7 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier7 = ((ReversibleEffect)val7).healthHandlerModifier;
			healthHandlerModifier7.regen_add += 8f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val7.SetPercThresholdMax(0.4f);
			val7.SetPercThresholdMin(0.3f);
			HealthBasedEffect val8 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier8 = ((ReversibleEffect)val8).healthHandlerModifier;
			healthHandlerModifier8.regen_add += 10f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val8.SetPercThresholdMax(0.3f);
			val8.SetPercThresholdMin(0.2f);
			HealthBasedEffect val9 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier9 = ((ReversibleEffect)val9).healthHandlerModifier;
			healthHandlerModifier9.regen_add += 12f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val9.SetPercThresholdMax(0.2f);
			val9.SetPercThresholdMin(0.1f);
			HealthBasedEffect val10 = ((Component)player).gameObject.AddComponent<HealthBasedEffect>();
			HealthHandlerModifier healthHandlerModifier10 = ((ReversibleEffect)val10).healthHandlerModifier;
			healthHandlerModifier10.regen_add += 15f * (float)((CharacterStatModifiersExtension.GetAdditionalData(characterStats).NanoMachines + 1) / 2);
			val10.SetPercThresholdMax(0.1f);
			val10.SetPercThresholdMin(0f);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Nano Machines";
		}

		protected override string GetDescription()
		{
			return "Nanomachines, son. The lower your health gets the higher your regen gets (getting this card more then once increases the regen)";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_NanoMachines");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Health",
					amount = "+15%",
					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)2;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class PercentageBullets : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			gun.attackSpeed = 1.5f;
			gun.percentageDamage = 0.025f;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Biting bullets";
		}

		protected override string GetDescription()
		{
			return "Your bullets bite away a small percentage of your opponents health";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_BitingBullets");
		}

		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 = "Percentage Damage",
					amount = "+2.5%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = false,
					stat = "Attack Speed",
					amount = "-50%",
					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 "CPC";
		}
	}
	internal class RedVelvetCake : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			//IL_0026: 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)
			statModifiers.lifeSteal = 0.5f;
			statModifiers.health = 1.5f;
			statModifiers.regen = 6f;
			gun.projectileColor = Color.red;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		protected override string GetTitle()
		{
			return "Red Velvet Cake";
		}

		protected override string GetDescription()
		{
			return "A card to celebrate Poppycars birthday (July 22nd)";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_RedVelvetCake");
		}

		protected override Rarity GetRarity()
		{
			//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 RarityUtils.GetRarity("Exotic");
		}

		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 = "Life Steal",
					amount = "+50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Health",
					amount = "+50%",
					simepleAmount = (SimpleAmount)0
				},
				new CardInfoStat
				{
					positive = true,
					stat = "Regen",
					amount = "+6",
					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 "CPC";
		}
	}
	internal class CocaCola : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			COCSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<COCSodaEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			COCSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<COCSodaEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Coca-Cola";
		}

		protected override string GetDescription()
		{
			return "When you block you get increased player stats (lower grav, regen, health) for 2 seconds";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_Coke");
		}

		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)8;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class DrPepper : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			DRSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<DRSodaEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			DRSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<DRSodaEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Dr.Pepper";
		}

		protected override string GetDescription()
		{
			return "When you block you get increased gun stats for 2 seconds";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_DrPepper");
		}

		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)8;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class MountainDew : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			MTDSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<MTDSodaEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			MTDSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<MTDSodaEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

		protected override string GetTitle()
		{
			return "Mountain Dew";
		}

		protected override string GetDescription()
		{
			return "When you block you get increased movment speed, jump height, and you become bigger for 2 seconds";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_MountainDew");
		}

		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)8;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class Pepsi : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

		public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			PEPSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<PEPSodaEffect>(((Component)player).gameObject, false);
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
		}

		public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CPCDebug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CPCClassic", ((CustomCard)this).GetTitle(), player.playerID));
			PEPSodaEffect orAddComponent = ExtensionMethods.GetOrAddComponent<PEPSodaEffect>(((Component)player).gameObject, false);
			Object.Destroy((Object)(object)orAddComponent);
		}

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

		protected override string GetDescription()
		{
			return "When you block you get increased player stats (movment speed, seconds to take dmg over, health) for 2 seconds";
		}

		protected override GameObject GetCardArt()
		{
			return ChaosPoppycarsCardsClassic.Bundle.LoadAsset<GameObject>("C_Pepsi");
		}

		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)8;
		}

		public override string GetModName()
		{
			return "CPC";
		}
	}
	internal class Sprite : CustomCard
	{
		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
			CPCDebug.Log((object)("[CPCClassic][Card] " + ((CustomCard)this).GetTitle() + " has been setup."));
		}

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