using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using HarmonyLib; using MelanieMeliciousNPCAPI.NetcodePatcher; using Microsoft.CodeAnalysis; using TMPro; using Unity.Netcode; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("MelanieMeliciousNPCAPI")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("MelanieMelicious")] [assembly: AssemblyProduct("Melanie NPC API")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.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 MelMelNPC { public class HarmonyPatches { [HarmonyPrefix] [HarmonyPatch(typeof(StartOfRound), "Start")] private static void PreStart() { //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/UI/NPCChat.prefab"), HUDManager.Instance.HUDContainer.transform); Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/UI/NPCShop.prefab"), HUDManager.Instance.HUDContainer.transform); if (NPCManager.saveNPCs.Count != 0) { NPCManager.saveNPCs.Sort((NPCNode a, NPCNode b) => ((Object)a).name.CompareTo(((Object)b).name)); } if (NPCManager.savedResponses.Count != 0) { NPCManager.savedResponses.Sort((NPCChatNode a, NPCChatNode b) => ((Object)a).name.CompareTo(((Object)b).name)); } if (NPCManager.quests.Count != 0) { NPCManager.quests.Sort((NPCQuestNode a, NPCQuestNode b) => ((Object)a).name.CompareTo(((Object)b).name)); } if (GameNetworkManager.Instance.isHostingGame) { GameObject val = Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/MMNPCSpawn.prefab"), Vector3.zero, Quaternion.identity); val.GetComponent().Spawn(false); foreach (NPCNode saveNPC in NPCManager.saveNPCs) { saveNPC.LoadData(); } foreach (NPCChatNode savedResponse in NPCManager.savedResponses) { savedResponse.LoadData(); } { foreach (NPCQuestNode quest in NPCManager.quests) { quest.LoadData(); } return; } } for (int i = 0; i < NPCManager.saveNPCs.Count; i++) { NPCManager.Instance.NPCServerRpc(i); } for (int j = 0; j < NPCManager.savedResponses.Count; j++) { NPCManager.Instance.ChatServerRpc(j); } for (int k = 0; k < NPCManager.quests.Count; k++) { NPCManager.Instance.QuestServerRpc(k); } } [HarmonyPostfix] [HarmonyPatch(typeof(HUDManager), "Start")] private static void PostHUD(HUDManager __instance) { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/UI/NPCChat.prefab"), __instance.HUDContainer.transform); Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/UI/NPCShop.prefab"), __instance.HUDContainer.transform); foreach (NPCQuestNode quest in NPCManager.quests) { quest.LoadData(); } if (!GameNetworkManager.Instance.isHostingGame) { return; } GameObject val = Object.Instantiate(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/MMNPCSpawn.prefab"), Vector3.zero, Quaternion.identity); val.GetComponent().Spawn(false); foreach (NPCChatNode savedResponse in NPCManager.savedResponses) { savedResponse.LoadData(); } } [HarmonyPostfix] [HarmonyPatch(typeof(HUDManager), "CloseSpecialMenus")] private static void PostCloseMenu(HUDManager __instance) { ((Component)NPCChat.Instance).gameObject.SetActive(false); ((Component)NPCShop.Instance).gameObject.SetActive(false); } [HarmonyPrefix] [HarmonyPatch(typeof(GameNetworkManager), "SaveGameValues")] private static void SaveNPCNodes() { if (!((NetworkBehaviour)StartOfRound.Instance).IsServer) { return; } try { foreach (NPCChatNode savedResponse in NPCManager.savedResponses) { savedResponse.SaveData(); } foreach (NPCQuestNode quest in NPCManager.quests) { quest.SaveData(); } } catch { Plugin.mls.LogError((object)"Issue in NPC save patch. Aborting to prevent save break."); } } [HarmonyPostfix] [HarmonyPatch(typeof(GameNetworkManager), "Start")] private static void NetworkPatch(ref GameNetworkManager __instance) { ((Component)__instance).GetComponent().AddNetworkPrefab(Plugin.bundle.LoadAsset("Assets/MelanieNPC/Prefab/MMNPCSpawn.prefab")); } } public class NPC : NetworkBehaviour { [SerializeField] private string nameBox; [SerializeField] internal NPCChatNode welcome; [SerializeField] private Transform spawnScrapPos; [SerializeField] private Animator animator; [SerializeField] private NPCNode npcNode; public List unlockableObjects; public void Welcome() { //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) HUDManager.Instance.CloseSpecialMenus(); ((Component)NPCChat.Instance).gameObject.SetActive(true); NPCChat.Instance.nameBox.text = nameBox; Transform parent = NPCChat.Instance.nameBox.transform.parent; RectTransform val = (RectTransform)(object)((parent is RectTransform) ? parent : null); val.SetSizeWithCurrentAnchors((Axis)0, (float)(nameBox.Length * 10 + 5)); val.anchoredPosition = new Vector2((float)(nameBox.Length * 5 - 305), 120f); if ((Object)(object)spawnScrapPos != (Object)null) { NPCShop.Instance.spawnScrapPos = spawnScrapPos.position; } else { NPCShop.Instance.spawnScrapPos = ((Component)this).transform.position; } if ((Object)(object)animator != (Object)null) { NPCChat.Instance.animator = animator; NPCChat.Instance.animator.Play(NPCChat.Instance.animTalk); } NPCChat.Instance.Talk(welcome); } public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if ((Object)(object)npcNode != (Object)null) { npcNode.npc = this; if (((NetworkBehaviour)this).IsHost) { ObjectClientRpc(npcNode.unlockedObjects.ToArray()); } } } [ServerRpc(RequireOwnership = false)] internal void ObjectServerRpc(int[] indexes) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_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) 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(2814911222u, val, (RpcDelivery)0); bool flag = indexes != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(indexes, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2814911222u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ObjectClientRpc(indexes); } } [ClientRpc] private void ObjectClientRpc(int[] indexes) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_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_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: 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(225046312u, val, (RpcDelivery)0); bool flag = indexes != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(indexes, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 225046312u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; npcNode.unlockedObjects = indexes.ToList(); for (int i = 0; i < indexes.Length && npcNode.unlockedObjects[i] < unlockableObjects.Count && (Object)(object)unlockableObjects[npcNode.unlockedObjects[i]] != (Object)null; i++) { Scene scene = unlockableObjects[npcNode.unlockedObjects[i]].scene; if (((Scene)(ref scene)).IsValid()) { unlockableObjects[npcNode.unlockedObjects[i]].SetActive(true); } else { Object.Instantiate(unlockableObjects[npcNode.unlockedObjects[i]], ((Component)this).transform.position, ((Component)this).transform.rotation, ((Component)this).transform); } } } 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 ((NetworkBehaviour)this).__registerRpc(2814911222u, new RpcReceiveHandler(__rpc_handler_2814911222), "ObjectServerRpc"); ((NetworkBehaviour)this).__registerRpc(225046312u, new RpcReceiveHandler(__rpc_handler_225046312), "ObjectClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_2814911222(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_006e: 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_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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] indexes = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref indexes, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPC)(object)target).ObjectServerRpc(indexes); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_225046312(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_006e: 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_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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] indexes = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref indexes, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPC)(object)target).ObjectClientRpc(indexes); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "NPC"; } } public class NPCChat : MonoBehaviour { [CompilerGenerated] private sealed class d__13 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public NPCChat <>4__this; private int 5__1; private int 5__2; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__13(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.messageBox.maxVisibleCharacters = 0; 5__1 = <>4__this.messageBox.text.Length; 5__2 = 0; break; case 1: <>1__state = -1; 5__2++; break; } if (5__2 <= 5__1) { <>4__this.messageBox.maxVisibleCharacters = 5__2; <>2__current = (object)new WaitForSeconds(0.05f); <>1__state = 1; return true; } 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(); } } [SerializeField] internal TMP_Text nameBox; [SerializeField] private TMP_Text messageBox; public TMP_Text[] responseSelect; private List responses = new List(); internal Animator animator; internal int animTalk = Animator.StringToHash("Talk"); private int animIdle = Animator.StringToHash("Idle"); public static NPCChat Instance { get; private set; } public void Talk(NPCChatNode message) { if (message.selectEvent != null) { message.selectEvent.Invoke(); } if ((Object)(object)message.shop != (Object)null) { message.shop.GetItems(); ((Component)NPCShop.Instance).gameObject.SetActive(true); NPCShop.Instance.OpenShop(message.shop); ((Component)this).gameObject.SetActive(false); } else if (message.responses.Count != 0) { responses.Clear(); responses.AddRange(message.responses); if (message.quests.Count != 0) { foreach (NPCQuestNode quest in message.quests) { if (quest.IsComplete()) { if (!quest.claimed) { quest.completeEvent.Invoke(); responses.Insert(0, quest.questComplete); } continue; } responses.Insert(0, quest.questDefault); if (!GameNetworkManager.Instance.localPlayerController.isHoldingObject) { continue; } foreach (NPCQuestCondition condition in quest.conditions) { if ((Object)(object)condition.item != (Object)null && (Object)(object)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties == (Object)(object)condition.item) { responses.Insert(0, quest.questProgress); break; } } } } messageBox.SetText(message.displayText, true); ((MonoBehaviour)this).StartCoroutine(TalkDelay()); for (int i = 0; i < responseSelect.Length; i++) { if (i >= responses.Count) { ((Component)responseSelect[i].transform.parent).gameObject.SetActive(false); continue; } responseSelect[i].text = responses[i].selectText; ((Component)responseSelect[i].transform.parent).gameObject.SetActive(true); } GameNetworkManager.Instance.localPlayerController.inSpecialMenu = true; Cursor.lockState = (CursorLockMode)0; ((Behaviour)GameNetworkManager.Instance.localPlayerController.cursorIcon).enabled = false; ((TMP_Text)GameNetworkManager.Instance.localPlayerController.cursorTip).text = ""; if ((Object)(object)GameNetworkManager.Instance.localPlayerController.hoveringOverTrigger != (Object)null) { GameNetworkManager.Instance.localPlayerController.previousHoveringOverTrigger = GameNetworkManager.Instance.localPlayerController.hoveringOverTrigger; } GameNetworkManager.Instance.localPlayerController.hoveringOverTrigger = null; } else { ((Component)this).gameObject.SetActive(false); if (GameNetworkManager.Instance.localPlayerController.inSpecialMenu) { GameNetworkManager.Instance.localPlayerController.SetInSpecialMenu(false, (SpecialHUDMenu)0); } } } public void Respond(int response) { TMP_Text[] array = responseSelect; foreach (TMP_Text val in array) { ((Component)val.transform.parent).gameObject.SetActive(false); } Talk(responses[response]); } [IteratorStateMachine(typeof(d__13))] private IEnumerator TalkDelay() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__13(0) { <>4__this = this }; } private void OnDisable() { if ((Object)(object)animator != (Object)null) { animator.Play(animIdle); } } private void Awake() { if ((Object)(object)Instance != (Object)null) { Object.Destroy((Object)(object)((Component)Instance).gameObject); } Instance = this; ((Component)this).gameObject.SetActive(false); } } [CreateAssetMenu(menuName = "ScriptableObjects/MelMelNPC/NPCChatNode")] public class NPCChatNode : ScriptableObject { [TextArea(2, 4)] public string displayText; public string selectText; public UnityEvent selectEvent; [HideInInspector] public List responses = new List(); [SerializeField] private bool saveUnlockedDialogue; public List allResponses = new List(); public List lockedResponsesIndex = new List(); internal List lockedResponses = new List(); public NPCShopNode shop; public List quests; private string loaded; public void UnlockDialogue(int index) { lockedResponses.Remove(index); NPCManager.Instance.ChatServerRpc(NPCManager.savedResponses.IndexOf(this), lockedResponses.ToArray()); } public void LockDialogue(int index) { lockedResponses.Add(index); NPCManager.Instance.ChatServerRpc(NPCManager.savedResponses.IndexOf(this), lockedResponses.ToArray()); } private void OnEnable() { if (!saveUnlockedDialogue) { lockedResponses.Clear(); lockedResponses.AddRange(lockedResponsesIndex); responses.Clear(); responses.AddRange(allResponses); { foreach (int lockedResponse in lockedResponses) { responses.Remove(allResponses[lockedResponse]); } return; } } NPCManager.savedResponses.Add(this); } internal void LoadData() { if (!GameNetworkManager.Instance.isHostingGame || loaded == GameNetworkManager.Instance.currentSaveFileName) { return; } try { if (ES3.KeyExists(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName)) { lockedResponses = ES3.Load>(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName); NPCManager.Instance.ChatClientRpc(NPCManager.savedResponses.IndexOf(this), lockedResponses.ToArray()); } else { lockedResponses.Clear(); lockedResponses.AddRange(lockedResponsesIndex); NPCManager.Instance.ChatClientRpc(NPCManager.savedResponses.IndexOf(this), lockedResponses.ToArray()); } } catch { Plugin.mls.LogError((object)("Error while loading NPC chat node data for " + ((Object)this).name + ". Aborting to prevent save break.")); } loaded = GameNetworkManager.Instance.currentSaveFileName; } internal void SaveData() { if (!GameNetworkManager.Instance.isHostingGame) { return; } try { ES3.Save>(((Object)this).name, lockedResponses, GameNetworkManager.Instance.currentSaveFileName); } catch { Plugin.mls.LogError((object)("Error while saving NPC chat node data for " + ((Object)this).name + ". Aborting to prevent save break.")); } } } public class NPCManager : NetworkBehaviour { public static List saveNPCs = new List(); public static List savedResponses = new List(); public static List quests = new List(); internal Terminal terminal; public static NPCManager Instance { get; private set; } public override void OnNetworkSpawn() { ((NetworkBehaviour)this).OnNetworkSpawn(); if ((Object)(object)Instance != (Object)null) { Object.Destroy((Object)(object)((Component)Instance).gameObject); } Instance = this; terminal = Object.FindObjectOfType(); } [ServerRpc(RequireOwnership = false)] public void CreditsServerRpc(int value) { //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) 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(791563436u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 791563436u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; CreditsClientRpc(value); } } } [ClientRpc] public void CreditsClientRpc(int value) { //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) 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(3675997218u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3675997218u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; Terminal obj = terminal; obj.groupCredits += value; } } } [ServerRpc(RequireOwnership = false)] public void QuotaServerRpc(int value) { //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) 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(4014728227u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4014728227u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; QuotaClientRpc(value); } } } [ClientRpc] public void QuotaClientRpc(int value) { //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) 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(2551684416u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2551684416u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; TimeOfDay instance = TimeOfDay.Instance; instance.quotaFulfilled += value; } } } [ServerRpc(RequireOwnership = false)] public void SpawnItemServerRpc(int itemList, float posX, float posY, float posZ) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: 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_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00da: 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) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_017d: 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(2989129686u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, itemList); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref posX, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref posY, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref posZ, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2989129686u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; GameObject val3 = Object.Instantiate(StartOfRound.Instance.allItemsList.itemsList[itemList].spawnPrefab, new Vector3(posX, posY, posZ), Quaternion.identity, RoundManager.Instance.spawnedScrapContainer); val3.GetComponent().Spawn(false); GrabbableObject val4 = default(GrabbableObject); if (val3.TryGetComponent(ref val4)) { SpawnItemClientRpc(NetworkObjectReference.op_Implicit(val3.GetComponent()), Random.Range(val4.itemProperties.minValue, val4.itemProperties.maxValue)); } else { SpawnItemClientRpc(NetworkObjectReference.op_Implicit(val3.GetComponent()), 0); } } } [ServerRpc(RequireOwnership = false)] internal void NPCServerRpc(int index, int[] syncObject) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00d4: 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) 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(2359530806u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); bool flag = syncObject != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(syncObject, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2359530806u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NPCClientRpc(index, syncObject); } } [ServerRpc(RequireOwnership = false)] internal void NPCServerRpc(int index) { //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) 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(2031944468u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2031944468u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NPCClientRpc(index, saveNPCs[index].unlockedObjects.ToArray()); } } } [ClientRpc] internal void NPCClientRpc(int index, int[] syncObject) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00d4: 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) 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(1255338146u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); bool flag = syncObject != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(syncObject, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1255338146u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; saveNPCs[index].unlockedObjects = syncObject.ToList(); } } [ServerRpc(RequireOwnership = false)] internal void QuestServerRpc(int index0, int index1, int progress) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: 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(3039930900u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index0); BytePacker.WriteValueBitPacked(val2, index1); BytePacker.WriteValueBitPacked(val2, progress); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3039930900u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; QuestClientRpc(index0, index1, progress); } } } [ServerRpc(RequireOwnership = false)] internal void QuestServerRpc(int index, bool claim) { //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_0071: 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) //IL_0090: 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) 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(3934955173u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref claim, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3934955173u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; QuestClientRpc(index, claim); } } } [ServerRpc(RequireOwnership = false)] internal void QuestServerRpc(int index) { //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) 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(3003663075u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3003663075u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; QuestClientRpc(index, quests[index].claimed); for (int i = 0; i < quests[index].conditions.Count; i++) { QuestClientRpc(index, i, quests[index].conditions[i].progress); } } } [ClientRpc] internal void QuestClientRpc(int index0, int index1, int progress) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: 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(2613414402u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index0); BytePacker.WriteValueBitPacked(val2, index1); BytePacker.WriteValueBitPacked(val2, progress); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2613414402u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; quests[index0].conditions[index1].progress = (short)progress; } } } [ClientRpc] internal void QuestClientRpc(int index, bool claim) { //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_0071: 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) //IL_0090: 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) 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(4294733108u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref claim, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4294733108u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; quests[index].claimed = claim; } } } [ServerRpc(RequireOwnership = false)] internal void ChatServerRpc(int index, int[] syncLockDialogue) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00d4: 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) 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(3281280143u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); bool flag = syncLockDialogue != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(syncLockDialogue, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3281280143u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ChatClientRpc(index, syncLockDialogue); } } [ServerRpc(RequireOwnership = false)] internal void ChatServerRpc(int index) { //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) 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(2269701451u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2269701451u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; ChatClientRpc(index, savedResponses[index].lockedResponses.ToArray()); } } } [ClientRpc] internal void ChatClientRpc(int index, int[] syncLockDialogue) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00d4: 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) 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(2216386288u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, index); bool flag = syncLockDialogue != null; ((FastBufferWriter)(ref val2)).WriteValueSafe(ref flag, default(ForPrimitives)); if (flag) { ((FastBufferWriter)(ref val2)).WriteValueSafe(syncLockDialogue, default(ForPrimitives)); } ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2216386288u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsClient && !networkManager.IsHost)) { return; } base.__rpc_exec_stage = (__RpcExecStage)0; savedResponses[index].lockedResponses = syncLockDialogue.ToList(); savedResponses[index].responses.Clear(); savedResponses[index].responses.AddRange(savedResponses[index].allResponses); foreach (int lockedResponse in savedResponses[index].lockedResponses) { savedResponses[index].responses.Remove(savedResponses[index].allResponses[lockedResponse]); } } [ClientRpc] private void SpawnItemClientRpc(NetworkObjectReference netObjRef, int value) { //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) 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(473036251u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref netObjRef, default(ForNetworkSerializable)); BytePacker.WriteValueBitPacked(val2, value); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 473036251u, val, (RpcDelivery)0); } if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsClient || networkManager.IsHost)) { base.__rpc_exec_stage = (__RpcExecStage)0; NetworkObject val3 = default(NetworkObject); if (((NetworkObjectReference)(ref netObjRef)).TryGet(ref val3, (NetworkManager)null)) { ((Component)val3).GetComponent().SetScrapValue(value); } } } 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 //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Expected O, but got Unknown //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Expected O, but got Unknown //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Expected O, but got Unknown ((NetworkBehaviour)this).__registerRpc(791563436u, new RpcReceiveHandler(__rpc_handler_791563436), "CreditsServerRpc"); ((NetworkBehaviour)this).__registerRpc(3675997218u, new RpcReceiveHandler(__rpc_handler_3675997218), "CreditsClientRpc"); ((NetworkBehaviour)this).__registerRpc(4014728227u, new RpcReceiveHandler(__rpc_handler_4014728227), "QuotaServerRpc"); ((NetworkBehaviour)this).__registerRpc(2551684416u, new RpcReceiveHandler(__rpc_handler_2551684416), "QuotaClientRpc"); ((NetworkBehaviour)this).__registerRpc(2989129686u, new RpcReceiveHandler(__rpc_handler_2989129686), "SpawnItemServerRpc"); ((NetworkBehaviour)this).__registerRpc(2359530806u, new RpcReceiveHandler(__rpc_handler_2359530806), "NPCServerRpc"); ((NetworkBehaviour)this).__registerRpc(2031944468u, new RpcReceiveHandler(__rpc_handler_2031944468), "NPCServerRpc"); ((NetworkBehaviour)this).__registerRpc(1255338146u, new RpcReceiveHandler(__rpc_handler_1255338146), "NPCClientRpc"); ((NetworkBehaviour)this).__registerRpc(3039930900u, new RpcReceiveHandler(__rpc_handler_3039930900), "QuestServerRpc"); ((NetworkBehaviour)this).__registerRpc(3934955173u, new RpcReceiveHandler(__rpc_handler_3934955173), "QuestServerRpc"); ((NetworkBehaviour)this).__registerRpc(3003663075u, new RpcReceiveHandler(__rpc_handler_3003663075), "QuestServerRpc"); ((NetworkBehaviour)this).__registerRpc(2613414402u, new RpcReceiveHandler(__rpc_handler_2613414402), "QuestClientRpc"); ((NetworkBehaviour)this).__registerRpc(4294733108u, new RpcReceiveHandler(__rpc_handler_4294733108), "QuestClientRpc"); ((NetworkBehaviour)this).__registerRpc(3281280143u, new RpcReceiveHandler(__rpc_handler_3281280143), "ChatServerRpc"); ((NetworkBehaviour)this).__registerRpc(2269701451u, new RpcReceiveHandler(__rpc_handler_2269701451), "ChatServerRpc"); ((NetworkBehaviour)this).__registerRpc(2216386288u, new RpcReceiveHandler(__rpc_handler_2216386288), "ChatClientRpc"); ((NetworkBehaviour)this).__registerRpc(473036251u, new RpcReceiveHandler(__rpc_handler_473036251), "SpawnItemClientRpc"); ((NetworkBehaviour)this).__initializeRpcs(); } private static void __rpc_handler_791563436(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 value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).CreditsServerRpc(value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3675997218(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 value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).CreditsClientRpc(value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4014728227(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 value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuotaServerRpc(value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2551684416(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 value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuotaClientRpc(value); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2989129686(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: 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_00ad: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int itemList = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref itemList); float posX = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref posX, default(ForPrimitives)); float posY = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref posY, default(ForPrimitives)); float posZ = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe(ref posZ, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).SpawnItemServerRpc(itemList, posX, posY, posZ); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2359530806(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] syncObject = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref syncObject, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).NPCServerRpc(index, syncObject); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2031944468(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 index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).NPCServerRpc(index); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1255338146(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] syncObject = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref syncObject, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).NPCClientRpc(index, syncObject); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3039930900(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); int index2 = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index2); int progress = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref progress); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuestServerRpc(index, index2, progress); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3934955173(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool claim = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref claim, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuestServerRpc(index, claim); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3003663075(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 index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuestServerRpc(index); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2613414402(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); int index2 = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index2); int progress = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref progress); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuestClientRpc(index, index2, progress); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4294733108(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_006f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool claim = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref claim, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).QuestClientRpc(index, claim); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3281280143(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] syncLockDialogue = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref syncLockDialogue, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).ChatServerRpc(index, syncLockDialogue); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2269701451(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 index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).ChatServerRpc(index); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2216386288(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { int index = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref index); bool flag = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe(ref flag, default(ForPrimitives)); int[] syncLockDialogue = null; if (flag) { ((FastBufferReader)(ref reader)).ReadValueSafe(ref syncLockDialogue, default(ForPrimitives)); } target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).ChatClientRpc(index, syncLockDialogue); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_473036251(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) { NetworkObjectReference netObjRef = default(NetworkObjectReference); ((FastBufferReader)(ref reader)).ReadValueSafe(ref netObjRef, default(ForNetworkSerializable)); int value = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref value); target.__rpc_exec_stage = (__RpcExecStage)1; ((NPCManager)(object)target).SpawnItemClientRpc(netObjRef, value); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "NPCManager"; } } [CreateAssetMenu(menuName = "ScriptableObjects/MelMelNPC/NPCNode")] public class NPCNode : ScriptableObject { internal NPC npc; internal List unlockedObjects = new List(); private string loaded; [SerializeField] private bool saveableData; public void UnlockObject(int index) { if (saveableData) { if (!unlockedObjects.Contains(index)) { unlockedObjects.Add(index); } NPCManager.Instance.NPCServerRpc(NPCManager.saveNPCs.IndexOf(this), unlockedObjects.ToArray()); if ((Object)(object)npc != (Object)null) { npc.ObjectServerRpc(unlockedObjects.ToArray()); } } } internal void LoadData() { if (!saveableData || !GameNetworkManager.Instance.isHostingGame || loaded == GameNetworkManager.Instance.currentSaveFileName) { return; } try { if (ES3.KeyExists(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName)) { unlockedObjects = ES3.Load>(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName); NPCManager.Instance.NPCClientRpc(NPCManager.saveNPCs.IndexOf(this), unlockedObjects.ToArray()); } else { unlockedObjects.Clear(); NPCManager.Instance.NPCClientRpc(NPCManager.saveNPCs.IndexOf(this), unlockedObjects.ToArray()); } } catch { Plugin.mls.LogError((object)("Error while loading NPC node data for " + ((Object)this).name + ". Aborting to prevent save break.")); } loaded = GameNetworkManager.Instance.currentSaveFileName; } internal void SaveData() { if (!saveableData || !GameNetworkManager.Instance.isHostingGame) { return; } try { ES3.Save>(((Object)this).name, unlockedObjects, GameNetworkManager.Instance.currentSaveFileName); } catch { Plugin.mls.LogError((object)("Error while saving NPC node data for " + ((Object)this).name + ". Aborting to prevent save break.")); } } private void OnEnable() { if (saveableData) { NPCManager.saveNPCs.Add(this); } } } [Serializable] public class NPCQuestCondition { public string requirement = "(Example) 'Pull lever in [example location]' or 'Give 3 Shovels'"; public Item item; public string itemByName; public short progress = 0; public short progressMax = 0; } [CreateAssetMenu(menuName = "ScriptableObjects/MelMelNPC/NPCQuestNode")] public class NPCQuestNode : ScriptableObject { [ES3NonSerializable] public List conditions = new List(); [ES3NonSerializable] public UnityEvent completeEvent; [ES3NonSerializable] public NPCChatNode questDefault; [ES3NonSerializable] public NPCChatNode questProgress; [ES3NonSerializable] public NPCChatNode questComplete; public bool claimed = false; private bool loadedItems = false; private string loaded; public void Progress(int index) { if (conditions[index].progress <= conditions[index].progressMax) { conditions[index].progress++; NPCManager.Instance.QuestServerRpc(NPCManager.quests.IndexOf(this), index, conditions[index].progress); } } public void DespawnHeld() { GameNetworkManager.Instance.localPlayerController.DespawnHeldObject(); } public void ClaimQuest(bool claim) { NPCManager.Instance.QuestServerRpc(NPCManager.quests.IndexOf(this), claim); } internal bool IsComplete() { foreach (NPCQuestCondition condition in conditions) { if (condition.progress < condition.progressMax) { return false; } } return true; } internal void LoadData() { if (!loadedItems) { foreach (NPCQuestCondition condition in conditions) { if (condition.itemByName == null) { continue; } foreach (Item items in StartOfRound.Instance.allItemsList.itemsList) { if (items.itemName == condition.itemByName) { condition.item = items; break; } } } loadedItems = true; } if (!GameNetworkManager.Instance.isHostingGame || loaded == GameNetworkManager.Instance.currentSaveFileName) { return; } try { if (ES3.KeyExists(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName)) { claimed = ES3.Load(((Object)this).name, GameNetworkManager.Instance.currentSaveFileName); NPCManager.Instance.QuestClientRpc(NPCManager.quests.IndexOf(this), claimed); for (int i = 0; i < conditions.Count; i++) { if (ES3.KeyExists($"{((Object)this).name}.Condition{i}", GameNetworkManager.Instance.currentSaveFileName)) { conditions[i].progress = ES3.Load($"{((Object)this).name}.Condition{i}", GameNetworkManager.Instance.currentSaveFileName); } NPCManager.Instance.QuestClientRpc(NPCManager.quests.IndexOf(this), i, conditions[i].progress); } } else { claimed = false; for (int j = 0; j < conditions.Count; j++) { conditions[j].progress = 0; NPCManager.Instance.QuestClientRpc(NPCManager.quests.IndexOf(this), j, conditions[j].progress); } } } catch { Plugin.mls.LogError((object)("Error while loading NPC quest node data for " + ((Object)this).name + ". Aborting to prevent save break.")); } loaded = GameNetworkManager.Instance.currentSaveFileName; } internal void SaveData() { if (!GameNetworkManager.Instance.isHostingGame) { return; } try { ES3.Save(((Object)this).name, claimed, GameNetworkManager.Instance.currentSaveFileName); for (int i = 0; i < conditions.Count; i++) { ES3.Save($"{((Object)this).name}.Condition{i}", conditions[i].progress, GameNetworkManager.Instance.currentSaveFileName); } } catch { Plugin.mls.LogError((object)("Error while saving NPC quest node for " + ((Object)this).name + ". Aborting to prevent save break.")); } } private void OnEnable() { NPCManager.quests.Add(this); } } public class NPCShop : MonoBehaviour { public NPCShopBuy[] buy; public TMP_Text[] buySelect; public NPCShopSell[] sell; public TMP_Text[] sellSelect; private bool sellAddQuota; [SerializeField] private TMP_Text sellAddQuotaText; public NPCShopTrade[] trade; public TMP_Text[] tradeSelect; private bool tradeAddQuota; [SerializeField] private TMP_Text tradeAddQuotaText; internal Vector3 spawnScrapPos; private AudioClip purchase; private const string noQuota = "Does NOT Progress Quota!"; private const string yesQuota = "Progresses Quota!"; public static NPCShop Instance { get; private set; } public void Buy(int index) { if (NPCManager.Instance.terminal.groupCredits >= buy[index].buyCost) { NPCManager.Instance.SpawnItemServerRpc(StartOfRound.Instance.allItemsList.itemsList.IndexOf(buy[index].buy), spawnScrapPos.x, spawnScrapPos.y, spawnScrapPos.z); NPCManager.Instance.CreditsServerRpc(-buy[index].buyCost); HUDManager.Instance.UIAudio.PlayOneShot(purchase); } else { HUDManager.Instance.DisplayTip("Error:", "Not enough credits!", true, false, "LC_Tip1"); } } public void Sell(int index) { if (GameNetworkManager.Instance.localPlayerController.isHoldingObject && (Object)(object)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties == (Object)(object)sell[index].sell) { if (sellAddQuota) { NPCManager.Instance.QuotaServerRpc((int)((float)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.scrapValue * sell[index].sellMulti)); } NPCManager.Instance.CreditsServerRpc((int)((float)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.scrapValue * sell[index].sellMulti)); HUDManager.Instance.UIAudio.PlayOneShot(purchase); GameNetworkManager.Instance.localPlayerController.DespawnHeldObject(); } else { HUDManager.Instance.DisplayTip("Error:", "Not holding sell item!", true, false, "LC_Tip1"); } } public void Trade(int index) { if (GameNetworkManager.Instance.localPlayerController.isHoldingObject && (Object)(object)GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.itemProperties == (Object)(object)trade[index].tradeWant) { if (tradeAddQuota) { NPCManager.Instance.QuotaServerRpc(GameNetworkManager.Instance.localPlayerController.currentlyHeldObjectServer.scrapValue); } NPCManager.Instance.SpawnItemServerRpc(StartOfRound.Instance.allItemsList.itemsList.IndexOf(trade[index].tradeGive), spawnScrapPos.x, spawnScrapPos.y, spawnScrapPos.z); HUDManager.Instance.UIAudio.PlayOneShot(purchase); GameNetworkManager.Instance.localPlayerController.DespawnHeldObject(); } else { HUDManager.Instance.DisplayTip("Error:", "Not holding trade item!", true, false, "LC_Tip1"); } } public void OpenShop(NPCShopNode shop) { buy = shop.buyList.ToArray(); sell = shop.sellList.ToArray(); sellAddQuota = shop.sellAddQuota; trade = shop.tradeList.ToArray(); tradeAddQuota = shop.tradeAddQuota; for (int i = 0; i < buySelect.Length; i++) { if (i >= buy.Length) { ((Component)buySelect[i].transform.parent).gameObject.SetActive(false); continue; } buySelect[i].text = $"[ {buy[i].buyCost} Credits -> {buy[i].buy.itemName} ]"; ((Component)buySelect[i].transform.parent).gameObject.SetActive(true); } if (sellAddQuota) { sellAddQuotaText.text = "Progresses Quota!"; } else { sellAddQuotaText.text = "Does NOT Progress Quota!"; } for (int j = 0; j < sellSelect.Length; j++) { if (j >= sell.Length) { ((Component)sellSelect[j].transform.parent).gameObject.SetActive(false); continue; } sellSelect[j].text = $"[ {sell[j].sell.itemName} -> {sell[j].sellMulti * 100f}% Value ]"; ((Component)sellSelect[j].transform.parent).gameObject.SetActive(true); } if (tradeAddQuota) { tradeAddQuotaText.text = "Progresses Quota!"; } else { tradeAddQuotaText.text = "Does NOT Progress Quota!"; } for (int k = 0; k < tradeSelect.Length; k++) { if (k >= trade.Length) { ((Component)tradeSelect[k].transform.parent).gameObject.SetActive(false); continue; } tradeSelect[k].text = "[ " + trade[k].tradeWant.itemName + " -> " + trade[k].tradeGive.itemName + " ]"; ((Component)tradeSelect[k].transform.parent).gameObject.SetActive(true); } } private void Awake() { if ((Object)(object)Instance != (Object)null) { Object.Destroy((Object)(object)((Component)Instance).gameObject); } Instance = this; purchase = Plugin.bundle.LoadAsset("Assets/MelanieNPC/Audio/PurchaseSFX.ogg"); ((Component)this).gameObject.SetActive(false); } } [Serializable] public class NPCShopBuy { public Item buy; public string buyByName; public int buyCost; } [CreateAssetMenu(menuName = "ScriptableObjects/MelMelNPC/NPCShopNode")] public class NPCShopNode : ScriptableObject { public List buyList = new List(); public List sellList = new List(); public bool sellAddQuota = false; public List tradeList = new List(); public bool tradeAddQuota = false; private bool foundItems = false; internal void GetItems() { if (foundItems) { return; } foreach (NPCShopBuy buy in buyList) { foreach (Item items in StartOfRound.Instance.allItemsList.itemsList) { if (items.itemName == buy.buyByName) { buy.buy = items; break; } } } foreach (NPCShopSell sell in sellList) { foreach (Item items2 in StartOfRound.Instance.allItemsList.itemsList) { if (items2.itemName == sell.sellByName) { sell.sell = items2; break; } } } foreach (NPCShopTrade trade in tradeList) { foreach (Item items3 in StartOfRound.Instance.allItemsList.itemsList) { if (items3.itemName == trade.tradeWantByName) { trade.tradeWant = items3; } else if (items3.itemName == trade.tradeGiveByName) { trade.tradeGive = items3; } if ((Object)(object)trade.tradeWant != (Object)null && (Object)(object)trade.tradeGive != (Object)null) { break; } } } foundItems = true; } } [Serializable] public class NPCShopSell { public Item sell; public string sellByName; public float sellMulti = 1f; } [Serializable] public class NPCShopTrade { public Item tradeWant; public string tradeWantByName; public Item tradeGive; public string tradeGiveByName; } [BepInPlugin("MelanieMelicious.NPCAPI", "MelanieMelicious - NPC API", "1.0.3")] public class Plugin : BaseUnityPlugin { private const string GUID = "MelanieMelicious.NPCAPI"; private const string NAME = "MelanieMelicious - NPC API"; private const string VERSION = "1.0.3"; public const string NAMESPACE = "melanienpcapi"; private readonly Harmony harmony = new Harmony("MelanieMelicious.NPCAPI"); internal static ManualLogSource mls; public static AssetBundle bundle; public static Plugin instance; private void Awake() { Type[] types = Assembly.GetExecutingAssembly().GetTypes(); Type[] array = types; foreach (Type type in array) { MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic); MethodInfo[] array2 = methods; foreach (MethodInfo methodInfo in array2) { object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false); if (customAttributes.Length != 0) { methodInfo.Invoke(null, null); } } } instance = this; mls = Logger.CreateLogSource("MelanieMelicious - NPC API"); mls = ((BaseUnityPlugin)this).Logger; string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "melanienpcapi"); bundle = AssetBundle.LoadFromFile(text); harmony.PatchAll(typeof(HarmonyPatches)); } } } namespace __GEN { internal class NetworkVariableSerializationHelper { [RuntimeInitializeOnLoadMethod] internal static void InitializeSerialization() { } } } namespace MelanieMeliciousNPCAPI.NetcodePatcher { [AttributeUsage(AttributeTargets.Module)] internal class NetcodePatchedAssemblyAttribute : Attribute { } }