Decompiled source of ScyyeCards v1.0.0

ScyyeCards.dll

Decompiled 3 months ago
using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using ASK.Cards;
using ASK.Cards.COD;
using ASK.Cards.Clash;
using ASK.Extensions;
using BepInEx;
using CardChoiceSpawnUniqueCardPatch.CustomCategories;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using ModdingUtils.Utils;
using ModsPlus;
using UnboundLib.Cards;
using UnboundLib.GameModes;
using UnityEngine;

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

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

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

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace ASK
{
	[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("dev.scyye.rounds.cards", "Scyye Cards", "1.0.0")]
	[BepInProcess("Rounds.exe")]
	public class Main : BaseUnityPlugin
	{
		private const string ModId = "dev.scyye.rounds.cards";

		private const string ModName = "Scyye Cards";

		public const string Version = "1.0.0";

		public const string ModInitials = "ScyyeCards";

		public const string CodInitials = "Call of Duty";

		public const string ClashInitials = "Clash";

		public static Main instance { get; private set; }

		public void Log(string str)
		{
			Debug.Log((object)("[Scyye Cards] " + str));
		}

		private void Awake()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Expected O, but got Unknown
			instance = this;
			Harmony val = new Harmony("dev.scyye.rounds.cards");
			val.PatchAll();
		}

		private void Start()
		{
			Log("Enabling cards");
			CustomCard.BuildCard<PerkACola>();
			CustomCard.BuildCard<DeadshotDaiquiri>();
			CustomCard.BuildCard<DoubleTapRootBeer>();
			CustomCard.BuildCard<Juggernog>();
			CustomCard.BuildCard<MuleKick>();
			CustomCard.BuildCard<PHDFlopper>();
			CustomCard.BuildCard<QuickRevive>();
			CustomCard.BuildCard<SpeedCola>();
			CustomCard.BuildCard<StaminUp>();
			CustomCard.BuildCard<Archer>();
			CustomCard.BuildCard<DartGoblin>();
			CustomCard.BuildCard<Giant>();
			CustomCard.BuildCard<Knight>();
			CustomCard.BuildCard<Princess>();
			CustomCard.BuildCard<Sparky>();
			CustomCard.BuildCard<Fly>();
			CustomCard.BuildCard<Microcosm>();
			CustomCard.BuildCard<OneForAll>();
			CustomCard.BuildCard<ZeroPoint>();
			CustomCard.BuildCard<Arthritis>();
			Log("Enabled cards");
		}

		[HarmonyPrefix]
		[HarmonyPatch("TakeDamageOverTime")]
		private static void DoTDamageReduction(DamageOverTime __instance, ref Vector2 damage, Vector2 position, float time, float interval, Player damagingPlayer, CharacterData ___data)
		{
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			Player player = ___data.player;
			if (CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).poisonResistance != 1f)
			{
				float magnitude = ((Vector2)(ref damage)).magnitude;
				magnitude *= CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).poisonResistance;
				Vector2 normalized = ((Vector2)(ref damage)).normalized;
				damage = normalized * magnitude;
			}
		}
	}
}
namespace ASK.Extensions
{
	[Serializable]
	public class CharacterStatModifiersAdditionalData
	{
		public float poisonResistance;

		public CharacterStatModifiersAdditionalData()
		{
			poisonResistance = 1f;
		}
	}
	public static class CharacterStatModifiersExtension
	{
		public static readonly ConditionalWeakTable<CharacterStatModifiers, CharacterStatModifiersAdditionalData> data = new ConditionalWeakTable<CharacterStatModifiers, CharacterStatModifiersAdditionalData>();

		public static CharacterStatModifiersAdditionalData GetAdditionalData(CharacterStatModifiers statModifiers)
		{
			return data.GetOrCreateValue(statModifiers);
		}

		public static void AddData(this CharacterStatModifiers statModifiers, CharacterStatModifiersAdditionalData value)
		{
			try
			{
				data.Add(statModifiers, value);
			}
			catch (Exception)
			{
			}
		}
	}
	[HarmonyPatch(typeof(CharacterStatModifiers), "ResetStats")]
	internal class CharacterStatModifiersPatchResetStats
	{
		private static void Prefix(CharacterStatModifiers __instance)
		{
			CharacterStatModifiersExtension.GetAdditionalData(__instance).poisonResistance = 1f;
		}
	}
}
namespace ASK.Cards
{
	public class Arthritis : CustomEffectCard<ArthritisEffect>
	{
		public override CardDetails<ArthritisEffect> Details
		{
			get
			{
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Expected O, but got Unknown
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_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_009d: 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_00b0: Expected O, but got Unknown
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d5: Expected O, but got Unknown
				CardDetails<ArthritisEffect> val = new CardDetails<ArthritisEffect>();
				val.ModName = "ScyyeCards";
				val.Rarity = (Rarity)1;
				val.Title = "Arthritis";
				val.Description = "These old joints got a lot of experience";
				val.Theme = (CardThemeColorType)0;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[4]
				{
					new CardInfoStat
					{
						amount = "+25%",
						positive = true,
						stat = "Lifesteal"
					},
					new CardInfoStat
					{
						amount = "+3",
						positive = true,
						stat = "Ammo"
					},
					new CardInfoStat
					{
						amount = "+2",
						positive = true,
						stat = "Jumps"
					},
					new CardInfoStat
					{
						amount = "1% Self Damage",
						positive = false,
						stat = "On Jump"
					}
				};
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.lifeSteal *= 1.25f;
			data.jumps += 2;
			gunAmmo.maxAmmo += 3;
		}
	}
	public class ArthritisEffect : CardEffect
	{
		private HealthHandler Health { get; set; }

		private Player Player { get; set; }

		private CharacterStatModifiers Modifiers { get; set; }

		public override void Initialize(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((CardEffect)this).Initialize(player, gun, gunAmmo, data, health, gravity, block, characterStats);
			Health = health;
			Player = player;
			Modifiers = characterStats;
		}

		public override void OnJump()
		{
			//IL_0036: 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_004c: Unknown result type (might be due to invalid IL or missing references)
			int num = Mathf.RoundToInt(Modifiers.health / 100f);
			if (num == 0)
			{
				num = 1;
			}
			Vector2 val = default(Vector2);
			((Vector2)(ref val))..ctor(0f, (float)num);
			Health.DoDamage(val, Vector2.op_Implicit(((Component)Player).transform.position), Color.cyan, (GameObject)null, (Player)null, false, true, false);
		}
	}
	public class Fly : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Expected O, but got Unknown
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.ModName = "ScyyeCards";
				val.Rarity = (Rarity)1;
				val.Title = "Fly";
				val.Description = "Allows you to jump multiple times, 3 to be excat!";
				val.Theme = (CardThemeColorType)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						amount = "+3",
						positive = true,
						stat = "Jumps"
					},
					new CardInfoStat
					{
						amount = "-15%",
						positive = false,
						stat = "Movement Speed"
					}
				};
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.movementSpeed *= 0.85f;
			data.jumps += 3;
		}
	}
	public class Microcosm : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Expected O, but got Unknown
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_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_009d: 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_00b0: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.ModName = "ScyyeCards";
				val.Rarity = (Rarity)1;
				val.Title = "Microcosm";
				val.Description = "Compact your damage into a tiny bullet!";
				val.Theme = (CardThemeColorType)3;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						amount = "+50%",
						positive = true,
						stat = "Damage"
					},
					new CardInfoStat
					{
						amount = "-75%",
						positive = false,
						stat = "Bullet Size"
					},
					new CardInfoStat
					{
						amount = "-10%",
						positive = false,
						stat = "Health"
					}
				};
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.projectileSize -= 0.75f;
			gun.damage *= 1.5f;
			data.maxHealth *= 0.9f;
		}
	}
	public class OneForAll : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_0048: Unknown result type (might be due to invalid IL or missing references)
				//IL_0053: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0066: Expected O, but got Unknown
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0078: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_008b: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.ModName = "ScyyeCards";
				val.Rarity = (Rarity)2;
				val.Title = "One For All";
				val.Description = "One for all, all for one.";
				val.Theme = (CardThemeColorType)0;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						amount = "+25%",
						positive = true,
						stat = "All Stats"
					},
					new CardInfoStat
					{
						amount = "+25%",
						positive = false,
						stat = "All Stats"
					}
				};
				return val;
			}
		}

		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
		{
			cardInfo.allowMultiple = false;
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gunAmmo.maxAmmo += gunAmmo.maxAmmo / 4;
			gunAmmo.ammoReg *= 1.25f;
			gun.attackSpeed *= 1.25f;
			gun.bodyRecoil *= 1.25f;
			gun.bursts += gun.bursts / 4;
			gun.damage *= 1.25f;
			gun.gravity *= 1.25f;
			gun.projectileSpeed *= 1.25f;
			gun.recoil *= 1.25f;
			gun.damageAfterDistanceMultiplier *= 1.25f;
			gunAmmo.reloadTimeMultiplier *= 1.25f;
			gravity.gravityForce *= 1.25f;
			block.additionalBlocks += block.additionalBlocks / 4;
			block.cdMultiplier *= 1.25f;
			block.forceToAdd *= 1.25f;
			block.forceToAddUp *= 1.25f;
			data.maxHealth *= 1.25f;
			characterStats.jump *= 1.25f;
			characterStats.numberOfJumps += characterStats.numberOfJumps / 4;
			characterStats.attackSpeedMultiplier *= 1.25f;
			characterStats.sizeMultiplier *= 1.25f;
			characterStats.lifeSteal *= 1.25f;
			characterStats.movementSpeed *= 1.25f;
			characterStats.regen *= 1.25f;
			characterStats.respawns++;
			characterStats.sizeMultiplier *= 1.25f;
			characterStats.secondsToTakeDamageOver *= 1.25f;
		}
	}
	public class ZeroPoint : SimpleCard
	{
		public override CardDetails Details => new CardDetails
		{
			ModName = "ScyyeCards",
			Rarity = (Rarity)1,
			Title = "Zero Point",
			Description = "Don't like your deck? Replace all your cards with a random card.",
			Theme = (CardThemeColorType)0
		};

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			int num = Cards.instance.RemoveAllCardsFromPlayer(player, true).Length;
			CardInfo randomCardWithCondition = Cards.instance.GetRandomCardWithCondition(player, gun, gunAmmo, data, health, gravity, block, characterStats, (Func<CardInfo, Player, Gun, GunAmmo, CharacterData, HealthHandler, Gravity, Block, CharacterStatModifiers, bool>)((CardInfo ci, Player p, Gun g, GunAmmo ga, CharacterData d, HealthHandler h, Gravity gr, Block b, CharacterStatModifiers c) => true), 1000);
			for (int i = 0; i < num; i++)
			{
				Cards.instance.AddCardToPlayer(player, randomCardWithCondition, false, "", 0f, 0f);
			}
		}
	}
}
namespace ASK.Cards.COD
{
	public abstract class CodUpgrade : SimpleCard
	{
		internal static CardCategory category = CustomCardCategories.instance.CardCategory("CallOfDuty");

		public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers)
		{
			cardInfo.allowMultiple = false;
			cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { category };
		}
	}
	public class DeadshotDaiquiri : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Deadshot Daiquiri";
				val.Description = "To err is human, to forgive is divine. Well I'm not forgiving, and the error ain't mine!";
				val.Theme = (CardThemeColorType)3;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Spread",
						amount = "Reset"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "Damage",
						amount = "+25%"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.spread = 0f;
			gun.damage *= 1.25f;
		}
	}
	public class DoubleTapRootBeer : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Double Tap Root Beer";
				val.Description = "Cowboys can't shoot slow or they'll end up below. When they need some help, they reach for the Root beer shelf-";
				val.Theme = (CardThemeColorType)7;
				val.Rarity = (Rarity)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Bullets",
						amount = "+1"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "ATKSPD",
						amount = "+33%"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.numberOfProjectiles++;
			gun.attackSpeed *= 0.66f;
		}
	}
	public class Juggernog : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0059: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Juggernog";
				val.Description = "When you need some help to get by, something to make you feel strong.";
				val.Theme = (CardThemeColorType)2;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Health",
						amount = "+150",
						simepleAmount = (SimpleAmount)3
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			data.maxHealth += 150f;
		}
	}
	public class MuleKick : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Mule Kick";
				val.Description = "Legend tells us of a man, a hero in a tortured land, where Señoritas lived in fear.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Bullets",
						amount = "x2"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.numberOfProjectiles *= 2;
		}
	}
	internal class PerkACola : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Perk-A-Cola";
				val.Description = "Gives you a random COD card from ASK (or any mod that adds more COD cards)";
				val.Theme = (CardThemeColorType)1;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "COD Card",
						amount = "+1 Random"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((SimpleCard)this).Added(player, gun, gunAmmo, data, health, gravity, block, characterStats);
			CardInfo val = Cards.instance.NORARITY_GetRandomCardWithCondition(player, gun, gunAmmo, data, health, gravity, block, characterStats, (Func<CardInfo, Player, Gun, GunAmmo, CharacterData, HealthHandler, Gravity, Block, CharacterStatModifiers, bool>)Condition, 1000);
			if ((Object)(object)val == (Object)null)
			{
				val = Cards.instance.NORARITY_GetRandomCardWithCondition(player, gun, gunAmmo, data, health, gravity, block, characterStats, (Func<CardInfo, Player, Gun, GunAmmo, CharacterData, HealthHandler, Gravity, Block, CharacterStatModifiers, bool>)ConditionDupe, 1000);
			}
			Cards.instance.AddCardToPlayer(player, val, false, "", 0f, 0f);
		}

		public bool Condition(CardInfo card, Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CardInfo[] activeCardsFromCategory = CustomCardCategories.instance.GetActiveCardsFromCategory(CodUpgrade.category);
			foreach (CardInfo val in activeCardsFromCategory)
			{
				if (((object)val).Equals((object?)card) && data.currentCards.Contains(val))
				{
					return true;
				}
			}
			return false;
		}

		public bool ConditionDupe(CardInfo card, Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CardInfo[] activeCardsFromCategory = CustomCardCategories.instance.GetActiveCardsFromCategory(CodUpgrade.category);
			foreach (CardInfo val in activeCardsFromCategory)
			{
				if (((object)val).Equals((object?)card))
				{
					return true;
				}
			}
			return false;
		}
	}
	public class PHDFlopper : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "PhD Flopper";
				val.Description = "PhD, night-time scene. PhD, the streets are mean. PhD, the things I've seen, the good (PhD), and the bad.";
				val.Theme = (CardThemeColorType)2;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Poison Resistance",
						amount = "+50%"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			CharacterStatModifiersExtension.GetAdditionalData(characterStats).poisonResistance *= 0.5f;
		}
	}
	public class QuickRevive : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Quick Revive";
				val.Description = "When everything's, been draggin' you down, grabbed you by the hair and pulled you to the ground-";
				val.Theme = (CardThemeColorType)2;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Health Regen",
						amount = "+6"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			health.regeneration += 6f;
		}
	}
	public class SpeedCola : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Speed Cola";
				val.Description = "Your hands are slow, your movement's sluggish, your lack of speed, just brings you anguish.";
				val.Theme = (CardThemeColorType)3;
				val.Rarity = (Rarity)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[2]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Block Cooldown",
						amount = "-25%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "Reload Speed",
						amount = "+50%"
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.reloadTime *= 0.5f;
			block.cdMultiplier *= 0.75f;
		}
	}
	public class StaminUp : CodUpgrade
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0059: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Stamin-Up";
				val.Description = "Stamin-up-Min-Up! (x3) When you need some extra runnin', when you need some extra time-";
				val.Theme = (CardThemeColorType)3;
				val.Rarity = (Rarity)0;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[1]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Movement Speed",
						amount = "+50%",
						simepleAmount = (SimpleAmount)1
					}
				};
				val.ModName = "Call of Duty";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			((SimpleCard)this).Added(player, gun, gunAmmo, data, health, gravity, block, characterStats);
			characterStats.movementSpeed *= 1.5f;
		}
	}
}
namespace ASK.Cards.Clash
{
	public class Archer : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Archer";
				val.Description = "A pair of lightly armored ranged attackers. They'll help you take down ground and air units, but you're on your own with hair coloring advice.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Bullet Gravity",
						amount = "-50%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "Bullet Growth",
						amount = "+15%"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-20%",
						stat = "Damage"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.gravity *= 0.5f;
			gun.damageAfterDistanceMultiplier *= 1.15f;
			gun.damage *= 0.8f;
		}
	}
	public class DartGoblin : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c9: Expected O, but got Unknown
				//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
				//IL_00d7: 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_00ee: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Dart Goblin";
				val.Description = "Runs fast, shoots far and chews gum. How does he blow darts with a mouthful of Double Trouble Gum? Years of didgeridoo lessons.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)2;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[5]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Speed",
						amount = "+55%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "ATKSPD",
						amount = "x4"
					},
					new CardInfoStat
					{
						positive = true,
						amount = "+15",
						stat = "Ammo"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-50%",
						stat = "Damage"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-30%",
						stat = "Health"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			characterStats.movementSpeed *= 1.55f;
			gun.attackSpeed *= 0.25f;
			gun.damage *= 0.5f;
			gunAmmo.maxAmmo += 15;
			data.maxHealth *= 0.7f;
		}
	}
	public class Giant : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Giant";
				val.Description = "Slow but durable, only attacks buildings. A real one-man wrecking crew!";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Damage",
						amount = "+50%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "Health",
						amount = "+50%"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-40%",
						stat = "Move Speed"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.damage *= 1.5f;
			data.maxHealth *= 1.5f;
			characterStats.movementSpeed *= 0.6f;
		}
	}
	public class Knight : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Knight";
				val.Description = "A tough melee fighter. The Barbarian's handsome, cultured cousin. Rumor has it that he was knighted based on the sheer awesomeness of his mustache alone.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Health",
						amount = "+45%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "ATKSPD",
						amount = "+25%"
					},
					new CardInfoStat
					{
						positive = false,
						stat = "Damage",
						amount = "-15%"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			data.maxHealth *= 1.5f;
			gun.attackSpeed *= 0.75f;
			gun.damage *= 0.85f;
		}
	}
	public class Princess : SimpleCard
	{
		public override CardDetails Details
		{
			get
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				//IL_0006: Expected O, but got Unknown
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				CardDetails val = new CardDetails();
				val.Title = "Princess";
				val.Description = "This stunning Princess shoots flaming arrows from long range. If you're feeling warm feelings towards her, it's probably because you're on fire.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)1;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Damage",
						amount = "+25%"
					},
					new CardInfoStat
					{
						positive = true,
						stat = "Bullet Gravity",
						amount = "-25%"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-30%",
						stat = "Health"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			gun.damage *= 1.25f;
			gun.gravity *= 0.75f;
			data.maxHealth *= 0.7f;
		}
	}
	public class Sparky : CustomEffectCard<SparkyEffect>
	{
		public override CardDetails<SparkyEffect> Details
		{
			get
			{
				//IL_0037: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0043: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_005a: Expected O, but got Unknown
				//IL_005c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0068: Unknown result type (might be due to invalid IL or missing references)
				//IL_0073: Unknown result type (might be due to invalid IL or missing references)
				//IL_007f: Expected O, but got Unknown
				//IL_0081: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a4: Expected O, but got Unknown
				CardDetails<SparkyEffect> val = new CardDetails<SparkyEffect>();
				val.Title = "Sparky";
				val.Description = "Sparky slowly charges up, then unloads MASSIVE area damage. Overkill isn't in her vocabulary.";
				val.Theme = (CardThemeColorType)5;
				val.Rarity = (Rarity)0;
				val.Stats = (CardInfoStat[])(object)new CardInfoStat[3]
				{
					new CardInfoStat
					{
						positive = true,
						stat = "Damage",
						amount = "x3"
					},
					new CardInfoStat
					{
						positive = false,
						stat = "Max Ammo <color=##bf1206>(PERMENANT!)</color>",
						amount = "1"
					},
					new CardInfoStat
					{
						positive = false,
						amount = "-75%",
						stat = "ATKSPD"
					}
				};
				val.ModName = "Clash";
				return val;
			}
		}

		protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
		{
			base.Added(player, gun, gunAmmo, data, health, gravity, block, characterStats);
			gun.damage *= 3f;
			gun.attackSpeed *= 1.75f;
			gunAmmo.maxAmmo = 1;
		}
	}
	public class SparkyEffect : CardEffect
	{
		public override IEnumerator OnBattleStart(IGameModeHandler gameModeHandler)
		{
			((CardEffect)this).gunAmmo.maxAmmo = 1;
			return ((CardEffect)this).OnBattleStart(gameModeHandler);
		}
	}
}