using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using BepInEx;
using ClassesManagerReborn;
using ClassesManagerReborn.Util;
using CrimsonCards.Cards.BounceKingClass;
using CrimsonCards.Cards.DeaconClass;
using CrimsonCards.Extensions;
using CrimsonCards.MonoBehaviours;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UnboundLib;
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("CrimsonCards")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+b080fc7fef9a2396d9444b21ee4f0641e9976d34")]
[assembly: AssemblyProduct("CrimsonCards")]
[assembly: AssemblyTitle("CrimsonCards")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[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]
[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 SeniorProject.MonoBehaviours
{
[Serializable]
[HarmonyPatch(typeof(ProjectileHit), "Hit")]
internal class ProjectileHitPatchHit
{
private static bool Prefix(ProjectileHit __instance, HitInfo hit, bool forceCall)
{
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: Unknown result type (might be due to invalid IL or missing references)
//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
//IL_00cd: Unknown result type (might be due to invalid IL or missing references)
HealthHandler val = null;
if (Object.op_Implicit((Object)(object)hit.transform))
{
val = ((Component)hit.transform).GetComponent<HealthHandler>();
}
if (Object.op_Implicit((Object)(object)val))
{
Player component = ((Component)val).GetComponent<Player>();
if ((Object)(object)component != (Object)null && __instance.ownPlayer.teamID == component.teamID && __instance.ownPlayer.data.stats.GetAdditionalData().RemoveSelfDamage)
{
((Component)__instance).GetComponent<ProjectileHit>().RemoveOwnPlayerFromPlayersHit();
((Component)__instance).GetComponent<ProjectileHit>().AddPlayerToHeld(val);
MoveTransform component2 = ((Component)__instance).GetComponent<MoveTransform>();
component2.velocity *= -1f;
Transform transform = ((Component)__instance).transform;
transform.position += ((Component)__instance).GetComponent<MoveTransform>().velocity * TimeHandler.deltaTime;
((Component)__instance).GetComponent<RayCastTrail>().WasBlocked();
if (__instance.destroyOnBlock)
{
ExtensionMethods.InvokeMethod((object)__instance, "DestroyMe", Array.Empty<object>());
}
__instance.sinceReflect = 0f;
return false;
}
}
return true;
}
}
}
namespace CrimsonCards
{
[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.iriscrimson.rounds.CrimsonCards", "Crimson Cards", "0.1.2")]
[BepInProcess("Rounds.exe")]
public class CrimsonCards : BaseUnityPlugin
{
private const string ModId = "com.iriscrimson.rounds.CrimsonCards";
private const string ModName = "Crimson Cards";
private const string Version = "0.1.2";
public const string ModInitials = "CC";
public static CrimsonCards instance { get; private set; }
private void Awake()
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
Harmony val = new Harmony("com.iriscrimson.rounds.CrimsonCards");
val.PatchAll();
}
private void Start()
{
instance = this;
CustomCard.BuildCard<BounceKing>((Action<CardInfo>)delegate(CardInfo card)
{
BounceKing.Card = card;
});
CustomCard.BuildCard<LordOfRicochet>((Action<CardInfo>)delegate(CardInfo card)
{
LordOfRicochet.Card = card;
});
CustomCard.BuildCard<Unpredictability>((Action<CardInfo>)delegate(CardInfo card)
{
Unpredictability.Card = card;
});
CustomCard.BuildCard<ProtectiveCoating>((Action<CardInfo>)delegate(CardInfo card)
{
ProtectiveCoating.Card = card;
});
CustomCard.BuildCard<Deacon>((Action<CardInfo>)delegate(CardInfo card)
{
Deacon.Card = card;
});
CustomCard.BuildCard<FocusedPrayer>((Action<CardInfo>)delegate(CardInfo card)
{
FocusedPrayer.Card = card;
});
CustomCard.BuildCard<PrayeroftheMagdump>((Action<CardInfo>)delegate(CardInfo card)
{
PrayeroftheMagdump.Card = card;
});
CustomCard.BuildCard<PrayerofGrandeur>((Action<CardInfo>)delegate(CardInfo card)
{
PrayerofGrandeur.Card = card;
});
}
}
}
namespace CrimsonCards.MonoBehaviours
{
internal class BounceKingCard : MonoBehaviour
{
private Player player;
private Gun gun;
private GunAmmo gunAmmo;
public int numCards = 0;
public int bounce = 7;
public void Awake()
{
player = ((Component)this).gameObject.GetComponentInParent<Player>();
gun = ((Component)((Component)player).GetComponent<Holding>().holdable).GetComponent<Gun>();
GameModeManager.AddHook("PickEnd", (Func<IGameModeHandler, IEnumerator>)OnPickEnd);
}
public void Start()
{
setStats();
}
public IEnumerator OnPickEnd(IGameModeHandler gm)
{
setStats();
Gun obj = gun;
obj.reflects += numCards * 7;
yield break;
}
private void setStats()
{
gun.reflects = bounce;
}
}
internal class DeaconCard : MonoBehaviour
{
private Player player;
private Gun gun;
private GunAmmo gunAmmo;
public int numCards = 0;
public int ammo = 150;
public void Awake()
{
player = ((Component)this).gameObject.GetComponentInParent<Player>();
gun = ((Component)((Component)player).GetComponent<Holding>().holdable).GetComponent<Gun>();
GameModeManager.AddHook("PickEnd", (Func<IGameModeHandler, IEnumerator>)OnPickEnd);
}
public void Start()
{
setStats();
}
public IEnumerator OnPickEnd(IGameModeHandler gm)
{
setStats();
Gun obj = gun;
obj.ammo += numCards * 150;
yield break;
}
private void setStats()
{
gun.ammo = ammo;
}
}
}
namespace CrimsonCards.Extensions
{
[Serializable]
public class CharacterStatModifiersAdditionalData
{
public bool RemoveSelfDamage;
public CharacterStatModifiersAdditionalData()
{
RemoveSelfDamage = false;
}
}
public static class CharacterStatModifiersExtension
{
[HarmonyPatch(typeof(CharacterStatModifiers), "ResetStats")]
private class CharacterStatModifiersPatchResetStats
{
private static void Prefix(CharacterStatModifiers __instance)
{
CharacterStatModifiersAdditionalData additionalData = __instance.GetAdditionalData();
additionalData.RemoveSelfDamage = false;
}
}
public static readonly ConditionalWeakTable<CharacterStatModifiers, CharacterStatModifiersAdditionalData> Data = new ConditionalWeakTable<CharacterStatModifiers, CharacterStatModifiersAdditionalData>();
public static CharacterStatModifiersAdditionalData GetAdditionalData(this CharacterStatModifiers statModifiers)
{
return Data.GetOrCreateValue(statModifiers);
}
public static void AddData(this CharacterStatModifiers statModifiers, CharacterStatModifiersAdditionalData value)
{
try
{
Data.Add(statModifiers, value);
}
catch (Exception ex)
{
Debug.LogError((object)ex);
}
}
}
}
namespace CrimsonCards.Cards
{
internal class Template : CustomCard
{
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
Debug.Log((object)("[CC][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)
{
Debug.Log((object)string.Format("[{0}][Card] {1} has been added to player {2}.", "CC", ((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)
{
Debug.Log((object)string.Format("[{0}][Card] {1} has been removed from player {2}.", "CC", ((CustomCard)this).GetTitle(), player.playerID));
}
protected override string GetTitle()
{
return "CardName";
}
protected override string GetDescription()
{
return "CardDescription";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)0;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
return (CardInfoStat[])(object)new CardInfoStat[1]
{
new CardInfoStat
{
positive = true,
stat = "Effect",
amount = "No",
simepleAmount = (SimpleAmount)0
}
};
}
protected override CardThemeColorType GetTheme()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (CardThemeColorType)7;
}
public override string GetModName()
{
return "";
}
}
}
namespace CrimsonCards.Cards.DeaconClass
{
internal class Deacon : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.spread = 0.01f;
gun.attackSpeedMultiplier = 0.1f;
gun.ammo = 150;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)player).gameObject.AddComponent<DeaconCard>();
((Component)((Component)player).transform).gameObject.GetComponent<DeaconCard>().numCards++;
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<DeaconCard>(((Component)player).gameObject, false));
}
protected override string GetTitle()
{
return "The Deacon";
}
protected override string GetDescription()
{
return "Putting the 'Pray' into Spray n' Pray.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)0;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Expected O, but got Unknown
//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 = "Attack Speed",
amount = "+90%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Ammo Per Card",
amount = "+150",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Spread",
amount = "+100%",
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 "CC";
}
}
internal class DeaconClass : ClassHandler
{
public static string name = "Deacon";
public override IEnumerator Init()
{
while (!Object.op_Implicit((Object)(object)Deacon.Card) || !Object.op_Implicit((Object)(object)FocusedPrayer.Card) || !Object.op_Implicit((Object)(object)PrayeroftheMagdump.Card) || !Object.op_Implicit((Object)(object)PrayerofGrandeur.Card))
{
yield return null;
}
ClassesRegistry.Register(Deacon.Card, (CardType)1, 0);
ClassesRegistry.Register(FocusedPrayer.Card, (CardType)16, Deacon.Card, 2);
ClassesRegistry.Register(PrayeroftheMagdump.Card, (CardType)16, Deacon.Card, 3);
ClassesRegistry.Register(PrayerofGrandeur.Card, (CardType)16, Deacon.Card, 4);
}
}
internal class FocusedPrayer : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.spread = 1.5f;
gun.gravity = 0f;
gun.projectileSpeed = 0.8f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
protected override string GetTitle()
{
return "Focused Prayer";
}
protected override string GetDescription()
{
return "Pray to your god for your aim.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)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 = "Spread",
amount = "-50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Zero Gravity",
amount = "100%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Projectile Speed",
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 "CC";
}
}
internal class PrayerofGrandeur : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.projectileSize = 1.25f;
gun.percentageDamage = 0.01f;
gun.damage = 0.01f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
protected override string GetTitle()
{
return "Prayer of Grandeur";
}
protected override string GetDescription()
{
return "Pray for larger bullets, so you can hit things easier. Oh and also you do percent damage now.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)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 = "Projectile Size",
amount = "+25%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Percent Damage",
amount = "+1%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage",
amount = "-99%",
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 "CC";
}
}
internal class PrayeroftheMagdump : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.bursts = 10;
gun.timeBetweenBullets = 0.5f;
gun.damage = 0.5f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
}
protected override string GetTitle()
{
return "Prayer of the Magdump";
}
protected override string GetDescription()
{
return "The rate of fire here is a bit ridiculous.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)0;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Expected O, but got Unknown
//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 = "Bullets per Burst",
amount = "+10",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Time between Shots",
amount = "-50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage",
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)1;
}
public override string GetModName()
{
return "CC";
}
}
}
namespace CrimsonCards.Cards.BounceKingClass
{
internal class BounceKing : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.reflects = 7;
gun.damage = 0.25f;
gun.dmgMOnBounce = 1.2f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)player).gameObject.AddComponent<BounceKingCard>();
((Component)((Component)player).transform).gameObject.GetComponent<BounceKingCard>().numCards++;
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<BounceKingCard>(((Component)player).gameObject, false));
}
protected override string GetTitle()
{
return "Bounce King";
}
protected override string GetDescription()
{
return "The bullet may not be very powerful, but if it hits them like a bajillion times, it'll do damage.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)0;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Expected O, but got Unknown
//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 = "Per Card",
amount = "+7 Bounces",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Damage Per Bounce",
amount = "+20%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Damage",
amount = "-75%",
simepleAmount = (SimpleAmount)0
}
};
}
protected override CardThemeColorType GetTheme()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (CardThemeColorType)0;
}
public override string GetModName()
{
return "CC";
}
}
internal class BounceKingClass : ClassHandler
{
public static string name = "Bounce King";
public override IEnumerator Init()
{
while (!Object.op_Implicit((Object)(object)BounceKing.Card) || !Object.op_Implicit((Object)(object)LordOfRicochet.Card) || !Object.op_Implicit((Object)(object)ProtectiveCoating.Card) || !Object.op_Implicit((Object)(object)Unpredictability.Card))
{
yield return null;
}
ClassesRegistry.Register(BounceKing.Card, (CardType)1, 0);
ClassesRegistry.Register(LordOfRicochet.Card, (CardType)16, BounceKing.Card, 2);
ClassesRegistry.Register(ProtectiveCoating.Card, (CardType)16, BounceKing.Card, 3);
ClassesRegistry.Register(Unpredictability.Card, (CardType)16, BounceKing.Card, 4);
}
}
internal class LordOfRicochet : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Unknown result type (might be due to invalid IL or missing references)
gun.speedMOnBounce = 1.5f;
gun.dmgMOnBounce = 1.5f;
gun.projectileColor = Color.red;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)((Component)player).transform).gameObject.GetComponent<BounceKingCard>().numCards++;
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)this).gameObject.GetComponent<BounceKingCard>().numCards--;
}
protected override string GetTitle()
{
return "Lord of Ricochet";
}
protected override string GetDescription()
{
return "Have you heard of SCP-018?";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)2;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Expected O, but got Unknown
return (CardInfoStat[])(object)new CardInfoStat[2]
{
new CardInfoStat
{
positive = true,
stat = "Bullet Speed Per Bounce",
amount = "+50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Damage Per Bounce",
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)0;
}
public override string GetModName()
{
return "CC";
}
}
internal class ProtectiveCoating : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.dmgMOnBounce = 1.1f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
characterStats.GetAdditionalData().RemoveSelfDamage = true;
((Component)((Component)player).transform).gameObject.GetComponent<BounceKingCard>().numCards++;
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
characterStats.GetAdditionalData().RemoveSelfDamage = false;
((Component)this).gameObject.GetComponent<BounceKingCard>().numCards--;
}
protected override string GetTitle()
{
return "Protective Coating";
}
protected override string GetDescription()
{
return "Coat yourself in a nice jacket that prevents you from hitting yourself.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)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
return (CardInfoStat[])(object)new CardInfoStat[2]
{
new CardInfoStat
{
positive = true,
stat = "Self Damage",
amount = "-100%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = true,
stat = "Damage Per Bounce",
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)0;
}
public override string GetModName()
{
return "CC";
}
}
internal class Unpredictability : CustomCard
{
public static CardInfo Card;
public override void Callback()
{
ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false);
}
public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block)
{
gun.spread = 0.75f;
gun.attackSpeedMultiplier = 1.5f;
cardInfo.allowMultiple = false;
}
public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)((Component)player).transform).gameObject.GetComponent<BounceKingCard>().numCards++;
}
public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats)
{
((Component)this).gameObject.GetComponent<BounceKingCard>().numCards--;
}
protected override string GetTitle()
{
return "Unpredictability";
}
protected override string GetDescription()
{
return "If you don't know where you're aiming, neither does your opponent.";
}
protected override GameObject GetCardArt()
{
return null;
}
protected override Rarity GetRarity()
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
return (Rarity)0;
}
protected override CardInfoStat[] GetStats()
{
//IL_0009: Unknown result type (might be due to invalid IL or missing references)
//IL_000e: Unknown result type (might be due to invalid IL or missing references)
//IL_0015: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_002d: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected O, but got Unknown
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_004c: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Unknown result type (might be due to invalid IL or missing references)
//IL_0059: Unknown result type (might be due to invalid IL or missing references)
//IL_005f: Expected O, but got Unknown
return (CardInfoStat[])(object)new CardInfoStat[2]
{
new CardInfoStat
{
positive = true,
stat = "Fire Rate",
amount = "+50%",
simepleAmount = (SimpleAmount)0
},
new CardInfoStat
{
positive = false,
stat = "Spread",
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)0;
}
public override string GetModName()
{
return "CC";
}
}
}