Decompiled source of KeysCards v1.3.3
KeysCards.dll
Decompiled 3 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using CardChoiceSpawnUniqueCardPatch.CustomCategories; using CardThemeLib; using HarmonyLib; using Jotunn.Utils; using KeysCards.Cards; using ModdingUtils.Extensions; using ModdingUtils.MonoBehaviours; using ModdingUtils.Utils; using Photon.Pun; using RarityLib.Utils; using Sonigon; using TMPro; using UnboundLib; using UnboundLib.Cards; using UnboundLib.GameModes; using UnboundLib.Networking; 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(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyCompany("KeysCards")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("KeysCards")] [assembly: AssemblyTitle("KeysCards")] [assembly: AssemblyVersion("1.0.0.0")] namespace KeysCards { internal class CardCheck : MonoBehaviour { public static int Amount(Player player, string cardName) { List<CardInfo> currentCards = player.data.currentCards; int num = 0; for (int num2 = currentCards.Count - 1; num2 >= 0; num2--) { if (currentCards[num2].cardName == cardName) { num++; } } return num; } public static CardInfo getTreasure() { return (CardInfo)(Random.Range(0, 8) switch { 0 => Cards.instance.GetCardWithName("Giants Gauntlet"), 1 => Cards.instance.GetCardWithName("Dead Mans Boots"), 2 => Cards.instance.GetCardWithName("Grovetenders Shield"), 3 => Cards.instance.GetCardWithName("Yvrells Staff"), 4 => Cards.instance.GetCardWithName("Pickpockets Dagger"), 5 => Cards.instance.GetCardWithName("Zephyrs Blessing"), 6 => Cards.instance.GetCardWithName("Demeters Bounty"), 7 => Cards.instance.GetCardWithName("Apollos Quiver"), _ => null, }); } } [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.keys.rounds.KeysCards", "KeysCards", "1.2.0")] [BepInProcess("Rounds.exe")] public class KeysCards : BaseUnityPlugin { private static readonly AssetBundle Bundle = AssetUtils.LoadAssetBundleFromResources("keysassets", typeof(KeysCards).Assembly); public static AssetBundle ArtAsset = Bundle; public static GameObject AngelicArt = Bundle.LoadAsset<GameObject>("C_Angelic"); public static GameObject BottomlessArt = Bundle.LoadAsset<GameObject>("C_Bottomless"); public static GameObject BoxingGloveArt = Bundle.LoadAsset<GameObject>("C_BoxingGlove"); public static GameObject NewSneakersArt = Bundle.LoadAsset<GameObject>("C_NewSneakers"); public static GameObject BunchOfKnivesArt = Bundle.LoadAsset<GameObject>("C_BunchOfKnives"); public static GameObject CloakAndDaggerArt = Bundle.LoadAsset<GameObject>("C_CloakAndDagger"); public static GameObject CompassArt = Bundle.LoadAsset<GameObject>("C_Compass"); public static GameObject CrimsonPotionArt = Bundle.LoadAsset<GameObject>("C_CrimsonPotion"); public static GameObject CeruleanPotionArt = Bundle.LoadAsset<GameObject>("C_CeruleanPotion"); public static GameObject CitrinePotionArt = Bundle.LoadAsset<GameObject>("C_CitrinePotion"); public static GameObject AlchemistArt = Bundle.LoadAsset<GameObject>("C_Alchemist"); public static GameObject TreasureMapArt = Bundle.LoadAsset<GameObject>("C_TreasureMap"); public static GameObject CursedPlunderArt = Bundle.LoadAsset<GameObject>("C_CursedPlunder"); public static GameObject DruidsBlessingArt = Bundle.LoadAsset<GameObject>("C_DruidsBlessing"); public static GameObject LootBoxArt = Bundle.LoadAsset<GameObject>("C_LootBox"); public static GameObject TreasureTroveArt = Bundle.LoadAsset<GameObject>("C_TreasureTrove"); public static GameObject MendingReloadArt = Bundle.LoadAsset<GameObject>("C_MendingReload"); public static GameObject MirrorArt = Bundle.LoadAsset<GameObject>("C_Mirror"); public static GameObject MetamorphosisArt = Bundle.LoadAsset<GameObject>("C_Metamorphosis"); public static GameObject HeartArt = Bundle.LoadAsset<GameObject>("C_Heart"); public static GameObject PincersArt = Bundle.LoadAsset<GameObject>("C_Pincers"); public static GameObject CarapaceArt = Bundle.LoadAsset<GameObject>("C_Carapace"); public static GameObject MoonwalkerArt = Bundle.LoadAsset<GameObject>("C_Moonwalker"); public static GameObject RaidBossArt = Bundle.LoadAsset<GameObject>("C_RaidBoss"); public static GameObject SentryArt = Bundle.LoadAsset<GameObject>("C_Sentry"); public static GameObject SnipersNestArt = Bundle.LoadAsset<GameObject>("C_SnipersNest"); public static GameObject WarpathArt = Bundle.LoadAsset<GameObject>("C_Warpath"); public static GameObject GoldenEggArt = Bundle.LoadAsset<GameObject>("C_TheGoldenEgg"); public static GameObject EggsBlessingArt = Bundle.LoadAsset<GameObject>("C_EggsBlessing"); public static GameObject NimbleArt = Bundle.LoadAsset<GameObject>("C_Nimble"); public static GameObject YvrellsArt = Bundle.LoadAsset<GameObject>("C_Yvrells"); public static GameObject PickpocketsArt = Bundle.LoadAsset<GameObject>("C_Pickpockets"); public static GameObject DeadMansArt = Bundle.LoadAsset<GameObject>("C_DeadMans"); public static GameObject GiantsArt = Bundle.LoadAsset<GameObject>("C_Giants"); public static GameObject GrovetendersArt = Bundle.LoadAsset<GameObject>("C_Grovetenders"); public static GameObject ZephyrsArt = Bundle.LoadAsset<GameObject>("C_Zephyrs"); public static GameObject DemetersArt = Bundle.LoadAsset<GameObject>("C_Demeters"); public static GameObject ApollosArt = Bundle.LoadAsset<GameObject>("C_Quiver"); public static GameObject VampiricArt = Bundle.LoadAsset<GameObject>("C_Vampiric"); public static GameObject GAArt = Bundle.LoadAsset<GameObject>("C_GuardianAngel"); public static GameObject PrecisionArt = Bundle.LoadAsset<GameObject>("C_Precision"); public static GameObject DefensiveDiceArt = Bundle.LoadAsset<GameObject>("C_DefensiveDice"); public static GameObject MouseArt = Bundle.LoadAsset<GameObject>("C_Mouse"); public static GameObject SawShotArt = Bundle.LoadAsset<GameObject>("C_SawShot"); public static GameObject FHArt = Bundle.LoadAsset<GameObject>("C_FasterHardware"); public static GameObject OverdriveArt = Bundle.LoadAsset<GameObject>("C_Overdrive"); public static GameObject SlowStartArt = Bundle.LoadAsset<GameObject>("C_SlowStart"); public static GameObject NimblePlusArt = Bundle.LoadAsset<GameObject>("C_NimblePlus"); public static GameObject BewitchingArt = Bundle.LoadAsset<GameObject>("C_Bewitching"); public static GameObject HexShotArt = Bundle.LoadAsset<GameObject>("C_HexShot"); public static GameObject NuclearReactorArt = Bundle.LoadAsset<GameObject>("C_NuclearReactor"); private const string ModId = "com.keys.rounds.KeysCards"; private const string ModName = "KeysCards"; public const string Version = "1.2.0"; public const string ModInitials = "KEYS"; internal static CardCategory NonTreasure; internal static CardCategory Treasure; internal static CardCategory Iron; internal static CardCategory Egg; internal static CardCategory Hatchling; internal static CardCategory Blessing; internal static CardCategory Alchemy; internal static CardCategory Automatic; internal static CardCategory RaidPip; public static KeysCards instance { get; private set; } private void Awake() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: 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_0048: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Expected O, but got Unknown //IL_0096: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Expected O, but got Unknown //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Expected O, but got Unknown //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Expected O, but got Unknown //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Expected O, but got Unknown //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) RarityUtils.AddRarity("Treasure", 0.01f, new Color(84f / 85f, 47f / 51f, 0.41568628f), Color.black); RarityUtils.AddRarity("Modifier", 0.01f, new Color(0.8862745f, 44f / 85f, 49f / 51f), Color.black); CardThemeLib.instance.CreateOrGetType("Heavenly", new CardThemeColor { bgColor = new Color(0.19f, 0.18f, 0.13f), targetColor = new Color(0.86f, 0.79f, 0.57f) }); CardThemeLib.instance.CreateOrGetType("Modifier", new CardThemeColor { bgColor = new Color(0.29411766f, 0.17254902f, 0.32156864f), targetColor = new Color(0.6901961f, 0.40392157f, 0.7490196f) }); CardThemeLib.instance.CreateOrGetType("Blueprint", new CardThemeColor { bgColor = new Color(0.1f, 0.03f, 0.3f), targetColor = new Color(0.36f, 0.321f, 0.921f) }); CardThemeLib.instance.CreateOrGetType("Ultima", new CardThemeColor { bgColor = new Color(0.5f, 0.5f, 0.5f), targetColor = new Color(1f, 0f, 0f) }); CardThemeLib.instance.CreateOrGetType("Orange", new CardThemeColor { bgColor = new Color(0.1f, 0.05f, 0.025f), targetColor = new Color(0.98f, 0.54f, 0.223f) }); CardThemeLib.instance.CreateOrGetType("Hex", new CardThemeColor { bgColor = new Color(0.04f, 0f, 0.08f), targetColor = new Color(0.44f, 0.055f, 0.88f) }); new Harmony("com.keys.rounds.KeysCards").PatchAll(); } private void Start() { instance = this; NonTreasure = CustomCardCategories.instance.CardCategory("__NonTreasure__"); Treasure = CustomCardCategories.instance.CardCategory("Treasure"); Iron = CustomCardCategories.instance.CardCategory("Iron"); Egg = CustomCardCategories.instance.CardCategory("Egg"); Hatchling = CustomCardCategories.instance.CardCategory("Hatchling"); Blessing = CustomCardCategories.instance.CardCategory("Blessing"); Alchemy = CustomCardCategories.instance.CardCategory("Alchemy"); Automatic = CustomCardCategories.instance.CardCategory("Automatic"); RaidPip = CustomCardCategories.instance.CardCategory("RaidPip"); CustomCard.BuildCard<Nimble>(); CustomCard.BuildCard<LootBox>(); CustomCard.BuildCard<Warpath>(); CustomCard.BuildCard<MendingReload>(); CustomCard.BuildCard<SnipersNest>(); CustomCard.BuildCard<Sentry>(); CustomCard.BuildCard<Mirror>(); CustomCard.BuildCard<RaidBoss>(); CustomCard.BuildCard<Critical>(); CustomCard.BuildCard<Alchemist>(); CustomCard.BuildCard<CrimsonPotion>(); CustomCard.BuildCard<CeruleanPotion>(); CustomCard.BuildCard<CitrinePotion>(); CustomCard.BuildCard<DruidsBlessing>(); CustomCard.BuildCard<Moonwalker>(); CustomCard.BuildCard<TreasureTrove>(); CustomCard.BuildCard<TreasureMap>(); CustomCard.BuildCard<CompassCard>(); CustomCard.BuildCard<GiantsGauntlet>(); CustomCard.BuildCard<DeadMans>(); CustomCard.BuildCard<YvrellsStaff>(); CustomCard.BuildCard<GrovetendersShield>(); CustomCard.BuildCard<PickpocketsDagger>(); CustomCard.BuildCard<ZephyrsBlessing>(); CustomCard.BuildCard<DemetersBounty>(); CustomCard.BuildCard<ApollosQuiver>(); CustomCard.BuildCard<Metamorphosis>(); CustomCard.BuildCard<IronCarapace>(); CustomCard.BuildCard<IronPincers>(); CustomCard.BuildCard<IronHeart>(); CustomCard.BuildCard<Bounce>(); CustomCard.BuildCard<Angelic>(); CustomCard.BuildCard<NewSneakers>(); CustomCard.BuildCard<BottomlessPockets>(); CustomCard.BuildCard<TrapChest>(); CustomCard.BuildCard<BunchOfKnives>(); CustomCard.BuildCard<TheGoldenEgg>(); CustomCard.BuildCard<TheEggsBlessing>(); CustomCard.BuildCard<VampiricBlock>(); CustomCard.BuildCard<GuardianAngel>(); CustomCard.BuildCard<Precision>(); CustomCard.BuildCard<CritBlock>(); CustomCard.BuildCard<Mouse>(); CustomCard.BuildCard<SawShot>(); CustomCard.BuildCard<SlowStart>(); CustomCard.BuildCard<FasterHardware>(); CustomCard.BuildCard<Overdrive>(); CustomCard.BuildCard<NimblePlus>(); CustomCard.BuildCard<NuclearReactor>(); CustomCard.BuildCard<HexShot>(); CustomCard.BuildCard<Bewitching>(); GameModeManager.AddHook("GameStart", (Func<IGameModeHandler, IEnumerator>)GameStart); GameModeManager.AddHook("RoundEnd", (Func<IGameModeHandler, IEnumerator>)EggRoundPass); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)instance, 1f, (Action)delegate { foreach (Card value in CardManager.cards.Values) { if (!value.cardInfo.categories.Contains(Treasure)) { value.cardInfo.categories = CollectionExtensions.AddToArray<CardCategory>(value.cardInfo.categories, NonTreasure); } } }); } private IEnumerator GameStart(IGameModeHandler gm) { foreach (Player player in PlayerManager.instance.players) { if (!CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(Treasure)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Treasure); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Iron); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Hatchling); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Blessing); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Alchemy); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(Automatic); } } yield break; } private IEnumerator EggRoundPass(IGameModeHandler gm) { foreach (Player player in PlayerManager.instance.players) { if ((Object)(object)((Component)player).GetComponent<HatchlingsMono>() != (Object)null) { ((Component)player).GetComponent<HatchlingsMono>().roundspassed++; ((Component)player).GetComponent<HatchlingsMono>().checkhatch(); } } yield break; } } } namespace KeysCards.Cards { internal class Alchemist : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { KeysCards.Alchemy }; block.cdMultiplier = 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) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() != (Object)null) { ((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>().poduration = 6f; } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() != (Object)null) { ((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>().poduration = 3f; } } protected override string GetTitle() { return "Alchemist"; } protected override string GetDescription() { return "All <b><color=#73b366>Potions</b></color> have their durations doubled"; } protected override GameObject GetCardArt() { return KeysCards.AlchemistArt; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Block cooldown", 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)4; } public override string GetModName() { return "KEYS"; } } internal class Angelic : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.numberOfJumps = 1; statModifiers.movementSpeed = 1.1f; gun.damage = 1.1f; gun.gravity = 0.65f; } 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 "Angelic"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return KeysCards.AngelicArt; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "Jumps", amount = "+1", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Move speed", amount = "+10%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = "+10%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Bullet gravity", amount = "-35%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) return CardThemeLib.instance.CreateOrGetType("Heavenly", (CardThemeColor)null); } public override string GetModName() { return "KEYS"; } } internal class ApollosQuiver : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { KeysCards.Treasure }; gun.reloadTime = 0.8f; gun.attackSpeed = 0.8f; gun.ammo = 2; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<ApollosQuiverMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ApollosQuiverMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ApollosQuiverMono>() != (Object)null && CardCheck.Amount(player, "Apollos Quiver") == 1) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ApollosQuiverMono>()); } } protected override string GetTitle() { return "Apollos Quiver"; } protected override string GetDescription() { return "<b><color=#ede624>Treasure</b></color>\nGain +50% attack speed for a brief 0.5s after reloading."; } protected override GameObject GetCardArt() { return KeysCards.ApollosArt; } 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("Treasure"); } 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 = "Reload speed", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Attack speed", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Ammo", 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)1; } public override string GetModName() { return "KEYS"; } } public class ApollosQuiverBuffMono : ReversibleEffect { private ReversibleColorEffect colorEffect; private readonly Color color = new Color(0.75f, 0.75f, 0.05f, 0.1f); public float asBonus; public int ammoNorm; public override void OnStart() { //IL_0053: Unknown result type (might be due to invalid IL or missing references) GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.attackSpeed_mult *= 1f / (1f + (float)CardCheck.Amount(base.player, "Apollos Quiver") * 0.5f); colorEffect = ((Component)base.player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } public void OnDestroy() { ((ColorEffect)colorEffect).Destroy(); } } public class ApollosQuiverMono : MonoBehaviour { private bool active = true; private float updateDelay = 0.1f; private float effectCooldown = 2f; private float timeOfLastEffect = Time.time; private float startTime = Time.time; private Player player; private Block block; private Gun gun; private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponent<Block>(); gun = ((Component)this).GetComponent<Gun>(); } public void Update() { if (!(Time.time >= startTime + updateDelay)) { return; } ResetTimer(); if (player.data.weaponHandler.gun.isReloading) { active = true; ResetEffectTimer(); } if (!player.data.weaponHandler.gun.isReloading && active) { if ((Object)(object)((Component)player).gameObject.GetComponent<ApollosQuiverBuffMono>() == (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ApollosQuiverBuffMono>()); } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<ApollosQuiverBuffMono>(); Object.Destroy((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<ApollosQuiverBuffMono>(), 0.5f); active = false; } } private void ResetTimer() { startTime = Time.time; } private void ResetEffectTimer() { timeOfLastEffect = Time.time; } } public class AutomaticMono : MonoBehaviour { public float cdMultiplier = 1f; private Player player; } internal class Bewitching : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<AutomaticMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<AutomaticMono>(); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Automatic); } if ((Object)(object)((Component)player).gameObject.GetComponent<BewitchingMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<BewitchingMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BewitchingMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BewitchingMono>()); } } protected override string GetTitle() { return "Bewitching"; } protected override string GetDescription() { return "Every <color=#b53131><b>5</b></color> seconds, <color=#a89062><b>automatically</b></color> apply <b><color=#836d8a>12</color> <color=#772791>Hex</b></color> to nearby enemies\n<size=48><b><color=#787878>Hex burns 1% max health per stack over 6 seconds"; } protected override GameObject GetCardArt() { return KeysCards.BewitchingArt; } 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 null; } protected override CardThemeColorType GetTheme() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) return CardThemeLib.instance.CreateOrGetType("Hex", (CardThemeColor)null); } public override string GetModName() { return "KEYS"; } } public class BewitchingMono : MonoBehaviour { private PhotonView view; private GameObject bewitchEffect; private Player player; private readonly float updateDelay = 5f; public float startTime = Time.time; private void Start() { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: 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_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) player = ((Component)this).GetComponent<Player>(); view = player.data.view; bewitchEffect = Object.Instantiate<GameObject>(KeysCards.ArtAsset.LoadAsset<GameObject>("A_Bewitching"), ((Component)player).transform); Transform transform = bewitchEffect.transform; transform.localScale *= 2f; bewitchEffect.transform.position = new Vector3(((Component)player).transform.position.x, ((Component)player).transform.position.y, ((Component)player).transform.position.z - 70f); bewitchEffect.GetComponent<Animator>().speed = 1f / ((Component)this).GetComponent<AutomaticMono>().cdMultiplier; bewitchEffect.GetComponent<Animator>().Play("Base Layer.CDStart", -1, 0f); } public void Update() { //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) if (player.data.dead || !player.data.isPlaying) { startTime = 0f; return; } if (startTime == 0f) { startTime = Time.time; bewitchEffect.GetComponent<Animator>().speed = 1f / ((Component)this).GetComponent<AutomaticMono>().cdMultiplier; bewitchEffect.GetComponent<Animator>().Play("Base Layer.CDStart", -1, 0f); } if (!(Time.time >= startTime + updateDelay * ((Component)this).GetComponent<AutomaticMono>().cdMultiplier)) { return; } for (int i = 0; i < PlayerManager.instance.players.Count; i++) { Player val = PlayerManager.instance.players[i]; if (!((Object)(object)val != (Object)(object)player) || val.data.dead || !(Vector3.Distance(((Component)val).transform.position, ((Component)((Component)this).transform).transform.position) < 6f * ((Component)this).transform.localScale.x) || val.teamID == player.teamID) { continue; } if (PhotonNetwork.OfflineMode) { if ((Object)(object)((Component)val).GetComponent<HexDebuffMono>() == (Object)null) { ((Component)val).gameObject.AddComponent<HexDebuffMono>(); ((Component)val).GetComponent<HexDebuffMono>().stacks = 12; } else { ((Component)val).GetComponent<HexDebuffMono>().stacks += 12; ((Component)val).GetComponent<HexDebuffMono>().ticks = 0; ((Component)val).GetComponent<HexDebuffMono>().effectSpawned.GetComponentInChildren<TMP_Text>().text = ((Component)val).GetComponent<HexDebuffMono>().stacks.ToString(); } } else if (((Component)player).GetComponent<PhotonView>().IsMine) { NetworkingManager.RPC(typeof(BewitchingMono), "ApplyHex12", new object[1] { val.playerID }); } } bewitchEffect.GetComponent<Animator>().speed = 1f / ((Component)this).GetComponent<AutomaticMono>().cdMultiplier; bewitchEffect.GetComponent<Animator>().Play("Base Layer.CDStart", -1, 0f); bewitchEffect.transform.position = new Vector3(((Component)player).transform.position.x, ((Component)player).transform.position.y, ((Component)player).transform.position.z - 70f); ResetTimer(); } private void OnDestroy() { Object.Destroy((Object)(object)bewitchEffect); } private void ResetTimer() { startTime = Time.time; } [UnboundRPC] private static void ApplyHex12(int player) { Player val = PlayerManager.instance.players.Find((Player p) => p.playerID == player); if ((Object)(object)((Component)val).GetComponent<HexDebuffMono>() == (Object)null) { ((Component)val).gameObject.AddComponent<HexDebuffMono>(); ((Component)val).GetComponent<HexDebuffMono>().stacks = 12; } else { ((Component)val).GetComponent<HexDebuffMono>().stacks += 12; ((Component)val).GetComponent<HexDebuffMono>().ticks = 0; ((Component)val).GetComponent<HexDebuffMono>().effectSpawned.GetComponentInChildren<TMP_Text>().text = ((Component)val).GetComponent<HexDebuffMono>().stacks.ToString(); } } } internal class BottomlessPockets : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.movementSpeed = 0.95f; gun.damage = 1.5f; gun.ammo = 4; } 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 "Bottomless Pockets"; } protected override string GetDescription() { return "Wow!\n Those are some big pockets!"; } protected override GameObject GetCardArt() { return KeysCards.BottomlessArt; } 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 = "Ammo", amount = "+4", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = "+15%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Move speed", amount = "-5%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)2; } public override string GetModName() { return "KEYS"; } } internal class Bounce : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.projectileSpeed = 0.8f; gun.damage = 1.25f; gun.knockback = 1.5f; } 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 "Boxing Glove"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return KeysCards.BoxingGloveArt; } 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 = "Knockback", amount = "+50%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = "+25%", 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)0; } public override string GetModName() { return "KEYS"; } } internal class BunchOfKnives : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.damage = 1.25f; gun.spread = 0.1f; gun.numberOfProjectiles = 1; gun.ammo = -1; gun.reloadTime = 0.75f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<BunchOfKnivesMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<BunchOfKnivesMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BunchOfKnivesMono>() != (Object)null && CardCheck.Amount(player, "Bunch of Knives") == 1) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<BunchOfKnivesMono>()); } } protected override string GetTitle() { return "Bunch of Knives"; } protected override string GetDescription() { return "Your damage is instead dealt over 1.5s"; } protected override GameObject GetCardArt() { return KeysCards.BunchOfKnivesArt; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[4] { new CardInfoStat { positive = true, stat = "Damage", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Projectiles", amount = "+1", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Reload Speed", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Ammo", amount = "-1", 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 "KEYS"; } } public class BunchOfKnivesMono : MonoBehaviour { private Gun gun; private void Start() { CharacterData componentInParent = ((Component)this).GetComponentInParent<CharacterData>(); gun = componentInParent.weaponHandler.gun; Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(obj.ShootPojectileAction, new Action<GameObject>(OnShoot)); } public void OnShoot(GameObject projectile) { //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) RayHitPoison val = projectile.AddComponent<RayHitPoison>(); val.color = Color.red; val.time = 1.5f; val.interval = 0.125f; } private void OnDestroy() { Gun obj = gun; obj.ShootPojectileAction = (Action<GameObject>)Delegate.Remove(obj.ShootPojectileAction, new Action<GameObject>(OnShoot)); } } internal class CeruleanPotion : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; block.cdMultiplier = 1.1f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Alchemy); } if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<PotionMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() != (Object)null && CardCheck.Amount(player, "Crimson Potion") == 0 && CardCheck.Amount(player, "Citrine Potion") == 0) { if (!CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(KeysCards.Alchemy); } Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>()); } } protected override string GetTitle() { return "Cerulean Potion"; } protected override string GetDescription() { return "<b><color=#73b366>Potion</b></color>\nBlocking grants you increased max health and +50% increased damage and projectile speed for 3 seconds"; } protected override GameObject GetCardArt() { return KeysCards.CeruleanPotionArt; } 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 = "Cooldown", amount = "6s", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Block cooldown", 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)2; } public override string GetModName() { return "KEYS"; } } public class CeruleanPotionBuffMono : ReversibleEffect { public override void OnStart() { GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.damage_mult *= 1.5f; CharacterDataModifier characterDataModifier = base.characterDataModifier; characterDataModifier.health_mult *= 1.5f; CharacterDataModifier characterDataModifier2 = base.characterDataModifier; characterDataModifier2.maxHealth_mult *= 1.5f; GunStatModifier gunStatModifier2 = base.gunStatModifier; gunStatModifier2.projectileSpeed_mult *= 1.5f; } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } internal class CitrinePotion : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; block.cdMultiplier = 1.1f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Alchemy); } if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<PotionMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() != (Object)null && CardCheck.Amount(player, "Crimson Potion") == 0 && CardCheck.Amount(player, "Cerulean Potion") == 0) { if (!CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(KeysCards.Alchemy); } Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>()); } } protected override string GetTitle() { return "Citrine Potion"; } protected override string GetDescription() { return "<b><color=#73b366>Potion</b></color>\nBlocking grants you increased mobility and +50% reload and attack speed for 3 seconds"; } protected override GameObject GetCardArt() { return KeysCards.CitrinePotionArt; } 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 = "Cooldown", amount = "6s", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Block cooldown", 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 "KEYS"; } } public class CitrinePotionBuffMono : ReversibleEffect { public override void OnStart() { GunAmmoStatModifier gunAmmoStatModifier = base.gunAmmoStatModifier; gunAmmoStatModifier.reloadTimeMultiplier_mult *= 0.5f; base.characterStatModifiersModifier.movementSpeed_mult = 1.3f; GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.attackSpeed_mult *= 2f / 3f; CharacterStatModifiersModifier characterStatModifiersModifier = base.characterStatModifiersModifier; characterStatModifiersModifier.jump_mult *= 1.5f; } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } internal class CompassCard : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<ReassignMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<ReassignMono>(); } if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<MapCompassMono>(); } ((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>().compass++; ((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>().checkCards(); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>() != (Object)null) { if (((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>().compass > 0) { ((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>().compass--; } if (CardCheck.Amount(player, "Treasure Map") == 0 && CardCheck.Amount(player, "Compass") == 1) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<MapCompassMono>()); } } } protected override string GetTitle() { return "Compass"; } protected override string GetDescription() { return "Gain a random <b><color=#ede624>Treasure</b></color> if you find a matching Treasure Map card"; } protected override GameObject GetCardArt() { return KeysCards.CompassArt; } 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 = "Move speed", amount = "+5%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Attack speed", amount = "+5%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)1; } public override string GetModName() { return "KEYS"; } } internal class CrimsonPotion : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; block.cdMultiplier = 1.1f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Alchemy); } if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<PotionMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>() != (Object)null && CardCheck.Amount(player, "Citrine Potion") == 0 && CardCheck.Amount(player, "Cerulean Potion") == 0) { if (!CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Contains(KeysCards.Alchemy)) { CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Add(KeysCards.Alchemy); } Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<PotionMono>()); } } protected override string GetTitle() { return "Crimson Potion"; } protected override string GetDescription() { return "<b><color=#73b366>Potion</b></color>\nBlocking sheds all damage over time effects and heals for 6% of your max health every second for 3 seconds"; } protected override GameObject GetCardArt() { return KeysCards.CrimsonPotionArt; } 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 = "Cooldown", amount = "6s", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Block cooldown", 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 "KEYS"; } } public class CrimsonPotionBuffMono : ReversibleEffect { public override void OnUpdate() { base.data.healthHandler.Heal(base.data.maxHealth * 0.06f * TimeHandler.deltaTime); } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } internal class CritBlock : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; statModifiers.health = 1.2f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<CriticalMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<CriticalMono>(); } ((Component)player).gameObject.GetComponent<CriticalMono>().critChance += 25; if ((Object)(object)((Component)player).gameObject.GetComponent<CritBlockMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<CritBlockMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (Object.op_Implicit((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<CriticalMono>())) { ((Component)player).gameObject.GetComponent<CriticalMono>().critChance -= 25; } } protected override string GetTitle() { return "Defensive Dice"; } protected override string GetDescription() { return "Your blocks can now critically strike, greatly increasing the range that bullets are deflected"; } protected override GameObject GetCardArt() { return KeysCards.DefensiveDiceArt; } 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 = "Crit chance", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Health", 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)2; } public override string GetModName() { return "KEYS"; } } public class CritBlockMono : MonoBehaviour { private float startTime; private Player player; private Block block; private PhotonView view; private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponentInParent<CharacterData>().block; Block val = block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); } private void OnBlock(BlockTriggerType blockTrigger) { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) int num = Random.Range(1, 101); if (num <= ((Component)player).gameObject.GetComponent<CriticalMono>().critChance) { GameObject val = Object.Instantiate<GameObject>(KeysCards.ArtAsset.LoadAsset<GameObject>("A_CritBlock"), ((Component)player).transform); Transform transform = val.transform; transform.localScale *= 3f; val.transform.position = new Vector3(((Component)player).transform.position.x, ((Component)player).transform.position.y, ((Component)player).transform.position.z - 90f); Object.Destroy((Object)(object)val, 0.5f); startTime = Time.time; } } private void Update() { if (Time.time < startTime + 0.4f) { activefield(); } } private void activefield() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0036: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) int mask = LayerMask.GetMask(new string[1] { "Projectile" }); foreach (Collider2D item in from captured in Physics2D.OverlapCircleAll(Vector2.op_Implicit(((Component)player).transform.position), 4.5f * ((Component)this).transform.localScale.x, mask) where (Object)(object)((Component)captured).gameObject.GetComponentInParent<ProjectileHit>() != (Object)null && (Object)(object)((Component)captured).gameObject.GetComponentInParent<ProjectileHit>().ownPlayer != (Object)(object)player select captured) { MoveTransform component = ((Component)((Component)item).gameObject.GetComponentInParent<ProjectileHit>()).GetComponent<MoveTransform>(); Vector3 val = ((Component)item).gameObject.transform.position - ((Component)player).transform.position; component.velocity = ((Vector3)(ref val)).normalized * 100f; view = ((Component)item).GetComponentInParent<PhotonView>(); if (Object.op_Implicit((Object)(object)view) && !view.IsMine) { } } } private void OnDestroy() { Block val = block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); } } internal class Critical : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.damage = 1.15f; statModifiers.movementSpeed = 1.1f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<CriticalMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<CriticalMono>(); } ((Component)player).gameObject.GetComponent<CriticalMono>().critChance += 25; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if (Object.op_Implicit((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<CriticalMono>())) { ((Component)player).gameObject.GetComponent<CriticalMono>().critChance -= 25; } } protected override string GetTitle() { return "Cloak and Dagger"; } protected override string GetDescription() { return ""; } protected override GameObject GetCardArt() { return KeysCards.CloakAndDaggerArt; } 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 = "Crit chance", amount = "+25%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Damage", amount = "+15%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Move speed", 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 "KEYS"; } } public class CriticalBuffMono : ReversibleEffect { public override void OnStart() { //IL_007f: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) if (CardCheck.Amount(base.player, "Pickpockets Dagger") > 0) { GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.damage_mult *= 3f; base.gunStatModifier.projectileColor = new Color(1f, 0.2f, 0.2f); } else { GunStatModifier gunStatModifier2 = base.gunStatModifier; gunStatModifier2.damage_mult *= 2f; base.gunStatModifier.projectileColor = new Color(1f, 0.2f, 0.2f); } } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class CriticalMono : MonoBehaviour { public int critChance = 0; private CharacterData data; private Gun gun; private Player player; private void Start() { player = ((Component)this).GetComponent<Player>(); data = ((Component)this).GetComponentInParent<CharacterData>(); gun = data.weaponHandler.gun; gun.ShootPojectileAction = (Action<GameObject>)Delegate.Combine(gun.ShootPojectileAction, new Action<GameObject>(Attack)); } private void Attack(GameObject projectile) { int randomInt = Random.Range(1, 101); if (randomInt <= critChance && CardCheck.Amount(player, "Precise Incision") > 0) { projectile.AddComponent<PreciseDebuffMono>(); } ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)this, 1, (Action)delegate { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) if (randomInt <= critChance) { ProjectileHit component = projectile.GetComponent<ProjectileHit>(); TrailRenderer[] componentsInChildren = projectile.GetComponentsInChildren<TrailRenderer>(); for (int i = 0; i < componentsInChildren.Length; i++) { componentsInChildren[i].startColor = new Color(0.8f, 0.2f, 0.2f); componentsInChildren[i].endColor = new Color(0.8f, 0.2f, 0.2f); } if (CardCheck.Amount(player, "Pickpockets Dagger") > 0) { component.damage *= 2f + 0.25f * (float)CardCheck.Amount(player, "Pickpockets Dagger"); } else { component.damage *= 2f; } } }); } } public class CriticalShotMono : MonoBehaviour { public int critChance; private bool able = true; private Player player; private Gun gun; private void Start() { player = ((Component)this).GetComponent<Player>(); if ((Object)(object)((Component)this).GetComponentInParent<ProjectileHit>() != (Object)null) { ((Component)this).GetComponentInParent<ProjectileHit>().bulletCanDealDeamage = false; } if ((Object)(object)((Component)player).gameObject.GetComponent<CriticalMono>() == (Object)null) { int num = 1; num = ((critChance < 100) ? Random.Range(0, 101) : 0); if (num <= critChance) { ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<CriticalBuffMono>(); } } } private void Attack(GameObject projectile) { ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)this, 1, (Action)delegate { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) ProjectileHit component = projectile.GetComponent<ProjectileHit>(); component.projectileColor = new Color(1f, 0.2f, 0.2f); component.damage *= 2f; }); } } internal class DeadMans : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { KeysCards.Treasure }; gun.damage = 1.5f; statModifiers.movementSpeed = 1.2f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DeadMansMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<DeadMansMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<AutomaticMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<AutomaticMono>(); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Automatic); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DeadMansMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DeadMansMono>()); } } protected override string GetTitle() { return "Dead Mans Boots"; } protected override string GetDescription() { return "<b><color=#ede624>Treasure</b></color>\nEvery <color=#b53131><b>4</b></color> seconds, <color=#a89062><b>automatically</b></color> charge your next shot, increasing it's damage greatly"; } protected override GameObject GetCardArt() { return KeysCards.DeadMansArt; } 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("Treasure"); } 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", amount = "+50%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Move 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 "KEYS"; } } public class DeadMansBuffMono : ReversibleEffect { public override void OnStart() { GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.damage_mult *= 1f + 0.5f * (float)CardCheck.Amount(base.player, "Dead Mans Boots"); } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class DeadMansMono : MonoBehaviour { private ReversibleColorEffect colorEffect; private readonly Color color = new Color(0.7f, 0.7f, 0.3f, 1f); private float strength; private Player player; private readonly float updateDelay = 0.1f; public float startTime = Time.time; private void Start() { player = ((Component)this).GetComponent<Player>(); } public void Update() { //IL_009d: Unknown result type (might be due to invalid IL or missing references) if (Time.time >= startTime + updateDelay) { if (strength < 40f * ((Component)this).GetComponent<AutomaticMono>().cdMultiplier) { strength += 1f; } else if ((Object)(object)((Component)player).GetComponent<DeadMansBuffMono>() == (Object)null) { ((Component)((Component)player).transform).gameObject.AddComponent<DeadMansBuffMono>(); colorEffect = ((Component)player).gameObject.AddComponent<ReversibleColorEffect>(); ((ColorEffect)colorEffect).SetColor(color); colorEffect.SetLivesToEffect(1); ((MonoBehaviour)this).StartCoroutine(waiter()); } ResetTimer(); } if ((!player.data.weaponHandler.gun.IsReady(0f) || player.data.dead) && (Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<DeadMansBuffMono>() != (Object)null) { ((ReversibleEffect)((Component)((Component)this).GetComponent<Player>()).GetComponent<DeadMansBuffMono>()).Destroy(); strength = 0f; } } private IEnumerator waiter() { yield return (object)new WaitForSeconds(0.4f); ((ColorEffect)colorEffect).Destroy(); } private void ResetTimer() { startTime = Time.time; } } internal class DemetersBounty : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { KeysCards.Treasure }; CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DemetersMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<DemetersMono>(); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DemetersMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DemetersMono>()); } } protected override string GetTitle() { return "Demeters Bounty"; } protected override string GetDescription() { return "<b><color=#ede624>Treasures</b></color>\nEvery block gives you a stacking:"; } protected override GameObject GetCardArt() { return KeysCards.DemetersArt; } 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("Treasure"); } 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 = "Damage", amount = "+6%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Move speed", amount = "+5%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Lifesteal", amount = "+4%", 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 "KEYS"; } } public class DemetersBuffMono : ReversibleEffect { public override void OnStart() { base.player = ((Component)this).GetComponent<Player>(); CharacterStatModifiersModifier characterStatModifiersModifier = base.characterStatModifiersModifier; characterStatModifiersModifier.movementSpeed_mult *= 1f + 0.05f * (float)((Component)base.player).GetComponent<DemetersMono>().stacks; GunStatModifier gunStatModifier = base.gunStatModifier; gunStatModifier.damage_mult *= 1f + 0.06f * (float)((Component)base.player).GetComponent<DemetersMono>().stacks; base.characterStatModifiersModifier.lifeSteal_add = 0.04f * (float)((Component)base.player).GetComponent<DemetersMono>().stacks; } public override void OnOnDisable() { ((ReversibleEffect)this).Destroy(); } } public class DemetersMono : MonoBehaviour { public int stacks = 0; private float startTime; private Player player; private Block block; private void Start() { player = ((Component)this).GetComponent<Player>(); block = ((Component)this).GetComponentInParent<CharacterData>().block; Block val = block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); } private void OnBlock(BlockTriggerType blockTrigger) { stacks++; if ((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<DemetersBuffMono>() != (Object)null) { Object.Destroy((Object)(object)((Component)((Component)this).GetComponent<Player>()).GetComponent<DemetersBuffMono>()); } else { stacks = 1; } ((Component)((Component)((Component)this).GetComponent<Player>()).transform).gameObject.AddComponent<DemetersBuffMono>(); } private void OnDestroy() { Block val = block; val.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(val.BlockAction, new Action<BlockTriggerType>(OnBlock)); } } internal class DruidsBlessing : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.health *= 1.25f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)player).gameObject.GetComponent<DruidsBlessingMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<DruidsBlessingMono>(); } if ((Object)(object)((Component)player).gameObject.GetComponent<AutomaticMono>() == (Object)null) { ((Component)player).gameObject.AddComponent<AutomaticMono>(); CharacterStatModifiersExtension.GetAdditionalData(player.data.stats).blacklistedCategories.Remove(KeysCards.Automatic); } } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { if ((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DruidsBlessingMono>() != (Object)null && CardCheck.Amount(player, "Druids Blessing") == 1) { Object.Destroy((Object)(object)((Component)((Component)player).transform).gameObject.GetComponent<DruidsBlessingMono>()); } } protected override string GetTitle() { return "Druids Blessing"; } protected override string GetDescription() { return "Every <color=#b53131><b>4</b></color> seconds, <color=#a89062><b>automatically</b></color> heal 8% of your max health"; } protected override GameObject GetCardArt() { return KeysCards.DruidsBlessingArt; } 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