Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of SCPFoundationDungeonUpdated v4.5.0
BepInEx/plugins/SCPCBDunGen/SCPCBDunGen.dll
Decompiled a month ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; 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.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LethalLevelLoader; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using SCPCBDunGen.NetcodePatcher; using SCPCBDunGen.Patches; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("SCPCBDunGen")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("4.5.0.0")] [assembly: AssemblyInformationalVersion("4.5.0+ed29ccdcac4bb0f63ee8806ed9e8336784a79957")] [assembly: AssemblyProduct("SCPCBDunGen")] [assembly: AssemblyTitle("SCPCBDunGen")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("4.5.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: NetcodePatchedAssembly] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [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 SCPCBDunGen { public class SCP914Converter : NetworkBehaviour { public enum SCP914Setting { ROUGH, COARSE, ONETOONE, FINE, VERYFINE } [CompilerGenerated] private sealed class <>c__DisplayClass47_0 { public float fStartTime; public NetworkObjectReference netObjRefMasked; public NetworkObject netObjMasked; public NetworkBehaviourReference netBehaviourRefPlayer; public NetworkBehaviour netBehaviourPlayer; public PlayerControllerB playerController; internal bool <ConvertPlayerMaskedWaitForSpawn>b__0() { if (!(Time.realtimeSinceStartup - fStartTime > 20f)) { return ((NetworkObjectReference)(ref netObjRefMasked)).TryGet(ref netObjMasked, (NetworkManager)null); } return true; } internal bool <ConvertPlayerMaskedWaitForSpawn>b__1() { if (!(Time.realtimeSinceStartup - fStartTime > 20f)) { return ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref netBehaviourPlayer, (NetworkManager)null); } return true; } internal bool <ConvertPlayerMaskedWaitForSpawn>b__2() { if (!(Time.realtimeSinceStartup - fStartTime > 20f)) { return (Object)(object)playerController.deadBody != (Object)null; } return true; } } [CompilerGenerated] private sealed class <ConversionProcess>d__38 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public SCP914Converter <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ConversionProcess>d__38(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Expected O, but got Unknown int num = <>1__state; SCP914Converter sCP914Converter = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; sCP914Converter.RefineAudioSrc.Play(); <>2__current = (object)new WaitForSeconds(7f); <>1__state = 1; return true; case 1: { <>1__state = -1; if ((Object)(object)sCP914Converter.roundManager == (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Getting round manager"); sCP914Converter.roundManager = Object.FindObjectOfType<RoundManager>(); if ((Object)(object)sCP914Converter.roundManager == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to find round manager."); return false; } } if ((Object)(object)sCP914Converter.ScrapTransform == (Object)null) { GameObject obj = GameObject.FindGameObjectWithTag("MapPropsContainer"); sCP914Converter.ScrapTransform = ((obj != null) ? obj.transform : null); if ((Object)(object)sCP914Converter.ScrapTransform == (Object)null) { SCPCBDunGen.Logger.LogError((object)"SCPCB Failed to find props container."); return false; } } List<NetworkObjectReference> list = new List<NetworkObjectReference>(); List<int> list2 = new List<int>(); bool bChargeBattery = sCP914Converter.iCurrentState > 1; BoxCollider inputStore = sCP914Converter.InputStore; if ((Object)(object)inputStore == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get input store collider."); return false; } Collider[] array = Physics.OverlapBox(inputStore.center + ((Component)inputStore).gameObject.transform.position, inputStore.size / 2f); SCPCBDunGen.Logger.LogInfo((object)$"Contained item count: {array.Length}"); Collider[] array2 = array; foreach (Collider val in array2) { GameObject gameObject = ((Component)val).gameObject; SCPCBDunGen.Logger.LogInfo((object)("Converting " + ((Object)gameObject).name)); GrabbableObject component = gameObject.GetComponent<GrabbableObject>(); if ((Object)(object)component != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Converting item."); sCP914Converter.ConvertItem(list, list2, component); continue; } PlayerControllerB component2 = gameObject.GetComponent<PlayerControllerB>(); if ((Object)(object)component2 != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Converting player."); sCP914Converter.ConvertPlayer(component2); continue; } EnemyAI componentInParent = gameObject.GetComponentInParent<EnemyAI>(); if ((Object)(object)componentInParent != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Converting enemy."); sCP914Converter.ConvertEnemy(list, list2, componentInParent); } else { SCPCBDunGen.Logger.LogWarning((object)("Unidentified object: " + ((Object)gameObject).name + ". Not converting.")); } } SCPCBDunGen.Logger.LogInfo((object)"Finished spawning scrap, syncing with clients"); sCP914Converter.SpawnItemsClientRpc(list.ToArray(), list2.ToArray(), bChargeBattery); <>2__current = (object)new WaitForSeconds(7f); <>1__state = 2; return true; } case 2: <>1__state = -1; sCP914Converter.RefineFinishClientRpc(); sCP914Converter.bActive = false; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <ConvertPlayerMaskedWaitForSpawn>d__47 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public NetworkObjectReference netObjRefMasked; public NetworkBehaviourReference netBehaviourRefPlayer; private <>c__DisplayClass47_0 <>8__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ConvertPlayerMaskedWaitForSpawn>d__47(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>8__1 = null; <>1__state = -2; } private bool MoveNext() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>8__1 = new <>c__DisplayClass47_0(); <>8__1.netObjRefMasked = netObjRefMasked; <>8__1.netBehaviourRefPlayer = netBehaviourRefPlayer; <>8__1.netObjMasked = null; <>8__1.netBehaviourPlayer = null; <>8__1.fStartTime = Time.realtimeSinceStartup; <>2__current = (object)new WaitUntil((Func<bool>)(() => Time.realtimeSinceStartup - <>8__1.fStartTime > 20f || ((NetworkObjectReference)(ref <>8__1.netObjRefMasked)).TryGet(ref <>8__1.netObjMasked, (NetworkManager)null))); <>1__state = 1; return true; case 1: <>1__state = -1; <>2__current = (object)new WaitUntil((Func<bool>)(() => Time.realtimeSinceStartup - <>8__1.fStartTime > 20f || ((NetworkBehaviourReference)(ref <>8__1.netBehaviourRefPlayer)).TryGet(ref <>8__1.netBehaviourPlayer, (NetworkManager)null))); <>1__state = 2; return true; case 2: <>1__state = -1; <>8__1.playerController = (PlayerControllerB)<>8__1.netBehaviourPlayer; if ((Object)(object)<>8__1.playerController.deadBody == (Object)null) { <>2__current = (object)new WaitUntil((Func<bool>)(() => Time.realtimeSinceStartup - <>8__1.fStartTime > 20f || (Object)(object)<>8__1.playerController.deadBody != (Object)null)); <>1__state = 3; return true; } break; case 3: <>1__state = -1; break; } if ((Object)(object)<>8__1.playerController.deadBody != (Object)null) { <>8__1.playerController.deadBody.DeactivateBody(false); if ((Object)(object)<>8__1.netObjMasked != (Object)null) { MaskedPlayerEnemy component = ((Component)<>8__1.netObjMasked).GetComponent<MaskedPlayerEnemy>(); component.mimickingPlayer = <>8__1.playerController; component.SetSuit(<>8__1.playerController.currentSuitID); ((EnemyAI)component).SetEnemyOutside(false); <>8__1.playerController.redirectToEnemy = (EnemyAI)(object)component; } } return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public BoxCollider InputStore; public Collider colliderOutput; public InteractTrigger SettingKnobTrigger; public GameObject SettingKnobPivot; public AudioSource SettingKnobSoundSrc; public InteractTrigger ActivateTrigger; public AudioSource ActivateAudioSrc; public AudioSource RefineAudioSrc; public Animator DoorIn; public Animator DoorOut; private readonly (SCP914Setting, float)[] SCP914SettingRotations = new(SCP914Setting, float)[5] { (SCP914Setting.ROUGH, 90f), (SCP914Setting.COARSE, 45f), (SCP914Setting.ONETOONE, 0f), (SCP914Setting.FINE, -45f), (SCP914Setting.VERYFINE, -90f) }; private Dictionary<Item, List<Item>>[] arItemMappings = new Dictionary<Item, List<Item>>[5] { new Dictionary<Item, List<Item>>(), new Dictionary<Item, List<Item>>(), new Dictionary<Item, List<Item>>(), new Dictionary<Item, List<Item>>(), new Dictionary<Item, List<Item>>() }; private Dictionary<EnemyType, List<EnemyType>>[] arEnemyMappings = new Dictionary<EnemyType, List<EnemyType>>[5] { new Dictionary<EnemyType, List<EnemyType>>(), new Dictionary<EnemyType, List<EnemyType>>(), new Dictionary<EnemyType, List<EnemyType>>(), new Dictionary<EnemyType, List<EnemyType>>(), new Dictionary<EnemyType, List<EnemyType>>() }; private Dictionary<Item, List<EnemyType>>[] arItemEnemyMappings = new Dictionary<Item, List<EnemyType>>[5] { new Dictionary<Item, List<EnemyType>>(), new Dictionary<Item, List<EnemyType>>(), new Dictionary<Item, List<EnemyType>>(), new Dictionary<Item, List<EnemyType>>(), new Dictionary<Item, List<EnemyType>>() }; private Dictionary<EnemyType, List<Item>>[] arEnemyItemMappings = new Dictionary<EnemyType, List<Item>>[5] { new Dictionary<EnemyType, List<Item>>(), new Dictionary<EnemyType, List<Item>>(), new Dictionary<EnemyType, List<Item>>(), new Dictionary<EnemyType, List<Item>>(), new Dictionary<EnemyType, List<Item>>() }; private int iCurrentState; private bool bActive; private Transform ScrapTransform; private RoundManager roundManager; private StartOfRound StartOfRound; private EnemyType MaskedType; public void AddConversion(SCP914Setting setting, Item itemInput, List<Item> lItemOutputs) { Dictionary<Item, List<Item>> dictionary = arItemMappings[(int)setting]; if (dictionary.TryGetValue(itemInput, out var value)) { value.AddRange(lItemOutputs); } else { arItemMappings[(int)setting].Add(itemInput, lItemOutputs); } } public void AddConversion(SCP914Setting setting, EnemyType enemyInput, List<EnemyType> lEnemyOutputs) { Dictionary<EnemyType, List<EnemyType>> dictionary = arEnemyMappings[(int)setting]; if (dictionary.TryGetValue(enemyInput, out var value)) { value.AddRange(lEnemyOutputs); } else { arEnemyMappings[(int)setting].Add(enemyInput, lEnemyOutputs); } } public void AddConversion(SCP914Setting setting, Item itemInput, List<EnemyType> lEnemyOutputs) { Dictionary<Item, List<EnemyType>> dictionary = arItemEnemyMappings[(int)setting]; if (dictionary.TryGetValue(itemInput, out var value)) { value.AddRange(lEnemyOutputs); } else { arItemEnemyMappings[(int)setting].Add(itemInput, lEnemyOutputs); } } public void AddConversion(SCP914Setting setting, EnemyType enemyInput, List<Item> lItemOutputs) { Dictionary<EnemyType, List<Item>> dictionary = arEnemyItemMappings[(int)setting]; if (dictionary.TryGetValue(enemyInput, out var value)) { value.AddRange(lItemOutputs); } else { arEnemyItemMappings[(int)setting].Add(enemyInput, lItemOutputs); } } private Dictionary<Item, List<Item>> GetItemMapping() { return arItemMappings[iCurrentState]; } private Dictionary<EnemyType, List<EnemyType>> GetEnemyMapping() { return arEnemyMappings[iCurrentState]; } private Dictionary<Item, List<EnemyType>> GetItemEnemyMapping() { return arItemEnemyMappings[iCurrentState]; } private Dictionary<EnemyType, List<Item>> GetEnemyItemMapping() { return arEnemyItemMappings[iCurrentState]; } private Vector3 GetRandomNavMeshPositionInCollider(Collider collider) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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) Bounds bounds = collider.bounds; Vector3 center = ((Bounds)(ref bounds)).center; bounds = collider.bounds; float x = ((Bounds)(ref bounds)).extents.x; bounds = collider.bounds; float num = Math.Min(x, ((Bounds)(ref bounds)).extents.z); center.x += Random.Range(0f - num, num); center.z += Random.Range(0f - num, num); ref float y = ref center.y; float num2 = y; bounds = collider.bounds; y = num2 - ((Bounds)(ref bounds)).extents.y / 2f; NavMeshHit val = default(NavMeshHit); if (NavMesh.SamplePosition(center, ref val, 5f, -1)) { return ((NavMeshHit)(ref val)).position; } return center; } private Vector3 GetRandomPositionInCollider(Collider collider) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) Bounds bounds = collider.bounds; Vector3 center = ((Bounds)(ref bounds)).center; bounds = collider.bounds; float x = ((Bounds)(ref bounds)).extents.x; bounds = collider.bounds; float num = Math.Min(x, ((Bounds)(ref bounds)).extents.z); center.x += Random.Range(0f - num, num); center.z += Random.Range(0f - num, num); return center; } [ServerRpc(RequireOwnership = false)] public void TurnStateServerRpc() { //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) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2627837757u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2627837757u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; int iNewState = (iCurrentState + 1) % 5; TurnStateClientRpc(iNewState); } } } [ClientRpc] public void TurnStateClientRpc(int iNewState) { //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_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(301590527u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, iNewState); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 301590527u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; iCurrentState = iNewState; Quaternion rotation = SettingKnobPivot.transform.rotation; Vector3 eulerAngles = ((Quaternion)(ref rotation)).eulerAngles; eulerAngles.z = SCP914SettingRotations[iCurrentState].Item2; SettingKnobPivot.transform.rotation = Quaternion.Euler(eulerAngles); SettingKnobSoundSrc.Play(); } } } [ServerRpc(RequireOwnership = false)] public void ActivateServerRpc() { //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) //IL_00c1: 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)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1051910848u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1051910848u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; if (!bActive) { bActive = true; ActivateClientRpc(); ((MonoBehaviour)this).StartCoroutine(ConversionProcess()); } } } [ClientRpc] public void ActivateClientRpc() { //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) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3833341719u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3833341719u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ActivateTrigger.interactable = false; SettingKnobTrigger.interactable = false; ActivateAudioSrc.Play(); DoorIn.SetBoolString("open", false); DoorOut.SetBoolString("open", false); } } } [ClientRpc] public void RefineFinishClientRpc() { //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) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4143732333u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4143732333u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ActivateTrigger.interactable = true; SettingKnobTrigger.interactable = true; DoorIn.SetBoolString("open", true); DoorOut.SetBoolString("open", true); } } } [ClientRpc] public void SpawnItemsClientRpc(NetworkObjectReference[] arNetworkObjectReferences, int[] arScrapValues, bool bChargeBattery) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: 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_0172: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4044311993u, val, (RpcDelivery)0); bool flag = arNetworkObjectReferences != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(arNetworkObjectReferences, default(ForNetworkSerializable)); } bool flag2 = arScrapValues != null; ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag2, default(ForPrimitives)); if (flag2) { ((FastBufferWriter)(ref val2)).WriteValueSafe<int>(arScrapValues, default(ForPrimitives)); } ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref bChargeBattery, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4044311993u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val3 = default(NetworkObject); for (int i = 0; i < arNetworkObjectReferences.Length; i++) { SCPCBDunGen.Logger.LogInfo((object)$"Item conversion scrap value {i}: {arScrapValues[i]}"); if (((NetworkObjectReference)(ref arNetworkObjectReferences[i])).TryGet(ref val3, (NetworkManager)null)) { GrabbableObject component = ((Component)val3).GetComponent<GrabbableObject>(); if (component.itemProperties.isScrap) { component.SetScrapValue(arScrapValues[i]); } if (component.itemProperties.requiresBattery) { component.insertedBattery.charge = (bChargeBattery ? 1f : 0f); } } } } [IteratorStateMachine(typeof(<ConversionProcess>d__38))] private IEnumerator ConversionProcess() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ConversionProcess>d__38(0) { <>4__this = this }; } private void ConvertItemToItem(List<NetworkObjectReference> lNetworkObjectReferences, List<int> lScrapValues, GrabbableObject grabbable) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) Vector3 randomPositionInCollider = GetRandomPositionInCollider(colliderOutput); GameObject val = null; NetworkObject val2 = null; GrabbableObject val3 = null; if (GetItemMapping().TryGetValue(grabbable.itemProperties, out var value)) { SCPCBDunGen.Logger.LogInfo((object)"Mapping found"); Item val4 = value[roundManager.AnomalyRandom.Next(value.Count)]; if ((Object)(object)val4 != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Conversion found"); val = Object.Instantiate<GameObject>(val4.spawnPrefab, randomPositionInCollider, Quaternion.identity, ScrapTransform); val2 = val.GetComponent<NetworkObject>(); val3 = val.GetComponent<GrabbableObject>(); } } else { SCPCBDunGen.Logger.LogInfo((object)"No conversion, making new item copy with new scrap value"); val = Object.Instantiate<GameObject>(grabbable.itemProperties.spawnPrefab, randomPositionInCollider, Quaternion.identity, ScrapTransform); val2 = val.GetComponent<NetworkObject>(); val3 = val.GetComponent<GrabbableObject>(); } SCPCBDunGen.Logger.LogInfo((object)"Preprocessing done"); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Conversion was null, item is intended to be destroyed in process."); return; } Item itemProperties = val3.itemProperties; if (itemProperties.isScrap) { SCPCBDunGen.Logger.LogInfo((object)"Item is scrap or null, generating a copy with new value"); GrabbableObject component = val.GetComponent<GrabbableObject>(); int num = (int)((float)roundManager.AnomalyRandom.Next(itemProperties.minValue, itemProperties.maxValue) * roundManager.scrapValueMultiplier); component.SetScrapValue(num); SCPCBDunGen.Logger.LogInfo((object)$"new scrap value: {num}"); lScrapValues.Add(num); } else { SCPCBDunGen.Logger.LogInfo((object)"Item is not scrap, adding empty scrap value"); lScrapValues.Add(0); } val2.Spawn(true); lNetworkObjectReferences.Add(NetworkObjectReference.op_Implicit(val2)); } private void ConvertItemToEnemy(GrabbableObject grabbable, EnemyType enemyType) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) Vector3 randomNavMeshPositionInCollider = GetRandomNavMeshPositionInCollider(colliderOutput); roundManager.SpawnEnemyGameObject(randomNavMeshPositionInCollider, 0f, -1, enemyType); } private void ConvertItem(List<NetworkObjectReference> lNetworkObjectReferences, List<int> lScrapValues, GrabbableObject grabbable) { if (grabbable.isHeld) { return; } SCPCBDunGen.Logger.LogInfo((object)("Found grabbable item " + ((Object)grabbable.itemProperties).name)); Dictionary<Item, List<Item>> itemMapping = GetItemMapping(); Dictionary<Item, List<EnemyType>> itemEnemyMapping = GetItemEnemyMapping(); if (itemEnemyMapping.TryGetValue(grabbable.itemProperties, out var value)) { if (roundManager.AnomalyRandom.Next(2) == 0 && itemMapping.ContainsKey(grabbable.itemProperties)) { ConvertItemToItem(lNetworkObjectReferences, lScrapValues, grabbable); } else { ConvertItemToEnemy(grabbable, value[roundManager.AnomalyRandom.Next(value.Count)]); } } else { ConvertItemToItem(lNetworkObjectReferences, lScrapValues, grabbable); } Object.Destroy((Object)(object)((Component)grabbable).gameObject); } [ClientRpc] private void ConvertPlayerTeleportClientRpc(NetworkBehaviourReference netBehaviourRefPlayer, Vector3 vPosition) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_011c: 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)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3018499267u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref vPosition); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3018499267u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val4 = (PlayerControllerB)val3; val4.TeleportPlayer(vPosition, false, 0f, false, true); } } [ClientRpc] private void ConvertPlayerKillClientRpc(NetworkBehaviourReference netBehaviourRefPlayer) { //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) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011f: 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)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1252059581u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1252059581u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val4 = (PlayerControllerB)val3; val4.KillPlayer(Vector3.zero, true, (CauseOfDeath)6, 0, default(Vector3), false); } } [ClientRpc] private void ConvertPlayerAlterHealthClientRpc(NetworkBehaviourReference netBehaviourRefPlayer, int iHealthDelta) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(527346026u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, iHealthDelta); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 527346026u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val4 = (PlayerControllerB)val3; val4.DamagePlayer(iHealthDelta, true, true, (CauseOfDeath)8, 0, false, default(Vector3)); } } [ClientRpc] private void ConvertPlayerRandomSkinClientRpc(NetworkBehaviourReference netBehaviourRefPlayer, int iSuitID) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Expected O, but got Unknown NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1669287785u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, iSuitID); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1669287785u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; if ((Object)(object)StartOfRound == (Object)null) { StartOfRound = Object.FindObjectOfType<StartOfRound>(); if ((Object)(object)StartOfRound == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to find StartOfRound."); return; } } NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val4 = (PlayerControllerB)val3; int num = 0; foreach (UnlockableItem unlockable in StartOfRound.unlockablesList.unlockables) { if ((Object)(object)unlockable.suitMaterial != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)$"Found suit at index {num}"); } num++; } UnlockableItem val5 = StartOfRound.unlockablesList.unlockables[iSuitID]; if (val5 == null) { SCPCBDunGen.Logger.LogError((object)$"Invalid suit ID: {iSuitID}"); return; } Material suitMaterial = val5.suitMaterial; ((Renderer)val4.thisPlayerModel).material = suitMaterial; ((Renderer)val4.thisPlayerModelLOD1).material = suitMaterial; ((Renderer)val4.thisPlayerModelLOD2).material = suitMaterial; ((Renderer)val4.thisPlayerModelArms).material = suitMaterial; val4.currentSuitID = iSuitID; } private void ConvertPlayerRandomSkin(PlayerControllerB playerController) { //IL_00cb: 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_00d3: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)StartOfRound == (Object)null) { StartOfRound = Object.FindObjectOfType<StartOfRound>(); if ((Object)(object)StartOfRound == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to find StartOfRound."); return; } } List<int> list = new List<int>(); int num = 0; foreach (UnlockableItem unlockable in StartOfRound.unlockablesList.unlockables) { if ((Object)(object)unlockable.suitMaterial != (Object)null && num != playerController.currentSuitID) { list.Add(num); } num++; } int count = list.Count; if (count == 0) { SCPCBDunGen.Logger.LogError((object)"No suits to swap to found."); return; } int index = roundManager.AnomalyRandom.Next(0, count); NetworkBehaviourReference netBehaviourRefPlayer = NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)playerController); ConvertPlayerRandomSkinClientRpc(netBehaviourRefPlayer, list[index]); } [IteratorStateMachine(typeof(<ConvertPlayerMaskedWaitForSpawn>d__47))] private IEnumerator ConvertPlayerMaskedWaitForSpawn(NetworkObjectReference netObjRefMasked, NetworkBehaviourReference netBehaviourRefPlayer) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ConvertPlayerMaskedWaitForSpawn>d__47(0) { netObjRefMasked = netObjRefMasked, netBehaviourRefPlayer = netBehaviourRefPlayer }; } [ClientRpc] private void ConvertPlayerMaskedClientRpc(NetworkObjectReference netObjRefMasked, NetworkBehaviourReference netBehaviourRefPlayer) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: 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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_015e: 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)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(358260797u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkObjectReference>(ref netObjRefMasked, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 358260797u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val4 = (PlayerControllerB)val3; val4.KillPlayer(Vector3.zero, true, (CauseOfDeath)5, 0, default(Vector3), false); if ((Object)(object)val4.deadBody != (Object)null) { val4.deadBody.DeactivateBody(false); } ((MonoBehaviour)this).StartCoroutine(ConvertPlayerMaskedWaitForSpawn(netObjRefMasked, netBehaviourRefPlayer)); } private void ConvertPlayerMasked(NetworkBehaviourReference netBehaviourRefPlayer, Vector3 vMaskedPosition) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) NetworkBehaviour val = null; ((NetworkBehaviourReference)(ref netBehaviourRefPlayer)).TryGet(ref val, (NetworkManager)null); if ((Object)(object)val == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get player controller."); return; } PlayerControllerB val2 = (PlayerControllerB)val; val2.KillPlayer(Vector3.zero, true, (CauseOfDeath)5, 0, default(Vector3), false); if ((Object)(object)StartOfRound == (Object)null) { StartOfRound = Object.FindObjectOfType<StartOfRound>(); if ((Object)(object)StartOfRound == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to find StartOfRound."); return; } } if ((Object)(object)MaskedType == (Object)null) { SelectableLevel val3 = Array.Find(StartOfRound.levels, (SelectableLevel x) => x.PlanetName == "8 Titan"); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get Titan level data."); return; } MaskedType = val3.Enemies.Find((SpawnableEnemyWithRarity x) => x.enemyType.enemyName == "Masked")?.enemyType; if ((Object)(object)MaskedType == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get masked enemy type."); return; } } NetworkObjectReference netObjRefMasked = roundManager.SpawnEnemyGameObject(vMaskedPosition, 0f, -1, MaskedType); NetworkObject val4 = default(NetworkObject); if (((NetworkObjectReference)(ref netObjRefMasked)).TryGet(ref val4, (NetworkManager)null)) { SCPCBDunGen.Logger.LogInfo((object)"Got network object for mask enemy"); MaskedPlayerEnemy component = ((Component)val4).GetComponent<MaskedPlayerEnemy>(); component.SetSuit(val2.currentSuitID); component.mimickingPlayer = val2; ((EnemyAI)component).SetEnemyOutside(false); val2.redirectToEnemy = (EnemyAI)(object)component; if ((Object)(object)val2.deadBody != (Object)null) { val2.deadBody.DeactivateBody(false); } } ConvertPlayerMaskedClientRpc(netObjRefMasked, netBehaviourRefPlayer); } private void ConvertPlayer(PlayerControllerB playerController) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) SCPCBDunGen.Logger.LogInfo((object)"Player detected, doing player conversion"); SCP914Setting sCP914Setting = (SCP914Setting)iCurrentState; Vector3 randomNavMeshPositionInCollider = GetRandomNavMeshPositionInCollider(colliderOutput); NetworkBehaviourReference netBehaviourRefPlayer = NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)playerController); ConvertPlayerTeleportClientRpc(netBehaviourRefPlayer, randomNavMeshPositionInCollider); switch (sCP914Setting) { case SCP914Setting.ROUGH: ConvertPlayerKillClientRpc(netBehaviourRefPlayer); break; case SCP914Setting.COARSE: ConvertPlayerAlterHealthClientRpc(netBehaviourRefPlayer, 50); break; case SCP914Setting.ONETOONE: ConvertPlayerRandomSkin(playerController); break; case SCP914Setting.FINE: ConvertPlayerAlterHealthClientRpc(netBehaviourRefPlayer, -50); break; case SCP914Setting.VERYFINE: if (!playerController.AllowPlayerDeath()) { SCPCBDunGen.Logger.LogInfo((object)"Refined player with Very Fine, but player death is prevented. Doing nothing."); } else { ConvertPlayerMasked(NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)playerController), randomNavMeshPositionInCollider); } break; default: SCPCBDunGen.Logger.LogError((object)"Invalid SCP 914 setting when attempting to convert player."); break; } } [ClientRpc] private void TeleportEnemyClientRpc(NetworkBehaviourReference netBehaviourRefEnemy, Vector3 vPosition) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Expected O, but got Unknown //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2839432350u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<NetworkBehaviourReference>(ref netBehaviourRefEnemy, default(ForNetworkSerializable)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref vPosition); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2839432350u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkBehaviour val3 = null; ((NetworkBehaviourReference)(ref netBehaviourRefEnemy)).TryGet(ref val3, (NetworkManager)null); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogError((object)"Failed to get enemy AI."); return; } EnemyAI val4 = (EnemyAI)val3; val4.serverPosition = vPosition; } } private void MoveEnemy(EnemyAI enemy, Vector3 NavPosition) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) SCPCBDunGen.Logger.LogInfo((object)$"No conversions for enemy: {enemy.enemyType.enemyName}. Teleporting to {NavPosition}"); NetworkBehaviourReference netBehaviourRefEnemy = NetworkBehaviourReference.op_Implicit((NetworkBehaviour)(object)enemy); TeleportEnemyClientRpc(netBehaviourRefEnemy, NavPosition); enemy.agent.Warp(NavPosition); enemy.SyncPositionToClients(); if (iCurrentState == 0) { enemy.KillEnemyOnOwnerClient(false); } } private void ConvertEnemyToEnemy(EnemyAI enemy) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) Dictionary<EnemyType, List<EnemyType>> enemyMapping = GetEnemyMapping(); Vector3 randomNavMeshPositionInCollider = GetRandomNavMeshPositionInCollider(colliderOutput); if (enemyMapping.TryGetValue(enemy.enemyType, out var value) && value.Count != 0) { EnemyType val = value[roundManager.AnomalyRandom.Next(value.Count)]; roundManager.SpawnEnemyGameObject(randomNavMeshPositionInCollider, 0f, -1, val); Object.Destroy((Object)(object)((Component)enemy).gameObject); } MoveEnemy(enemy, randomNavMeshPositionInCollider); } private void ConvertEnemyToItem(List<NetworkObjectReference> lNetworkObjectReferences, List<int> lScrapValues, EnemyAI enemy) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: 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_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) Vector3 randomPositionInCollider = GetRandomPositionInCollider(colliderOutput); GameObject val = null; NetworkObject val2 = null; GrabbableObject val3 = null; if (GetEnemyItemMapping().TryGetValue(enemy.enemyType, out var value)) { SCPCBDunGen.Logger.LogInfo((object)"Mapping found"); Item val4 = value[roundManager.AnomalyRandom.Next(value.Count)]; Object.Destroy((Object)(object)((Component)enemy).gameObject); if ((Object)(object)val4 != (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Conversion found"); val = Object.Instantiate<GameObject>(val4.spawnPrefab, randomPositionInCollider, Quaternion.identity, ScrapTransform); val2 = val.GetComponent<NetworkObject>(); val3 = val.GetComponent<GrabbableObject>(); } } else { SCPCBDunGen.Logger.LogInfo((object)"No conversion, teleporting enemy"); Vector3 randomNavMeshPositionInCollider = GetRandomNavMeshPositionInCollider(colliderOutput); MoveEnemy(enemy, randomNavMeshPositionInCollider); } SCPCBDunGen.Logger.LogInfo((object)"Preprocessing done"); if ((Object)(object)val3 == (Object)null) { SCPCBDunGen.Logger.LogInfo((object)"Conversion was null, item is intended to be destroyed in process."); return; } Item itemProperties = val3.itemProperties; if (itemProperties.isScrap) { SCPCBDunGen.Logger.LogInfo((object)"Item is scrap or null, generating a copy with new value"); GrabbableObject component = val.GetComponent<GrabbableObject>(); int num = (int)((float)roundManager.AnomalyRandom.Next(itemProperties.minValue, itemProperties.maxValue) * roundManager.scrapValueMultiplier); component.SetScrapValue(num); SCPCBDunGen.Logger.LogInfo((object)$"new scrap value: {num}"); lScrapValues.Add(num); } else { SCPCBDunGen.Logger.LogInfo((object)"Item is not scrap, adding empty scrap value"); lScrapValues.Add(0); } val2.Spawn(true); lNetworkObjectReferences.Add(NetworkObjectReference.op_Implicit(val2)); } private void ConvertEnemy(List<NetworkObjectReference> lNetworkObjectReferences, List<int> lScrapValues, EnemyAI enemy) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) Dictionary<EnemyType, List<Item>> enemyItemMapping = GetEnemyItemMapping(); Dictionary<EnemyType, List<EnemyType>> enemyMapping = GetEnemyMapping(); if (GetEnemyMapping().TryGetValue(enemy.enemyType, out var _)) { if (roundManager.AnomalyRandom.Next(2) == 0 && GetEnemyItemMapping().ContainsKey(enemy.enemyType)) { ConvertEnemyToItem(lNetworkObjectReferences, lScrapValues, enemy); } else { ConvertEnemyToEnemy(enemy); } } else if (GetEnemyItemMapping().ContainsKey(enemy.enemyType)) { ConvertEnemyToItem(lNetworkObjectReferences, lScrapValues, enemy); } else { Vector3 randomNavMeshPositionInCollider = GetRandomNavMeshPositionInCollider(colliderOutput); MoveEnemy(enemy, randomNavMeshPositionInCollider); } Object.Destroy((Object)(object)((Component)enemy).gameObject); } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(2627837757u, new RpcReceiveHandler(__rpc_handler_2627837757), "TurnStateServerRpc"); ((NetworkBehaviour)this).__registerRpc(301590527u, new RpcReceiveHandler(__rpc_handler_301590527), "TurnStateClientRpc"); ((NetworkBehaviour)this).__registerRpc(1051910848u, new RpcReceiveHandler(__rpc_handler_1051910848), "ActivateServerRpc"); ((NetworkBehaviour)this).__registerRpc(3833341719u, new RpcReceiveHandler(__rpc_handler_3833341719), "ActivateClientRpc"); ((NetworkBehaviour)this).__registerRpc(4143732333u, new RpcReceiveHandler(__rpc_handler_4143732333), "RefineFinishClientRpc"); ((NetworkBehaviour)this).__registerRpc(4044311993u, new RpcReceiveHandler(__rpc_handler_4044311993), "SpawnItemsClientRpc"); ((NetworkBehaviour)this).__registerRpc(3018499267u, new RpcReceiveHandler(__rpc_handler_3018499267), "ConvertPlayerTeleportClientRpc"); ((NetworkBehaviour)this).__registerRpc(1252059581u, new RpcReceiveHandler(__rpc_handler_1252059581), "ConvertPlayerKillClientRpc"); ((NetworkBehaviour)this).__registerRpc(527346026u, new RpcReceiveHandler(__rpc_handler_527346026), "ConvertPlayerAlterHealthClientRpc"); ((NetworkBehaviour)this).__registerRpc(1669287785u, new RpcReceiveHandler(__rpc_handler_1669287785), "ConvertPlayerRandomSkinClientRpc"); ((NetworkBehaviour)this).__registerRpc(358260797u, new RpcReceiveHandler(__rpc_handler_358260797), "ConvertPlayerMaskedClientRpc"); ((NetworkBehaviour)this).__registerRpc(2839432350u, new RpcReceiveHandler(__rpc_handler_2839432350), "TeleportEnemyClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_2627837757(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; ((SCP914Converter)(object)target).TurnStateServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_301590527(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int iNewState = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref iNewState); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).TurnStateClientRpc(iNewState); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1051910848(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; ((SCP914Converter)(object)target).ActivateServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3833341719(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; ((SCP914Converter)(object)target).ActivateClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4143732333(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; ((SCP914Converter)(object)target).RefineFinishClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4044311993(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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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)); NetworkObjectReference[] arNetworkObjectReferences = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref arNetworkObjectReferences, default(ForNetworkSerializable)); } bool flag2 = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag2, default(ForPrimitives)); int[] arScrapValues = null; if (flag2) { ((FastBufferReader)(ref reader)).ReadValueSafe<int>(ref arScrapValues, default(ForPrimitives)); } bool bChargeBattery = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref bChargeBattery, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).SpawnItemsClientRpc(arNetworkObjectReferences, arScrapValues, bChargeBattery); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3018499267(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference netBehaviourRefPlayer = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); Vector3 vPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref vPosition); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).ConvertPlayerTeleportClientRpc(netBehaviourRefPlayer, vPosition); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1252059581(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_004f: 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) { NetworkBehaviourReference netBehaviourRefPlayer = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).ConvertPlayerKillClientRpc(netBehaviourRefPlayer); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_527346026(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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference netBehaviourRefPlayer = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); int iHealthDelta = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref iHealthDelta); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).ConvertPlayerAlterHealthClientRpc(netBehaviourRefPlayer, iHealthDelta); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1669287785(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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference netBehaviourRefPlayer = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); int iSuitID = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref iSuitID); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).ConvertPlayerRandomSkinClientRpc(netBehaviourRefPlayer, iSuitID); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_358260797(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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006e: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkObjectReference netObjRefMasked = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkObjectReference>(ref netObjRefMasked, default(ForNetworkSerializable)); NetworkBehaviourReference netBehaviourRefPlayer = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefPlayer, default(ForNetworkSerializable)); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).ConvertPlayerMaskedClientRpc(netObjRefMasked, netBehaviourRefPlayer); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2839432350(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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { NetworkBehaviourReference netBehaviourRefEnemy = default(NetworkBehaviourReference); ((FastBufferReader)(ref reader)).ReadValueSafe<NetworkBehaviourReference>(ref netBehaviourRefEnemy, default(ForNetworkSerializable)); Vector3 vPosition = default(Vector3); ((FastBufferReader)(ref reader)).ReadValueSafe(ref vPosition); target.__rpc_exec_stage = (__RpcExecStage)1; ((SCP914Converter)(object)target).TeleportEnemyClientRpc(netBehaviourRefEnemy, vPosition); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "SCP914Converter"; } } public class SCPDoorMover : NetworkBehaviour { [CompilerGenerated] private sealed class <DoorToggleButtonUsable>d__15 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public SCPDoorMover <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DoorToggleButtonUsable>d__15(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown int num = <>1__state; SCPDoorMover sCPDoorMover = <>4__this; switch (num) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 1; return true; case 1: <>1__state = -1; sCPDoorMover.bDoorWaiting = false; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 2; return true; case 2: <>1__state = -1; sCPDoorMover.EnableDoorButtonClientRpc(); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public NavMeshObstacle navObstacle; public Animator doors; public List<AudioClip> doorAudioClips; public AudioClip doorAudioClipFast; public AudioSource doorSFXSource; public InteractTrigger ButtonA; public InteractTrigger ButtonB; private bool bDoorOpen; private bool bDoorWaiting; private List<EnemyAICollisionDetect> EnemiesInCollider = new List<EnemyAICollisionDetect>(); private void OnTriggerEnter(Collider other) { if (!((Object)(object)NetworkManager.Singleton == (Object)null) && ((NetworkBehaviour)this).IsServer && ((Component)other).CompareTag("Enemy")) { EnemyAICollisionDetect component = ((Component)other).GetComponent<EnemyAICollisionDetect>(); if (!((Object)(object)component == (Object)null)) { SCPCBDunGen.Logger.LogInfo((object)("Enemy entered trigger: " + ((Object)component.mainScript.enemyType).name)); EnemiesInCollider.Add(component); } } } private void OnTriggerExit(Collider other) { if (!((Object)(object)NetworkManager.Singleton == (Object)null) && ((NetworkBehaviour)this).IsServer && ((Component)other).CompareTag("Enemy")) { EnemyAICollisionDetect component = ((Component)other).GetComponent<EnemyAICollisionDetect>(); if (!((Object)(object)component == (Object)null) && !EnemiesInCollider.Remove(component)) { SCPCBDunGen.Logger.LogWarning((object)"Enemy left door trigger but somehow wasn't detected in trigger entry."); } } } private void Update() { if ((Object)(object)NetworkManager.Singleton == (Object)null || !((NetworkBehaviour)this).IsServer || bDoorOpen || bDoorWaiting || EnemiesInCollider.Count == 0) { return; } SCPCBDunGen.Logger.LogInfo((object)"Enemy attempting to open door..."); float num = 0f; foreach (EnemyAICollisionDetect item in EnemiesInCollider) { EnemyAI mainScript = item.mainScript; if (!mainScript.isEnemyDead) { SCPCBDunGen.Logger.LogInfo((object)$"Enemy {((Object)mainScript.enemyType).name} with open mult {mainScript.openDoorSpeedMultiplier}"); float val = mainScript.openDoorSpeedMultiplier; if (((Object)mainScript.enemyType).name == "MaskedPlayerEnemy") { val = 1f; } if (((Object)mainScript.enemyType).name == "Crawler") { val = 2f; } num = Math.Max(num, val); } } SCPCBDunGen.Logger.LogInfo((object)$"Highest multiplier is {num}."); if (num != 0f) { SCPCBDunGen.Logger.LogInfo((object)"Door being opened."); if (num > 1.5f) { OpenDoorFastServerRpc(); } else { ToggleDoorServerRpc(); } } } [ServerRpc] public void OpenDoorFastServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Invalid comparison between Unknown and I4 //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Invalid comparison between Unknown and I4 NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } return; } ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(289563691u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 289563691u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; SCPCBDunGen.Logger.LogInfo((object)"Opening door fast [SERVER]."); bDoorWaiting = true; bDoorOpen = true; ((Behaviour)navObstacle).enabled = false; OpenDoorFastClientRpc(); ((MonoBehaviour)this).StartCoroutine(DoorToggleButtonUsable()); } } [ClientRpc] public void OpenDoorFastClientRpc() { //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) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1678254293u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1678254293u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; SCPCBDunGen.Logger.LogInfo((object)"Opening door fast [CLIENT]."); bDoorWaiting = true; bDoorOpen = true; ButtonA.interactable = false; ButtonB.interactable = false; ((Behaviour)navObstacle).enabled = false; doorSFXSource.PlayOneShot(doorAudioClipFast); doors.SetTrigger("openfast"); } } } [IteratorStateMachine(typeof(<DoorToggleButtonUsable>d__15))] private IEnumerator DoorToggleButtonUsable() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DoorToggleButtonUsable>d__15(0) { <>4__this = this }; } [ServerRpc(RequireOwnership = false)] public void ToggleDoorServerRpc() { //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) //IL_00c1: 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)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(40313670u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 40313670u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; if (!bDoorWaiting) { bool flag = !bDoorOpen; string text = (flag ? "opening" : "closing"); SCPCBDunGen.Logger.LogInfo((object)("Door is " + text + ".")); bDoorWaiting = true; bDoorOpen = flag; ((Behaviour)navObstacle).enabled = !flag; ToggleDoorClientRpc(bDoorOpen); ((MonoBehaviour)this).StartCoroutine(DoorToggleButtonUsable()); } } } [ClientRpc] public void ToggleDoorClientRpc(bool _bDoorOpen) { //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) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(659555206u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref _bDoorOpen, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 659555206u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; bDoorOpen = _bDoorOpen; ButtonA.interactable = false; ButtonB.interactable = false; ((Behaviour)navObstacle).enabled = !_bDoorOpen; doorSFXSource.PlayOneShot(doorAudioClips[Random.Range(0, doorAudioClips.Count)]); doors.SetTrigger(bDoorOpen ? "open" : "close"); } } } [ClientRpc] public void EnableDoorButtonClientRpc() { //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) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1538705838u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1538705838u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ButtonA.interactable = true; ButtonB.interactable = true; } } } protected override void __initializeVariables() { ((NetworkBehaviour)this).__initializeVariables(); } protected override void __initializeRpcs() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(289563691u, new RpcReceiveHandler(__rpc_handler_289563691), "OpenDoorFastServerRpc"); ((NetworkBehaviour)this).__registerRpc(1678254293u, new RpcReceiveHandler(__rpc_handler_1678254293), "OpenDoorFastClientRpc"); ((NetworkBehaviour)this).__registerRpc(40313670u, new RpcReceiveHandler(__rpc_handler_40313670), "ToggleDoorServerRpc"); ((NetworkBehaviour)this).__registerRpc(659555206u, new RpcReceiveHandler(__rpc_handler_659555206), "ToggleDoorClientRpc"); ((NetworkBehaviour)this).__registerRpc(1538705838u, new RpcReceiveHandler(__rpc_handler_1538705838), "EnableDoorButtonClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_289563691(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Invalid comparison between Unknown and I4 NetworkManager networkManager = target.NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { if ((int)networkManager.LogLevel <= 1) { Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!"); } } else { target.__rpc_exec_stage = (__RpcExecStage)1; ((SCPDoorMover)(object)target).OpenDoorFastServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1678254293(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; ((SCPDoorMover)(object)target).OpenDoorFastClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_40313670(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_sta