Decompiled source of KoalasFantasticCards v3.5.1
plugins/koalasfantasticcards.dll
Decompiled 5 months 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 BepInEx.Configuration; using CardChoiceSpawnUniqueCardPatch.CustomCategories; using CardThemeLib; using ClassesManagerReborn; using ClassesManagerReborn.Util; using HarmonyLib; using Jotunn.Utils; using KFC.Cards; using KFC.MonoBehaviors; using KFC.RiftShenanigans; using ModdingUtils.Extensions; using ModdingUtils.Utils; using ModsPlus; using Photon.Pun; using RarityLib.Utils; using SimulationChamber; using Sonigon; using TMPro; using UnboundLib; using UnboundLib.Cards; using UnboundLib.GameModes; using UnboundLib.Networking; using UnboundLib.Utils; using UnboundLib.Utils.UI; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; using UnityEngine.UI; using WillsWackyManagers.Utils; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("koalasfantasticcards")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("koalasfantasticcards")] [assembly: AssemblyTitle("koalasfantasticcards")] [assembly: AssemblyVersion("1.0.0.0")] namespace KFC { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("koala.koalas.fantastic.cards", "Koalas Fantastic Cards", "3.5.1")] [BepInProcess("Rounds.exe")] public class KFC : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<CardInfo, bool> <>9__19_0; public static UnityAction <>9__19_1; public static Action<CardInfo> <>9__19_2; public static Action<CardInfo> <>9__19_3; public static Action<CardInfo> <>9__19_4; public static Action<CardInfo> <>9__19_5; public static Action<CardInfo> <>9__19_6; public static Action<CardInfo> <>9__19_7; public static Action<CardInfo> <>9__19_8; public static Action<CardInfo> <>9__19_9; public static Action<CardInfo> <>9__19_10; public static Action<CardInfo> <>9__19_11; public static Action<CardInfo> <>9__19_12; public static Action<CardInfo> <>9__19_13; public static Action<CardInfo> <>9__19_14; public static Action<CardInfo> <>9__19_15; public static Action<CardInfo> <>9__19_16; public static Action<CardInfo> <>9__19_17; public static Action<CardInfo> <>9__19_18; public static Action<CardInfo> <>9__19_19; public static Action<CardInfo> <>9__19_20; public static Action<CardInfo> <>9__19_21; public static Action<CardInfo> <>9__19_22; public static Action<CardInfo> <>9__19_23; public static Action<CardInfo> <>9__19_24; public static Action<CardInfo> <>9__19_25; public static Action<CardInfo> <>9__19_26; public static Action<CardInfo> <>9__19_27; public static Action<CardInfo> <>9__19_28; public static Action<CardInfo> <>9__19_29; public static Action<CardInfo> <>9__19_30; public static Action<CardInfo> <>9__19_31; public static Action<CardInfo> <>9__19_32; public static Action<CardInfo> <>9__19_33; public static Action<CardInfo> <>9__19_34; public static Action<CardInfo> <>9__19_35; public static Action<CardInfo> <>9__19_36; public static Action<CardInfo> <>9__19_37; public static Action<CardInfo> <>9__19_38; public static Action<CardInfo> <>9__19_39; public static Action<CardInfo> <>9__19_40; public static Action<CardInfo> <>9__19_41; public static Action<CardInfo> <>9__19_42; public static Action<CardInfo> <>9__19_43; internal bool <Start>b__19_0(CardInfo c) { return c.cardName.ToLower() == "mayhem"; } internal void <Start>b__19_1() { } internal void <Start>b__19_2(CardInfo card) { AncientKoala.card = card; ExtensionMethods.SetAbbreviation(card, "Ak"); } internal void <Start>b__19_3(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaGlory.card = card; } internal void <Start>b__19_4(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaThief.card = card; } internal void <Start>b__19_5(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaMight.card = card; } internal void <Start>b__19_6(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaStats.card = card; } internal void <Start>b__19_7(CardInfo card) { Cards.instance.AddHiddenCard(card); MasterThief.card = card; } internal void <Start>b__19_8(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaWrath.card = card; } internal void <Start>b__19_9(CardInfo card) { splinter.card = card; ExtensionMethods.SetAbbreviation(card, "Sp"); } internal void <Start>b__19_10(CardInfo card) { indiajoenas.card = card; ExtensionMethods.SetAbbreviation(card, "Ij"); } internal void <Start>b__19_11(CardInfo card) { legos.card = card; ExtensionMethods.SetAbbreviation(card, "Le"); } internal void <Start>b__19_12(CardInfo card) { uwullets.card = card; ExtensionMethods.SetAbbreviation(card, "Uw"); } internal void <Start>b__19_13(CardInfo card) { scp_500.card = card; ExtensionMethods.SetAbbreviation(card, "S5"); } internal void <Start>b__19_14(CardInfo card) { doomSlayer.card = card; ExtensionMethods.SetAbbreviation(card, "DS"); } internal void <Start>b__19_15(CardInfo card) { blackholegun.card = card; ExtensionMethods.SetAbbreviation(card, "Bh"); } internal void <Start>b__19_16(CardInfo card) { Armor.card = card; ExtensionMethods.SetAbbreviation(card, "Ar"); } internal void <Start>b__19_17(CardInfo card) { Extendo.card = card; ExtensionMethods.SetAbbreviation(card, "Ex"); } internal void <Start>b__19_18(CardInfo card) { RedHerring.card = card; ExtensionMethods.SetAbbreviation(card, "Rh"); } internal void <Start>b__19_19(CardInfo card) { UncappedAmmo.card = card; ExtensionMethods.SetAbbreviation(card, "Ua"); } internal void <Start>b__19_20(CardInfo card) { KingOfSpeed.card = card; } internal void <Start>b__19_21(CardInfo card) { Sacrafice.card = card; } internal void <Start>b__19_22(CardInfo card) { swordinstone.card = card; ExtensionMethods.SetAbbreviation(card, "Ss"); } internal void <Start>b__19_23(CardInfo card) { excaliber.card = card; ExtensionMethods.SetAbbreviation(card, "Ex"); } internal void <Start>b__19_24(CardInfo card) { Cards.instance.AddHiddenCard(card); failure.card = card; ExtensionMethods.SetAbbreviation(card, "XX"); } internal void <Start>b__19_25(CardInfo card) { RiftWalker.card = card; ExtensionMethods.SetAbbreviation(card, "Rw"); } internal void <Start>b__19_26(CardInfo card) { RiftGun.card = card; ExtensionMethods.SetAbbreviation(card, "Rh"); } internal void <Start>b__19_27(CardInfo card) { RiftBody.card = card; ExtensionMethods.SetAbbreviation(card, "Rb"); } internal void <Start>b__19_28(CardInfo card) { RiftMind.card = card; ExtensionMethods.SetAbbreviation(card, "Rm"); } internal void <Start>b__19_29(CardInfo card) { Cards.instance.AddHiddenCard(card); RiftSoul.card = card; ExtensionMethods.SetAbbreviation(card, "Rs"); } internal void <Start>b__19_30(CardInfo card) { Cards.instance.AddHiddenCard(card); Rifted.card = card; } internal void <Start>b__19_31(CardInfo card) { ViruzCard.card = card; } internal void <Start>b__19_32(CardInfo card) { Ard.card = card; ExtensionMethods.SetAbbreviation(card, "A+"); } internal void <Start>b__19_33(CardInfo card) { Bard.card = card; ExtensionMethods.SetAbbreviation(card, "B+"); } internal void <Start>b__19_34(CardInfo card) { Ccard.card = card; ExtensionMethods.SetAbbreviation(card, "C+"); } internal void <Start>b__19_35(CardInfo card) { VoloMori.card = card; } internal void <Start>b__19_36(CardInfo card) { ImCursed.card = card; } internal void <Start>b__19_37(CardInfo card) { F3nxCorgi.card = card; } internal void <Start>b__19_38(CardInfo card) { Alyssa.card = card; } internal void <Start>b__19_39(CardInfo card) { Geballion.card = card; } internal void <Start>b__19_40(CardInfo card) { HaruShijun.card = card; } internal void <Start>b__19_41(CardInfo card) { Pexiltd.card = card; } internal void <Start>b__19_42(CardInfo card) { LaggyBullets.card = card; CurseManager.instance.RegisterCurse(card); } internal void <Start>b__19_43(CardInfo card) { Shadow.card = card; CurseManager.instance.RegisterCurse(card); } } private const string ModId = "koala.koalas.fantastic.cards"; private const string ModName = "Koalas Fantastic Cards"; public const string Version = "3.5.1"; public const string ModInitials = "KFC"; public const string ModIntDed = "KFC"; public const string CurseInt = "KFC Curses"; public static KFC instance; public static AudioClip uwu; public static AudioClip honk; public static AudioClip owo; public static int pogess = 0; internal static AssetBundle ArtAssets; public static ConfigEntry<bool> cardSounds; public ObjectsToSpawn wallbounce; private static float myst = 331.8f; public static object[] mysteryValue = new object[4] { myst, 1f + myst / 500f, myst / 5f + "%", myst / 15f + "%" }; public static bool Debug = false; private void HearCardsAction(bool val) { cardSounds.Value = val; } private void NewGUI(GameObject menu) { string[] array = new string[19] { "Fake", "Fantastic", "Fabulous", "Fried", "Fancy", "Freaky", "Fat", "Foolish", "Funny", "False", "Fortuitus", "Fast", "Ferocious", "Fair", "Fashionable", "Finger-lickin", "Female", "Fucking Annoying", "Forbidden" }; MenuHandler.CreateToggle(cardSounds.Value, "Custom Card Sounds", menu, (UnityAction<bool>)HearCardsAction, 50, true, (Color?)null, (TMP_FontAsset)null, (Material)null, (TextAlignmentOptions?)null); } public static bool hasCard(CardInfo card, Player player) { foreach (CardInfo currentCard in player.data.currentCards) { if (((Object)currentCard).name == ((Object)card).name) { return true; } } return false; } private void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Expected O, but got Unknown //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Expected O, but got Unknown Harmony val = new Harmony("koala.koalas.fantastic.cards"); val.PatchAll(); instance = this; FieldInfo field = typeof(CardManager).GetField("defaultCards", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); CardInfo[] source = (CardInfo[])field.GetValue(null); CardInfo val2 = source.Where((CardInfo c) => c.cardName.ToLower() == "mayhem").ToArray()[0]; ObjectsToSpawn val3 = ((Component)val2).gameObject.GetComponent<Gun>().objectsToSpawn[0]; wallbounce = val3; string[] array = new string[19] { "Fake", "Fantastic", "Fabulous", "Fried", "Fancy", "Freaky", "Fat", "Foolish", "Funny", "False", "Fortuitus", "Fast", "Ferocious", "Fair", "Fashionable", "Finger-lickin", "Female", "Fucking Annoying", "Forbidden" }; string text = array[Random.Range(0, array.Length)]; string text2 = "Koala's " + text + " Cards"; object obj = <>c.<>9__19_1; if (obj == null) { UnityAction val4 = delegate { }; <>c.<>9__19_1 = val4; obj = (object)val4; } Unbound.RegisterMenu(text2, (UnityAction)obj, (Action<GameObject>)NewGUI, (GameObject)null, true); cardSounds = ((BaseUnityPlugin)this).Config.Bind<bool>("KFC", "HearStuff", true, (ConfigDescription)null); ArtAssets = AssetUtils.LoadAssetBundleFromResources("kfccards", typeof(KFC).Assembly); CardThemeLib.instance.CreateOrGetType("Koality", new CardThemeColor { bgColor = new Color(0f, 0f, 0f), targetColor = new Color(0.9f, 0f, 0.9f) }); uwu = ArtAssets.LoadAsset<AudioClip>("uwu"); owo = ArtAssets.LoadAsset<AudioClip>("owo"); honk = ArtAssets.LoadAsset<AudioClip>("honk"); if ((Object)(object)ArtAssets == (Object)null) { Debug.Log((object)"Chad Vanilla art asset bundle either doesn't exist or failed to load."); } PhotonNetwork.PrefabPool.RegisterPrefab("KFC_Excaliber", ArtAssets.LoadAsset<GameObject>("CrucibleSword")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_Boulder", ArtAssets.LoadAsset<GameObject>("Boulder")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_BlackHole", ArtAssets.LoadAsset<GameObject>("BlackHole")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_Turret", ArtAssets.LoadAsset<GameObject>("Turret")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_Buff", ArtAssets.LoadAsset<GameObject>("Buff")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_LegoBrickR", ArtAssets.LoadAsset<GameObject>("legoBrickR")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_LegoBrickY", ArtAssets.LoadAsset<GameObject>("legoBrickY")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_LegoBrickG", ArtAssets.LoadAsset<GameObject>("legoBrickG")); PhotonNetwork.PrefabPool.RegisterPrefab("KFC_LegoBrickB", ArtAssets.LoadAsset<GameObject>("legoBrickB")); CustomCard.BuildCard<AncientKoala>((Action<CardInfo>)delegate(CardInfo card) { AncientKoala.card = card; ExtensionMethods.SetAbbreviation(card, "Ak"); }); CustomCard.BuildCard<KoalaGlory>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaGlory.card = card; }); CustomCard.BuildCard<KoalaThief>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaThief.card = card; }); CustomCard.BuildCard<KoalaMight>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaMight.card = card; }); CustomCard.BuildCard<KoalaStats>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaStats.card = card; }); CustomCard.BuildCard<MasterThief>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); MasterThief.card = card; }); CustomCard.BuildCard<KoalaWrath>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); KoalaWrath.card = card; }); CustomCard.BuildCard<splinter>((Action<CardInfo>)delegate(CardInfo card) { splinter.card = card; ExtensionMethods.SetAbbreviation(card, "Sp"); }); CustomCard.BuildCard<indiajoenas>((Action<CardInfo>)delegate(CardInfo card) { indiajoenas.card = card; ExtensionMethods.SetAbbreviation(card, "Ij"); }); CustomCard.BuildCard<legos>((Action<CardInfo>)delegate(CardInfo card) { legos.card = card; ExtensionMethods.SetAbbreviation(card, "Le"); }); CustomCard.BuildCard<uwullets>((Action<CardInfo>)delegate(CardInfo card) { uwullets.card = card; ExtensionMethods.SetAbbreviation(card, "Uw"); }); CustomCard.BuildCard<scp_500>((Action<CardInfo>)delegate(CardInfo card) { scp_500.card = card; ExtensionMethods.SetAbbreviation(card, "S5"); }); CustomCard.BuildCard<doomSlayer>((Action<CardInfo>)delegate(CardInfo card) { doomSlayer.card = card; ExtensionMethods.SetAbbreviation(card, "DS"); }); CustomCard.BuildCard<blackholegun>((Action<CardInfo>)delegate(CardInfo card) { blackholegun.card = card; ExtensionMethods.SetAbbreviation(card, "Bh"); }); CustomCard.BuildCard<Armor>((Action<CardInfo>)delegate(CardInfo card) { Armor.card = card; ExtensionMethods.SetAbbreviation(card, "Ar"); }); CustomCard.BuildCard<Extendo>((Action<CardInfo>)delegate(CardInfo card) { Extendo.card = card; ExtensionMethods.SetAbbreviation(card, "Ex"); }); CustomCard.BuildCard<RedHerring>((Action<CardInfo>)delegate(CardInfo card) { RedHerring.card = card; ExtensionMethods.SetAbbreviation(card, "Rh"); }); CustomCard.BuildCard<UncappedAmmo>((Action<CardInfo>)delegate(CardInfo card) { UncappedAmmo.card = card; ExtensionMethods.SetAbbreviation(card, "Ua"); }); CustomCard.BuildCard<KingOfSpeed>((Action<CardInfo>)delegate(CardInfo card) { KingOfSpeed.card = card; }); CustomCard.BuildCard<Sacrafice>((Action<CardInfo>)delegate(CardInfo card) { Sacrafice.card = card; }); CustomCard.BuildCard<swordinstone>((Action<CardInfo>)delegate(CardInfo card) { swordinstone.card = card; ExtensionMethods.SetAbbreviation(card, "Ss"); }); CustomCard.BuildCard<excaliber>((Action<CardInfo>)delegate(CardInfo card) { excaliber.card = card; ExtensionMethods.SetAbbreviation(card, "Ex"); }); CustomCard.BuildCard<failure>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); failure.card = card; ExtensionMethods.SetAbbreviation(card, "XX"); }); CustomCard.BuildCard<RiftWalker>((Action<CardInfo>)delegate(CardInfo card) { RiftWalker.card = card; ExtensionMethods.SetAbbreviation(card, "Rw"); }); CustomCard.BuildCard<RiftGun>((Action<CardInfo>)delegate(CardInfo card) { RiftGun.card = card; ExtensionMethods.SetAbbreviation(card, "Rh"); }); CustomCard.BuildCard<RiftBody>((Action<CardInfo>)delegate(CardInfo card) { RiftBody.card = card; ExtensionMethods.SetAbbreviation(card, "Rb"); }); CustomCard.BuildCard<RiftMind>((Action<CardInfo>)delegate(CardInfo card) { RiftMind.card = card; ExtensionMethods.SetAbbreviation(card, "Rm"); }); CustomCard.BuildCard<RiftSoul>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); RiftSoul.card = card; ExtensionMethods.SetAbbreviation(card, "Rs"); }); CustomCard.BuildCard<Rifted>((Action<CardInfo>)delegate(CardInfo card) { Cards.instance.AddHiddenCard(card); Rifted.card = card; }); CustomCard.BuildCard<ViruzCard>((Action<CardInfo>)delegate(CardInfo card) { ViruzCard.card = card; }); CustomCard.BuildCard<Ard>((Action<CardInfo>)delegate(CardInfo card) { Ard.card = card; ExtensionMethods.SetAbbreviation(card, "A+"); }); CustomCard.BuildCard<Bard>((Action<CardInfo>)delegate(CardInfo card) { Bard.card = card; ExtensionMethods.SetAbbreviation(card, "B+"); }); CustomCard.BuildCard<Ccard>((Action<CardInfo>)delegate(CardInfo card) { Ccard.card = card; ExtensionMethods.SetAbbreviation(card, "C+"); }); CustomCard.BuildCard<VoloMori>((Action<CardInfo>)delegate(CardInfo card) { VoloMori.card = card; }); CustomCard.BuildCard<ImCursed>((Action<CardInfo>)delegate(CardInfo card) { ImCursed.card = card; }); CustomCard.BuildCard<F3nxCorgi>((Action<CardInfo>)delegate(CardInfo card) { F3nxCorgi.card = card; }); CustomCard.BuildCard<Alyssa>((Action<CardInfo>)delegate(CardInfo card) { Alyssa.card = card; }); CustomCard.BuildCard<Geballion>((Action<CardInfo>)delegate(CardInfo card) { Geballion.card = card; }); CustomCard.BuildCard<HaruShijun>((Action<CardInfo>)delegate(CardInfo card) { HaruShijun.card = card; }); CustomCard.BuildCard<Pexiltd>((Action<CardInfo>)delegate(CardInfo card) { Pexiltd.card = card; }); CustomCard.BuildCard<LaggyBullets>((Action<CardInfo>)delegate(CardInfo card) { LaggyBullets.card = card; CurseManager.instance.RegisterCurse(card); }); CustomCard.BuildCard<Shadow>((Action<CardInfo>)delegate(CardInfo card) { Shadow.card = card; CurseManager.instance.RegisterCurse(card); }); } public IEnumerator GameStart(IGameModeHandler gameModeHandler) { foreach (Player p in PlayerManager.instance.players) { ((Component)p).gameObject.AddComponent<KoalasBonusStats>(); } yield break; } } } namespace KFC.RiftShenanigans { public class RiftBodyMono : CardEffect { private float bodyTimer = 12.5f; private ParticleSystem[] jumpParts; private ParticleSystem[] landParts; public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { bodyTimer = 12.5f; yield break; } private void InvisPlayer() { ((Component)((CardEffect)this).player.data.weaponHandler.gun).gameObject.SetActive(false); ((Component)((Component)((CardEffect)this).player).transform.GetChild(0)).gameObject.SetActive(false); if (!((CardEffect)this).player.data.view.IsMine) { ((Component)((Component)((CardEffect)this).player).transform.GetChild(1)).gameObject.SetActive(false); ((Component)((Component)((CardEffect)this).player).transform.GetChild(2)).gameObject.SetActive(false); ((Component)((Component)((Component)((CardEffect)this).player).transform.GetChild(3)).transform.GetChild(1)).gameObject.SetActive(false); ((Component)((Component)((Component)((CardEffect)this).player).transform.GetChild(4)).transform.GetChild(0)).gameObject.SetActive(false); ((Component)((Component)((CardEffect)this).player).transform.GetChild(6)).gameObject.SetActive(false); jumpParts = ((CardEffect)this).player.data.jump.jumpPart; landParts = ((CardEffect)this).player.data.landParts; ((CardEffect)this).player.data.jump.jumpPart = null; ((CardEffect)this).player.data.landParts = null; ((Component)((CardEffect)this).player.data.healthHandler).gameObject.SetActive(false); SpriteRenderer[] componentsInChildren = ((Component)((CardEffect)this).player).GetComponentsInChildren<SpriteRenderer>(); foreach (SpriteRenderer val in componentsInChildren) { ((Renderer)val).enabled = false; } } } private void VisPlayer() { ((Component)((CardEffect)this).player.data.weaponHandler.gun).gameObject.SetActive(true); ((Component)((Component)((CardEffect)this).player).transform.GetChild(0)).gameObject.SetActive(true); ((Component)((Component)((CardEffect)this).player).transform.GetChild(1)).gameObject.SetActive(true); ((Component)((Component)((CardEffect)this).player).transform.GetChild(2)).gameObject.SetActive(true); ((Component)((Component)((Component)((CardEffect)this).player).transform.GetChild(3)).transform.GetChild(1)).gameObject.SetActive(true); ((Component)((Component)((Component)((CardEffect)this).player).transform.GetChild(4)).transform.GetChild(0)).gameObject.SetActive(true); ((Component)((Component)((CardEffect)this).player).transform.GetChild(6)).gameObject.SetActive(true); ((CardEffect)this).player.data.jump.jumpPart = jumpParts; ((CardEffect)this).player.data.landParts = landParts; ((Component)((CardEffect)this).player.data.healthHandler).gameObject.SetActive(true); SpriteRenderer[] componentsInChildren = ((Component)((CardEffect)this).player).GetComponentsInChildren<SpriteRenderer>(); foreach (SpriteRenderer val in componentsInChildren) { ((Renderer)val).enabled = true; } } public override void OnBlock(BlockTriggerType blockTriggerType) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnBlock(blockTriggerType); if (!(bodyTimer > 12.5f)) { return; } bodyTimer = 0f; for (int i = 0; i < ((Component)((CardEffect)this).player).transform.childCount; i++) { GameObject gameObject = ((Component)((Component)((CardEffect)this).player).transform.GetChild(i)).gameObject; if (((Object)gameObject).name == "BegoneThot(Clone)" || ((Object)gameObject).name == "SupriseMofo(Clone)") { Object.Destroy((Object)(object)gameObject); } } GameObject val = KFC.ArtAssets.LoadAsset<GameObject>("BegoneThot"); Object.Instantiate<GameObject>(val, ((Component)((CardEffect)this).player).transform); InvisPlayer(); Collider2D[] componentsInChildren = ((Component)((CardEffect)this).player).GetComponentsInChildren<Collider2D>(); foreach (Collider2D val2 in componentsInChildren) { ((Behaviour)val2).enabled = false; } ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)KFC.instance, 5f, (Action)delegate { VisPlayer(); Collider2D[] componentsInChildren2 = ((Component)((CardEffect)this).player).GetComponentsInChildren<Collider2D>(); foreach (Collider2D val3 in componentsInChildren2) { ((Behaviour)val3).enabled = true; } GameObject val4 = KFC.ArtAssets.LoadAsset<GameObject>("SupriseMofo"); Object.Instantiate<GameObject>(val4, ((Component)((CardEffect)this).player).transform); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)KFC.instance, 10f, (Action)delegate { GameObject val5 = KFC.ArtAssets.LoadAsset<GameObject>("SupriseMofo"); Object.Instantiate<GameObject>(val5, ((Component)((CardEffect)this).player).transform); }); }); } public void Update() { bodyTimer += TimeHandler.deltaTime; } } public class RiftFreeMono : MonoBehaviour { public void Update() { Player component = ((Component)this).gameObject.GetComponent<Player>(); component.data.silenceHandler.StopSilence(); component.data.stunHandler.StopStun(); } } public class RiftSoulMono : CardEffect { public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)KFC.instance, 10, (Action)delegate { Cards.instance.AddCardToPlayer(((CardEffect)this).player, Rifted.card, false, "__", 0f, 0f); CardBarUtils.instance.ShowImmediate(((CardEffect)this).player, Rifted.card); Gun gun = ((CardEffect)this).gun; gun.damage *= 0.99f; Gun gun2 = ((CardEffect)this).gun; gun2.dmgMOnBounce *= 0.99f; Gun gun3 = ((CardEffect)this).gun; gun3.speedMOnBounce *= 0.99f; Gun gun4 = ((CardEffect)this).gun; gun4.spread += 0.01f; Gun gun5 = ((CardEffect)this).gun; gun5.projectileSpeed *= 0.99f; CharacterStatModifiers characterStats = ((CardEffect)this).characterStats; characterStats.movementSpeed *= 0.99f; CharacterData data = ((CardEffect)this).player.data; data.maxHealth *= 0.99f; ((CardEffect)this).player.data.health = ((CardEffect)this).player.data.maxHealth; Gun gun6 = ((CardEffect)this).gun; gun6.reloadTime *= 1.01f; Gun gun7 = ((CardEffect)this).gun; gun7.attackSpeed *= 1.01f; Gun gun8 = ((CardEffect)this).gun; gun8.reloadTimeAdd += 0.05f; }); yield break; } } } namespace KFC.ArtSchenanigans { public class KoalaArtHandler : MonoBehaviour { public GameObject owner; public void Update() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)owner == (Object)null) { Object.Destroy((Object)(object)((Component)this).gameObject); } Scene scene = owner.scene; if (((Scene)(ref scene)).name == "DontDestroyOnLoad") { Object.Destroy((Object)(object)((Component)this).gameObject); } } public void DestroyMe() { Object.Destroy((Object)(object)((Component)this).gameObject); } } public class Aahahsdhahh : MonoBehaviour { public KoalaArtHandler handler; public void OnDestroy() { handler.DestroyMe(); } } } namespace KFC.MonoBehaviors { public class armor_mono : CardEffect { private float armorHp = 0f; private bool armorDestroyed = true; private void ResetHealthBar() { armorHp = 0f; foreach (CardInfo currentCard in ((CardEffect)this).player.data.currentCards) { if ((Object)(object)currentCard == (Object)(object)Armor.card) { armorHp += 100f; } } armorDestroyed = false; } protected override void Start() { ResetHealthBar(); ((CardEffect)this).Start(); } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { ResetHealthBar(); yield break; } public override void OnRevive() { ResetHealthBar(); ((CardEffect)this).OnRevive(); } public override void OnTakeDamage(Vector2 damage, bool selfDamage) { //IL_005c: Unknown result type (might be due to invalid IL or missing references) float magnitude = ((Vector2)(ref damage)).magnitude; if (!armorDestroyed) { armorHp -= magnitude; CharacterData data = ((CardEffect)this).player.data; data.health += magnitude; if (armorHp <= 0f) { armorDestroyed = true; } } ((CardEffect)this).OnTakeDamage(damage, selfDamage); } } public class blackholegun_Mono : CardEffect { private GameObject bhole; protected override void Start() { ((CardEffect)this).Start(); } public override void OnShoot(GameObject projectile) { //IL_0054: 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) if (Object.op_Implicit((Object)(object)bhole)) { PhotonNetwork.Destroy(bhole); Object.Destroy((Object)(object)bhole.GetComponent<blackHole_Mono>().projec); } bhole = Object.Instantiate<GameObject>(KFC.ArtAssets.LoadAsset<GameObject>("BlackHole"), ((Component)((CardEffect)this).data.hand).transform.position, Quaternion.identity); bhole.AddComponent<blackHole_Mono>().projec = projectile; } public override IEnumerator OnPointEnd(IGameModeHandler gameModeHandler) { if (Object.op_Implicit((Object)(object)bhole)) { PhotonNetwork.Destroy(bhole); Object.Destroy((Object)(object)bhole.GetComponent<blackHole_Mono>().projec); } return ((CardEffect)this).OnPointEnd(gameModeHandler); } } public class blackHole_Mono : MonoBehaviour { private float size; public GameObject projec; public void Start() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) size = 0.5f; ((Component)((Component)this).gameObject.transform.GetChild(0)).transform.localScale = new Vector3(size / 3f, size / 3f, size / 3f); ((Component)((Component)this).gameObject.transform.GetChild(1)).transform.localScale = new Vector3(size, size, size); } public void Update() { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_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_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)projec == (Object)null) { PhotonNetwork.Destroy(((Component)this).gameObject); } size += TimeHandler.deltaTime; ((Component)this).gameObject.transform.position = projec.transform.position; ((Component)((Component)this).gameObject.transform.GetChild(0)).transform.localScale = new Vector3(size / 3f, size / 3f, size / 3f); ((Component)((Component)this).gameObject.transform.GetChild(1)).transform.localScale = new Vector3(size, size, size); ((Component)((Component)this).gameObject.transform).GetComponentInChildren<DamageBox>().damage = size * 25f; if (size < 1f) { ((Component)((Component)this).gameObject.transform).GetComponentInChildren<DamageBox>().damage = 0f; } List<Player> players = PlayerManager.instance.players; if (players.Count == 0) { return; } foreach (Player item in players) { float num = Vector2.Distance(Vector2.op_Implicit(((Component)item).transform.position), Vector2.op_Implicit(projec.transform.position)); if (num < size * 1.5f && size > 1f) { item.data.stats.gravity = 0f - Math.Abs(item.data.stats.gravity); Vector3 position = Vector3.MoveTowards(((Component)item).transform.position, ((Component)this).gameObject.transform.position, TimeHandler.deltaTime * size * 2f); ((Component)item).transform.position = position; } else { item.data.stats.gravity = Math.Abs(item.data.stats.gravity); } } } } public class laggyMono : CardEffect { public override void OnShoot(GameObject projectile) { float num = 0f; foreach (CardInfo currentCard in ((CardEffect)this).player.data.currentCards) { if ((Object)(object)currentCard == (Object)(object)LaggyBullets.card) { num += 1f; } } projectile.SetActive(false); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)KFC.instance, num, (Action)delegate { projectile.SetActive(true); }); } } public class shadowMono : CardEffect { private GameObject coverPrefab; private GameObject cover; private void Start() { //IL_003d: Unknown result type (might be due to invalid IL or missing references) coverPrefab = KFC.ArtAssets.LoadAsset<GameObject>("ShadowCover"); cover = Object.Instantiate<GameObject>(coverPrefab, ((Component)((CardEffect)this).player).transform); cover.transform.localPosition = Vector3.zero; ((Renderer)cover.GetComponent<SpriteRenderer>()).sortingLayerID = -1160774667; SpriteRenderer[] componentsInChildren = cover.GetComponentsInChildren<SpriteRenderer>(); foreach (SpriteRenderer val in componentsInChildren) { ((Renderer)val).sortingLayerID = -1160774667; } } private void Update() { if ((Object)(object)cover != (Object)null) { if (Input.anyKey) { cover.SetActive(true); } else { cover.SetActive(false); } } } } public class dalala : CardEffect { public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { yield break; } } public class Fortune : CardEffect { public void Update() { if (((CardEffect)this).player.data.maxHealth > 0f) { ((CardEffect)this).player.data.healthHandler.Heal(((CardEffect)this).player.data.maxHealth * (1f / 3f) * TimeHandler.deltaTime); } } } public class StatThief : CardEffect { public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { List<Player> others = PlayerManager.instance.players.Where((Player p) => p.playerID != ((CardEffect)this).player.playerID).ToList(); float[] statChanges = new float[7]; foreach (Player o in others) { Gun g = o.data.weaponHandler.gun; statChanges[0] += g.damage; g.damage *= 0.99f; statChanges[1] += o.data.maxHealth / 100f; CharacterData data = o.data; data.maxHealth *= 0.99f; o.data.health = o.data.maxHealth; statChanges[2] += 0.3f / g.attackSpeed; g.attackSpeed /= 0.99f; statChanges[3] += 1f / ((Component)g).gameObject.GetComponentInChildren<GunAmmo>().reloadTimeMultiplier; GunAmmo componentInChildren = ((Component)g).gameObject.GetComponentInChildren<GunAmmo>(); componentInChildren.reloadTimeMultiplier /= 0.99f; statChanges[4] += o.data.stats.movementSpeed; CharacterStatModifiers stats = o.data.stats; stats.movementSpeed *= 0.99f; statChanges[5] += o.data.stats.jump; CharacterStatModifiers stats2 = o.data.stats; stats2.jump *= 0.99f; statChanges[6] += 1f / o.data.block.cdMultiplier; Block block = o.data.block; block.cdMultiplier /= 0.99f; } for (int i = 0; i < statChanges.Length; i++) { statChanges[i] *= 0.01f; statChanges[i] += 1f; } Gun gun = ((CardEffect)this).gun; gun.damage *= statChanges[0]; CharacterData data2 = ((CardEffect)this).player.data; data2.maxHealth *= statChanges[1]; ((CardEffect)this).player.data.health = ((CardEffect)this).player.data.maxHealth; Gun gun2 = ((CardEffect)this).gun; gun2.attackSpeedMultiplier /= statChanges[2]; GunAmmo gunAmmo = ((CardEffect)this).gunAmmo; gunAmmo.reloadTimeMultiplier /= statChanges[3]; CharacterStatModifiers characterStats = ((CardEffect)this).characterStats; characterStats.movementSpeed *= statChanges[4]; CharacterStatModifiers characterStats2 = ((CardEffect)this).characterStats; characterStats2.jump *= statChanges[5]; Block block2 = ((CardEffect)this).block; block2.cdMultiplier *= statChanges[6]; yield return null; } } public class KoalasDeath : CardEffect { public void Update() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) float num = ((CardEffect)this).player.data.maxHealth * 0.15f * TimeHandler.deltaTime; ((Damagable)((CardEffect)this).player.data.healthHandler).CallTakeDamage(Vector2.one * num, Vector2.zero, (GameObject)null, (Player)null, true); } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { ((CardEffect)this).player.data.health = ((CardEffect)this).player.data.maxHealth; yield return null; } } public class Thief : CardEffect { private int stealDelay = 0; private int coolDown = 2; internal List<string> blacklistedCategories = new List<string> { "CardManipulation", "Grants Curses", "GivesNulls" }; public override IEnumerator OnPickPhaseEnd(IGameModeHandler gameModeHandler) { stealDelay++; if (stealDelay >= coolDown) { stealDelay = 0; List<Player> others = PlayerManager.instance.players.Where((Player p) => p.playerID != ((CardEffect)this).player.playerID).ToList(); Dictionary<Player, List<CardInfo>> stuff = new Dictionary<Player, List<CardInfo>>(); foreach (Player o in others) { List<CardInfo> cords = o.data.currentCards.Where((CardInfo c) => c.categories.Select((CardCategory c) => ((Object)c).name.ToLowerInvariant()).Intersect(blacklistedCategories.Select((string s) => s.ToLowerInvariant())).Count() <= 0 && Cards.instance.PlayerIsAllowedCard(((CardEffect)this).player, c)).ToList(); string cardStuff = ""; foreach (CardInfo c3 in cords) { cardStuff = cardStuff + c3.cardName + ", "; } if (cords.Count() > 0) { stuff.Add(o, cords); } } if (stuff.Count == 0) { Cards.instance.AddCardToPlayer(((CardEffect)this).player, MasterThief.card, false, "", 0f, 0f); } else { foreach (KeyValuePair<Player, List<CardInfo>> kvp in stuff) { string cardNames = ""; foreach (CardInfo c2 in kvp.Value) { cardNames = cardNames + c2.cardName + ", "; } cardNames.Remove(0, cardNames.Length - 2); MonoBehaviour.print((object)("ID: " + kvp.Key.playerID + " | Cards: " + cardNames)); } int dicIndex = Random.Range(0, stuff.Count); KeyValuePair<Player, List<CardInfo>> victim = stuff.ElementAt(dicIndex); CardInfo randCard = victim.Value[Random.Range(0, victim.Value.Count)]; int index = victim.Key.data.currentCards.IndexOf(randCard); Cards.instance.AddCardToPlayer(((CardEffect)this).player, randCard, false, "", 0f, 0f); Cards.instance.RemoveCardFromPlayer(victim.Key, index); } } yield return null; } } public class GeballionsAura : CardEffect { private bool inGame = false; public void OnEnable() { inGame = true; } public override IEnumerator OnRoundStart(IGameModeHandler gameModeHandler) { inGame = true; yield break; } public override void OnRevive() { inGame = true; } public override IEnumerator OnRoundEnd(IGameModeHandler gameModeHandler) { inGame = false; yield break; } public void Update() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: 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_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) if (!inGame) { return; } List<Player> list = PlayerManager.instance.players.Where((Player pl) => pl.playerID != ((CardEffect)this).player.playerID && pl.teamID != ((CardEffect)this).player.teamID && pl.data.health > 0f).ToList(); if (((CardEffect)this).player.data.health <= 0f) { inGame = false; return; } foreach (Player item in list) { if (Vector3.Distance(((Component)((CardEffect)this).player).transform.position, ((Component)item).transform.position) < 10f) { Vector2 val = Vector2.one * ((CardEffect)this).player.data.maxHealth * 0.05f * TimeHandler.deltaTime; item.data.healthHandler.DoDamage(val, Vector2.zero, Color.red, (GameObject)null, ((CardEffect)this).player, true, true, true); } } } } public class GattlingHandler : CardEffect { public GameObject gattling; public void OnEnable() { if (!Object.op_Implicit((Object)(object)gattling)) { gattling = Object.Instantiate<GameObject>(KFC.ArtAssets.LoadAsset<GameObject>("gattlin")); } } public void Update() { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)gattling)) { if (((Behaviour)((CardEffect)this).player).isActiveAndEnabled) { gattling.transform.position = ((CardEffect)this).player.data.hand.position; gattling.transform.up = ((CardEffect)this).player.data.aimDirection; } else { gattling.transform.position = new Vector3(1000f, 1000f, 0f); } } } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { if (!Object.op_Implicit((Object)(object)gattling)) { gattling = Object.Instantiate<GameObject>(KFC.ArtAssets.LoadAsset<GameObject>("gattlin")); } return ((CardEffect)this).OnPointStart(gameModeHandler); } public override IEnumerator OnPointEnd(IGameModeHandler gameModeHandler) { Object.Destroy((Object)(object)gattling); gattling = null; return ((CardEffect)this).OnPointEnd(gameModeHandler); } protected override void OnDestroy() { Object.Destroy((Object)(object)gattling); ((CardEffect)this).OnDestroy(); } } public class MerlinChaos : CardEffect { public override void OnShoot(GameObject projectile) { ExtensionMethods.GetOrAddComponent<RBGullets>(projectile.gameObject, false); } } public class RBGullets : MonoBehaviour { private int phase = 1; private float[] cols = new float[3] { 1f, 0f, 0f }; public void Update() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) int num = Random.Range(0, 10); int num2 = 1; if (num <= 3) { num2 = -1; } int num3 = Random.Range(0, 10); int num4 = 1; if (num3 <= 3) { num4 = -1; } ((Component)this).gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2(((Component)this).gameObject.GetComponent<Rigidbody2D>().velocity.x * (float)num2, ((Component)this).gameObject.GetComponent<Rigidbody2D>().velocity.y * (float)num4); switch (phase) { case 1: cols[1] += TimeHandler.deltaTime * 10f; if (cols[1] >= 1f) { cols[1] = 1f; phase = 2; } break; case 2: cols[0] -= TimeHandler.deltaTime * 10f; if (cols[0] <= 0f) { cols[0] = 0f; phase = 3; } break; case 3: cols[2] += TimeHandler.deltaTime * 10f; if (cols[2] >= 1f) { cols[2] = 1f; phase = 4; } break; case 4: cols[1] -= TimeHandler.deltaTime * 10f; if (cols[1] <= 0f) { cols[1] = 0f; phase = 5; } break; case 5: cols[0] += TimeHandler.deltaTime * 10f; if (cols[0] >= 1f) { cols[0] = 1f; phase = 6; } break; case 6: cols[2] -= TimeHandler.deltaTime * 10f; if (cols[2] <= 0f) { cols[2] = 0f; phase = 1; } break; } TrailRenderer[] componentsInChildren = ((Component)this).gameObject.GetComponentsInChildren<TrailRenderer>(); Color val2 = default(Color); foreach (TrailRenderer val in componentsInChildren) { ((Color)(ref val2))..ctor(1f, 1f, 1f, 1f); switch (phase) { case 1: ((Color)(ref val2))..ctor(1f, 0f, 0f); break; case 2: ((Color)(ref val2))..ctor(1f, 1f, 0f); break; case 3: ((Color)(ref val2))..ctor(0f, 1f, 0f); break; case 4: ((Color)(ref val2))..ctor(0f, 1f, 1f); break; case 5: ((Color)(ref val2))..ctor(0f, 0f, 1f); break; case 6: ((Color)(ref val2))..ctor(1f, 0f, 1f); break; } val.startColor = val2; val.endColor = val2; } } } public class meteorHandler : CardEffect { public float height = 20f; public void Update() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) Vector2 sensorSize = MainCam.instance.cam.sensorSize; height = ((Vector2)(ref sensorSize))[1]; Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(((Component)((CardEffect)this).player).transform.position.x, ((Component)((CardEffect)this).player).transform.position.y + (height - ((Component)((CardEffect)this).player).transform.position.y), ((Component)((CardEffect)this).player).transform.position.z); float x = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition).x; float y = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition).y; Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(x, y, ((Component)((CardEffect)this).player).transform.position.z); Vector3 val3 = val2 - val; ExtensionMethods.SetFieldValue((object)((CardEffect)this).gun, "forceShootDir", (object)val3); } public override void OnShoot(GameObject projectile) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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_0061: Unknown result type (might be due to invalid IL or missing references) Vector3 position = default(Vector3); ((Vector3)(ref position))..ctor(projectile.transform.position.x, projectile.transform.position.y + (2.5f + height - ((Component)((CardEffect)this).player).transform.position.y), projectile.transform.position.z); projectile.transform.position = position; } } public class BottomRock : CardEffect { public float[] trueStatsFP = new float[5]; public float[] trueStatsFN = new float[4]; public int[] trueStatsIP = new int[5]; public float[] maxStatsFP = new float[5]; public float[] maxStatsFN = new float[4]; public int[] maxStatsIP = new int[5]; public bool build = false; protected override void Start() { ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)KFC.instance, 15, (Action)delegate { BuildStats(); }); } private void BuildStats() { trueStatsFP[0] = ((CardEffect)this).gun.damage; trueStatsFP[1] = ((CardEffect)this).data.maxHealth; trueStatsFP[2] = ((CardEffect)this).characterStats.movementSpeed; trueStatsFP[3] = ((CardEffect)this).characterStats.jump; trueStatsFP[4] = ((CardEffect)this).characterStats.lifeSteal; trueStatsFN[0] = ((CardEffect)this).gun.attackSpeed; trueStatsFN[1] = ((Component)((CardEffect)this).gun).GetComponentInChildren<GunAmmo>().reloadTime; trueStatsFN[2] = ((CardEffect)this).block.cooldown; trueStatsFN[3] = ((CardEffect)this).characterStats.sizeMultiplier; trueStatsIP[0] = ((CardEffect)this).characterStats.numberOfJumps; trueStatsIP[1] = ((CardEffect)this).gun.ammo; trueStatsIP[2] = ((CardEffect)this).block.additionalBlocks; trueStatsIP[3] = ((CardEffect)this).gun.numberOfProjectiles; trueStatsIP[4] = ((CardEffect)this).gun.reflects; maxStatsFP[0] = ((CardEffect)this).gun.damage; maxStatsFP[1] = ((CardEffect)this).data.maxHealth; maxStatsFP[2] = ((CardEffect)this).characterStats.movementSpeed; maxStatsFP[3] = ((CardEffect)this).characterStats.jump; maxStatsFP[4] = ((CardEffect)this).characterStats.lifeSteal; maxStatsFN[0] = ((CardEffect)this).gun.attackSpeed; maxStatsFN[1] = ((Component)((CardEffect)this).gun).GetComponentInChildren<GunAmmo>().reloadTime; maxStatsFN[2] = ((CardEffect)this).block.cooldown; maxStatsFN[3] = ((CardEffect)this).characterStats.sizeMultiplier; maxStatsIP[0] = ((CardEffect)this).characterStats.numberOfJumps; maxStatsIP[1] = ((CardEffect)this).gun.ammo; maxStatsIP[2] = ((CardEffect)this).block.additionalBlocks; maxStatsIP[3] = ((CardEffect)this).gun.numberOfProjectiles; maxStatsIP[4] = ((CardEffect)this).gun.reflects; build = true; } private void Update() { if (!build) { return; } float[] array = new float[5] { ((CardEffect)this).gun.damage, ((CardEffect)this).data.maxHealth, ((CardEffect)this).characterStats.movementSpeed, ((CardEffect)this).characterStats.jump, ((CardEffect)this).characterStats.lifeSteal }; float[] array2 = new float[4] { ((CardEffect)this).gun.attackSpeed, ((Component)((CardEffect)this).gun).GetComponentInChildren<GunAmmo>().reloadTime, ((CardEffect)this).block.cooldown, ((CardEffect)this).characterStats.sizeMultiplier }; int[] array3 = new int[5] { ((CardEffect)this).characterStats.numberOfJumps, ((CardEffect)this).gun.ammo, ((CardEffect)this).block.additionalBlocks, ((CardEffect)this).gun.numberOfProjectiles, ((CardEffect)this).gun.reflects }; for (int i = 0; i < array.Length; i++) { float num = array[i]; if (num != maxStatsFP[i]) { float num2 = num / maxStatsFP[i]; trueStatsFP[i] *= num2; if (trueStatsFP[i] > maxStatsFP[i]) { maxStatsFP[i] = trueStatsFP[i]; } } } for (int j = 0; j < array2.Length; j++) { float num3 = array2[j]; if (num3 != maxStatsFN[j]) { float num4 = num3 / maxStatsFN[j]; trueStatsFN[j] *= num4; if (trueStatsFN[j] < maxStatsFN[j]) { maxStatsFN[j] = trueStatsFN[j]; } } } for (int k = 0; k < array3.Length; k++) { int num5 = array3[k]; if (num5 != maxStatsIP[k]) { int num6 = num5 - maxStatsIP[k]; trueStatsIP[k] += num6; if (trueStatsIP[k] > maxStatsIP[k]) { maxStatsIP[k] = trueStatsIP[k]; } } } ((CardEffect)this).gun.damage = maxStatsFP[0]; float num7 = ((CardEffect)this).data.maxHealth / ((CardEffect)this).data.health; ((CardEffect)this).data.maxHealth = maxStatsFP[1]; ((CardEffect)this).data.health = ((CardEffect)this).data.maxHealth / num7; ((CardEffect)this).characterStats.movementSpeed = maxStatsFP[2]; ((CardEffect)this).characterStats.jump = maxStatsFP[3]; ((CardEffect)this).characterStats.lifeSteal = maxStatsFP[4]; ((CardEffect)this).gun.attackSpeed = maxStatsFN[0]; ((Component)((CardEffect)this).gun).GetComponentInChildren<GunAmmo>().reloadTime = maxStatsFN[1]; ((CardEffect)this).block.cooldown = maxStatsFN[2]; ((CardEffect)this).characterStats.sizeMultiplier = maxStatsFN[3]; ((CardEffect)this).characterStats.numberOfJumps = maxStatsIP[0]; ((CardEffect)this).gun.ammo = maxStatsIP[1]; ((CardEffect)this).block.additionalBlocks = maxStatsIP[2]; ((CardEffect)this).gun.numberOfProjectiles = maxStatsIP[3]; ((CardEffect)this).gun.reflects = maxStatsIP[4]; } } public class excaliber_Mono : CardEffect { public ExcaliberSword_Mono excaliberSword; private float swordShoot = 0f; private CustomHealthBar swordCool; protected override void Start() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).Start(); Renderer[] componentsInChildren = ((Component)((Component)((CardEffect)this).gun).transform).GetComponentsInChildren<Renderer>(); foreach (Renderer val in componentsInChildren) { val.enabled = false; } GameObject val2 = PhotonNetwork.Instantiate("KFC_Excaliber", ((Component)((CardEffect)this).data.hand).transform.position, Quaternion.identity, (byte)0, (object[])null); excaliberSword = ExtensionMethods.GetOrAddComponent<ExcaliberSword_Mono>(val2, false); excaliberSword.player = ((CardEffect)this).player; ((Component)((Component)((Component)((CardEffect)this).gun).transform).GetComponentInChildren<Canvas>()).gameObject.AddComponent<CanvasGroup>().alpha = 0f; swordCool = ((Component)((Component)excaliberSword).gameObject.transform.GetChild(2)).gameObject.AddComponent<CustomHealthBar>(); swordCool.SetValues(swordShoot, ((CardEffect)this).gun.attackSpeed * 5f / 0.3f); swordCool.SetColor(Color.red); FixSword(); } [UnboundRPC] public static void RPCSword(string swordName, int playerid) { GameObject.Find(swordName).AddComponent<ExcaliberSword_Mono>().player = PlayerManager.instance.players.Where((Player p) => p.playerID == playerid).ToArray()[0]; } private void FixSword() { Renderer[] componentsInChildren = ((Component)((Component)((CardEffect)this).gun).transform).GetComponentsInChildren<Renderer>(); foreach (Renderer val in componentsInChildren) { val.enabled = false; } PolygonCollider2D componentInChildren = ((Component)excaliberSword).gameObject.GetComponentInChildren<PolygonCollider2D>(); Collider2D[] componentsInChildren2 = ((Component)((CardEffect)this).player).GetComponentsInChildren<Collider2D>(); foreach (Collider2D val2 in componentsInChildren2) { Physics2D.IgnoreCollision((Collider2D)(object)componentInChildren, val2); } } public override void OnShoot(GameObject projectile) { PhotonNetwork.Destroy(projectile); if (!excaliberSword.boomer && swordShoot > ((CardEffect)this).gun.attackSpeed * 5f / 0.3f) { excaliberSword.StartBoomer(); swordShoot = 0f; } } public void Update() { swordShoot += TimeHandler.deltaTime; swordCool.SetValues(swordShoot, ((CardEffect)this).gun.attackSpeed * 5f / 0.3f); } public void OnEnable() { FixSword(); } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { FixSword(); yield break; } public override void OnRevive() { FixSword(); } protected override void OnDestroy() { PhotonNetwork.Destroy(((Component)excaliberSword).gameObject); ((CardEffect)this).OnDestroy(); } } public class ExcaliberSword_Mono : MonoBehaviour { public Player player; private Rigidbody2D rigid; private DamageBox damagebox; public bool boomer = false; private Vector2 swordLoc; private Vector3 swordAim; private Vector3 targetLoc; private bool goOut = true; private void Start() { rigid = ((Component)this).gameObject.GetComponent<Rigidbody2D>(); damagebox = ((Component)this).gameObject.GetComponentInChildren<DamageBox>(); } public void StartBoomer() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) boomer = true; goOut = true; targetLoc = player.data.hand.position + ((Vector3)(ref player.data.aimDirection)).normalized * 30f; swordAim = player.data.aimDirection; } public Vector2 RotateVector(Vector2 v, float angle) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_004b: Unknown result type (might be due to invalid IL or missing references) float num = angle * (MathF.PI / 180f); float num2 = v.x * Mathf.Cos(num) - v.y * Mathf.Sin(num); float num3 = v.x * Mathf.Sin(num) + v.y * Mathf.Cos(num); return new Vector2(num2, num3); } private void Update() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: 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_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) if (!boomer) { swordLoc = Vector2.op_Implicit(player.data.hand.position); swordAim = player.data.aimDirection; } if (boomer) { if (goOut) { swordLoc = Vector2.MoveTowards(swordLoc, Vector2.op_Implicit(targetLoc), 60f * TimeHandler.deltaTime * player.data.weaponHandler.gun.projectileSpeed); if (Vector2.Distance(swordLoc, Vector2.op_Implicit(targetLoc)) < 1f) { goOut = false; } swordAim = player.data.aimDirection; } if (!goOut) { swordLoc = Vector2.MoveTowards(swordLoc, Vector2.op_Implicit(player.data.hand.position), 60f * TimeHandler.deltaTime * player.data.weaponHandler.gun.projectileSpeed); if (Vector2.Distance(swordLoc, Vector2.op_Implicit(player.data.hand.position)) < 1f) { boomer = false; } swordAim = player.data.aimDirection; } } player.data.weaponHandler.gun.ammo = 0; rigid.position = swordLoc; ((Component)rigid).transform.up = swordAim; if (player.data.health <= 0f) { rigid.position = new Vector2(1000f, 1000f); } } } public class BulletPusher : CardEffect { public float dist = 0f; public override void OnShoot(GameObject projectile) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((Vector3)(ref ((CardEffect)this).player.data.aimDirection)).normalized * dist; Transform transform = projectile.transform; transform.position += val; ((CardEffect)this).OnShoot(projectile); } } public class BulletSword : CardEffect { private bool going = true; private SimulatedGun swordMaker; public override IEnumerator OnJumpCoroutine() { if (!Object.op_Implicit((Object)(object)swordMaker)) { swordMaker = ((Component)((CardEffect)this).player).GetComponent<SimulatedGun>(); } yield return MakeBulletSword(); } public override IEnumerator OnRoundStart(IGameModeHandler gameModeHandler) { if (!Object.op_Implicit((Object)(object)swordMaker)) { swordMaker = ((Component)((CardEffect)this).player).GetComponent<SimulatedGun>(); } going = true; yield return MakeBulletSword(); } public override IEnumerator OnRoundEnd(IGameModeHandler gameModeHandler) { going = false; yield return null; } private IEnumerable MakeBulletSword() { while (going) { yield return (object)new WaitForSecondsRealtime(0.2f); swordMaker.SimulatedAttack(((CardEffect)this).player.playerID, ((CardEffect)this).gun.shootPosition.position, ((CardEffect)this).data.aimDirection, 0f, ((CardEffect)this).gun.damage, (Transform)null, false); } yield return null; } } public class indiajon_Mono : CardEffect { private int rocks = 0; private List<GameObject> rooks = new List<GameObject>(); public void SpawnBall() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: 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_0108: Unknown result type (might be due to invalid IL or missing references) if (rocks >= 3) { rocks--; PhotonNetwork.Destroy(rooks[0]); rooks.RemoveAt(0); } List<Player> list = PlayerManager.instance.players.Where((Player pl) => pl.playerID != ((CardEffect)this).player.playerID && pl.teamID != ((CardEffect)this).player.teamID && pl.data.health > 0f).ToList(); if (list.Count == 0) { return; } Player val = list[Random.Range(0, list.Count)]; Vector3 normalized = ((Vector3)(ref val.data.aimDirection)).normalized; int num = 15; Vector3 val2 = ((Component)val).transform.position + new Vector3(0f, (float)num, 0f); GameObject betterBall = PhotonNetwork.Instantiate("KFC_Boulder", val2, Quaternion.identity, (byte)0, (object[])null); betterBall.GetComponent<Rigidbody2D>().velocity = Vector2.op_Implicit(new Vector3(0f, -50f, 0f)); rooks.Add(betterBall); rocks++; ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)KFC.instance, 5f, (Action)delegate { if (Object.op_Implicit((Object)(object)betterBall)) { rocks--; rooks.Remove(betterBall); PhotonNetwork.Destroy(betterBall); } }); } public override void OnBlock(BlockTriggerType trigger) { SpawnBall(); } } public class BallObject : MonoBehaviour { private void Awake() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.localRotation = Quaternion.Euler(new Vector3(90f, 0f, 0f)); } } public class legos_Mono : CardEffect { private int leegos = 0; private List<GameObject> leeeeeeeegs = new List<GameObject>(); public override void OnBulletHit(GameObject projectile, HitInfo hit) { //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) ((CardEffect)this).OnBulletHit(projectile, hit); if (leegos >= 10) { PhotonNetwork.Destroy(leeeeeeeegs[0]); leeeeeeeegs.RemoveAt(0); leegos--; } leegos++; string[] array = new string[4] { "KFC_LegoBrickR", "KFC_LegoBrickY", "KFC_LegoBrickB", "KFC_LegoBrickG" }; string text = array[Random.Range(0, array.Length)]; GameObject lego = PhotonNetwork.Instantiate(text, projectile.transform.position, Quaternion.identity, (byte)0, (object[])null); leeeeeeeegs.Add(lego); lego.gameObject.GetComponent<DamageBox>().damage = 0f; ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)KFC.instance, 10f, (Action)delegate { if (Object.op_Implicit((Object)(object)lego)) { leegos--; leeeeeeeegs.Remove(lego); PhotonNetwork.Destroy(lego); } }); } } public class ShopHandle : MonoBehaviour { public void Update() { Player player = ((Component)this).GetComponent<Player>(); if (!Input.GetMouseButtonDown(0)) { return; } try { CardBar val = CardBarUtils.instance.PlayersCardBar(player.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); if (text == null || !((Component)player).gameObject.GetComponent<PhotonView>().IsMine) { return; } string text2 = text.Substring(0, text.IndexOf('(')); CardInfo cardInfoWithName = CardManager.GetCardInfoWithName(text2); if (!((Object)(object)cardInfoWithName == (Object)(object)Sacrafice.card)) { Cards.instance.RemoveCardsFromPlayer(player, new int[2] { player.data.currentCards.IndexOf(Sacrafice.card), player.data.currentCards.IndexOf(cardInfoWithName) }); ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)KFC.instance, 20, (Action)delegate { CurseManager.instance.CursePlayer(player); }); } } catch { } } } public class sp500Manager : CardEffect { private int indexing = -1; public override void OnTakeDamage(Vector2 damage, bool selfDamage) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) if (selfDamage) { float magnitude = ((Vector2)(ref damage)).magnitude; if (magnitude < 10f) { CharacterData data = ((CardEffect)this).player.data; data.health += magnitude; } else { CharacterData data2 = ((CardEffect)this).player.data; data2.health += 10f; } } ((CardEffect)this).OnTakeDamage(damage, selfDamage); } private void ReverseBads(CardInfo c) { Gun component = ((Component)c).gameObject.GetComponent<Gun>(); CharacterStatModifiers component2 = ((Component)c).gameObject.GetComponent<CharacterStatModifiers>(); if (component.reloadTimeAdd > 0f) { GunAmmo gunAmmo = ((CardEffect)this).gunAmmo; gunAmmo.reloadTimeAdd -= component.reloadTimeAdd; } if (component.ammo < 0) { GunAmmo gunAmmo2 = ((CardEffect)this).gunAmmo; gunAmmo2.maxAmmo -= component.ammo; } if (component.attackSpeed > 1f) { Gun gun = ((CardEffect)this).gun; gun.attackSpeed /= component.attackSpeed; } if (component.reloadTime > 1f) { GunAmmo gunAmmo3 = ((CardEffect)this).gunAmmo; gunAmmo3.reloadTime /= component.reloadTime; } if (component2.health < 1f) { CharacterStatModifiers characterStats = ((CardEffect)this).characterStats; characterStats.health /= component2.health; } if (component.damage < 1f) { Gun gun2 = ((CardEffect)this).gun; gun2.damage /= component.damage; } if (component.projectileSpeed < 1f) { Gun gun3 = ((CardEffect)this).gun; gun3.projectileSpeed /= component.projectileSpeed; } if (component2.movementSpeed < 1f) { CharacterStatModifiers characterStats2 = ((CardEffect)this).characterStats; characterStats2.movementSpeed /= component2.movementSpeed; } if (component.dmgMOnBounce < 1f) { Gun gun4 = ((CardEffect)this).gun; gun4.dmgMOnBounce /= component.dmgMOnBounce; } if (component.speedMOnBounce < 1f) { Gun gun5 = ((CardEffect)this).gun; gun5.speedMOnBounce /= component.speedMOnBounce; } } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { if (indexing == -1) { indexing = ((CardEffect)this).player.data.currentCards.IndexOf(scp_500.card) + 1; } if (indexing <= ((CardEffect)this).player.data.currentCards.Count) { yield break; } List<CardInfo> cardstoCheck = ((CardEffect)this).player.data.currentCards; cardstoCheck.RemoveRange(0, indexing - 1); foreach (CardInfo c in cardstoCheck) { ReverseBads(c); } indexing = ((CardEffect)this).player.data.currentCards.Count; } public override void OnJump() { if (indexing == -1) { indexing = ((CardEffect)this).player.data.currentCards.IndexOf(scp_500.card) + 1; } if (indexing > ((CardEffect)this).player.data.currentCards.Count) { List<CardInfo> currentCards = ((CardEffect)this).player.data.currentCards; currentCards.RemoveRange(0, indexing - 1); foreach (CardInfo item in currentCards) { ReverseBads(item); } indexing = ((CardEffect)this).player.data.currentCards.Count; } ((CardEffect)this).OnJump(); } } public class byebyeWall : CardEffect { public override void OnBulletHit(GameObject projectile, HitInfo hit) { if (!Object.op_Implicit((Object)(object)((Component)hit.collider).gameObject.GetComponent<Player>())) { ((Component)hit.collider).gameObject.SetActive(false); } } } public class superhot_mono : CardEffect { private float moveCD = 2.5f; private float moveCDMax = 2.5f; public void Update() { if (((Behaviour)((CardEffect)this).player).isActiveAndEnabled && Input.anyKey) { moveCD = 0f; } moveCD += Time.deltaTime; if (!(moveCD > moveCDMax)) { } } } public class turretMono : CardEffect { public turretController controller; private void SpawnTurret() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) GameObject val = PhotonNetwork.Instantiate("KFC_Turret", ((Component)((CardEffect)this).player).transform.position, Quaternion.identity, (byte)0, (object[])null); controller = val.AddComponent<turretController>(); ((object)val.AddComponent<Gun>()).Equals((object?)((CardEffect)this).gun); controller.owner = ((CardEffect)this).player; } public override void OnJump() { ((CardEffect)this).OnJump(); SpawnTurret(); } public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { SpawnTurret(); return ((CardEffect)this).OnPointStart(gameModeHandler); } } public class turretController : MonoBehaviour { public Player owner; private Rigidbody2D rigid; private float playerDist = 1000f; private Vector2 targetLoc; public Gun gun; private float maxHealth = 100f; private float health = 100f; private float damage = 100f; private CustomHealthBar turretHealh; private float attackSpeed = 0.2f; private float attackCount = 0f; private void Start() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) rigid = ((Component)this).gameObject.GetComponent<Rigidbody2D>(); turretHealh = ((Component)this).gameObject.AddComponent<CustomHealthBar>(); turretHealh.SetColor(Color.magenta); turretHealh.SetValues(health, maxHealth); gun.damage = 100f; gun.gravity = 0f; gun.ignoreWalls = true; } private Vector2 nearestPlayer() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_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) playerDist = 1000f; List<Player> list = PlayerManager.instance.players.Where((Player pl) => pl.playerID != owner.playerID && pl.teamID != owner.teamID && pl.data.health > 0f).ToList(); if (list.Count == 0) { return Vector2.zero; } targetLoc = Vector2.zero; foreach (Player item in list) { if (Vector2.Distance(Vector2.op_Implicit(((Component)this).gameObject.transform.position), Vector2.op_Implicit(((Component)item).transform.position)) < playerDist) { targetLoc = Vector2.op_Implicit(((Component)item).transform.position); playerDist = Vector2.Distance(Vector2.op_Implicit(((Component)this).gameObject.transform.position), Vector2.op_Implicit(((Component)item).transform.position)); } } return targetLoc; } private void Update() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) turretHealh.SetValues(health, maxHealth); Vector2 val = nearestPlayer() - Vector2.op_Implicit(((Component)this).gameObject.transform.position); ((Component)((Component)this).gameObject.transform.GetChild(0)).gameObject.transform.up = Vector2.op_Implicit(val); Vector2 normalized = ((Vector2)(ref val)).normalized; attackCount += TimeHandler.deltaTime; MonoBehaviour.print((object)damage); if (attackCount > attackSpeed) { attackCount = 0f; MonoBehaviour.print((object)"shoot"); } } } public class UnlimitedAmmo : CardEffect { public void Update() { int num = 3; foreach (CardInfo currentCard in ((CardEffect)this).player.data.currentCards) { num += ((Component)currentCard).gameObject.GetComponent<Gun>().ammo; } if (((CardEffect)this).gunAmmo.maxAmmo == 90) { ((CardEffect)this).gunAmmo.maxAmmo = num; } } } public class tracers : CardEffect { public override void OnShoot(GameObject projectile) { TrailRenderer[] componentsInChildren = projectile.GetComponentsInChildren<TrailRenderer>(); foreach (TrailRenderer val in componentsInChildren) { val.time = 1f; } } } public class FuckMe : CardEffect { private float t = 0f; private float a; private float b; private float c; public override IEnumerator OnPointStart(IGameModeHandler gameModeHandler) { t += 1f; a = 1f; b = 1f; c = 1f; foreach (CardInfo card in ((CardEffect)this).player.data.currentCards) { if (card.cardName.ToLower().Equals("increase a")) { a += 1f; } if (card.cardName.ToLower().Equals("increase b")) { b += 1f; } if (card.cardName.ToLower().Equals("increase c")) { c += 1f; } } float mult = (float)(((Math.Pow(a * t, 1.2) + (double)(3f * b * t) + (double)(c * t / 4f)) / (double)(100f / (c / 8f)) - (double)(b / 3f)) / 6.0) + 1f; if (mult < 0.2f) { mult = 0.2f; } Gun gun = ((CardEffect)this).gun; gun.damage *= mult; Gun gun2 = ((CardEffect)this).gun; gun2.attackSpeed /= mult; GunAmmo gunAmmo = ((CardEffect)this).gunAmmo; gunAmmo.reloadTimeMultiplier /= mult; Gun gun3 = ((CardEffect)this).gun; gun3.projectileSpeed *= mult; CharacterData data = ((CardEffect)this).player.data; data.maxHealth *= mult; ((CardEffect)this).player.data.health = ((CardEffect)this).player.data.maxHealth; CharacterStatModifiers characterStats = ((CardEffect)this).characterStats; characterStats.jump /= (mult + 1f) / 2f; CharacterStatModifiers characterStats2 = ((CardEffect)this).characterStats; characterStats2.movementSpeed *= mult; Block block = ((CardEffect)this).block; block.cdMultiplier /= mult; yield break; } } public class KoalasBonusStats : MonoBehaviour { public Vector2 shootPos; } } namespace KFC.Cards { public class Armor : CustomEffectCard<armor_mono> { internal static CardInfo card; public override CardDetails<armor_mono> Details => new CardDetails<armor_mono> { Title = "Armor", Description = "Gain a 100 hp armor that is seperate from your main hp", ModName = "KFC", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_Armor"), Rarity = (Rarity)2, Theme = (CardThemeColorType)1 }; } public class blackholegun : CustomEffectCard<blackholegun_Mono> { internal static CardInfo card; public override CardDetails<blackholegun_Mono> Details => new CardDetails<blackholegun_Mono> { Title = "Blackhole Gun", Description = "Bro stole it from stickfight\n:skull:", ModName = "KFC", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_Blackhole"), Rarity = RarityUtils.GetRarity("Mythical"), Theme = (CardThemeColorType)0 }; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; gun.gravity = 0f; gun.ignoreWalls = true; gun.projectileSpeed = 0.1f; gun.destroyBulletAfter = 30f; } } public class LaggyBullets : CustomEffectCard<laggyMono> { internal static CardInfo card; public override CardDetails<laggyMono> Details => new CardDetails<laggyMono> { Title = "Laggy Bullets", Description = "Wait im lagging", ModName = "KFC Curses", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_Laggy"), Rarity = (Rarity)1, Theme = (CardThemeColorType)4 }; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory }; } } public class Shadow : CustomEffectCard<shadowMono> { internal static CardInfo card; public override CardDetails<shadowMono> Details => new CardDetails<shadowMono> { Title = "Peephole", Description = "When you do anything, become shrouded in darkness", ModName = "KFC Curses", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_Shadow"), Rarity = RarityUtils.GetRarity("Legendary"), Theme = (CardThemeColorType)4, OwnerOnly = true }; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CurseManager.instance.curseCategory }; } } public class Daladas : CustomEffectCard<dalala> { internal static CardInfo card; public override CardDetails<dalala> Details => new CardDetails<dalala> { Title = "A bunch of legos", Description = "Everybody hates you", ModName = "KFC", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_DalaDas"), Rarity = RarityUtils.GetRarity("Legendary"), Theme = (CardThemeColorType)1, OwnerOnly = true }; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } } public class Alyssa : SimpleCard { internal static CardInfo card; public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_0059: 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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_0083: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Alyssa"; val.Description = "+14 Projectile Speed"; val.ModName = "KFC"; val.Art = KFC.ArtAssets.LoadAsset<GameObject>("C_Alyssa"); val.Rarity = (Rarity)2; val.Theme = (CardThemeColorType)7; val.Stats = (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { amount = "<#FF00FF>*14", positive = true, simepleAmount = (SimpleAmount)0, stat = "Projectile Speed" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.projectileSpeed = 14f; } } public class AncientKoala : SimpleCard { internal static CardInfo card; public override CardDetails Details => new CardDetails { Title = "Ancient Koala", Description = "<#ff00ff>Only the first gains a fragment of true power", ModName = "KFC", Art = KFC.ArtAssets.LoadAsset<GameObject>("C_KoalaMain"), Rarity = RarityUtils.GetRarity("Divine"), Theme = CardThemeLib.instance.CreateOrGetType("Koality", (CardThemeColor)null) }; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { //IL_0211: Unknown result type (might be due to invalid IL or missing references) try { for (int i = 0; i < ((Component)this).transform.childCount; i++) { Transform child = ((Component)this).transform.GetChild(i); if (((Object)child).name.Remove(9).ToLower() == "koalamain") { Object.Destroy((Object)(object)((Component)((Component)this).transform.GetChild(i)).gameObject); } } GameObject val = KFC.ArtAssets.LoadAsset<GameObject>("KoalaMain"); ((Renderer)val.gameObject.GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)val.gameObject.GetComponent<SpriteRenderer>()).sortingOrder = 11; ((Renderer)((Component)val.transform.GetChild(0)).GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)((Component)val.transform.GetChild(0)).GetComponent<SpriteRenderer>()).sortingOrder = 12; ((Renderer)((Component)val.transform.GetChild(1)).GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)((Component)val.transform.GetChild(1)).GetComponent<SpriteRenderer>()).sortingOrder = 13; ((Renderer)((Component)val.transform.GetChild(2)).GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)((Component)val.transform.GetChild(2)).GetComponent<SpriteRenderer>()).sortingOrder = 14; ((Renderer)((Component)val.transform.GetChild(2).GetChild(0)).GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)((Component)val.transform.GetChild(2).GetChild(0)).GetComponent<SpriteRenderer>()).sortingOrder = 15; ((Renderer)((Component)val.transform.GetChild(3)).GetComponent<SpriteRenderer>()).sortingLayerName = "MostFront"; ((Renderer)((Component)val.transform.GetChild(3)).GetComponent<SpriteRenderer>()).sortingOrder = 13; val.gameObject.layer = 21; for (int j = 0; j < val.transform.childCount; j++) { ((Component)val.transform.GetChild(j)).gameObject.layer = 21; } Object.Instantiate<GameObject>(val, ((Component)this).transform); val.transform.localPosition = Vector3.zero; } catch { } CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false; cardInfo.categories = (CardCategory[])(object)new CardCategory[2] { CustomCardCategories.instance.CardCategory("cantEternity"), CustomCardCategories.instance.CardCategory("CardManipulation") }; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { bool flag = false; Player[] array = PlayerManager.instance.players.ToArray(); foreach (Player val in array) { foreach (CardInfo currentCard in val.data.currentCards) { if ((Object)(object)currentCard == (Object)(object)card) { flag = true; } } } if (flag) { Cards.instance.RemoveAllCardsFromPlayer(player, true); Cards.instance.AddCardToPlayer(player, KoalaWrath.card, false, "", 0f, 0f); return; } CardInfo[] gifts = (CardInfo[])(object)new CardInfo[4] { KoalaGlory.card, KoalaThief.card, KoalaMight.card, KoalaStats.card }; List<CardInfo> list = gifts.ToList(); foreach (CardInfo currentCard2 in player.data.currentCards) { CardInfo[] array2 = gifts; foreach (CardInfo val2 in array2) { if ((Object)(object)currentCard2 == (Object)(object)val2) { list.Remove(val2); } } } CardInfo[] array3 = list.ToArray(); if (array3.Length != 0) { int num = Random.Range(0, array3.Length); int index = gifts.ToList().IndexOf(array3[num]); ExtensionMethods.ExecuteAfterFrames((MonoBehaviour)(object)KFC.instance, 10, (Action)delegate { Cards.instance.AddCardToPlayer(player, gifts[index], false, "", 0f, 0f); }); } } } public class KoalaGlory : CustomEffectCard<Fortune> { internal static CardInfo card; public override CardDetails<Fortune> Details { get { //IL_0046: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008a: 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_009b: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: 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_00c7: Expected O, but got Unknown CardDetails<Fortune> val = new CardDetails<Fortune>(); val.Title = "Glory of Koala"; val.Description = "You gain an abundance of fame and fortune"; val.ModName = "KFC"; val.Art = KFC.ArtAssets.LoadAsset<GameObject>("C_KoalaGlory"); val.Rarity = RarityUtils.GetRarity("Legendary"); val.Theme = CardThemeLib.instance.CreateOrGetType("Koality", (CardThemeColor)null); val.Stats = (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { amount = "<#ff00ff>+25% of Others", positive = true, simepleAmount = (SimpleAmount)0, stat = "Max Hp" }, new CardInfoStat { amount = "<#ff00ff>10% Max Hp", positive = true, simepleAmount = (SimpleAmount)0, stat = "Healing per second" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers) { CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false; cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CustomCardCategories.instance.CardCategory("cantEternity") }; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Player[] array = PlayerManager.instance.players.Where((Player p) => p.playerID != player.playerID).ToArray(); float num = 0f; Player[] array2 = array; foreach (Player val in array2) { num += val.data.maxHealth * 0.25f; } CharacterData data2 = player.data; data2.maxHealth += num; player.data.health = player.data.maxHealth; } public override bool GetEnabled() { return false; } } public class KoalaMight : SimpleCard { internal static CardInfo card; public override CardDetails Details { get { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_0046: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0165: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Expected O, but got Unknown //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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Expected O, but got Unknown //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Expected O, but got Unknown CardDetails val = new CardDetails(); val.Title = "Might of Koala"; val.Description = "You gain great strength"; val.ModName = "KFC"; val.Art = KFC.ArtAssets.LoadAsset<GameObject>("C_KoalaMight"); val.Rarity = RarityUtils.GetRarity("Legendary"); val.Theme = CardThemeLib.instance.CreateOrGetType("Koality", (CardThemeColor)null); val.Stats = (CardInfoStat[])(object)new CardInfoStat[6] { new CardInfoStat { amount = "<#ff00ff>+" + KFC.mysteryValue[2], positive = true, simepleAmount = (SimpleAmount)0, stat = "Damage" }, new CardInfoStat { amount = "<#ff00ff>+" + KFC.mysteryValue[2], positive = true, simepleAmount = (SimpleAmount)0, stat = "Attack Speed" }, new CardInfoStat { amount = "<#ff00ff>+" + KFC.mysteryValue[2], positive = true, simepleAmount = (SimpleAmount)0, stat = "Reload Time" }, new CardInfoStat { amount = "<#ff00ff>+" + KFC.mysteryValue[3], positive = true, simepleAmount = (SimpleAmount)0, stat = "Percentage Damage" }, new CardInfoStat { amount = "<#ff00ff>+8", positive = true, simepleAmount = (SimpleAmount)0, stat = "Ammo" }, new CardInfoStat { amount = "<#ff00ff>Reset", positive = true, simepleAmount = (SimpleAmount)0, stat = "Spread" } }; return val; } } public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers) { cardInfo.categories = (CardCategory[])(object)new CardCategory[1] { CustomCardCategories.instance.CardCategory("cantEternity") }; gun.damage = (float)KFC.mysteryValue[1]; gun.attackSpeed = 1f / (float)KFC.mysteryValue[1]; gun.reloadTime = 1f / (float)KFC.mysteryValue[1]; gun.percentageDamage = ((float)KFC.mysteryValue[1] - 1f) / 3f; gun.ammo = 8; } protected override void Added(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.spread = 0f; } public override bool GetEnabled() { return false; } } public class KoalaStats : CustomEffectCard<StatThief> { internal static CardInfo card; public override CardDetails<StatThief> Details { get { //IL_0046: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to inv