Decompiled source of Redo v1.1.2
Redo.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using Microsoft.CodeAnalysis; using ModdingUtils.Extensions; using ModdingUtils.GameModes; using ModdingUtils.Utils; using Photon.Pun; using Redo.MonoBehaviors; using Redo.MonoBehaviours; using RedoNameSpace.Cards; using UnboundLib; using UnboundLib.Cards; using UnboundLib.Networking; using UnboundLib.Utils; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Redo")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [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_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0266: 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<RedemptiveMasochistEffect>() != (Object)null) { player.data.health = Math.Min(player.data.health + 2f * ((Vector2)(ref damage)).magnitude, player.data.maxHealth * 2f + ((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)damagingPlayer != (Object)null && (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)((Component)damagingPlayer.data).GetComponent<VictorsVitalityEffect>() != (Object)null) { CharacterData data = damagingPlayer.data; data.maxHealth += 25f; } if ((Object)(object)damagingPlayer != (Object)null && (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)((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); } } } } } namespace Redo.MonoBehaviours { public class BackupPlanEffect : MonoBehaviour { public static ObjectsToSpawn Explosion; private Player player; private readonly float range = 1.75f; static BackupPlanEffect() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_008a: Expected O, but got Unknown (GameObject AddToProjectile, GameObject effect, Explosion explosion) tuple = LoadExplosion("MADExplosion"); GameObject item = tuple.AddToProjectile; GameObject item2 = tuple.effect; 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 }; } private void Awake() { } public void Explode() { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) Player component = ((Component)this).gameObject.GetComponent<Player>(); if (PhotonNetwork.OfflineMode) { Explosion.effect.GetComponent<Explosion>().damage = 1000f; GameObject val = Object.Instantiate<GameObject>(Explosion.effect, ((Component)component.data).transform.position, Quaternion.identity); Transform transform = val.transform; transform.localScale *= 5f; Object.Destroy((Object)(object)val, 2f); } else if (((Component)player).GetComponent<PhotonView>().IsMine) { Explosion.effect.GetComponent<Explosion>().damage = 1000f; GameObject val2 = Object.Instantiate<GameObject>(Explosion.effect, ((Component)component.data).transform.position, Quaternion.identity); Transform transform2 = val2.transform; transform2.localScale *= 5f; Object.Destroy((Object)(object)val2, 2f); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { NetworkingManager.RPC(typeof(BackupPlanEffect), "RPCA_Explode", new object[1] { player.data.view.ControllerActorNr }); }); } } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } [UnboundRPC] private static void RPCA_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_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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) 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); } 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 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); } } 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 static ObjectsToSpawn Explosion; private Player player; private readonly float range = 1.75f; static MutuallyAssuredDestructionEffect() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_008a: Expected O, but got Unknown (GameObject AddToProjectile, GameObject effect, Explosion explosion) tuple = LoadExplosion("MADExplosion"); GameObject item = tuple.AddToProjectile; GameObject item2 = tuple.effect; 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 }; } 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_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01da: 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)) { 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) { NetworkingManager.RPC(typeof(MutuallyAssuredDestructionEffect), "RPCA_Explode", new object[1] { item.data.view.ControllerActorNr }); Explosion.effect.GetComponent<Explosion>().damage = 1000f; GameObject val3 = Object.Instantiate<GameObject>(Explosion.effect, ((Component)player.data).transform.position, Quaternion.identity); Transform transform2 = val3.transform; transform2.localScale *= 5f; Object.Destroy((Object)(object)val3, 2f); ExtensionMethods.ExecuteAfterSeconds((MonoBehaviour)(object)Unbound.Instance, 0.1f, (Action)delegate { NetworkingManager.RPC(typeof(MutuallyAssuredDestructionEffect), "RPCA_Explode", new object[1] { player.data.view.ControllerActorNr }); }); } } } public void OnDestroy() { } public void Destroy() { Object.Destroy((Object)(object)this); } [UnboundRPC] private static void RPCA_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_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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) 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 RedemptiveMasochistEffect : MonoBehaviour { static RedemptiveMasochistEffect() { } 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 Redo.MonoBehaviors { public class EvilHeistEffect : MonoBehaviour { public void Update() { Player component = ((Component)this).GetComponent<Player>(); List<Player> enemyPlayers = PlayerStatus.GetEnemyPlayers(component); if (!Input.GetMouseButtonDown(0) || !PlayerStatus.PlayerAliveAndSimulated(component)) { return; } for (int i = 0; i < enemyPlayers.Count; i++) { try { if (PhotonNetwork.OfflineMode) { EvilHeistLogic(component, enemyPlayers[i]); } else if (((Component)component).gameObject.GetComponent<PhotonView>().IsMine) { NetworkingManager.RPC(typeof(EvilHeistEffect), "RPCA_EvilHeist", new object[2] { component.data.view.ControllerActorNr, enemyPlayers[i].data.view.ControllerActorNr }); } } catch { } } } private void EvilHeistLogic(Player player, Player victim) { CardBar val = CardBarUtils.instance.PlayersCardBar(victim.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); if (text != null) { string text2 = text.Substring(0, text.IndexOf('(')); CardInfo cardInfoWithName = CardManager.GetCardInfoWithName(text2); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Evil Heist"); if (!((Object)(object)cardInfoWithName == (Object)(object)cardWithObjectName)) { Cards.instance.RemoveCardFromPlayer(victim, victim.data.currentCards.IndexOf(cardInfoWithName)); Cards.instance.RemoveCardFromPlayer(player, player.data.currentCards.IndexOf(cardWithObjectName)); Cards.instance.AddCardToPlayer(player, cardInfoWithName, false, "", 0f, 0f); } } } [UnboundRPC] private static void RPCA_EvilHeist(int playerActorID, int victimActorID) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown Player val = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { playerActorID }); Player val2 = (Player)typeof(PlayerManager).InvokeMember("GetPlayerWithActorID", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, PlayerManager.instance, new object[1] { victimActorID }); CardBar val3 = CardBarUtils.instance.PlayersCardBar(val2.playerID); string text = ExtensionMethods.GetFieldValue((object)val3, "currentCard").ToString(); if (text != null) { string text2 = text.Substring(0, text.IndexOf('(')); CardInfo cardInfoWithName = CardManager.GetCardInfoWithName(text2); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Evil Heist"); if (!((Object)(object)cardInfoWithName == (Object)(object)cardWithObjectName)) { Cards.instance.RemoveCardFromPlayer(val2, val2.data.currentCards.IndexOf(cardInfoWithName)); Cards.instance.RemoveCardFromPlayer(val, val.data.currentCards.IndexOf(cardWithObjectName)); Cards.instance.AddCardToPlayer(val, cardInfoWithName, false, "", 0f, 0f); } } } } public class RobinHoodEffect : MonoBehaviour { public void Update() { Player component = ((Component)this).GetComponent<Player>(); if (!Input.GetMouseButtonDown(0)) { return; } try { if (PhotonNetwork.OfflineMode) { RobinHoodLogic(component); } else if (((Component)component).gameObject.GetComponent<PhotonView>().IsMine) { NetworkingManager.RPC(typeof(RobinHoodEffect), "RPCA_RobinHood", new object[1] { component.data.view.ControllerActorNr }); } } catch { } } private void RobinHoodLogic(Player player) { CardBar val = CardBarUtils.instance.PlayersCardBar(player.playerID); string text = ExtensionMethods.GetFieldValue((object)val, "currentCard").ToString(); if (text != null && ((Component)player).gameObject.GetComponent<PhotonView>().IsMine) { string text2 = text.Substring(0, text.IndexOf('(')); CardInfo cardInfoWithName = CardManager.GetCardInfoWithName(text2); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Robin Hood"); if (!((Object)(object)cardInfoWithName == (Object)(object)cardWithObjectName)) { Cards.instance.RemoveCardsFromPlayer(player, new int[2] { player.data.currentCards.IndexOf(cardWithObjectName), player.data.currentCards.IndexOf(cardInfoWithName) }); Cards.instance.AddCardToPlayer(PlayerStatus.GetRandomEnemyPlayer(player), cardInfoWithName, false, "", 0f, 0f); } } } [UnboundRPC] private static void RPCA_RobinHood(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 }); CardBar val2 = CardBarUtils.instance.PlayersCardBar(val.playerID); string text = ExtensionMethods.GetFieldValue((object)val2, "currentCard").ToString(); if (text != null && ((Component)val).gameObject.GetComponent<PhotonView>().IsMine) { string text2 = text.Substring(0, text.IndexOf('(')); CardInfo cardInfoWithName = CardManager.GetCardInfoWithName(text2); CardInfo cardWithObjectName = Cards.instance.GetCardWithObjectName("__REDO__Robin Hood"); if (!((Object)(object)cardInfoWithName == (Object)(object)cardWithObjectName)) { Cards.instance.RemoveCardsFromPlayer(val, new int[2] { val.data.currentCards.IndexOf(cardWithObjectName), val.data.currentCards.IndexOf(cardInfoWithName) }); Cards.instance.AddCardToPlayer(PlayerStatus.GetRandomEnemyPlayer(val), cardInfoWithName, false, "", 0f, 0f); } } } } } 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 RedoNameSpace { [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<ALittleExtraDamage>(); CustomCard.BuildCard<ModerateExtraDamage>(); CustomCard.BuildCard<ALotOfDamage>(); CustomCard.BuildCard<ALittleExtraHealth>(); CustomCard.BuildCard<ModerateExtraHealth>(); CustomCard.BuildCard<ALotOfHealth>(); CustomCard.BuildCard<BoysGamble>(); CustomCard.BuildCard<MansGamble>(); CustomCard.BuildCard<KingsGamble>(); CustomCard.BuildCard<GirlsGamble>(); CustomCard.BuildCard<WomansGamble>(); CustomCard.BuildCard<QueensGamble>(); CustomCard.BuildCard<WellRounded>(); CustomCard.BuildCard<SharingIsCaring>(); CustomCard.BuildCard<MortalBounty>(); CustomCard.BuildCard<VictorsVitality>(); CustomCard.BuildCard<GrimReaper>(); CustomCard.BuildCard<RedemptiveMasochist>(); CustomCard.BuildCard<SpatialSwap>(); CustomCard.BuildCard<RobinHood>(); CustomCard.BuildCard<EvilHeist>(); CustomCard.BuildCard<Bounty>(); } } } 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 BackToBasics : 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) { Cards.instance.RemoveAllCardsFromPlayer(player, 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 "Back To Basics"; } protected override string GetDescription() { return "Removes all of your cards and gives you a fresh slate."; } 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 BackupPlan : 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<BackupPlanEffect>(((Component)player).gameObject, false); } 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 "Backup Plan"; } protected override string GetDescription() { return "On death, explode."; } 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 BalancedPower : 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.damage += 10f; } 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 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."; } 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 BoysGamble : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { float num = Random.Range(0f, 1f); if (num < 0.5f) { gun.bulletDamageMultiplier = 0.5f; } else { gun.bulletDamageMultiplier = 2f; } } 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 "Boy's Gamble"; } protected override string GetDescription() { return "Gamble the damage of your gun, between halving it and doubling 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 CatchMeIfYouCan : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { statModifiers.movementSpeed = 10f; statModifiers.numberOfJumps = 10; 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<CatchMeIfYouCanEffect>(((Component)player).gameObject, false); } 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 "Catch Me If You Can"; } protected override string GetDescription() { return "Become incredibly athletic at the cost of suffering from lethal haphephobia."; } 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 = "Speed", amount = "+500%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Jumps", amount = "+15", 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 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 DoubleDamage : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.damage = 2f; } 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 "Double Damage"; } protected override string GetDescription() { return "Double Your damage."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)0; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[1] { new CardInfoStat { positive = true, stat = "Gun Damage", amount = "+100%", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } public class EvilHeist : 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<EvilHeistEffect>(((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<EvilHeistEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Evil Heist"; } protected override string GetDescription() { return "Steal any card you want from any enemy. Click on their card from the card bar to yoink 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 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 GirlsGamble : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { float num = Random.Range(0f, 1f); if (num < 0.5f) { statModifiers.health = 0.5f; } else { statModifiers.health = 2f; } } 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 "Girl's Gamble"; } protected override string GetDescription() { return "Gamble your health, between halving and doubling."; } 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 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 KingsGamble : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { float num = Random.Range(0f, 1f); if (num < 0.5f) { gun.bulletDamageMultiplier = 0.01f; } else { gun.bulletDamageMultiplier = 100f; } } 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 "King's Gamble"; } protected override string GetDescription() { return "Gamble the damage of your gun, anywhere between absolute power and water 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)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 MansGamble : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { float num = Random.Range(0f, 1f); if (num < 0.5f) { gun.bulletDamageMultiplier = 0.1f; } else { gun.bulletDamageMultiplier = 10f; } } 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 "Man's Gamble"; } protected override string GetDescription() { return "Gamble the damage of your gun, anywhere between dominance and pity."; } 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 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 { 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) { ExtensionMethods.GetOrAddComponent<MutuallyAssuredDestructionEffect>(((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<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"; } } internal class QueensGamble : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { float num = Random.Range(0f, 1f); if (num < 0.5f) { statModifiers.health = 0.02f; } else { statModifiers.health = 50f; } } 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 "Queen's Gamble"; } protected override string GetDescription() { return "Gamble your health, anywhere between a BMI of 100 and stick man."; } 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 RedemptiveMasochist : CustomCard { public override void SetupCard(CardInfo cardInfo, Gun gun, ApplyCardStats cardStats, CharacterStatModifiers statModifiers, Block block) { gun.randomBounces -= 100; gun.smartBounce -= 100; 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<RedemptiveMasochistEffect>(((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<RedemptiveMasochistEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Redemptive Masochist"; } protected override string GetDescription() { return "My pain will only make me stronger."; } protected override GameObject GetCardArt() { return null; } protected override Rarity GetRarity() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (Rarity)1; } protected override CardInfoStat[] GetStats() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown return (CardInfoStat[])(object)new CardInfoStat[3] { new CardInfoStat { positive = true, stat = "Self-damage", amount = "Gain Health", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = true, stat = "Overheal", amount = "+100%", simepleAmount = (SimpleAmount)0 }, new CardInfoStat { positive = false, stat = "Bounces", amount = "-100", simepleAmount = (SimpleAmount)0 } }; } protected override CardThemeColorType GetTheme() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (CardThemeColorType)7; } public override string GetModName() { return "REDO"; } } public class RobinHood : 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<RobinHoodEffect>(((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<RobinHoodEffect>(((Component)player).gameObject, false)); } protected override string GetTitle() { return "Robin Hood"; } protected override string GetDescription() { return "Gift one of your cards to a random player! Click on your card on the card bar to gift 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 Ge