Decompiled source of Redo v1.3.0
Redo.dll
Decompiled a month 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 ClassesManagerReborn; using ClassesManagerReborn.Util; using HarmonyLib; using Microsoft.CodeAnalysis; using ModdingUtils.Extensions; using ModdingUtils.GameModes; using ModdingUtils.Utils; using Photon.Pun; using RarityLib.Utils; using Redo.MonoBehaviours; using RedoNameSpace.Cards; using UnboundLib; using UnboundLib.Cards; using UnboundLib.Networking; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Redo")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+494d4a4b1e6a6db943c6cfe776dfdb38e0e5ee2a")] [assembly: AssemblyProduct("Redo")] [assembly: AssemblyTitle("Redo")] [assembly: AssemblyVersion("1.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace Redo.Patches { [Serializable] [HarmonyPatch(typeof(HealthHandler), "DoDamage")] internal class HealtHandlerPatchDoDamage { private static void killPlayer(Player player, Vector2 damage) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) if (player.data.stats.remainingRespawns > 0) { player.data.view.RPC("RPCA_Die_Phoenix", (RpcTarget)0, new object[1] { damage * player.data.maxHealth * 1000f }); } else { player.data.view.RPC("RPCA_Die", (RpcTarget)0, new object[1] { damage * player.data.maxHealth * 1000f }); } } private static void Prefix(HealthHandler __instance, Vector2 damage, Vector2 position, Color blinkColor, GameObject damagingWeapon, Player damagingPlayer, bool healthRemoval, ref bool lethal, bool ignoreBlock) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: 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_0363: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) CharacterData val = (CharacterData)Traverse.Create((object)__instance).Field("data").GetValue(); Player player = val.player; if (!val.isPlaying || val.dead || __instance.isRespawning) { return; } if ((Object)(object)player != (Object)null && (Object)(object)player == (Object)(object)damagingPlayer && (Object)(object)((Component)player.data).GetComponent<SelfHelpEffect>() != (Object)null) { player.data.health = Math.Min(player.data.health + 1f * ((Vector2)(ref damage)).magnitude, player.data.maxHealth * 1f + ((Vector2)(ref damage)).magnitude); } if ((Object)(object)player != (Object)null && (Object)(object)damagingPlayer != (Object)null && (Object)(object)((Component)damagingPlayer.data).GetComponent<PacifistEffect>() != (Object)null) { if (player.data.health + ((Vector2)(ref damage)).magnitude >= player.data.maxHealth * 1.5f) { killPlayer(player, damage); } player.data.health = Math.Min(player.data.health + 2f * ((Vector2)(ref damage)).magnitude, player.data.maxHealth * 1.5f + ((Vector2)(ref damage)).magnitude); } if (lethal && val.health < ((Vector2)(ref damage)).magnitude) { if ((Object)(object)damagingPlayer != (Object)null && (Object)(object)((Component)player.data).GetComponent<DestinyBondEffect>() != (Object)null) { killPlayer(player, damage); killPlayer(damagingPlayer, damage); } if ((Object)(object)((Component)player.data).GetComponent<BackupPlanEffect>() != (Object)null) { ((Component)player.data).GetComponent<BackupPlanEffect>().Explode(); } if ((Object)(object)damagingPlayer != (Object)null && (Object)(object)damagingPlayer != (Object)(object)player && (Object)(object)((Component)damagingPlayer.data).GetComponent<MortalBountyEffect>() != (Object)null) { Gun gun = damagingPlayer.data.weaponHandler.gun; gun.bulletDamageMultiplier += 0.45454547f; } if ((Object)(object)damagingPlayer != (Object)null && (Object)(object)damagingPlayer != (Object)(object)player && (Object)(object)((Component)damagingPlayer.data).GetComponent<VictorsVitalityEffect>() != (Object)null) { CharacterData data = damagingPlayer.data; data.maxHealth += 25f; } if ((Object)(object)damagingPlayer != (Object)null && (Object)(object)damagingPlayer != (Object)(object)player && (Object)(object)((Component)damagingPlayer.data).GetComponent<GrimReaperEffect>() != (Object)null) { CharacterStatModifiers stats = damagingPlayer.data.stats; stats.remainingRespawns++; } if ((Object)(object)damagingPlayer != (Object)null && (Object)(object)player != (Object)null && (Object)(object)damagingPlayer != (Object)(object)player && (Object)(object)((Component)player.data).GetComponent<BountyEffect>() != (Object)null) { CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Bounty"); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName)); Cards.instance.AddCardToPlayer(damagingPlayer, cardWithObjectName, false, "", 0f, 0f); killPlayer(player, damage); } else if ((Object)(object)((Component)player.data).GetComponent<BountyEffect>() != (Object)null) { CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Bounty"); List<Player> list = new List<Player>(PlayerManager.instance.players); Player val2 = list[Random.Range(0, list.Count)]; Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); Cards.instance.AddCardToPlayer(val2, cardWithObjectName2, false, "", 0f, 0f); killPlayer(player, damage); } } } } } namespace Redo.Cards { internal class DivineGlock : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = true; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.bulletDamageMultiplier += 0.45454547f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Divine Glock"; } protected override string GetDescription() { return "Gain 25 damage every point"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } } } namespace Redo.MonoBehaviours { public class AnotherOneEffect : MonoBehaviour { private Player player; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } public void Update() { if (!Input.GetMouseButtonDown(0)) { return; } try { CardBar val = CardBarUtils.instance.PlayersCardBar(player.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); string text2 = text; if (text2 != null && text.IndexOf('(') != -1) { text2 = text.Substring(0, text.IndexOf('(')); } if (text2 != null && !(text2 == "__REDO__Another One") && !(text2 == "null")) { if (PhotonNetwork.OfflineMode) { CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(text2); Cards.instance.AddCardToPlayer(player, cardWithObjectName, false, "", 0f, 0f); CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Another One"); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { NetworkingManager.RPC(typeof(CardRemoverEffect), "RPCA_AddCards", new object[2] { text2, player.data.view.ControllerActorNr }); } } } catch { } } [UnboundRPC] private static void RPCA_AddCards(string cardObjectName, int actorID) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown Player player = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(cardObjectName); Cards.instance.AddCardToPlayer(player, cardWithObjectName, false, "", 0f, 0f); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Another One"); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); }); } } public class AntiCringeEffect : MonoBehaviour { private Player player; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } public void Update() { if (!Input.GetMouseButtonDown(0)) { return; } List<Player> list = new List<Player>(PlayerManager.instance.players); foreach (Player item in list) { try { CardBar val = CardBarUtils.instance.PlayersCardBar(item.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); string text2 = text; if (text2 != null && text2.Length > 40) { text2 = text.Substring(0, text.Length - 32); } Debug.Log((object)text2); if (text2 == null || text2 == "__REDO__Copy Cat" || text2 == "null") { break; } if (text2 != null) { if (PhotonNetwork.OfflineMode) { Debug.Log((object)"Anti Cringe Offline"); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(text2); Cards.instance.RemoveCardFromPlayer(item, item.data.currentCards.IndexOf(cardWithObjectName)); CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Anti Cringe"); Cards.instance.RemoveCardFromPlayer(player, cardWithObjectName2, (SelectionType)2); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { Debug.Log((object)"Anti Cringe Online"); ((Component)this).GetComponent<PhotonView>().RPC("RPC_RemoveCard", (RpcTarget)0, new object[2] { "__REDO__Anti Cringe", player.data.view.ControllerActorNr }); ((Component)this).GetComponent<PhotonView>().RPC("RPC_RemoveCard", (RpcTarget)0, new object[2] { text2, item.data.view.ControllerActorNr }); } } } catch { Debug.Log((object)"Anti Cringe Exceptions??!?!?"); } } } private static string GetCurrentCardBarCardName(Player somePlayer) { CardBar val = CardBarUtils.instance.PlayersCardBar(somePlayer.playerID); object fieldValue = ExtensionMethods.GetFieldValue((object)val, "currentCard"); if (fieldValue == null) { return null; } string text = fieldValue.ToString(); if (text.Length > 40) { text = text.Substring(0, text.Length - 32); } return text; } [PunRPC] private void RPC_RemoveCard(string cardObjectName, int actorID) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown Player val = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(cardObjectName); Cards.instance.RemoveCardFromPlayer(val, cardWithObjectName, (SelectionType)2); } } public class CardRemoverEffect : MonoBehaviour { private Player player; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } public void Update() { if (!Input.GetMouseButtonDown(0)) { return; } try { CardBar val = CardBarUtils.instance.PlayersCardBar(player.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); string text2 = text; if (text2 != null && text.IndexOf('(') != -1) { text2 = text.Substring(0, text.IndexOf('(')); } if (text2 != null && !(text2 == "__REDO__Card Remover") && !(text2 == "null")) { if (PhotonNetwork.OfflineMode) { CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(text2); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName)); CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Card Remover"); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { NetworkingManager.RPC(typeof(CardRemoverEffect), "RPCA_RemoveCards", new object[2] { text2, player.data.view.ControllerActorNr }); } } } catch { } } [UnboundRPC] private static void RPCA_RemoveCards(string cardObjectName, int actorID) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown string cardObjectName2 = cardObjectName; Player player = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Card Remover"); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName)); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName(cardObjectName2); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); }); } } public class CopyCatEffect : MonoBehaviour { private Player player; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } public void Update() { if (!Input.GetMouseButtonDown(0)) { return; } List<Player> list = new List<Player>(PlayerManager.instance.players); Debug.Log((object)("Number of players: " + list.Count)); foreach (Player item in list) { try { CardBar val = CardBarUtils.instance.PlayersCardBar(item.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); string text2 = text; if (text2 != null && text.IndexOf('(') != -1) { text2 = text.Substring(0, text.IndexOf('(')); } Debug.Log((object)text2); if (text2 == null || text2 == "__REDO__Copy Cat" || text2 == "null") { break; } if (text2 != null) { if (PhotonNetwork.OfflineMode) { Debug.Log((object)"Copy Cat Offline"); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(text2); CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Copy Cat"); Cards.instance.AddCardToPlayer(player, cardWithObjectName, false, "", 0f, 0f); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName2)); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { ((Component)this).GetComponent<PhotonView>().RPC("RPC_GiveCard", (RpcTarget)0, new object[2] { text2, player.data.view.ControllerActorNr }); } } } catch { } } } [PunRPC] private void RPC_GiveCard(string cardObjectName, int actorID) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown Player val = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName(cardObjectName); CardInfo cardWithObjectName2 = Cards.instance.GetCardWithObjectName("__REDO__Copy Cat"); Cards.instance.AddCardToPlayer(val, cardWithObjectName, false, "", 0f, 0f); Cards.instance.RemoveCardFromPlayer(val, player.data.currentCards.IndexOf(cardWithObjectName2)); } } public class BackupPlanEffect : MonoBehaviour { public ObjectsToSpawn? Explosion; private Player player; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } private void Update() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } public void Explode() { Explosion.effect.GetComponent<Explosion>().damage = player.data.maxHealth; ((Component)this).GetComponent<PhotonView>().RPC("RPC_Explode", (RpcTarget)0, new object[1] { player.data.view.ControllerActorNr }); } [PunRPC] private void RPC_Explode(int actorID) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //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_0062: 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) Player val = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); GameObject val2 = Object.Instantiate<GameObject>(Explosion.effect, ((Component)val.data).transform.position, Quaternion.identity); Transform transform = val2.transform; transform.localScale *= 3f + Mathf.Min(3f, val.data.maxHealth / 100f); Object.Destroy((Object)(object)val2, 2f); } } public class BountyEffect : MonoBehaviour { static BountyEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } public class CatchMeIfYouCanEffect : MonoBehaviour { private Player player; private int added_revives = 0; private readonly float range = 1.75f; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { } private void Update() { //IL_0053: 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) //IL_006d: 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_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) if (!PlayerStatus.PlayerAliveAndSimulated(player)) { return; } List<Player> list = PlayerManager.instance.players.Where((Player player) => PlayerStatus.PlayerAliveAndSimulated(player) && player.playerID != this.player.playerID).ToList(); foreach (Player item in list) { Vector2 val = Vector2.op_Implicit(((Component)item).transform.position - ((Component)player).transform.position); if (((Vector2)(ref val)).magnitude <= range) { CharacterStatModifiers component = ((Component)player).GetComponent<CharacterStatModifiers>(); component.respawns++; added_revives++; ((Damagable)player.data.healthHandler).CallTakeDamage(new Vector2(player.data.health * 100f, player.data.health * 100f), Vector2.op_Implicit(((Component)player).transform.position), (GameObject)null, (Player)null, true); } } } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } public class DestinyBondEffect : MonoBehaviour { static DestinyBondEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } public class DivineGlockEffect : MonoBehaviour, IGameStartHookHandler, IPointStartHookHandler { private CharacterStatModifiers characterStatModifiers; private Player player; public void Start() { InterfaceGameModeHooksManager.instance.RegisterHooks((object)this); player = ((Component)this).GetComponentInParent<Player>(); characterStatModifiers = ((Component)this).GetComponentInParent<CharacterStatModifiers>(); } public void OnPointStart() { CharacterData data = player.data; data.maxHealth += 25f; CharacterData data2 = player.data; data2.health += 25f; } public void OnGameStart() { Object.Destroy((Object)(object)this); } public void OnDestroy() { InterfaceGameModeHooksManager.instance.RemoveHooks((object)this); } } public class GrimReaperEffect : MonoBehaviour { static GrimReaperEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } internal class InstantTransmissionEffect : MonoBehaviour { public Player player; private void Update() { //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) if (Input.GetKeyDown((KeyCode)32)) { ((Component)player).GetComponentInParent<PlayerCollision>().IgnoreWallForFrames(2); ((Component)player).transform.position = MainCam.instance.cam.ScreenToWorldPoint(Input.mousePosition); } } private void OnDestroy() { } public void Destroy() { } } public class MortalBountyEffect : MonoBehaviour { static MortalBountyEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } public class MutuallyAssuredDestructionEffect : MonoBehaviour { public ObjectsToSpawn? Explosion; private Player player; private readonly float range = 1.75f; private void Awake() { player = ((Component)this).gameObject.GetComponent<Player>(); } private void Start() { player = ((Component)this).gameObject.GetComponentInParent<Player>(); } private void Update() { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_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_00ac: 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_0117: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) if (!PlayerStatus.PlayerAliveAndSimulated(player)) { return; } List<Player> list = PlayerManager.instance.players.Where((Player player) => PlayerStatus.PlayerAliveAndSimulated(player) && player.playerID != this.player.playerID).ToList(); foreach (Player item in list) { double num = (double)((item.data.stats.sizeMultiplier + player.data.stats.sizeMultiplier) / 2f) + 0.5; Vector2 val = Vector2.op_Implicit(((Component)item).transform.position - ((Component)player).transform.position); if (!((double)((Vector2)(ref val)).magnitude <= num)) { continue; } if (PhotonNetwork.OfflineMode) { killPlayer(item); Explosion.effect.GetComponent<Explosion>().damage = 1000f; GameObject val2 = Object.Instantiate<GameObject>(Explosion.effect, ((Component)player.data).transform.position, Quaternion.identity); Transform transform = val2.transform; transform.localScale *= 5f; Object.Destroy((Object)(object)val2, 2f); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { killPlayer(player); }); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { ((Component)this).GetComponent<PhotonView>().RPC("RPC_Explode", (RpcTarget)0, new object[1] { item.data.view.ControllerActorNr }); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { ((Component)this).GetComponent<PhotonView>().RPC("RPC_Explode", (RpcTarget)0, new object[1] { player.data.view.ControllerActorNr }); }); } } } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } [PunRPC] private void RPC_Explode(int actorID) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_0065: 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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) Player val = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { actorID }); Explosion.effect.GetComponent<Explosion>().damage = 1000f; GameObject val2 = Object.Instantiate<GameObject>(Explosion.effect, ((Component)val.data).transform.position, Quaternion.identity); Transform transform = val2.transform; transform.localScale *= 5f; Object.Destroy((Object)(object)val2, 2f); killPlayer(val); } private static void killPlayer(Player player) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)player != (Object)null) { typeof(HealthHandler).InvokeMember("RPCA_Die", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, player.data.healthHandler, new object[1] { (object)new Vector2(0f, 1f) }); } } public static (GameObject AddToProjectile, GameObject effect, Explosion explosion) LoadExplosion(string name, Gun? gun = null) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) GameObject val = (GameObject)Resources.Load("0 cards/Explosive bullet"); Gun component = val.GetComponent<Gun>(); if ((Object)(object)gun != (Object)null) { gun.soundGun.AddSoundImpactModifier(component.soundImpactModifier); } GameObject addToProjectile = component.objectsToSpawn[0].AddToProjectile; GameObject val2 = Object.Instantiate<GameObject>(component.objectsToSpawn[0].effect); val2.transform.position = new Vector3(1000f, 0f, 0f); ((Object)val2).hideFlags = (HideFlags)61; ((Object)val2).name = name; Object.DestroyImmediate((Object)(object)val2.GetComponent<RemoveAfterSeconds>()); Explosion component2 = val2.GetComponent<Explosion>(); return (addToProjectile, val2, component2); } } public class PacifistEffect : MonoBehaviour { static PacifistEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } public class SelfHelpEffect : MonoBehaviour { static SelfHelpEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } internal class SpatialSwapEffect : MonoBehaviour { public Block block; public Player player; public CharacterData data; private Action<BlockTriggerType> spatialSwapAction; private void Start() { if (Object.op_Implicit((Object)(object)block)) { spatialSwapAction = GetDoBlockAction(player, block, data).Invoke; block.BlockAction = (Action<BlockTriggerType>)Delegate.Combine(block.BlockAction, spatialSwapAction); } } public Action<BlockTriggerType> GetDoBlockAction(Player player, Block block, CharacterData data) { Player player2 = player; return delegate { //IL_002d: 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_006c: 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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_009c: 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_00ea: Unknown result type (might be due to invalid IL or missing references) List<Player> list = PlayerManager.instance.players.Where((Player p) => p.teamID != player2.teamID && !p.data.dead).ToList(); Vector3 position = ((Component)player2).transform.position; if (list.Count >= 1) { Random random = new Random(); int index = random.Next(0, list.Count); Player val = list[index]; Vector3 position2 = ((Component)val).transform.position; float y = position.y; position.y = position2.y; position2.y = y; float x = position.x; position.x = position2.x; position2.x = x; ((Component)player2).GetComponentInParent<PlayerCollision>().IgnoreWallForFrames(2); ((Component)player2).transform.position = position; ((Component)val).GetComponentInParent<PlayerCollision>().IgnoreWallForFrames(2); ((Component)val).transform.position = position2; } }; } private void OnDestroy() { block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, spatialSwapAction); } public void Destroy() { Object.Destroy((Object)(object)this); block.BlockAction = (Action<BlockTriggerType>)Delegate.Remove(block.BlockAction, spatialSwapAction); } } public class VictorsVitalityEffect : MonoBehaviour { static VictorsVitalityEffect() { } private void Awake() { } public void Explode() { } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } } } namespace RedoNameSpace { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.devmung.rounds.Redo", "Redo", "1.0.1")] [BepInProcess("Rounds.exe")] public class Redo : BaseUnityPlugin { private const string ModId = "com.devmung.rounds.Redo"; private const string ModName = "Redo"; public const string Version = "1.0.1"; public const string ModInitials = "REDO"; public static Redo instance { get; private set; } private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown Harmony val = new Harmony("com.devmung.rounds.Redo"); val.PatchAll(); } private void Start() { instance = this; CustomCard.BuildCard<FraternalTwins>(); CustomCard.BuildCard<HeavyWeaponsGuy>(); CustomCard.BuildCard<SomeoneElsesProblem>(); CustomCard.BuildCard<MutuallyAssuredDestruction>(); CustomCard.BuildCard<DestinyBond>(); CustomCard.BuildCard<BackupPlan>(); CustomCard.BuildCard<ALittleExtraDamage>(); CustomCard.BuildCard<ModerateExtraDamage>(); CustomCard.BuildCard<ALotOfDamage>(); CustomCard.BuildCard<ALittleExtraHealth>(); CustomCard.BuildCard<ModerateExtraHealth>(); CustomCard.BuildCard<ALotOfHealth>(); CustomCard.BuildCard<TheGambler>((Action<CardInfo>)delegate(CardInfo card) { TheGambler.Card = card; }); CustomCard.BuildCard<BoysGamble>((Action<CardInfo>)delegate(CardInfo card) { BoysGamble.Card = card; }); CustomCard.BuildCard<BoysGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<BoysGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<MansGamble>((Action<CardInfo>)delegate(CardInfo card) { MansGamble.Card = card; }); CustomCard.BuildCard<MansGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<MansGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<KingsGamble>((Action<CardInfo>)delegate(CardInfo card) { KingsGamble.Card = card; }); CustomCard.BuildCard<KingsGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<KingsGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<GirlsGamble>((Action<CardInfo>)delegate(CardInfo card) { GirlsGamble.Card = card; }); CustomCard.BuildCard<GirlsGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<GirlsGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<WomansGamble>((Action<CardInfo>)delegate(CardInfo card) { WomansGamble.Card = card; }); CustomCard.BuildCard<WomansGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<WomansGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<QueensGamble>((Action<CardInfo>)delegate(CardInfo card) { QueensGamble.Card = card; }); CustomCard.BuildCard<QueensGambleLose>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<QueensGambleWin>((Action<CardInfo>)delegate(CardInfo newCardInfo) { Cards.instance.AddHiddenCard(newCardInfo); }); CustomCard.BuildCard<MortalBounty>(); CustomCard.BuildCard<VictorsVitality>(); CustomCard.BuildCard<GrimReaper>(); CustomCard.BuildCard<SelfHelp>(); CustomCard.BuildCard<Pacifist>(); CustomCard.BuildCard<SpatialSwap>(); CustomCard.BuildCard<InstantTransmission>(); CustomCard.BuildCard<Bounty>(); CustomCard.BuildCard<Sniper>((Action<CardInfo>)delegate(CardInfo card) { Sniper.Card = card; }); CustomCard.BuildCard<Steady>((Action<CardInfo>)delegate(CardInfo card) { Steady.Card = card; }); CustomCard.BuildCard<LongerBarrel>((Action<CardInfo>)delegate(CardInfo card) { LongerBarrel.Card = card; }); CustomCard.BuildCard<ArmorPiercing>((Action<CardInfo>)delegate(CardInfo card) { ArmorPiercing.Card = card; }); CustomCard.BuildCard<WallHacks>((Action<CardInfo>)delegate(CardInfo card) { WallHacks.Card = card; }); } } } namespace RedoNameSpace.Cards { internal class ALittleExtraDamage : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.bulletDamageMultiplier += 0.45454547f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "A Little Extra Damage"; } protected override string GetDescription() { return "Sprinkle some damage on your gun."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Gun Damage", amount = "+25", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ALittleExtraHealth : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CharacterData data2 = player.data; data2.maxHealth += 50f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "A Little Extra Health"; } protected override string GetDescription() { return "Sprinkle some health on your body."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Health Points", amount = "+50", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ALotOfDamage : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.bulletDamageMultiplier += 2.7272727f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "A Lot Of Damage"; } protected override string GetDescription() { return "Weak? Just shoot stronger bullets."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Gun Damage", amount = "+150", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ALotOfHealth : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CharacterData data2 = player.data; data2.maxHealth += 250f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "A Lot Of Health"; } protected override string GetDescription() { return "Weak? Don't be."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Health Points", amount = "+250", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class AnotherOne : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<AnotherOneEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<AnotherOneEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Another One"; } protected override string GetDescription() { return "One time use: copy one of your own cards on the card bar by clicking on it."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class AntiCringe : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<AntiCringeEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<AntiCringeEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Anti Cringe"; } protected override string GetDescription() { return "One time use: remove any player's card on the card bar by clicking on it."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class BackupPlan : CustomCard { private ObjectsToSpawn? explosion; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.movementSpeed = 0.7f; cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown BackupPlanEffect orAddComponent = ExtensionMethods.GetOrAddComponent<BackupPlanEffect>(((Component)player).gameObject, false); (GameObject AddToProjectile, GameObject effect, Explosion explosion) tuple = LoadExplosion("BackupPlanExplosion"); GameObject item = tuple.AddToProjectile; GameObject item2 = tuple.effect; orAddComponent.Explosion = new ObjectsToSpawn { AddToProjectile = item, direction = (Direction)0, effect = item2, normalOffset = 0.1f, scaleFromDamage = 0.5f, scaleStackM = 0.7f, scaleStacks = true, spawnAsChild = false, spawnOn = (SpawnOn)0, stacks = 0, stickToAllTargets = false, stickToBigTargets = false, zeroZ = false }; ExtensionMethods.GetOrAddComponent<SpawnedAttack>(item2, false).spawner = player; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<BackupPlanEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Backup Plan"; } protected override string GetDescription() { return "Explode on death."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "On Death", amount = "Explode", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Speed", amount = "-30%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } public static (GameObject AddToProjectile, GameObject effect, Explosion explosion) LoadExplosion(string name, Gun? gun = null) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) GameObject val = (GameObject)Resources.Load("0 cards/Explosive bullet"); Gun component = val.GetComponent<Gun>(); if ((Object)(object)gun != (Object)null) { gun.soundGun.AddSoundImpactModifier(component.soundImpactModifier); } GameObject addToProjectile = component.objectsToSpawn[0].AddToProjectile; GameObject val2 = Object.Instantiate<GameObject>(component.objectsToSpawn[0].effect); val2.transform.position = new Vector3(1000f, 0f, 0f); ((Object)val2).hideFlags = (HideFlags)61; ((Object)val2).name = name; Object.DestroyImmediate((Object)(object)val2.GetComponent<RemoveAfterSeconds>()); Explosion component2 = val2.GetComponent<Explosion>(); return (addToProjectile, val2, component2); } } internal class Bounty : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.health = 5f; gun.bulletDamageMultiplier = 5f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<BountyEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<BountyEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Bounty"; } protected override string GetDescription() { return "Your crimes have earned you strength, but a bounty has been placed on your head. Whomever kills you will take this card with them. If you die due to other reasons, someone else will randomly get it."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Damage", amount = "+500%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Health", amount = "+500%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class CardRemover : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<CardRemoverEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<CardRemoverEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Card Remover"; } protected override string GetDescription() { return "One time use: remove one of your own cards on the card bar by clicking on it."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class CopyCat : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<CopyCatEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<CopyCatEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Copy Cat"; } protected override string GetDescription() { return "One time use: create a copy of any card on the card bar by clicking on it."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class DestinyBond : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<DestinyBondEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<DestinyBondEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Destiny Bond"; } protected override string GetDescription() { return "On death, invite your killer to come with you."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { return (CardInfoStat[])(object)new CardInfoStat[0]; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } } internal class FraternalTwins : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { CardInfoExtension.GetAdditionalData(cardInfo).canBeReassigned = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { List<Player> list = new List<Player>(PlayerManager.instance.players); list.Remove(player); Player val = list[Random.Range(0, list.Count)]; CardInfo[] array = val.data.currentCards.Where((CardInfo card) => CardInfoExtension.GetAdditionalData(card).canBeReassigned).ToArray(); Cards.instance.RemoveAllCardsFromPlayer(player, true); Cards.instance.AddCardsToPlayer(player, array, false, (string[])null, (float[])null, (float[])null, true); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Fraternal Twins"; } protected override string GetDescription() { return "Replace all your cards with a copy of a random player's cards."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { return null; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class GrimReaper : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<GrimReaperEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<GrimReaperEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Grim Reaper"; } protected override string GetDescription() { return "Harvest the lives of those you slay in a round."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Per Kill", amount = "+1 Temporary Revive", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } } internal class HeavyWeaponsGuy : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.health = 3f; statModifiers.movementSpeed = 0.7f; gun.attackSpeed = 0.2f; gun.ammo = 100; gun.bulletDamageMultiplier = 0.1f; gun.spread = 0.05f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Heavy Weapons Guy"; } protected override string GetDescription() { return "Become Heavy Weapons Guy."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Expected O, but got Unknown //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00db: 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_00e3: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_010f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[6] { new CardInfoStat { positive = true, stat = "Health", amount = "+300%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Attack Speed", amount = "+500%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Ammo", amount = "+100", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Damage", amount = "-90%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Movement Speed", amount = "-30%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Spread", amount = "+5%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } } internal class InstantTransmission : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; statModifiers.movementSpeed = 0f; statModifiers.numberOfJumps = 0; statModifiers.jump = 0f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { InstantTransmissionEffect orAddComponent = ExtensionMethods.GetOrAddComponent<InstantTransmissionEffect>(((Component)player).gameObject, false); orAddComponent.player = player; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)((Component)player).gameObject.GetComponentInChildren<InstantTransmissionEffect>()); } protected override string GetTitle() { return "Instant Transmission"; } protected override string GetDescription() { return "Teleport to your cursor when hitting space bar."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = false, stat = "Movement", amount = "No", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Jumps", amount = "No", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Teleport", amount = "Yes", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ModerateExtraDamage : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { gun.bulletDamageMultiplier += 0.90909094f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Moderate Extra Damage"; } protected override string GetDescription() { return "Up the caliber of your bullets."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Gun Damage", amount = "+50", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ModerateExtraHealth : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { CharacterData data2 = player.data; data2.maxHealth += 150f; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } protected override string GetTitle() { return "Moderate Extra Health"; } protected override string GetDescription() { return "Time to hit the gym."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Health Points", amount = "+150", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class MortalBounty : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<MortalBountyEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<MortalBountyEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Mortal Bounty"; } protected override string GetDescription() { return "Gain 25 damage for each foe you kill"; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Per Kill", amount = "+25 Damage", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } } internal class MutuallyAssuredDestruction : CustomCard { private ObjectsToSpawn? explosion; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.movementSpeed = 2f; statModifiers.health = 0.4f; cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown MutuallyAssuredDestructionEffect orAddComponent = ExtensionMethods.GetOrAddComponent<MutuallyAssuredDestructionEffect>(((Component)player).gameObject, false); (GameObject AddToProjectile, GameObject effect, Explosion explosion) tuple = LoadExplosion("MADExplosion"); GameObject item = tuple.AddToProjectile; GameObject item2 = tuple.effect; orAddComponent.Explosion = new ObjectsToSpawn { AddToProjectile = item, direction = (Direction)0, effect = item2, normalOffset = 0.1f, scaleFromDamage = 0.5f, scaleStackM = 0.7f, scaleStacks = true, spawnAsChild = false, spawnOn = (SpawnOn)0, stacks = 0, stickToAllTargets = false, stickToBigTargets = false, zeroZ = false }; ExtensionMethods.GetOrAddComponent<SpawnedAttack>(item2, false).spawner = player; } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<MutuallyAssuredDestructionEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Mutually Assured Destruction"; } protected override string GetDescription() { return "Touching another player will permanently kill you both."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[2] { new CardInfoStat { positive = true, stat = "Speed", amount = "+100%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Health", amount = "-60%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)0; } public override string GetModName() { return "REDO"; } public static (GameObject AddToProjectile, GameObject effect, Explosion explosion) LoadExplosion(string name, Gun? gun = null) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) GameObject val = (GameObject)Resources.Load("0 cards/Explosive bullet"); Gun component = val.GetComponent<Gun>(); if ((Object)(object)gun != (Object)null) { gun.soundGun.AddSoundImpactModifier(component.soundImpactModifier); } GameObject addToProjectile = component.objectsToSpawn[0].AddToProjectile; GameObject val2 = Object.Instantiate<GameObject>(component.objectsToSpawn[0].effect); val2.transform.position = new Vector3(1000f, 0f, 0f); ((Object)val2).hideFlags = (HideFlags)61; ((Object)val2).name = name; Object.DestroyImmediate((Object)(object)val2.GetComponent<RemoveAfterSeconds>()); Explosion component2 = val2.GetComponent<Explosion>(); return (addToProjectile, val2, component2); } } internal class Pacifist : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<PacifistEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<PacifistEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Pacifist*"; } protected override string GetDescription() { return "Your bullets heal people. \n*Warning: too much healing can be bad."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Damage", amount = "Healing", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class SelfHelp : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { cardInfo.allowMultiple = false; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { ExtensionMethods.GetOrAddComponent<SelfHelpEffect>(((Component)player).gameObject, false); } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { Object.Destroy((Object)(object)ExtensionMethods.GetOrAddComponent<SelfHelpEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Self Help"; } protected override string GetDescription() { return "Become immune to self harm."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Self-damage", amount = "None", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } internal class ArmorPiercing : CustomCard { internal static CardInfo Card; public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.unblockable = true; gun.bodyRecoil += 250f; } public override void OnAddCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } public override void OnRemoveCard(Player player, Gun gun, GunAmmo gunAmmo, CharacterData data, HealthHandler health, Gravity gravity, Block block, CharacterStatModifiers characterStats) { } public override void Callback() { ExtensionMethods.GetOrAddComponent<ClassNameMono>(((Component)this).gameObject, false); } protected override string GetTitle() { return "Armor Piercing"; } protected override string GetDescription() { return "Unblockable Bullets."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)2; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to