Decompiled source of LethalChaos v1.2.1
LC_Cutea.dll
Decompiled a week ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using LC_Cutea.NetcodePatcher; using LethalLib.Modules; using Unity.Netcode; using UnityEngine; using UnityEngine.AI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("LC_Cutea")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("LC_Cutea")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b305ba02-86ae-4d0f-bc13-3439417618b3")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] [module: NetcodePatchedAssembly] internal class <Module> { static <Module>() { } } public class DrinkCan : GrabbableObject { [CompilerGenerated] private sealed class <OpenBottle>d__34 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public DrinkCan <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <OpenBottle>d__34(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Expected O, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.audio.PlayOneShot(openingSFX); <>4__this.animator.Play("PopOff"); <>4__this.beenOpened = true; <>4__this.particleSystem.Stop(); <>2__current = (object)new WaitForEndOfFrame(); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.particleSystem.Play(); <>2__current = (object)new WaitForSeconds(1f); <>1__state = 2; return true; case 2: <>1__state = -1; <>4__this.bottleCap.SetActive(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 <RequestData>d__18 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public DrinkCan <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <RequestData>d__18(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(5f); <>1__state = 1; return true; case 1: <>1__state = -1; if (!<>4__this.loaded) { <>4__this.RequestFillDataServerRpc(); } 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 <StartDrink>d__24 : IEnumerator<WaitForSeconds>, IDisposable, IEnumerator { private int <>1__state; private WaitForSeconds <>2__current; public DrinkCan <>4__this; WaitForSeconds IEnumerator<WaitForSeconds>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <StartDrink>d__24(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.animator.SetBool("IsDrinking", true); <>2__current = new WaitForSeconds(<>4__this.timeToStart); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.drinking = true; <>4__this.audio.PlayOneShot(drinkingSFX, 0.75f); 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 bool drinking = false; public float fill = 1f; public float duration = 20f; public float timeToDrink = 2f; public float timeToStart = 0.75f; public AudioSource audio; public Animator animator; public ParticleSystem particleSystem; public Coroutine DrinkCoroutine; public PlayerControllerB previousPlayerHeldBy; public GameObject bottleCap; public const string playerDrinkAnimation = "HoldMask"; public static AudioClip drinkingSFX; public static AudioClip openingSFX; public static AudioClip finishSFX; public bool beenOpened = false; public bool loaded = false; public override void Start() { ((GrabbableObject)this).Start(); audio = ((Component)this).GetComponent<AudioSource>(); animator = ((Component)this).GetComponent<Animator>(); particleSystem = ((Component)this).GetComponentInChildren<ParticleSystem>(); bottleCap = ((Component)((Component)this).transform.Find("BottleMesh/CapMesh")).gameObject; if (!((NetworkBehaviour)this).IsServer) { ((MonoBehaviour)this).StartCoroutine(RequestData()); } } [IteratorStateMachine(typeof(<RequestData>d__18))] public IEnumerator RequestData() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <RequestData>d__18(0) { <>4__this = this }; } public override void ItemActivate(bool used, bool buttonDown = true) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).ItemActivate(used, buttonDown); if (buttonDown) { if (!beenOpened) { RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 15f, 1.5f, 0, base.isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0); OpenBottleServerRpc(); ((MonoBehaviour)this).StartCoroutine(OpenBottle()); beenOpened = true; return; } base.isBeingUsed = true; if (fill <= 0f) { previousPlayerHeldBy.playerBodyAnimator.SetTrigger("shakeItem"); return; } previousPlayerHeldBy.activatingItem = true; previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", true); previousPlayerHeldBy = base.playerHeldBy; DrinkCoroutine = ((MonoBehaviour)this).StartCoroutine((IEnumerator)StartDrink()); } else { base.isBeingUsed = false; if (DrinkCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(DrinkCoroutine); } Stop(); } } public override void Update() { //IL_00dd: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).Update(); if (!base.isHeld || !((Object)(object)base.playerHeldBy == (Object)(object)StartOfRound.Instance.localPlayerController)) { return; } if (drinking) { if ((Object)(object)previousPlayerHeldBy == (Object)null || !base.isHeld || fill <= 0f) { Stop(); base.itemUsedUp = true; } fill -= Time.deltaTime / timeToDrink; DoDrinkEffectOvertime(Time.deltaTime / timeToDrink); } if (fill <= 0f) { DoDrinkEffect(); audio.PlayOneShot(finishSFX); RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 15f, 1.5f, 0, base.isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0); ((GrabbableObject)this).DestroyObjectInHand(previousPlayerHeldBy); ((Behaviour)this).enabled = false; } } public void DoDrinkEffectOvertime(float deltatime) { } public void DoDrinkEffect() { Effects.HealPlayer(previousPlayerHeldBy, 100); Effects.ApplyDrinkEffect(previousPlayerHeldBy); } public void ChangeItem(Item to) { if ((Object)(object)base.itemProperties != (Object)(object)to) { base.itemProperties = to; } } [IteratorStateMachine(typeof(<StartDrink>d__24))] private IEnumerator<WaitForSeconds> StartDrink() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <StartDrink>d__24(0) { <>4__this = this }; } public override void EquipItem() { ((GrabbableObject)this).EquipItem(); if ((Object)(object)base.playerHeldBy != (Object)null) { previousPlayerHeldBy = base.playerHeldBy; } } public override void DiscardItem() { if (DrinkCoroutine != null) { ((MonoBehaviour)this).StopCoroutine(DrinkCoroutine); } Stop(); SendFillServerRpc(fill, beenOpened); if ((Object)(object)previousPlayerHeldBy != (Object)null) { previousPlayerHeldBy.activatingItem = false; } ((GrabbableObject)this).DiscardItem(); } public void Stop() { drinking = false; previousPlayerHeldBy.activatingItem = false; audio.Stop(); base.playerHeldBy.playerBodyAnimator.ResetTrigger("shakeItem"); previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", false); } [ServerRpc(RequireOwnership = false)] public void SendFillServerRpc(float fill, bool opened) { //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) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2325525434u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref fill, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref opened, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2325525434u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SendFillClientRpc(fill, opened); } } } [ClientRpc] public void SendFillClientRpc(float Fill, bool opened) { //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) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3478490468u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref Fill, default(ForPrimitives)); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref opened, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3478490468u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { loaded = true; fill = Fill; beenOpened = opened; if (fill <= 0f) { base.itemUsedUp = true; } } } [ServerRpc(RequireOwnership = false)] public void RequestFillDataServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2198512995u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2198512995u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { RequestFillDataClientRpc(); } } } [ClientRpc] public void RequestFillDataClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(982176427u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 982176427u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkBehaviour)this).IsServer) { SendFillServerRpc(fill, beenOpened); } } } [ServerRpc] public void OpenBottleServerRpc() { //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_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)((NetworkBehaviour)this).__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(309127621u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 309127621u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { OpenBottleClientRpc(); } } [ClientRpc] public void OpenBottleClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3348258258u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3348258258u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsOwner) { ((MonoBehaviour)this).StartCoroutine(OpenBottle()); } } } [IteratorStateMachine(typeof(<OpenBottle>d__34))] public IEnumerator OpenBottle() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <OpenBottle>d__34(0) { <>4__this = this }; } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_DrinkCan() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(2325525434u, new RpcReceiveHandler(__rpc_handler_2325525434)); NetworkManager.__rpc_func_table.Add(3478490468u, new RpcReceiveHandler(__rpc_handler_3478490468)); NetworkManager.__rpc_func_table.Add(2198512995u, new RpcReceiveHandler(__rpc_handler_2198512995)); NetworkManager.__rpc_func_table.Add(982176427u, new RpcReceiveHandler(__rpc_handler_982176427)); NetworkManager.__rpc_func_table.Add(309127621u, new RpcReceiveHandler(__rpc_handler_309127621)); NetworkManager.__rpc_func_table.Add(3348258258u, new RpcReceiveHandler(__rpc_handler_3348258258)); } private static void __rpc_handler_2325525434(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_007d: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float num = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives)); bool opened = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref opened, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((DrinkCan)(object)target).SendFillServerRpc(num, opened); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3478490468(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_007d: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { float num = default(float); ((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref num, default(ForPrimitives)); bool opened = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref opened, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((DrinkCan)(object)target).SendFillClientRpc(num, opened); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2198512995(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; ((DrinkCan)(object)target).RequestFillDataServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_982176427(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((DrinkCan)(object)target).RequestFillDataClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_309127621(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; ((DrinkCan)(object)target).OpenBottleServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3348258258(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((DrinkCan)(object)target).OpenBottleClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "DrinkCan"; } } public static class Effects { [CompilerGenerated] private sealed class <ApplyDeafness>d__5 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; private float <normal>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyDeafness>d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; HUDManager.Instance.DisplayTip("Warning", "Deafness inbound.", true, false, "LC_Tip1"); <>2__current = (object)new WaitForSeconds(3f); <>1__state = 1; return true; case 1: <>1__state = -1; <normal>5__1 = AudioListener.volume; AudioListener.volume = 0f; <>2__current = (object)new WaitForSeconds(Random.Range(16f, 32f)); <>1__state = 2; return true; case 2: <>1__state = -1; AudioListener.volume = <normal>5__1; 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 <ApplyGhost>d__6 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyGhost>d__6(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; HUDManager.Instance.DisplayTip("Warning", "Hallucinations inbound.", true, false, "LC_Tip1"); <>2__current = (object)new WaitForSeconds(3f); <>1__state = 1; return true; case 1: <>1__state = -1; player.insanityLevel = player.maxInsanityLevel; 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 <ApplyHydrophobia>d__8 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; private float <duration>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyHydrophobia>d__8(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown //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) switch (<>1__state) { default: return false; case 0: <>1__state = -1; HUDManager.Instance.DisplayTip("Warning", "Hydrophobia inbound. (Don't drink and swim folks)", true, false, "LC_Tip1"); <>2__current = (object)new WaitForSeconds(3f); <>1__state = 1; return true; case 1: <>1__state = -1; <duration>5__1 = 0f; break; case 2: <>1__state = -1; break; } if (<duration>5__1 < 60f) { if (player.isUnderwater) { player.DamagePlayer(1, false, true, (CauseOfDeath)0, 0, false, default(Vector3)); } <duration>5__1 += Time.deltaTime; <>2__current = (object)new WaitForFixedUpdate(); <>1__state = 2; 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(); } } [CompilerGenerated] private sealed class <ApplyPoison>d__9 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyPoison>d__9(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; HUDManager.Instance.DisplayTip("Warning", "Abnormally high alcohol blood content. Death is iminant.", true, false, "LC_Tip1"); <>2__current = (object)new WaitForSeconds(5f); <>1__state = 1; return true; case 1: <>1__state = -1; player.DamagePlayer(9999, true, true, (CauseOfDeath)8, 1, false, Vector3.up); 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 <ApplyVision>d__7 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyVision>d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; HUDManager.Instance.DisplayTip("Warning", "Blurred vision inbound.", true, false, "LC_Tip1"); <>2__current = (object)new WaitForSeconds(3f); <>1__state = 1; return true; case 1: { <>1__state = -1; PlayerControllerB obj = player; obj.drunkness += 0.33f; 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 static float drank; public const float timeBetweenDrinks = 200f; public static float timeSinceLastDrink; private static EnemyType _ghostGirl; public static void ApplyDrinkEffect(PlayerControllerB player) { float num = Time.time - timeSinceLastDrink; drank -= num; drank = Mathf.Clamp(drank, 0f, 800f); drank += 200f; drank = Mathf.Clamp(drank, 0f, 800f); timeSinceLastDrink = Time.time; if (drank >= 500f) { drank = 0f; ((MonoBehaviour)player).StartCoroutine(ApplyPoison(player)); return; } switch (Random.Range(0, 4)) { case 0: ((MonoBehaviour)player).StartCoroutine(ApplyGhost(player)); break; case 1: ((MonoBehaviour)player).StartCoroutine(ApplyHydrophobia(player)); break; case 2: ((MonoBehaviour)player).StartCoroutine(ApplyVision(player)); break; case 3: ((MonoBehaviour)player).StartCoroutine(ApplyDeafness()); break; } } public static void HealPlayer(PlayerControllerB player, int amount) { player.health = Mathf.Clamp(player.health + amount, 0, 100); HUDManager.Instance.UpdateHealthUI(player.health, false); } [IteratorStateMachine(typeof(<ApplyDeafness>d__5))] public static IEnumerator ApplyDeafness() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyDeafness>d__5(0); } [IteratorStateMachine(typeof(<ApplyGhost>d__6))] public static IEnumerator ApplyGhost(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyGhost>d__6(0) { player = player }; } [IteratorStateMachine(typeof(<ApplyVision>d__7))] public static IEnumerator ApplyVision(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyVision>d__7(0) { player = player }; } [IteratorStateMachine(typeof(<ApplyHydrophobia>d__8))] public static IEnumerator ApplyHydrophobia(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyHydrophobia>d__8(0) { player = player }; } [IteratorStateMachine(typeof(<ApplyPoison>d__9))] public static IEnumerator ApplyPoison(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyPoison>d__9(0) { player = player }; } [HarmonyPatch(typeof(StartOfRound), "Awake")] [HarmonyPostfix] private static EnemyType GetGhostGirl() { if ((Object)(object)_ghostGirl != (Object)null) { return _ghostGirl; } SelectableLevel[] levels = StartOfRound.Instance.levels; SelectableLevel[] array = levels; foreach (SelectableLevel val in array) { foreach (SpawnableEnemyWithRarity enemy in val.Enemies) { CuteaMod.mls.LogMessage((object)("Enemy Name: '" + ((Object)enemy.enemyType).name + "'")); if (!(((Object)enemy.enemyType).name == "DressGirl")) { continue; } _ghostGirl = enemy.enemyType; return _ghostGirl; } } return null; } [HarmonyPatch("DespawnPropsAtEndOfRound")] [HarmonyPostfix] public static void NewDay() { drank = 0f; timeSinceLastDrink = 0f; } } public class ShadowHat : GrabbableObject { [CompilerGenerated] private sealed class <SetText>d__1 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public ShadowHat <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <SetText>d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(2f); <>1__state = 1; return true; case 1: <>1__state = -1; ((Component)<>4__this).gameObject.GetComponentInChildren<ScanNodeProperties>().subText = "Owned by TheInvertedShadow"; 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 override void Start() { ((GrabbableObject)this).Start(); ((MonoBehaviour)this).StartCoroutine(SetText()); } [IteratorStateMachine(typeof(<SetText>d__1))] public IEnumerator SetText() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <SetText>d__1(0) { <>4__this = this }; } [HarmonyPatch(typeof(ShadowHat), "SetScrapValue")] [HarmonyPostfix] public static void SetScrapValuePatch(ShadowHat __instance) { ((Component)__instance).GetComponentInChildren<ScanNodeProperties>().subText = "Owned by TheInvertedShadow"; } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } protected internal override string __getTypeName() { return "ShadowHat"; } } public class CookieJar : GrabbableObject { [CompilerGenerated] private sealed class <SendServerEating>d__15 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public CookieJar <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <SendServerEating>d__15(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.animator.SetTrigger("Eat"); <>2__current = (object)new WaitForSeconds(0.25f); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.eatParticles.Play(); <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 2; return true; case 2: <>1__state = -1; <>4__this.eatParticles.Stop(); 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 <StartEating>d__14 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public CookieJar <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <StartEating>d__14(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; if (((NetworkBehaviour)<>4__this).IsOwner) { <>4__this.SendEatingServerRpc(); } <>4__this.previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", true); <>4__this.animator.SetTrigger("Eat"); <>2__current = (object)new WaitForSeconds(0.75f); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.eatParticles.Play(); <>4__this.audioSource.PlayOneShot(eatSFX); <>2__current = (object)new WaitForSeconds(1.2f); <>1__state = 2; return true; case 2: <>1__state = -1; <>4__this.eatParticles.Stop(); <>4__this.cookies--; <>4__this.SendCookieAmount(); ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.healOverTime(<>4__this.previousPlayerHeldBy)); ((Component)<>4__this.cookieTransforms[<>4__this.cookies]).gameObject.SetActive(false); <>4__this.previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", false); if (<>4__this.cookies <= 0) { <>4__this.FinishedEating(); } else { <>4__this.Stop(); } 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 <healOverTime>d__20 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; public CookieJar <>4__this; private int <i>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <healOverTime>d__20(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <i>5__1 = 0; break; case 1: <>1__state = -1; player.health = (int)Mathf.MoveTowards((float)player.health, 100f, 1f); HUDManager.Instance.UpdateHealthUI(player.health, false); <i>5__1++; break; } if (<i>5__1 < <>4__this.healingPerCookie) { <>2__current = (object)new WaitForSeconds(1f / <>4__this.healingSpeed); <>1__state = 1; return true; } player.criticallyInjured = false; HUDManager.Instance.UpdateHealthUI(player.health, 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(); } } private bool fullyEaten = false; public int cookies = 5; public Transform[] cookieTransforms; private int healingPerCookie = 20; private float healingSpeed = 20f; public static AudioClip eatSFX; private Transform cookieContainer; public ParticleSystem eatParticles; private AudioSource audioSource; private Animator animator; private const string eatAnimation = "HoldMask"; private PlayerControllerB previousPlayerHeldBy; public override void Start() { ((GrabbableObject)this).Start(); animator = ((Component)this).GetComponent<Animator>(); audioSource = ((Component)this).gameObject.GetComponent<AudioSource>(); eatParticles = ((Component)this).GetComponentInChildren<ParticleSystem>(); cookieContainer = ((Component)this).transform.Find("JarMesh/Cookies"); List<Transform> list = new List<Transform>(); foreach (Transform item in ((Component)cookieContainer).GetComponentsInChildren<Transform>().ToList()) { if (((Object)item).name.Contains("Cookie") && (Object)(object)item != (Object)(object)cookieContainer) { list.Add(item); } } list.Reverse(); cookieTransforms = list.ToArray(); base.useCooldown = 0.3f; if (!((NetworkBehaviour)this).IsServer) { RequestStateServerRpc(); } } public override void ItemActivate(bool used, bool buttonDown = true) { ((GrabbableObject)this).ItemActivate(used, buttonDown); if (fullyEaten) { previousPlayerHeldBy.playerBodyAnimator.SetTrigger("shakeItem"); } else if (buttonDown) { base.isBeingUsed = true; previousPlayerHeldBy.activatingItem = true; ((MonoBehaviour)this).StartCoroutine(StartEating()); } } [IteratorStateMachine(typeof(<StartEating>d__14))] public IEnumerator StartEating() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <StartEating>d__14(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<SendServerEating>d__15))] public IEnumerator SendServerEating() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <SendServerEating>d__15(0) { <>4__this = this }; } public override void GrabItem() { ((GrabbableObject)this).GrabItem(); previousPlayerHeldBy = base.playerHeldBy; } public override void DiscardItem() { ((GrabbableObject)this).DiscardItem(); SendCookieAmount(); Stop(); } public void SendCookieAmount() { if (((NetworkBehaviour)this).IsOwner) { SendCookieServerRpc(cookies); } } public void FinishedEating() { fullyEaten = true; Stop(); } [IteratorStateMachine(typeof(<healOverTime>d__20))] public IEnumerator healOverTime(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <healOverTime>d__20(0) { <>4__this = this, player = player }; } public void Stop() { if ((Object)(object)previousPlayerHeldBy != (Object)null) { base.isBeingUsed = false; previousPlayerHeldBy.activatingItem = false; previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", false); } } [ServerRpc(RequireOwnership = false)] public void SendCookieServerRpc(int cookies) { //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) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1698813393u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, cookies); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1698813393u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SendCookieClientRpc(cookies); } } } [ClientRpc] public void SendCookieClientRpc(int amount) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager == null || !networkManager.IsListening) { return; } if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(222697835u, val, (RpcDelivery)0); BytePacker.WriteValueBitPacked(val2, amount); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 222697835u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost)) { cookies = amount; for (int i = 0; i < cookieTransforms.Length; i++) { ((Component)cookieTransforms[i]).gameObject.SetActive(cookies > i); } if (cookies <= 0) { fullyEaten = true; } } } [ServerRpc(RequireOwnership = false)] public void RequestStateServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4282543262u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4282543262u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { RequestStateClientRpc(); } } } [ClientRpc] public void RequestStateClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3414504546u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3414504546u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkBehaviour)this).IsServer) { SendCookieServerRpc(cookies); } } } [ServerRpc(RequireOwnership = true)] public void SendEatingServerRpc() { //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_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)((NetworkBehaviour)this).__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(2300776769u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2300776769u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SendEatingClientRpc(); } } [ClientRpc] public void SendEatingClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1122607531u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1122607531u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !((NetworkBehaviour)this).IsOwner) { ((MonoBehaviour)this).StartCoroutine(SendServerEating()); } } } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_CookieJar() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(1698813393u, new RpcReceiveHandler(__rpc_handler_1698813393)); NetworkManager.__rpc_func_table.Add(222697835u, new RpcReceiveHandler(__rpc_handler_222697835)); NetworkManager.__rpc_func_table.Add(4282543262u, new RpcReceiveHandler(__rpc_handler_4282543262)); NetworkManager.__rpc_func_table.Add(3414504546u, new RpcReceiveHandler(__rpc_handler_3414504546)); NetworkManager.__rpc_func_table.Add(2300776769u, new RpcReceiveHandler(__rpc_handler_2300776769)); NetworkManager.__rpc_func_table.Add(1122607531u, new RpcReceiveHandler(__rpc_handler_1122607531)); } private static void __rpc_handler_1698813393(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 num = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref num); target.__rpc_exec_stage = (__RpcExecStage)1; ((CookieJar)(object)target).SendCookieServerRpc(num); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_222697835(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 amount = default(int); ByteUnpacker.ReadValueBitPacked(reader, ref amount); target.__rpc_exec_stage = (__RpcExecStage)2; ((CookieJar)(object)target).SendCookieClientRpc(amount); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_4282543262(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; ((CookieJar)(object)target).RequestStateServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_3414504546(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((CookieJar)(object)target).RequestStateClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2300776769(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; ((CookieJar)(object)target).SendEatingServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1122607531(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((CookieJar)(object)target).SendEatingClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "CookieJar"; } } public class Mango : GrabbableObject { [CompilerGenerated] private sealed class <StartEating>d__17 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public Mango <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <StartEating>d__17(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.eating = true; <>4__this.audioSource.PlayOneShot(eatSFX); 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 <healOverTime>d__23 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PlayerControllerB player; public Mango <>4__this; private int <i>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <healOverTime>d__23(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; player.criticallyInjured = false; <i>5__1 = 0; break; case 1: <>1__state = -1; player.health = (int)Mathf.MoveTowards((float)player.health, 100f, 1f); HUDManager.Instance.UpdateHealthUI(player.health, false); <i>5__1++; break; } if (<i>5__1 < <>4__this.healingPerBite) { <>2__current = (object)new WaitForSeconds(1f / <>4__this.healingSpeed); <>1__state = 1; return true; } player.criticallyInjured = false; HUDManager.Instance.UpdateHealthUI(player.health, 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(); } } public float eat = 0f; private float eatSpeed = 1f; private int healingPerBite = 200; private float healingSpeed = 20f; private int fullyEatenValue = 8; private bool fullyEaten = false; private bool eating = false; private Coroutine startEating; public static AudioClip finishedSFX; public static AudioClip eatSFX; private AudioSource audioSource; private PlayerControllerB previousPlayerHeldBy; private Material shader; private MeshFilter mesh; public override void Start() { ((GrabbableObject)this).Start(); shader = ((Renderer)((Component)this).gameObject.GetComponent<MeshRenderer>()).material; mesh = ((Component)this).GetComponent<MeshFilter>(); audioSource = ((Component)this).gameObject.GetComponent<AudioSource>(); if (!((NetworkBehaviour)this).IsServer) { RequestStateServerRpc(); } } public override void Update() { ((GrabbableObject)this).Update(); if (eating) { if ((Object)(object)previousPlayerHeldBy == (Object)null || !base.isHeld || eat >= 1f) { eating = false; } float oldValue = eat; eat = Mathf.MoveTowards(eat, 1f, Time.deltaTime / eatSpeed); UpdateShader(oldValue); } } public override void ItemActivate(bool used, bool buttonDown = true) { ((GrabbableObject)this).ItemActivate(used, buttonDown); if (!fullyEaten) { if (buttonDown) { base.isBeingUsed = true; previousPlayerHeldBy.activatingItem = true; previousPlayerHeldBy.playerBodyAnimator.SetBool("useTZPItem", true); startEating = ((MonoBehaviour)this).StartCoroutine(StartEating()); } else { base.isBeingUsed = false; Stop(); } } } [IteratorStateMachine(typeof(<StartEating>d__17))] public IEnumerator StartEating() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <StartEating>d__17(0) { <>4__this = this }; } public override void GrabItem() { ((GrabbableObject)this).GrabItem(); previousPlayerHeldBy = base.playerHeldBy; } public override void DiscardItem() { ((GrabbableObject)this).DiscardItem(); SendEat(); Stop(); } public void SendEat() { if (((NetworkBehaviour)this).IsOwner) { SendEatServerRpc(fullyEaten); } } public void UpdateShader(float oldValue) { if (!fullyEaten) { shader.SetFloat("_Eat", eat); if (((NetworkBehaviour)this).IsOwner && Mathf.Floor(eat) != Mathf.Floor(oldValue)) { Stop(); ((MonoBehaviour)this).StartCoroutine(healOverTime(previousPlayerHeldBy)); FinishedEating(); SendEat(); } } } public void FinishedEating() { fullyEaten = true; audioSource.PlayOneShot(finishedSFX); mesh.mesh = null; ((GrabbableObject)this).SetScrapValue(fullyEatenValue); Stop(); } [IteratorStateMachine(typeof(<healOverTime>d__23))] public IEnumerator healOverTime(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <healOverTime>d__23(0) { <>4__this = this, player = player }; } public void Stop() { if (startEating != null) { ((MonoBehaviour)this).StopCoroutine(startEating); } eating = false; if ((Object)(object)previousPlayerHeldBy != (Object)null) { previousPlayerHeldBy.activatingItem = false; previousPlayerHeldBy.playerBodyAnimator.SetBool("useTZPItem", false); } } [ServerRpc(RequireOwnership = false)] public void SendEatServerRpc(bool finished) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4095707459u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref finished, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4095707459u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetEatClientRpc(finished); } } } [ClientRpc] public void SetEatClientRpc(bool finished) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2553325489u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref finished, default(ForPrimitives)); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2553325489u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && finished) { FinishedEating(); } } } [ServerRpc(RequireOwnership = false)] public void RequestStateServerRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost)) { ServerRpcParams val = default(ServerRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(17809223u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 17809223u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { RequestStateClientRpc(); } } } [ClientRpc] public void RequestStateClientRpc() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1997154150u, val, (RpcDelivery)0); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1997154150u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && ((NetworkBehaviour)this).IsServer) { SendEatServerRpc(fullyEaten); } } } protected override void __initializeVariables() { ((GrabbableObject)this).__initializeVariables(); } [RuntimeInitializeOnLoadMethod] internal static void InitializeRPCS_Mango() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown NetworkManager.__rpc_func_table.Add(4095707459u, new RpcReceiveHandler(__rpc_handler_4095707459)); NetworkManager.__rpc_func_table.Add(2553325489u, new RpcReceiveHandler(__rpc_handler_2553325489)); NetworkManager.__rpc_func_table.Add(17809223u, new RpcReceiveHandler(__rpc_handler_17809223)); NetworkManager.__rpc_func_table.Add(1997154150u, new RpcReceiveHandler(__rpc_handler_1997154150)); } private static void __rpc_handler_4095707459(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool finished = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref finished, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)1; ((Mango)(object)target).SendEatServerRpc(finished); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_2553325489(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { bool eatClientRpc = default(bool); ((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref eatClientRpc, default(ForPrimitives)); target.__rpc_exec_stage = (__RpcExecStage)2; ((Mango)(object)target).SetEatClientRpc(eatClientRpc); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_17809223(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; ((Mango)(object)target).RequestStateServerRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } private static void __rpc_handler_1997154150(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = target.NetworkManager; if (networkManager != null && networkManager.IsListening) { target.__rpc_exec_stage = (__RpcExecStage)2; ((Mango)(object)target).RequestStateClientRpc(); target.__rpc_exec_stage = (__RpcExecStage)0; } } protected internal override string __getTypeName() { return "Mango"; } } public class PonyBase : GrabbableObject { public enum AnimationState { Idle, Walking, Sitting, Held } [CompilerGenerated] private sealed class <CheckAgent>d__25 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PonyBase <>4__this; private bool <isinship>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <CheckAgent>d__25(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Expected O, but got Unknown //IL_0174: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(0.2f); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.agent = ((Component)<>4__this).gameObject.AddComponent<NavMeshAgent>(); <>4__this.agent.areaMask = -1; ((Behaviour)<>4__this.agent).enabled = false; <>4__this.AbleAgent(move: false); <>4__this.agent.speed = 3.5f; <>4__this.agent.angularSpeed = 720f; <>4__this.agent.acceleration = 8f; <>4__this.agent.stoppingDistance = 0.5f; <>4__this.agent.autoBraking = true; <>4__this.agent.autoRepath = true; <>4__this.agent.height = 1f; <>4__this.agent.baseOffset = 1.5f; <>2__current = (object)new WaitForSeconds(0.5f); <>1__state = 2; return true; case 2: <>1__state = -1; <isinship>5__1 = <>4__this.isInShip(((Component)<>4__this).transform.position); ((Behaviour)<>4__this.agent).enabled = true; if (<isinship>5__1) { <>4__this.AbleAgent(move: false); <>4__this.UpdateState(AnimationState.Sitting); } else { <>4__this.AbleAgent(move: true); if (<>4__this.isHostOrServer()) { ((MonoBehaviour)<>4__this).StartCoroutine(<>4__this.NextMove()); } } <>4__this.finishedLoading = 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(); } } [CompilerGenerated] private sealed class <GetIntoShip>d__31 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public float wait; public PonyBase <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <GetIntoShip>d__31(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.canMove = false; <>2__current = (object)new WaitForSeconds(wait); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.UpdateState(AnimationState.Sitting); <>4__this.AbleAgent(move: false); ((Component)<>4__this).transform.SetParent(StartOfRound.Instance.elevatorTransform, 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(); } } [CompilerGenerated] private sealed class <NextMove>d__26 : IEnumerator<object>, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public PonyBase <>4__this; private Vector3 <pos>5__1; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <NextMove>d__26(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>4__this.AbleAgent(move: false); <>4__this.UpdateState(AnimationState.Idle); <>2__current = (object)new WaitForSeconds(Random.Range(<>4__this.waitInbetweenMoveCycles.x, <>4__this.waitInbetweenMoveCycles.y)); <>1__state = 1; return true; case 1: <>1__state = -1; <pos>5__1 = RoundManager.Instance.GetNavMeshPosition(((Component)<>4__this).transform.position, RoundManager.Instance.navHit, -1f, -1); <>4__this.SetRandomDestination(); <>4__this.SendDestinationServerRpc(<pos>5__1, <>4__this.destination); 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(); } } private AudioSource audio; public static AudioClip squeak; public float walkDistance = 10f; public float updatePath = 0f; public bool finishedLoading = false; public bool canMove = true; public NavMeshAgent agent; public NavMeshPath navmeshPath; public Vector3 destination; public float speed = 5f; public float moveTime; public Vector2 moveInterval = new Vector2(1f, 6f); public Vector2 waitInbetweenMoveCycles = new Vector2(0.5f, 1f); public int heldType = 1; private bool walking = false; private Animator ani; public static Collider shipCollider; public override void Start() { ((GrabbableObject)this).Start(); base.useCooldown = 0.2f; ani = ((Component)this).GetComponent<Animator>(); ani.SetInteger("HeldType", heldType); audio = ((Component)this).GetComponent<AudioSource>(); ((MonoBehaviour)this).StartCoroutine(CheckAgent()); } public override void ItemActivate(bool used, bool buttonDown = true) { ((GrabbableObject)this).ItemActivate(used, buttonDown); ani.SetTrigger("Squish"); audio.Stop(); audio.PlayOneShot(squeak); } public override void Update() { //IL_002b: 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_00ad: Unknown result type (might be due to invalid IL or missing references) baseUpdateFunction(); if (!finishedLoading) { return; } Animator obj = ani; Vector3 velocity = agent.velocity; obj.SetBool("Walking", ((Vector3)(ref velocity)).magnitude > 0.01f && walking && canMove && !base.isHeld && agent.isOnNavMesh); if (!canMove || base.isHeld || !agent.isOnNavMesh) { return; } if (updatePath <= 0f) { agent.SetDestination(destination); updatePath = 0.2f + Random.Range(0f, 0.1f); } else { updatePath -= Time.deltaTime; } if (isHostOrServer()) { if (moveTime <= 0f) { ((MonoBehaviour)this).StartCoroutine(NextMove()); } moveTime -= Time.deltaTime; } } public void baseUpdateFunction() { //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) if (base.currentUseCooldown >= 0f) { base.currentUseCooldown -= Time.deltaTime; } if (((NetworkBehaviour)this).IsOwner) { if (base.isBeingUsed && base.itemProperties.requiresBattery) { if (base.insertedBattery.charge > 0f) { if (!base.itemProperties.itemIsTrigger) { Battery insertedBattery = base.insertedBattery; insertedBattery.charge -= Time.deltaTime / base.itemProperties.batteryUsage; } } else if (!base.insertedBattery.empty) { base.insertedBattery.empty = true; if (base.isBeingUsed) { Debug.Log((object)"Use up batteries local"); base.isBeingUsed = false; ((GrabbableObject)this).UseUpBatteries(); } } } if (!base.wasOwnerLastFrame) { base.wasOwnerLastFrame = true; } } else if (base.wasOwnerLastFrame) { base.wasOwnerLastFrame = false; } if (base.isHeld || !((Object)(object)base.parentObject == (Object)null)) { return; } if (base.fallTime < 1f) { base.reachedFloorTarget = false; ((GrabbableObject)this).FallWithCurve(); if (((Component)this).transform.localPosition.y - base.targetFloorPosition.y < 0.1f && !base.hasHitGround) { ((GrabbableObject)this).PlayDropSFX(); ((GrabbableObject)this).OnHitGround(); } } else if (!base.reachedFloorTarget) { base.reachedFloorTarget = true; if (base.floorYRot == -1) { ((Component)this).transform.rotation = Quaternion.Euler(base.itemProperties.restingRotation.x, ((Component)this).transform.eulerAngles.y, base.itemProperties.restingRotation.z); } else { ((Component)this).transform.rotation = Quaternion.Euler(base.itemProperties.restingRotation.x, (float)(base.floorYRot + base.itemProperties.floorYOffset) + 90f, base.itemProperties.restingRotation.z); } } } public override void DiscardItem() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) ((GrabbableObject)this).DiscardItem(); bool flag = !isInShip(((Component)this).transform.position) && StartOfRound.Instance.currentLevel.levelID != 0; AbleAgent(move: false); if (flag) { ((MonoBehaviour)this).StartCoroutine(NextMove()); } else { UpdateState(AnimationState.Sitting, ignoreServer: true); } } public override void GrabItem() { ((GrabbableObject)this).GrabItem(); ((MonoBehaviour)this).StopAllCoroutines(); UpdateState(AnimationState.Held, ignoreServer: true); AbleAgent(move: false); } public void UpdateState(AnimationState newState, bool ignoreServer = false) { if (isHostOrServer()) { SendAnimationServerRpc(newState); } ani.SetBool("Sitting", false); ani.SetBool("Walking", false); ani.SetBool("Held", false); walking = false; switch (newState) { case AnimationState.Walking: walking = true; break; case AnimationState.Sitting: ani.SetBool("Sitting", true); break; case AnimationState.Held: ani.SetBool("Held", true); break; case AnimationState.Idle: ani.SetTrigger("Idle"); break; } } public void AbleAgent(bool move) { if (isHostOrServer()) { SendAgentMoveServerRpc(move); } agent.updatePosition = move; agent.updateRotation = move; canMove = move; } [IteratorStateMachine(typeof(<CheckAgent>d__25))] public IEnumerator CheckAgent() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <CheckAgent>d__25(0) { <>4__this = this }; } [IteratorStateMachine(typeof(<NextMove>d__26))] public IEnumerator NextMove() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <NextMove>d__26(0) { <>4__this = this }; } public bool FindPath(Vector3 position) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: 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_001d: 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) destination = RoundManager.Instance.GetNavMeshPosition(position, RoundManager.Instance.navHit, 5f, -1); agent.SetDestination(destination); return true; } public bool isInShip(Vector3 point) { //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_002c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)shipCollider == (Object)null) { shipCollider = StartOfRound.Instance.shipBounds; } Bounds bounds = shipCollider.bounds; return ((Bounds)(ref bounds)).Contains(point); } public void SetRandomDestination() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_0049: Unknown result type (might be due to invalid IL or missing references) for (int num = 5; num > 0; num--) { Vector3 position = ((Component)this).transform.position + Vector2.op_Implicit(Random.insideUnitCircle) * walkDistance; if (FindPath(position)) { break; } } if (isInShip(destination)) { GetIntoShipServerRpc(agent.remainingDistance / agent.speed + 1f); } } [IteratorStateMachine(typeof(<GetIntoShip>d__31))] public IEnumerator GetIntoShip(float wait) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <GetIntoShip>d__31(0) { <>4__this = this, wait = wait }; } public bool isHostOrServer() { return ((NetworkBehaviour)this).IsOwner; } [ServerRpc] public void SendDestinationServerRpc(Vector3 position, Vector3 destination) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Invalid comparison between Unknown and I4 //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_011e: 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_00dc: 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)((NetworkBehaviour)this).__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(4061055872u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref destination); ((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4061055872u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost)) { SetDestinationClientRpc(position, destination); } } [ClientRpc] public void SetDestinationClientRpc(Vector3 position, Vector3 dest) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: 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) //IL_0108: Unknown result type (might be due to invalid IL or missing references) NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager; if (networkManager != null && networkManager.IsListening) { if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost)) { ClientRpcParams val = default(ClientRpcParams); FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(1275489729u, val, (RpcDelivery)0); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref position); ((FastBufferWriter)(ref val2)).WriteValueSafe(ref dest); ((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1275489729u, val, (RpcDelivery)0); } if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && finishedLoading) { destination = dest; agent.Warp(RoundManager.Instance.GetNavMeshPosition(position, RoundManager.Instance.navHit, 3f, -1)); AbleAgent(move: true); UpdateState(AnimationState.Walking, ignoreServer: true); ((Behaviour)agent).enabled = true; moveTime = Random.Range(moveInterval.x, moveInterval.y); } } } [ServerRpc] public void GetIntoShipServerRpc(float time) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Invalid comparison between Unknown and I4 //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Invalid comparison between Unknown and I4 //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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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)((NetworkBehaviour)this).__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 = defa