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