Decompiled source of Mystery Button v1.0.1
plugins/MysteryButton.dll
Decompiled 5 hours 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.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLib.Modules; using Microsoft.CodeAnalysis; using MysteryButton.NetcodePatcher; using Unity.Netcode; using UnityEngine; using UnityEngine.InputSystem.Utilities; [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: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: AssemblyCompany("MysteryButton")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+f9f37262a782c37161e6f971cfa349df92b4c55b")] [assembly: AssemblyProduct("MysteryButton")] [assembly: AssemblyTitle("MysteryButton")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { NetworkVariableSerializationTypes.InitializeSerializer_UnmanagedByMemcpy<bool>(); NetworkVariableSerializationTypes.InitializeEqualityChecker_UnmanagedIEquatable<bool>(); } } 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; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace MysteryButton { [BepInPlugin("MysteryButton", "MysteryButton", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class MysteryButton : BaseUnityPlugin { public static List<AssetBundle> Bundles = new List<AssetBundle>(); public static Material buttonUsedMaterial; public static Harmony? Harmony { get; protected set; } public static MysteryButtonConfig ModConfig { get; private set; } protected void Awake() { Patch(); PatchNetcode(); string text = "\n"; text += "* * *\n"; text += " * _______ \n"; text += " * ___|_______|___ *\n"; text += " |_______________|"; ((BaseUnityPlugin)this).Logger.LogInfo((object)text); AddBundle("mysterybutton"); if (Bundles.Count == 0) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loaded no bundles."); } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)string.Format("Loaded {0} bundles : {1}", Bundles.Count, string.Join(", ", Bundles))); } ModConfig = new MysteryButtonConfig(((BaseUnityPlugin)this).Config); AddFromBundle<MysteryButtonAI>(Bundles.First(), "MysteryButton", (SpawnType)0); ((BaseUnityPlugin)this).Logger.LogInfo((object)"MysteryButton v1.0.0 has loaded!"); } protected void Patch() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (Harmony == null) { Harmony = new Harmony("MysteryButton"); } ((BaseUnityPlugin)this).Logger.LogDebug((object)"Patching..."); Harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogDebug((object)"Finished patching!"); } protected void PatchNetcode() { Type[] types = Assembly.GetExecutingAssembly().GetTypes(); Type[] array = types; foreach (Type type in array) { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array2 = methods; foreach (MethodInfo methodInfo in array2) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } } protected void Unpatch() { ((BaseUnityPlugin)this).Logger.LogDebug((object)"Unpatching..."); Harmony? harmony = Harmony; if (harmony != null) { harmony.UnpatchSelf(); } ((BaseUnityPlugin)this).Logger.LogDebug((object)"Finished unpatching!"); } private void AddBundle(string name) { string location = Assembly.GetExecutingAssembly().Location; string directoryName = Path.GetDirectoryName(location); string text = Path.Combine(directoryName, name); AssetBundle val = AssetBundle.LoadFromFile(text); if ((Object)(object)val == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Failed to load bundle " + name)); } else { Bundles.Add(val); } } private void AddFromBundle<T>(AssetBundle bundle, string name, SpawnType spawnType) where T : EnemyAI { EnemyType val = bundle.LoadAsset<EnemyType>("MysteryButtonET"); if ((Object)(object)val == (Object)null || (Object)(object)val.enemyPrefab == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not load enemy " + name + " from bundle " + ((Object)bundle).name + ".")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Loaded enemy " + name + " from bundle " + ((Object)bundle).name + ".")); TerminalNode val2 = bundle.LoadAsset<TerminalNode>("MysteryButtonTN"); if ((Object)(object)val2 == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not load " + name + " terminal node from " + ((Object)bundle).name + ".")); return; } TerminalKeyword val3 = bundle.LoadAsset<TerminalKeyword>("MysteryButtonTK"); if ((Object)(object)val3 == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not load " + name + " terminal keyword from " + ((Object)bundle).name + ".")); return; } val.enemyPrefab = bundle.LoadAsset<GameObject>(name + ".prefab"); if ((Object)(object)val.enemyPrefab == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not load enemy prefab " + name + " from bundle " + ((Object)bundle).name + ".")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Loaded enemy " + name + " prefab from bundle " + ((Object)bundle).name + ".")); T val4 = val.enemyPrefab.AddComponent<T>(); if ((Object)(object)val4 == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not attach AI to enemy " + name + " from " + ((Object)bundle).name + ".")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Attached " + typeof(T).Name + " script to enemy " + name + " from " + ((Object)bundle).name + ".")); buttonUsedMaterial = bundle.LoadAsset<Material>("ButtonUsedMaterial"); if ((Object)(object)buttonUsedMaterial == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Could not load material ButtonUsedMaterial from bundle " + ((Object)bundle).name + ".")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Loaded material ButtonUsedMaterial from bundle " + ((Object)bundle).name + ".")); ((EnemyAI)val4).enemyType = val; ((EnemyAI)val4).enemyType.enemyPrefab.GetComponentInChildren<EnemyAICollisionDetect>().mainScript = (EnemyAI)(object)val4; int value = MysteryButtonConfig.ConfigMaxAmount.Value; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Maximum number of buttons per round set to {value}"); ((EnemyAI)val4).enemyType.MaxCount = value; NetworkPrefabs.RegisterNetworkPrefab(((EnemyAI)val4).enemyType.enemyPrefab); var (dictionary, dictionary2) = ConfigParsing(MysteryButtonConfig.ConfigRarity.Value); if (!MysteryButtonConfig.ConfigSpawnDisabled.Value) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Spawn enabled for MysteryButton"); Enemies.RegisterEnemy(((EnemyAI)val4).enemyType, dictionary, dictionary2, val2, val3); ((BaseUnityPlugin)this).Logger.LogInfo((object)("Loaded enemy " + val2.creatureName + " with terminal name " + val3.word + ".")); } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Spawn disabled for MysteryButton"); } } private (Dictionary<LevelTypes, int> spawnRateByLevelType, Dictionary<string, int> spawnRateByCustomLevelType) ConfigParsing(string configMoonRarity) { //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) Dictionary<LevelTypes, int> dictionary = new Dictionary<LevelTypes, int>(); Dictionary<string, int> dictionary2 = new Dictionary<string, int>(); foreach (string item in from s in configMoonRarity.Split(',') select s.Trim()) { string[] array = item.Split(':'); if (array.Length != 2) { continue; } string text = array[0]; if (int.TryParse(array[1], out var result)) { if (Enum.TryParse<LevelTypes>(text, ignoreCase: true, out LevelTypes result2)) { dictionary[result2] = result; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Registered spawn rate for level type {result2} to {result}"); } else { dictionary2[text] = result; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Registered spawn rate for custom level type {text} to {result}"); } } } return (dictionary, dictionary2); } } public class MysteryButtonAI : EnemyAI, INetworkSerializable { private static int cpt = 0; private static bool IS_TEST = false; private static ManualLogSource logger = Logger.CreateLogSource("MysteryButton.MysteryButtonAI"); private static readonly int PlayUsed = Animator.StringToHash("playUsed"); private static readonly int PlayDestroyed = Animator.StringToHash("playDestroyed"); private static readonly int PlayIdleBouncing = Animator.StringToHash("playIdleBouncing"); private Random rng; private NetworkVariable<bool> isLock = new NetworkVariable<bool>(false, (NetworkVariableReadPermission)0, (NetworkVariableWritePermission)0); private bool isLocalLock; private int id; private AudioClip buttonAppearClip; private AudioClip buttonUsedClip; private AudioClip buttonUsedMalusClip; private AudioClip teleporterBeamClip; private List<AudioClip> playerMalusClips; private bool canExplodeLandmines; private bool canMakeTurretsBerserk; private EnemyVent nearestVent; private Animator animator; public override void Start() { //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) logger.LogInfo((object)"ButtonAI::Start"); isLocalLock = false; animator = ((Component)this).gameObject.GetComponentInChildren<Animator>(); float num = 10f; ((MonoBehaviour)this).InvokeRepeating("PlayIdleAnimation", 10f, num); AudioSource component = ((Component)this).gameObject.GetComponent<AudioSource>(); logger.LogInfo((object)("AudioSource is " + (Object.op_Implicit((Object)(object)component) ? " not null" : "null"))); base.creatureSFX = ((Component)this).gameObject.GetComponent<AudioSource>(); AudioClip[] array = base.enemyType?.audioClips ?? Array.Empty<AudioClip>(); buttonAppearClip = array[0]; buttonUsedClip = array[1]; buttonUsedMalusClip = array[2]; playerMalusClips = new List<AudioClip>(2) { array[3], array[4] }; teleporterBeamClip = array[5]; id = cpt++; base.enemyHP = 100; rng = new Random((int)((NetworkBehaviour)this).NetworkObjectId); if (Object.op_Implicit((Object)(object)base.creatureSFX)) { base.creatureSFX.PlayOneShot(buttonAppearClip); } List<Landmine> list = (from mine in Object.FindObjectsOfType<Landmine>() where !mine.hasExploded select mine).ToList(); canExplodeLandmines = list.Count > 0; List<Turret> list2 = Object.FindObjectsOfType<Turret>().ToList(); canMakeTurretsBerserk = list2.Count > 0; List<EnemyVent> list3 = RoundManager.Instance.allEnemyVents.ToList(); if (list3.Count > 0) { nearestVent = list3[0]; foreach (EnemyVent item in list3) { float num2 = Vector3.Distance(((Component)nearestVent).transform.position, ((Component)this).transform.position); float num3 = Vector3.Distance(((Component)item).transform.position, ((Component)this).transform.position); if (num2 > num3) { nearestVent = item; } } } ((EnemyAI)this).Start(); } private void PlayIdleAnimation() { if (Object.op_Implicit((Object)(object)animator) && !isLocalLock && !isLock.Value) { animator.SetTrigger(PlayIdleBouncing); } } public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); logger.LogInfo((object)("ButtonAI::OnNetworkSpawn, IsServer=" + ((NetworkBehaviour)this).IsServer)); if (((NetworkBehaviour)this).IsServer) { isLock.Value = false; ((NetworkBehaviour)this).NetworkManager.OnClientConnectedCallback += NetworkManager_OnClientConnectedCallback; } else { NetworkVariable<bool> obj = isLock; obj.OnValueChanged = (OnValueChangedDelegate<bool>)(object)Delegate.Combine((Delegate?)(object)obj.OnValueChanged, (Delegate?)(object)new OnValueChangedDelegate<bool>(OnSomeValueChanged)); } } public override void OnNetworkDespawn() { ((NetworkBehaviour)this).OnNetworkDespawn(); if (!((NetworkBehaviour)this).IsServer) { NetworkVariable<bool> obj = isLock; obj.OnValueChanged = (OnValueChangedDelegate<bool>)(object)Delegate.Remove((Delegate?)(object)obj.OnValueChanged, (Delegate?)(object)new OnValueChangedDelegate<bool>(OnSomeValueChanged)); } } private void NetworkManager_OnClientConnectedCallback(ulong obj) { InitNetworkVariables(); } private void OnSomeValueChanged(bool previous, bool current) { logger.LogInfo((object)$"Detected NetworkVariable Change: Previous: {previous} | Current: {current}"); isLock.Value = current; } private void InitNetworkVariables() { isLock.Value = false; ((NetworkBehaviour)this).NetworkManager.OnClientConnectedCallback -= NetworkManager_OnClientConnectedCallback; } [ServerRpc(RequireOwnership = false)] public void SetLockServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(821451247u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 821451247u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::SetLock"); isLock.Value = true; } } } public override void OnCollideWithPlayer(Collider other) { ((EnemyAI)this).OnCollideWithPlayer(other); if (!isLocalLock && !isLock.Value) { isLocalLock = true; logger.LogInfo((object)("ButtonAI::OnCollideWithPlayer, ButtonAI::id=" + id)); SetLockServerRpc(); PlayerControllerB component = ((Component)other).gameObject.GetComponent<PlayerControllerB>(); if ((Object)(object)component != (Object)null) { logger.LogInfo((object)("ButtonAI::OnCollideWithPlayer, player EXISTS for collider " + ((Object)((Component)other).gameObject).name)); DoEffect(((Object)component).name); } } } public void DoEffect(string playerName) { int num = rng.Next(0, 100); logger.LogInfo((object)("effect=" + num)); bool flag = num < 50; if (flag) { logger.LogInfo((object)"Bonus effect"); DoBonusEffect(playerName); } else { logger.LogInfo((object)"Malus effect"); DoMalusEffect(playerName); } KillButtonServerRpc(flag); } private void DoBonusEffect(string playerName) { int num = rng.Next(0, 100); logger.LogInfo((object)("Bonus effect=" + num)); if (IS_TEST) { LeaveEarlyServerRpc(); } else if (num < 30) { SpawnScrapServerRpc(playerName); } else if (num < 60) { int amount = rng.Next(1, 6); SpawnScrapServerRpc(playerName, amount); } else if (num < 90) { SpawnSpecificScrapServerRpc(playerName, 1); } else if (num < 91) { int amount2 = rng.Next(1, 11); SpawnSpecificScrapServerRpc(playerName, amount2); } else if (canExplodeLandmines) { ExplodeLandminesServerRpc(); } else { RevivePlayerServerRpc(playerName); } } private void DoMalusEffect(string playerName) { int num = rng.Next(0, 100); logger.LogInfo((object)("Malus effect=" + num)); if (IS_TEST) { LeaveEarlyServerRpc(); return; } if (num < 5) { StartMeteorEventServerRpc(); return; } if (num < 20) { TeleportPlayerToRandomPositionServerRpc(playerName); return; } if (num < 40) { SwitchPlayersPositionServerRpc(playerName); return; } if (num < 55) { PlayerDrunkServerRpc(); return; } if (num < 56) { LeaveEarlyServerRpc(); return; } if (num < 60) { RandomPlayerIncreaseInsanityServerRpc(); return; } if (num < 70 && canMakeTurretsBerserk) { BerserkTurretServerRpc(); return; } if (num < 80 && (Object)(object)nearestVent != (Object)null) { SpawnEnemyServerRpc(1); return; } if (num < 81 && (Object)(object)nearestVent != (Object)null) { SpawnEnemyServerRpc(rng.Next(1, 5)); return; } int num2 = rng.Next(0, 100); if (num2 < 50) { OpenAllDoorsServerRpc(playerName); } else { CloseAllDoorsServerRpc(playerName); } } [ServerRpc(RequireOwnership = false)] public void KillButtonServerRpc(bool isBonus) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2685224375u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isBonus, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2685224375u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { KillButtonClientRpc(isBonus); } } } [ClientRpc] public void KillButtonClientRpc(bool isBonus) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: 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_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4021835661u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref isBonus, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4021835661u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::KillButtonClientRpc"); if (Object.op_Implicit((Object)(object)base.creatureSFX)) { base.creatureSFX.Stop(); if (isBonus) { base.creatureSFX.PlayOneShot(buttonUsedClip); } else { base.creatureSFX.PlayOneShot(buttonUsedMalusClip); } } if (isBonus) { Material buttonUsedMaterial = MysteryButton.buttonUsedMaterial; ((Renderer)((Component)((Component)this).transform.Find("MysteryButton/SpringBones/Bone.004/MysteryButton_Bouton")).GetComponent<MeshRenderer>()).material = buttonUsedMaterial; } if (Object.op_Implicit((Object)(object)animator)) { if (isBonus) { animator.SetBool(PlayUsed, true); } else { animator.SetBool(PlayDestroyed, true); } } ((EnemyAI)this).KillEnemy(false); } [ServerRpc(RequireOwnership = false)] private void PlayerDrunkServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(957719844u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 957719844u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { PlayerDrunkClientRpc(); } } } [ClientRpc] private void PlayerDrunkClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3286299763u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3286299763u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::PlayerDrunkClientRpc"); if (!((Object)(object)StartOfRound.Instance != (Object)null)) { return; } foreach (PlayerControllerB activePlayer in GetActivePlayers()) { logger.LogInfo((object)("Client: Apply effect to " + activePlayer.playerUsername)); activePlayer.drunkness = 5f; } } [ServerRpc(RequireOwnership = false)] private void RevivePlayerServerRpc(string? playerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3006486190u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3006486190u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI:RevivePlayerServerRpc"); PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(playerName); List<PlayerControllerB> list = StartOfRound.Instance.allPlayerScripts.Where((PlayerControllerB p) => p.isPlayerDead).ToList(); if (list.Count > 0) { PlayerControllerB val3 = list[rng.Next(0, list.Count)]; RevivePlayerClientRpc(playerName, ((Object)val3).name); TeleportPlayerToPositionClientRpc(((Object)val3).name, ((Component)playerByNameOrFirstOne).transform.position); } } } [ClientRpc] private void RevivePlayerClientRpc(string? playerName, string? deadPlayerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2524109250u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } bool flag2 = deadPlayerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag2, default(ForPrimitives)); if (flag2) { ((FastBufferWriter)(ref val2)).WriteValueSafe(deadPlayerName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2524109250u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI:RevivePlayerClientRpc"); StartOfRound instance = StartOfRound.Instance; PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(playerName); PlayerControllerB deadPlayer = GetPlayerByNameOrFirstOne(deadPlayerName); int num = ArrayHelpers.IndexOf<PlayerControllerB>(instance.allPlayerScripts, (Predicate<PlayerControllerB>)((PlayerControllerB p) => ((Object)p).name == ((Object)deadPlayer).name)); logger.LogInfo((object)("Client: Trying to revive " + deadPlayer.playerUsername + " with index=" + num)); int num2 = 100; deadPlayer.ResetPlayerBloodObjects(deadPlayer.isPlayerDead); if (deadPlayer.isPlayerDead || deadPlayer.isPlayerControlled) { deadPlayer.isClimbingLadder = false; deadPlayer.inVehicleAnimation = false; deadPlayer.ResetZAndXRotation(); ((Collider)deadPlayer.thisController).enabled = true; deadPlayer.health = num2; deadPlayer.disableLookInput = false; if (deadPlayer.isPlayerDead) { deadPlayer.isPlayerDead = false; deadPlayer.isPlayerControlled = true; deadPlayer.isInElevator = false; deadPlayer.isInHangarShipRoom = false; deadPlayer.isInsideFactory = playerByNameOrFirstOne.isInsideFactory; StartOfRound.Instance.SetPlayerObjectExtrapolate(false); deadPlayer.setPositionOfDeadPlayer = false; ((Behaviour)deadPlayer.helmetLight).enabled = false; deadPlayer.Crouch(false); deadPlayer.criticallyInjured = false; if ((Object)(object)deadPlayer.playerBodyAnimator != (Object)null) { deadPlayer.playerBodyAnimator.SetBool("Limp", false); } deadPlayer.bleedingHeavily = false; deadPlayer.activatingItem = false; deadPlayer.twoHanded = false; deadPlayer.inSpecialInteractAnimation = false; deadPlayer.disableSyncInAnimation = false; deadPlayer.inAnimationWithEnemy = null; deadPlayer.holdingWalkieTalkie = false; deadPlayer.speakingToWalkieTalkie = false; deadPlayer.isSinking = false; deadPlayer.isUnderwater = false; deadPlayer.sinkingValue = 0f; deadPlayer.statusEffectAudio.Stop(); deadPlayer.DisableJetpackControlsLocally(); deadPlayer.health = num2; deadPlayer.mapRadarDotAnimator.SetBool("dead", false); deadPlayer.deadBody = null; if ((Object)(object)deadPlayer == (Object)(object)GameNetworkManager.Instance.localPlayerController) { HUDManager.Instance.gasHelmetAnimator.SetBool("gasEmitting", false); deadPlayer.hasBegunSpectating = false; HUDManager.Instance.RemoveSpectateUI(); HUDManager.Instance.gameOverAnimator.SetTrigger("revive"); deadPlayer.hinderedMultiplier = 1f; deadPlayer.isMovementHindered = 0; deadPlayer.sourcesCausingSinking = 0; HUDManager.Instance.HideHUD(false); } } SoundManager.Instance.earsRingingTimer = 0f; deadPlayer.voiceMuffledByEnemy = false; if ((Object)(object)deadPlayer.currentVoiceChatIngameSettings == (Object)null) { StartOfRound.Instance.RefreshPlayerVoicePlaybackObjects(); } if ((Object)(object)deadPlayer.currentVoiceChatIngameSettings != (Object)null) { if ((Object)(object)deadPlayer.currentVoiceChatIngameSettings.voiceAudio == (Object)null) { deadPlayer.currentVoiceChatIngameSettings.InitializeComponents(); } if ((Object)(object)deadPlayer.currentVoiceChatIngameSettings.voiceAudio != (Object)null) { ((Component)deadPlayer.currentVoiceChatIngameSettings.voiceAudio).GetComponent<OccludeAudio>().overridingLowPass = false; } } } StartOfRound instance2 = StartOfRound.Instance; instance2.livingPlayers++; if ((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)(object)deadPlayer) { deadPlayer.bleedingHeavily = false; deadPlayer.criticallyInjured = false; Animator playerBodyAnimator = deadPlayer.playerBodyAnimator; if (playerBodyAnimator != null) { playerBodyAnimator.SetBool("Limp", false); } deadPlayer.health = num2; HUDManager.Instance.UpdateHealthUI(num2, false); deadPlayer.spectatedPlayerScript = null; ((Behaviour)HUDManager.Instance.audioListenerLowPass).enabled = false; StartOfRound.Instance.SetSpectateCameraToGameOverMode(false, deadPlayer); TimeOfDay.Instance.DisableAllWeather(false); StartOfRound.Instance.UpdatePlayerVoiceEffects(); ((Renderer)deadPlayer.thisPlayerModel).enabled = true; } else { ((Renderer)deadPlayer.thisPlayerModel).enabled = true; ((Renderer)deadPlayer.thisPlayerModelLOD1).enabled = true; ((Renderer)deadPlayer.thisPlayerModelLOD2).enabled = true; } } [ServerRpc(RequireOwnership = false)] private void RandomPlayerIncreaseInsanityServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4239146403u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4239146403u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { RandomPlayerIncreaseInsanityClientRpc(); } } } [ClientRpc] private void RandomPlayerIncreaseInsanityClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3711630494u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3711630494u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::RandomPlayerIncreaseInsanityClientRpc"); if ((Object)(object)StartOfRound.Instance != (Object)null) { PlayerControllerB[] array = (from player in GetActivePlayers() where (!player.isPlayerDead || player.isPlayerControlled) && player.playerSteamId != 0 select player).ToArray(); PlayerControllerB val3 = array[rng.Next(array.Length)]; val3.insanityLevel = val3.maxInsanityLevel; val3.JumpToFearLevel(1.25f, true); val3.movementAudio.PlayOneShot(playerMalusClips[rng.Next(0, playerMalusClips.Count)]); val3.JumpToFearLevel(1.25f, true); logger.LogInfo((object)("Client: Apply max insanity to " + val3.playerUsername)); } } [ServerRpc(RequireOwnership = false)] private void OpenAllDoorsServerRpc(string? entityName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(300688791u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 300688791u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { OpenAllDoorsClientRpc(entityName); } } [ClientRpc] private void OpenAllDoorsClientRpc(string? entityName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3108067035u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3108067035u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::OpenAllDoorsClientRpc"); PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(entityName); List<DoorLock> list = Object.FindObjectsOfType<DoorLock>().ToList(); foreach (DoorLock item in list) { bool flag2 = !item.isLocked || rng.Next(0, 10) < 2; if (!(!item.isDoorOpened && flag2)) { continue; } if (item.isLocked) { logger.LogInfo((object)("Unlocking door id=" + ((NetworkBehaviour)item).NetworkObjectId)); item.isLocked = false; if (Object.op_Implicit((Object)(object)item.doorLockSFX) && Object.op_Implicit((Object)(object)item.unlockSFX)) { item.doorLockSFX.PlayOneShot(item.unlockSFX); } } item.OpenOrCloseDoor(playerByNameOrFirstOne); } } [ServerRpc(RequireOwnership = false)] private void CloseAllDoorsServerRpc(string? entityName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3949831217u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3949831217u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { CloseAllDoorsClientRpc(entityName); } } [ClientRpc] private void CloseAllDoorsClientRpc(string? entityName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(339146472u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 339146472u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::CloseAllDoorsClientRpc"); PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(entityName); List<DoorLock> list = Object.FindObjectsOfType<DoorLock>().ToList(); logger.LogInfo((object)("CloseAllDoors: " + list.Count)); foreach (DoorLock item in list) { if (!item.isDoorOpened) { continue; } item.OpenOrCloseDoor(playerByNameOrFirstOne); if (rng.Next(0, 10) < 2) { logger.LogInfo((object)("Locking door id=" + ((NetworkBehaviour)item).NetworkObjectId)); if (Object.op_Implicit((Object)(object)item.doorLockSFX) && Object.op_Implicit((Object)(object)item.unlockSFX)) { item.doorLockSFX.PlayOneShot(item.unlockSFX); } item.isLocked = true; } } } [ServerRpc(RequireOwnership = false)] private void ExplodeLandminesServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1127667995u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1127667995u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::ExplodeLandminesServerRpc"); List<Landmine> list = (from mine in Object.FindObjectsOfType<Landmine>() where !mine.hasExploded select mine).ToList(); logger.LogInfo((object)(list.Count + " landmines found")); foreach (Landmine item in list) { logger.LogInfo((object)("Exploding landmine id=" + ((NetworkBehaviour)item).NetworkObjectId)); item.ExplodeMineServerRpc(); } } [ServerRpc(RequireOwnership = false)] private void SpawnScrapServerRpc(string? entityName, int amount) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1951406866u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } BytePacker.WriteValueBitPacked(val2, amount); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1951406866u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::SpawnScrapServerRpc"); SpawnScrap(entityName, null, amount); } } [ServerRpc(RequireOwnership = false)] private void SpawnScrapServerRpc(string? entityName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(624116383u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 624116383u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::SpawnScrapServerRpc"); SpawnScrap(entityName, null, 1); } } [ServerRpc(RequireOwnership = false)] private void SpawnSpecificScrapServerRpc(string? entityName, int amount) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_00c7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3720511101u, val, (RpcDelivery)0); bool flag = entityName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(entityName, false); } BytePacker.WriteValueBitPacked(val2, amount); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3720511101u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::SpawnSpecificScrapServerRpc"); List<Item> list = StartOfRound.Instance.allItemsList.itemsList.Where((Item item) => item.isScrap && item.maxValue > 150).ToList(); SpawnScrap(entityName, list[rng.Next(0, list.Count - 1)], amount); } } private void SpawnScrap(string? entityName, Item? specificScrap, int amount) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_00d2: Unknown result type (might be due to invalid IL or missing references) List<Item> list = StartOfRound.Instance.allItemsList.itemsList.Where((Item item) => item.isScrap).ToList(); int count = list.Count; PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(entityName); for (int i = 0; i < amount; i++) { int index = rng.Next(0, count); Item val = specificScrap ?? list[index]; float num = NextFloat(rng, 0f, MathF.PI * 2f); Vector3 val2 = ((Component)playerByNameOrFirstOne).transform.position + new Vector3(Mathf.Cos(num), 0f, Mathf.Sin(num)) * NextFloat(rng, 1f, 1.5f); GameObject val3 = Object.Instantiate<GameObject>(val.spawnPrefab, val2, Quaternion.identity); int num2 = rng.Next(val.minValue, val.maxValue); float weight = val.weight; logger.LogInfo((object)("Spawning item=" + ((Object)val).name + ", value=" + num2 + ", weight=" + weight)); ScanNodeProperties component = val3.GetComponent<ScanNodeProperties>(); if ((Object)(object)component == (Object)null) { logger.LogInfo((object)("No scan found, creating with scrapValue=" + num2 + " and subText=" + $"\"Value: ${num2}\"")); component = val3.AddComponent<ScanNodeProperties>(); component.scrapValue = num2; component.subText = "Value: $" + num2; component.headerText = ((Object)val).name; } val3.GetComponent<GrabbableObject>().fallTime = 0f; val3.GetComponent<GrabbableObject>().scrapValue = num2; val3.GetComponent<GrabbableObject>().itemProperties.weight = weight; val3.GetComponent<GrabbableObject>().itemProperties.creditsWorth = num2; val3.GetComponent<GrabbableObject>().SetScrapValue(num2); val3.GetComponent<NetworkObject>().Spawn(false); } } [ServerRpc(RequireOwnership = false)] private void SpawnEnemyServerRpc(int amount) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2461282521u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, amount); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2461282521u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)("ButtonAI::SpawnEnemyServerRpc, amount=" + amount)); List<SpawnableEnemyWithRarity> enemies = StartOfRound.Instance.currentLevel.Enemies; int count = enemies.Count; for (int i = 0; i < amount; i++) { int index = rng.Next(0, count); SpawnableEnemyWithRarity val3 = enemies[index]; logger.LogInfo((object)("Spawning enemy=" + ((Object)val3.enemyType).name)); GameObject val4 = Object.Instantiate<GameObject>(val3.enemyType.enemyPrefab, ((Component)nearestVent).transform.position, Quaternion.identity); val4.GetComponent<NetworkObject>().Spawn(true); } } } [ServerRpc(RequireOwnership = false)] private void BerserkTurretServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(965486784u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 965486784u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { BerserkTurretClientRpc(); } } } [ClientRpc] private void BerserkTurretClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1316678043u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1316678043u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::BerserkTurretClientRpc"); List<Turret> list = Object.FindObjectsOfType<Turret>().ToList(); logger.LogInfo((object)(list.Count + " turrets found")); foreach (Turret item in list) { item.SwitchTurretMode(3); } } [ServerRpc(RequireOwnership = false)] private void TeleportPlayerToRandomPositionServerRpc(string? playerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(767954982u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 767954982u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { TeleportPlayerToRandomPositionClientRpc(playerName); } } [ClientRpc] private void TeleportPlayerToRandomPositionClientRpc(string? playerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(333232369u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 333232369u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::TeleportPlayerToRandomPositionClientRpc"); PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(playerName); int num = rng.Next(0, RoundManager.Instance.insideAINodes.Length); Vector3 position = RoundManager.Instance.insideAINodes[num].transform.position; if (Object.op_Implicit((Object)(object)Object.FindObjectOfType<AudioReverbPresets>())) { Object.FindObjectOfType<AudioReverbPresets>().audioPresets[2].ChangeAudioReverbForPlayer(playerByNameOrFirstOne); } playerByNameOrFirstOne.isInElevator = false; playerByNameOrFirstOne.isInHangarShipRoom = false; playerByNameOrFirstOne.isInsideFactory = true; playerByNameOrFirstOne.averageVelocity = 0f; playerByNameOrFirstOne.velocityLastFrame = Vector3.zero; playerByNameOrFirstOne.TeleportPlayer(position, false, 0f, false, true); playerByNameOrFirstOne.beamOutParticle.Play(); playerByNameOrFirstOne.movementAudio.PlayOneShot(teleporterBeamClip); } } [ClientRpc] private void TeleportPlayerToPositionClientRpc(string? playerName, Vector3 pos) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1750749496u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((FastBufferWriter)(ref val2)).WriteValueSafe(ref pos); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1750749496u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::TeleportPlayerToPositionClientRpc"); PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(playerName); if (Object.op_Implicit((Object)(object)Object.FindObjectOfType<AudioReverbPresets>())) { Object.FindObjectOfType<AudioReverbPresets>().audioPresets[2].ChangeAudioReverbForPlayer(playerByNameOrFirstOne); } playerByNameOrFirstOne.isInElevator = false; playerByNameOrFirstOne.isInHangarShipRoom = false; playerByNameOrFirstOne.isInsideFactory = true; playerByNameOrFirstOne.averageVelocity = 0f; playerByNameOrFirstOne.velocityLastFrame = Vector3.zero; playerByNameOrFirstOne.TeleportPlayer(pos, false, 0f, false, true); playerByNameOrFirstOne.beamOutParticle.Play(); ShipTeleporter val3 = Object.FindObjectOfType<ShipTeleporter>(); if (Object.op_Implicit((Object)(object)val3)) { playerByNameOrFirstOne.movementAudio.PlayOneShot(val3.teleporterBeamUpSFX); } } } [ServerRpc(RequireOwnership = false)] private void SwitchPlayersPositionServerRpc(string? playerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(151986478u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 151986478u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SwitchPlayersPositionClientRpc(playerName); } } [ClientRpc] private void SwitchPlayersPositionClientRpc(string? playerName) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Invalid comparison between Unknown and I4 //IL_005f: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1372260930u, val, (RpcDelivery)0); bool flag = playerName != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(playerName, false); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1372260930u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } logger.LogInfo((object)"ButtonAI::SwitchPlayerPositionClientRpc"); List<PlayerControllerB> list = (from player in GetActivePlayers() where !player.isPlayerDead where player.isPlayerControlled select player).ToList(); if (list.Count >= 2) { PlayerControllerB playerByNameOrFirstOne = GetPlayerByNameOrFirstOne(playerName); PlayerControllerB val3; do { val3 = list[rng.Next(list.Count)]; } while (((NetworkBehaviour)val3).NetworkObjectId == ((NetworkBehaviour)playerByNameOrFirstOne).NetworkObjectId); logger.LogInfo((object)("Switching positions of " + playerByNameOrFirstOne.playerUsername + " and " + val3.playerUsername)); if (Object.op_Implicit((Object)(object)Object.FindObjectOfType<AudioReverbPresets>())) { Object.FindObjectOfType<AudioReverbPresets>().audioPresets[2].ChangeAudioReverbForPlayer(playerByNameOrFirstOne); Object.FindObjectOfType<AudioReverbPresets>().audioPresets[2].ChangeAudioReverbForPlayer(val3); } Vector3 val4 = default(Vector3); ((Vector3)(ref val4))..ctor(((Component)playerByNameOrFirstOne).transform.position.x, ((Component)playerByNameOrFirstOne).transform.position.y, ((Component)playerByNameOrFirstOne).transform.position.z); Vector3 val5 = default(Vector3); ((Vector3)(ref val5))..ctor(((Component)val3).transform.position.x, ((Component)val3).transform.position.y, ((Component)val3).transform.position.z); playerByNameOrFirstOne.isInElevator = false; playerByNameOrFirstOne.isInHangarShipRoom = false; playerByNameOrFirstOne.isInsideFactory = true; playerByNameOrFirstOne.averageVelocity = 0f; playerByNameOrFirstOne.velocityLastFrame = Vector3.zero; playerByNameOrFirstOne.TeleportPlayer(val5, false, 0f, false, true); playerByNameOrFirstOne.beamOutParticle.Play(); val3.isInElevator = false; val3.isInHangarShipRoom = false; val3.isInsideFactory = true; val3.averageVelocity = 0f; val3.velocityLastFrame = Vector3.zero; val3.TeleportPlayer(val4, false, 0f, false, true); val3.beamOutParticle.Play(); ShipTeleporter val6 = Object.FindObjectOfType<ShipTeleporter>(); if (Object.op_Implicit((Object)(object)val6)) { playerByNameOrFirstOne.movementAudio.PlayOneShot(val6.teleporterBeamUpSFX); val3.movementAudio.PlayOneShot(val6.teleporterBeamUpSFX); } } } [ServerRpc(RequireOwnership = false)] public void StartMeteorEventServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1407226594u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1407226594u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::StartMeteorEventServerRpc"); TimeOfDay instance = TimeOfDay.Instance; instance.meteorShowerAtTime = -1f; instance.MeteorWeather.SetStartMeteorShower(); } } } [ServerRpc(RequireOwnership = false)] public void LeaveEarlyServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: 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_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3394236447u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3394236447u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { logger.LogInfo((object)"ButtonAI::LeaveEarlyServerRpc"); TimeOfDay instance = TimeOfDay.Instance; instance.votedShipToLeaveEarlyThisRound = true; instance.SetShipLeaveEarlyServerRpc(); } } } public unsafe void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) ((BufferSerializer<int>*)(&serializer))->SerializeValue<int>(ref id, default(ForPrimitives)); } private static PlayerControllerB GetPlayerByNameOrFirstOne(string? entityName) { string entityName2 = entityName; List<PlayerControllerB> activePlayers = GetActivePlayers(); return ((IEnumerable<PlayerControllerB>)activePlayers).FirstOrDefault((Func<PlayerControllerB, bool>)((PlayerControllerB x) => ((Object)x).name == entityName2)) ?? StartOfRound.Instance.allPlayerScripts[0]; } private static List<PlayerControllerB> GetActivePlayers() { List<PlayerControllerB> list = new List<PlayerControllerB>(); list.AddRange(StartOfRound.Instance.allPlayerScripts.Where((PlayerControllerB player) => ((Behaviour)player).isActiveAndEnabled && player.playerSteamId != 0).ToList()); return list; } private static float NextFloat(Random random, float rangeMin, float rangeMax) { double num = (double)rangeMin - (double)rangeMax; double num2 = random.NextDouble(); double num3 = num2 * num + (double)rangeMin; return (float)num3; } protected override void __initializeVariables() { if (isLock == null) { throw new Exception("MysteryButtonAI.isLock cannot be null. All NetworkVariableBase instances must be initialized."); } ((NetworkVariableBase)isLock).Initialize((NetworkBehaviour)(object)this); ((NetworkBehaviour)this).__nameNetworkVariable((NetworkVariableBase)(object)isLock, "isLock"); ((NetworkBehaviour)this).NetworkVariableFields.Add((NetworkVariableBase)(object)isLock); ((EnemyAI)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_MysteryButtonAI() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Expected O, but got Unknown //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Expected O, but got Unknown //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Expected O, but got Unknown //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Expected O, but got Unknown //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Expected O, but got Unknown //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Expected O, but got Unknown //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Expected O, but got Unknown //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Expected O, but got Unknown //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Expected O, but got Unknown //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Expected O, but got Unknown //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(821451247u, new RpcReceiveHandler(__rpc_handler_821451247)); NetworkManager.__rpc_func_table.Add(2685224375u, new RpcReceiveHandler(__rpc_handler_2685224375)); NetworkManager.__rpc_func_table.Add(4021835661u, new RpcReceiveHandler(__rpc_handler_4021835661)); NetworkManager.__rpc_func_table.Add(957719844u, new RpcReceiveHandler(__rpc_handler_957719844)); NetworkManager.__rpc_func_table.Add(3286299763u, new RpcReceiveHandler(__rpc_handler_3286299763)); NetworkManager.__rpc_func_table.Add(3006486190u, new RpcReceiveHandler(__rpc_handler_3006486190)); NetworkManager.__rpc_func_table.Add(2524109250u, new RpcReceiveHandler(__rpc_handler_2524109250)); NetworkManager.__rpc_func_table.Add(4239146403u, new RpcReceiveHandler(__rpc_handler_4239146403)); NetworkManager.__rpc_func_table.Add(3711630494u, new RpcReceiveHandler(__rpc_handler_3711630494)); NetworkManager.__rpc_func_table.Add(300688791u, new RpcReceiveHandler(__rpc_handler_300688791)); NetworkManager.__rpc_func_table.Add(3108067035u, new RpcReceiveHandler(__rpc_handler_3108067035)); NetworkManager.__rpc_func_table.Add(3949831217u, new RpcReceiveHandler(__rpc_handler_3949831217)); NetworkManager.__rpc_func_table.Add(339146472u, new RpcReceiveHandler(__rpc_handler_339146472)); NetworkManager.__rpc_func_table.Add(1127667995u, new RpcReceiveHandler(__rpc_handler_1127667995)); NetworkManager.__rpc_func_table.Add(1951406866u, new RpcReceiveHandler(__rpc_handler_1951406866)); NetworkManager.__rpc_func_table.Add(624116383u, new RpcReceiveHandler(__rpc_handler_624116383)); NetworkManager.__rpc_func_table.Add(3720511101u, new RpcReceiveHandler(__rpc_handler_3720511101)); NetworkManager.__rpc_func_table.Add(2461282521u, new RpcReceiveHandler(__rpc_handler_2461282521)); NetworkManager.__rpc_func_table.Add(965486784u, new RpcReceiveHandler(__rpc_handler_965486784)); NetworkManager.__rpc_func_table.Add(1316678043u, new RpcReceiveHandler(__rpc_handler_1316678043)); NetworkManager.__rpc_func_table.Add(767954982u, new RpcReceiveHandler(__rpc_handler_767954982)); NetworkManager.__rpc_func_table.Add(333232369u, new RpcReceiveHandler(__rpc_handler_333232369)); NetworkManager.__rpc_func_table.Add(1750749496u, new RpcReceiveHandler(__rpc_handler_1750749496)); NetworkManager.__rpc_func_table.Add(151986478u, new RpcReceiveHandler(__rpc_handler_151986478)); NetworkManager.__rpc_func_table.Add(1372260930u, new RpcReceiveHandler(__rpc_handler_1372260930)); NetworkManager.__rpc_func_table.Add(1407226594u, new RpcReceiveHandler(__rpc_handler_1407226594)); NetworkManager.__rpc_func_table.Add(3394236447u, new RpcReceiveHandler(__rpc_handler_3394236447)); } private static void __rpc_handler_821451247(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((MysteryButtonAI)(object)target).SetLockServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2685224375(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool isBonus = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isBonus, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((MysteryButtonAI)(object)target).KillButtonServerRpc(isBonus); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4021835661(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool isBonus = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref isBonus, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((MysteryButtonAI)(object)target).KillButtonClientRpc(isBonus); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_957719844(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((MysteryButtonAI)(object)target).PlayerDrunkServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3286299763(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((MysteryButtonAI)(object)target).PlayerDrunkClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3006486190(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string playerName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerName, false); } target.__rpc_exec_stage = (__RpcExecStage)1; ((MysteryButtonAI)(object)target).RevivePlayerServerRpc(playerName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2524109250(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0067: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives)); string playerName = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref playerName, false); } bool flag2 = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag2, default(ForPrimitives)); string deadPlayerName = null; if (flag2) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref deadPlayerName, false); } target.__rpc_exec_stage = (__RpcExecStage)2; ((MysteryButtonAI)(object)target).RevivePlayerClientRpc(playerName, deadPlayerName); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4239146403(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)1; ((MysteryButtonAI)(object)target).RandomPlayerIncreaseInsanityServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3711630494(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((MysteryButtonAI)(object)target).RandomPla