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 ShadowHat : GrabbableObject
{
public override void Start()
{
((GrabbableObject)this).Start();
((MonoBehaviour)this).StartCoroutine(SetText());
}
public IEnumerator SetText()
{
yield return (object)new WaitForSeconds(2f);
((Component)this).gameObject.GetComponentInChildren<ScanNodeProperties>().subText = "Owned by TheInvertedShadow";
}
[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
{
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());
}
}
public IEnumerator StartEating()
{
if (((NetworkBehaviour)this).IsOwner)
{
SendEatingServerRpc();
}
previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", true);
animator.SetTrigger("Eat");
yield return (object)new WaitForSeconds(0.75f);
eatParticles.Play();
audioSource.PlayOneShot(eatSFX);
yield return (object)new WaitForSeconds(1.2f);
eatParticles.Stop();
cookies--;
SendCookieAmount();
((MonoBehaviour)this).StartCoroutine(healOverTime(previousPlayerHeldBy));
((Component)cookieTransforms[cookies]).gameObject.SetActive(false);
previousPlayerHeldBy.playerBodyAnimator.SetBool("HoldMask", false);
if (cookies <= 0)
{
FinishedEating();
}
else
{
Stop();
}
}
public IEnumerator SendServerEating()
{
animator.SetTrigger("Eat");
yield return (object)new WaitForSeconds(0.25f);
eatParticles.Play();
yield return (object)new WaitForSeconds(0.5f);
eatParticles.Stop();
}
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();
}
public IEnumerator healOverTime(PlayerControllerB player)
{
for (int i = 0; i < healingPerCookie; i++)
{
yield return (object)new WaitForSeconds(1f / healingSpeed);
player.health = (int)Mathf.MoveTowards((float)player.health, 100f, 1f);
HUDManager.Instance.UpdateHealthUI(player.health, false);
}
player.criticallyInjured = false;
HUDManager.Instance.UpdateHealthUI(player.health, false);
}
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
{
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();
}
}
}
public IEnumerator StartEating()
{
yield return (object)new WaitForSeconds(0.5f);
eating = true;
audioSource.PlayOneShot(eatSFX);
}
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();
}
public IEnumerator healOverTime(PlayerControllerB player)
{
player.criticallyInjured = false;
for (int i = 0; i < healingPerBite; i++)
{
yield return (object)new WaitForSeconds(1f / healingSpeed);
player.health = (int)Mathf.MoveTowards((float)player.health, 100f, 1f);
HUDManager.Instance.UpdateHealthUI(player.health, false);
}
player.criticallyInjured = false;
HUDManager.Instance.UpdateHealthUI(player.health, false);
}
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
}
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);
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;
}
public IEnumerator CheckAgent()
{
yield return (object)new WaitForSeconds(0.2f);
agent = ((Component)this).gameObject.AddComponent<NavMeshAgent>();
agent.areaMask = -1;
((Behaviour)agent).enabled = false;
AbleAgent(move: false);
agent.speed = 3.5f;
agent.angularSpeed = 720f;
agent.acceleration = 8f;
agent.stoppingDistance = 0.5f;
agent.autoBraking = true;
agent.autoRepath = true;
agent.height = 1f;
agent.baseOffset = 1.5f;
yield return (object)new WaitForSeconds(0.5f);
bool isinship = isInShip(((Component)this).transform.position);
((Behaviour)agent).enabled = true;
if (isinship)
{
AbleAgent(move: false);
UpdateState(AnimationState.Sitting);
}
else
{
AbleAgent(move: true);
if (isHostOrServer())
{
((MonoBehaviour)this).StartCoroutine(NextMove());
}
}
finishedLoading = true;
}
public IEnumerator NextMove()
{
AbleAgent(move: false);
UpdateState(AnimationState.Idle);
yield return (object)new WaitForSeconds(Random.Range(waitInbetweenMoveCycles.x, waitInbetweenMoveCycles.y));
Vector3 pos = RoundManager.Instance.GetNavMeshPosition(((Component)this).transform.position, RoundManager.Instance.navHit, -1f, -1);
SetRandomDestination();
SendDestinationServerRpc(pos, destination);
}
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);
}
}
public IEnumerator GetIntoShip(float wait)
{
canMove = false;
yield return (object)new WaitForSeconds(wait);
UpdateState(AnimationState.Sitting);
AbleAgent(move: false);
((Component)this).transform.SetParent(StartOfRound.Instance.elevatorTransform, true);
}
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 = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(435443565u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref time, default(ForPrimitives));
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 435443565u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
GetIntoShipClientRpc(time);
}
}
[ClientRpc]
public void GetIntoShipClientRpc(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_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(795301819u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref time, default(ForPrimitives));
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 795301819u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
{
((MonoBehaviour)this).StartCoroutine(GetIntoShip(time));
}
}
}
[ServerRpc]
public void SendAnimationServerRpc(AnimationState animationState)
{
//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 = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1581355396u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<AnimationState>(ref animationState, default(ForEnums));
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1581355396u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
SetAnimationClientRpc(animationState);
}
}
[ClientRpc]
public void SetAnimationClientRpc(AnimationState animationState)
{
//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(1977017807u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<AnimationState>(ref animationState, default(ForEnums));
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1977017807u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !isHostOrServer())
{
UpdateState(animationState);
}
}
}
[ServerRpc]
public void SendAgentMoveServerRpc(bool canMove)
{
//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 = default(ServerRpcParams);
FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3857219060u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref canMove, default(ForPrimitives));
((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3857219060u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
{
SetAgentMoveClientRpc(canMove);
}
}
[ClientRpc]
public void SetAgentMoveClientRpc(bool canMove)
{
//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(1254120907u, val, (RpcDelivery)0);
((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref canMove, default(ForPrimitives));
((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1254120907u, val, (RpcDelivery)0);
}
if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost) && !isHostOrServer() && finishedLoading)
{
AbleAgent(canMove);
}
}
}
protected override void __initializeVariables()
{
((GrabbableObject)this).__initializeVariables();
}
[RuntimeInitializeOnLoadMethod]
internal static void InitializeRPCS_PonyBase()
{
//IL_0011: Unknown result type (might be due to invalid IL or missing references)
//IL_001b: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Expected O, but got Unknown
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Expected O, but got Unknown
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Expected O, but got Unknown
//IL_0098: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Expected O, but got Unknown
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Expected O, but got Unknown
//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
//IL_00d8: Expected O, but got Unknown
NetworkManager.__rpc_func_table.Add(4061055872u, new RpcReceiveHandler(__rpc_handler_4061055872));
NetworkManager.__rpc_func_table.Add(1275489729u, new RpcReceiveHandler(__rpc_handler_1275489729));
NetworkManager.__rpc_func_table.Add(435443565u, new RpcReceiveHandler(__rpc_handler_435443565));
NetworkManager.__rpc_func_table.Add(795301819u, new RpcReceiveHandler(__rpc_handler_795301819));
NetworkManager.__rpc_func_table.Add(1581355396u, new RpcReceiveHandler(__rpc_handler_1581355396));
NetworkManager.__rpc_func_table.Add(1977017807u, new RpcReceiveHandler(__rpc_handler_1977017807));
NetworkManager.__rpc_func_table.Add(3857219060u, new RpcReceiveHandler(__rpc_handler_3857219060));
NetworkManager.__rpc_func_table.Add(1254120907u, new RpcReceiveHandler(__rpc_handler_1254120907));
}
private static void __rpc_handler_4061055872(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_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: 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_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
{
Vector3 position = default(Vector3);
((FastBufferReader)(ref reader)).ReadValueSafe(ref position);
Vector3 val = default(Vector3);
((FastBufferReader)(ref reader)).ReadValueSafe(ref val);
target.__rpc_exec_stage = (__RpcExecStage)1;
((PonyBase)(object)target).SendDestinationServerRpc(position, val);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1275489729(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
{
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0061: Unknown result type (might be due to invalid IL or missing references)
NetworkManager networkManager = target.NetworkManager;
if (networkManager != null && networkManager.IsListening)
{
Vector3 position = default(Vector3);
((FastBufferReader)(ref reader)).ReadValueSafe(ref position);
Vector3 dest = default(Vector3);
((FastBufferReader)(ref reader)).ReadValueSafe(ref dest);
target.__rpc_exec_stage = (__RpcExecStage)2;
((PonyBase)(object)target).SetDestinationClientRpc(position, dest);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_435443565(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_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_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
{
float time = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref time, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)1;
((PonyBase)(object)target).GetIntoShipServerRpc(time);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_795301819(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)
{
float time = default(float);
((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref time, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)2;
((PonyBase)(object)target).GetIntoShipClientRpc(time);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1581355396(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_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_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
{
AnimationState animationState = default(AnimationState);
((FastBufferReader)(ref reader)).ReadValueSafe<AnimationState>(ref animationState, default(ForEnums));
target.__rpc_exec_stage = (__RpcExecStage)1;
((PonyBase)(object)target).SendAnimationServerRpc(animationState);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1977017807(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)
{
AnimationState animationClientRpc = default(AnimationState);
((FastBufferReader)(ref reader)).ReadValueSafe<AnimationState>(ref animationClientRpc, default(ForEnums));
target.__rpc_exec_stage = (__RpcExecStage)2;
((PonyBase)(object)target).SetAnimationClientRpc(animationClientRpc);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_3857219060(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_007c: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
//IL_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
{
bool flag = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)1;
((PonyBase)(object)target).SendAgentMoveServerRpc(flag);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
private static void __rpc_handler_1254120907(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 agentMoveClientRpc = default(bool);
((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref agentMoveClientRpc, default(ForPrimitives));
target.__rpc_exec_stage = (__RpcExecStage)2;
((PonyBase)(object)target).SetAgentMoveClientRpc(agentMoveClientRpc);
target.__rpc_exec_stage = (__RpcExecStage)0;
}
}
protected internal override string __getTypeName()
{
return "PonyBase";
}
}
[BepInPlugin("Mellowdy.CuteaMod_Comission", "CuteaMod_Comission", "1.0.0")]
public class CuteaMod : BaseUnityPlugin
{
private const string modName = "CuteaMod_Comission";
private const string modGUID = "Mellowdy.CuteaMod_Comission";
private const string modVersion = "1.0.0";
private readonly Harmony harmony = new Harmony("Mellowdy.CuteaMod_Comission");
public static ManualLogSource mls;
private static CuteaMod instance;
public static string assetName = "cutea.lc";
public static AssetBundle assets;
public static bool runonce = false;
public const bool debug = false;
private void Awake()
{
if (!runonce)
{
RunNetcodePatcher();
}
if ((Object)(object)instance == (Object)null)
{
instance = this;
}
mls = Logger.CreateLogSource("Mellowdy.CuteaMod_Comission");
string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string text = Path.Combine(directoryName, assetName).Replace("\\", "/");
assets = AssetBundle.LoadFromFile(text);
LevelRarity levelRarity = new LevelRarity(15);
levelRarity.Experimentation = 0;
LoadItem("Cutea", levelRarity);
LoadItem("Ellie", levelRarity);
LoadItem("StormStar", levelRarity);
PonyBase.squeak = CuteaMod.LoadAsset<AudioClip>("Squeak.wav");
levelRarity = new LevelRarity(0);
levelRarity.SetDesertMoons(0);
levelRarity.SetForestMoons(40);
levelRarity.SetWinterMoons(20);
levelRarity.Modded = 15;
LoadGrabbableObject("Mango", levelRarity, typeof(Mango));
Mango.eatSFX = CuteaMod.LoadAsset<AudioClip>("Eat.wav");
Mango.finishedSFX = CuteaMod.LoadAsset<AudioClip>("FinishEating.wav");
levelRarity = new LevelRarity(35);
LoadGrabbableObject("CookieJar", levelRarity, typeof(CookieJar));
CookieJar.eatSFX = Mango.eatSFX;
levelRarity = new LevelRarity();
LoadGrabbableObject("ShadowHat", levelRarity, typeof(ShadowHat));
harmony.PatchAll();
mls.LogInfo((object)"CuteaMod_Comission has been loaded");
}
public static Item LoadGrabbableObject(string name, LevelRarity rarity, Type componentType)
{
//IL_0019: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Expected O, but got Unknown
GameObject val = CuteaMod.LoadAsset<GameObject>(name + ".prefab");
GrabbableObject val2 = (GrabbableObject)val.AddComponent(componentType);
val2.grabbable = true;
val2.itemProperties = CuteaMod.LoadAsset<Item>(name + ".asset");
NetworkPrefabs.RegisterNetworkPrefab(val);
SetItemRarity(val2.itemProperties, rarity);
return val2.itemProperties;
}
public void RunNetcodePatcher()
{
runonce = true;
Type[] types = Assembly.GetExecutingAssembly().GetTypes();
Type[] array = types;
foreach (Type type in array)
{
MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
MethodInfo[] array2 = methods;
foreach (MethodInfo methodInfo in array2)
{
object[] customAttributes = methodInfo.GetCustomAttributes(typeof(RuntimeInitializeOnLoadMethodAttribute), inherit: false);
if (customAttributes.Length != 0)
{
methodInfo.Invoke(null, null);
}
}
}
}
public static T LoadAsset<T>(string name) where T : Object
{
return assets.LoadAsset<T>(name);
}
public static void LoadItem(string name, LevelRarity rarity)
{
GameObject val = CuteaMod.LoadAsset<GameObject>(name + "Prefab.prefab");
PonyBase ponyBase = val.AddComponent<PonyBase>();
((GrabbableObject)ponyBase).itemProperties = CuteaMod.LoadAsset<Item>(name + "Item.asset");
((GrabbableObject)ponyBase).itemProperties.spawnPrefab = val;
((GrabbableObject)ponyBase).grabbable = true;
((GrabbableObject)ponyBase).grabbableToEnemies = true;
NetworkPrefabs.RegisterNetworkPrefab(val);
SetItemRarity(((GrabbableObject)ponyBase).itemProperties, rarity);
}
public static void SetItemRarity(Item item, LevelRarity rarity)
{
Items.RegisterScrap(item, rarity.Experimentation, (LevelTypes)4);
Items.RegisterScrap(item, rarity.Assurance, (LevelTypes)8);
Items.RegisterScrap(item, rarity.Vow, (LevelTypes)16);
Items.RegisterScrap(item, rarity.Offense, (LevelTypes)32);
Items.RegisterScrap(item, rarity.March, (LevelTypes)64);
Items.RegisterScrap(item, rarity.Adamance, (LevelTypes)2048);
Items.RegisterScrap(item, rarity.Embrion, (LevelTypes)8192);
Items.RegisterScrap(item, rarity.Dine, (LevelTypes)256);
Items.RegisterScrap(item, rarity.Rend, (LevelTypes)128);
Items.RegisterScrap(item, rarity.Titan, (LevelTypes)512);
Items.RegisterScrap(item, rarity.Artifice, (LevelTypes)4096);
Items.RegisterScrap(item, rarity.Modded, (LevelTypes)1024);
}
}
public class LevelRarity
{
public int Experimentation;
public int Assurance;
public int Vow;
public int Offense;
public int March;
public int Adamance;
public int Embrion;
public int Dine;
public int Rend;
public int Titan;
public int Artifice;
public int Modded;
public LevelRarity(int baseRarity = 1)
{
bool flag = false;
Experimentation = baseRarity;
Assurance = baseRarity;
Vow = baseRarity;
Offense = baseRarity;
March = baseRarity;
Adamance = baseRarity;
Embrion = baseRarity;
Dine = baseRarity;
Rend = baseRarity;
Titan = baseRarity;
Artifice = baseRarity;
Modded = baseRarity;
}
public void SetEasyMoons(int rarity)
{
Experimentation = rarity;
Assurance = rarity;
Vow = rarity;
}
public void SetMediumMoons(int rarity)
{
Offense = rarity;
March = rarity;
Adamance = rarity;
}
public void SetHardMoons(int rarity)
{
Embrion = rarity;
Dine = rarity;
Rend = rarity;
Titan = rarity;
Artifice = rarity;
}
public void SetDesertMoons(int rarity)
{
Experimentation = rarity;
Embrion = rarity;
Assurance = rarity;
Offense = rarity;
}
public void SetForestMoons(int rarity)
{
Artifice = rarity;
Vow = rarity;
March = rarity;
}
public void SetWinterMoons(int rarity)
{
Dine = rarity;
Rend = rarity;
Titan = rarity;
}
}
namespace LC_Cutea.NetcodePatcher;
[AttributeUsage(AttributeTargets.Module)]
internal class NetcodePatchedAssemblyAttribute : Attribute
{
}