Decompiled source of WILDCARDStuff v0.11.2

BepInEx/plugins/WildCardMod/LCWildCardMod.dll

Decompiled 2 hours ago
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.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LCWildCardMod.Config;
using LCWildCardMod.Items;
using LCWildCardMod.Items.Fyrus;
using LCWildCardMod.NetcodePatcher;
using LCWildCardMod.Utils;
using LethalCompanyInputUtils.Api;
using LethalLib.Modules;
using Steamworks;
using TMPro;
using Unity.Netcode;
using Unity.Netcode.Components;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: NetcodePatchedAssembly]
internal class <Module>
{
	static <Module>()
	{
	}
}
namespace LCWildCardMod
{
	[BepInPlugin("deB.WildCard", "WILDCARD Stuff", "0.11.2")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class WildCardMod : BaseUnityPlugin
	{
		private const string modGUID = "deB.WildCard";

		private const string modName = "WILDCARD Stuff";

		private const string modVersion = "0.11.2";

		internal static ManualLogSource Log;

		internal static KeyBinds wildcardKeyBinds;

		private static WildCardMod Instance;

		private readonly Harmony harmony = new Harmony("deB.WildCard");

		private readonly string[] declaredAssetPaths = new string[1] { "assets/my creations/scrap items" };

		internal static WildCardConfig ModConfig { get; private set; }

		private void Awake()
		{
			//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
			wildcardKeyBinds = new KeyBinds();
			Log = ((BaseUnityPlugin)this).Logger;
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
			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);
					}
				}
			}
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "wildcardmod"));
			List<Item> list = new List<Item>();
			string[] allAssetNames = val.GetAllAssetNames();
			foreach (string text in allAssetNames)
			{
				if (declaredAssetPaths.Contains(text.Substring(0, text.LastIndexOf("/"))))
				{
					string text2 = text.Substring(0, text.LastIndexOf("/"));
					string text3 = text2;
					if (text3 == "assets/my creations/scrap items")
					{
						list.Add(val.LoadAsset<Item>(text));
					}
				}
				else
				{
					Log.LogWarning((object)("\"" + text + "\" is not a known asset path, skipping."));
				}
			}
			ModConfig = new WildCardConfig(((BaseUnityPlugin)this).Config, list);
			for (int l = 0; l < list.Count; l++)
			{
				if (list[l].spawnPrefab.GetComponent<AdditionalInfo>().isBonus && !ModConfig.assortedScrap.Value)
				{
					Log.LogInfo((object)(list[l].itemName + " was disabled!"));
				}
				else if (ModConfig.isScrapEnabled[l].Value)
				{
					Dictionary<LevelTypes, int> dictionary = new Dictionary<LevelTypes, int>();
					Dictionary<string, int> dictionary2 = new Dictionary<string, int>();
					string[] array3 = ModConfig.scrapSpawnWeights[l].Value.Split(",");
					bool flag = false;
					string[] array4 = array3;
					foreach (string text4 in array4)
					{
						if (text4.Contains(":") && int.TryParse(text4.Split(":")[1], out var _))
						{
							flag = true;
							continue;
						}
						flag = false;
						break;
					}
					if (flag)
					{
						string[] array5 = array3;
						foreach (string text5 in array5)
						{
							if (Enum.TryParse<LevelTypes>(text5.Split(":")[0], out LevelTypes result2))
							{
								dictionary.Add(result2, int.Parse(text5.Split(":")[1]));
							}
							else
							{
								dictionary2.Add(text5, int.Parse(text5.Split(":")[1]));
							}
						}
						NetworkPrefabs.RegisterNetworkPrefab(list[l].spawnPrefab);
						Utilities.FixMixerGroups(list[l].spawnPrefab);
						Items.RegisterScrap(list[l], (Dictionary<LevelTypes, int>)null, dictionary2);
						Items.RegisterScrap(list[l], dictionary, (Dictionary<string, int>)null);
						Log.LogDebug((object)(list[l].itemName + " was loaded!"));
						foreach (KeyValuePair<LevelTypes, int> levelRarity in Items.scrapItems.LastOrDefault().levelRarities)
						{
							Log.LogDebug((object)$"LethalLib Registered Weights {levelRarity}");
						}
					}
					else
					{
						Log.LogWarning((object)(list[l].itemName + " was not loaded as its config was not set up correctly!"));
					}
				}
				else
				{
					Log.LogInfo((object)(list[l].itemName + " was disabled!"));
				}
			}
			harmony.PatchAll();
			Log.LogInfo((object)"WILDCARD Stuff Successfully Loaded");
		}
	}
}
namespace LCWildCardMod.Utils
{
	public class KeyBinds : LcInputActions
	{
		[InputAction("<Keyboard>/r", Name = "WildCardUse")]
		public InputAction WildCardButton { get; set; }
	}
	public class AdditionalInfo : MonoBehaviour
	{
		public bool defaultEnabled;

		public string defaultRarities;

		public bool isBonus;
	}
}
namespace LCWildCardMod.Patches
{
	[HarmonyPatch(typeof(PlayerControllerB))]
	public static class PlayerControllerBPatch
	{
		[HarmonyPatch("DamagePlayer")]
		[HarmonyPrefix]
		public static bool SavePlayer(PlayerControllerB __instance, ref CauseOfDeath causeOfDeath, ref int damageNumber)
		{
			if (causeOfDeath && (int)causeOfDeath != 9 && (int)causeOfDeath != 10 && (int)causeOfDeath != 16 && (int)causeOfDeath != 5)
			{
				SmithHalo smithHalo = default(SmithHalo);
				if (__instance.isHoldingObject && ((Component)__instance.currentlyHeldObjectServer).TryGetComponent<SmithHalo>(ref smithHalo) && smithHalo.isExhausted == 0 && damageNumber >= __instance.health)
				{
					WildCardMod.Log.LogDebug((object)$"Saving Player from {causeOfDeath}");
					__instance.health = damageNumber + 1;
					smithHalo.ExhaustHaloServerRpc();
				}
				if ((Object)(object)((Component)__instance).GetComponentInChildren<FyrusAttach>() != (Object)null)
				{
					damageNumber = 0;
				}
			}
			return true;
		}

		[HarmonyPatch("Discard_performed")]
		[HarmonyPrefix]
		public static bool PreventDropping(PlayerControllerB __instance)
		{
			SmithHalo smithHalo = default(SmithHalo);
			if (__instance.isHoldingObject && ((Component)__instance.currentlyHeldObjectServer).TryGetComponent<SmithHalo>(ref smithHalo) && smithHalo.isThrowing)
			{
				WildCardMod.Log.LogDebug((object)"Preventing Drop");
				return false;
			}
			return true;
		}

		[HarmonyPatch("ScrollMouse_performed")]
		[HarmonyPrefix]
		public static bool PreventSwitching(PlayerControllerB __instance)
		{
			SmithHalo smithHalo = default(SmithHalo);
			if (__instance.isHoldingObject && ((Component)__instance.currentlyHeldObjectServer).TryGetComponent<SmithHalo>(ref smithHalo) && smithHalo.isThrowing)
			{
				WildCardMod.Log.LogDebug((object)"Preventing Switch");
				return false;
			}
			return true;
		}

		[HarmonyPatch("PlayerHitGroundEffects")]
		[HarmonyPrefix]
		public static bool PreventFallDamage(PlayerControllerB __instance)
		{
			Cojiro cojiro = null;
			if (__instance.isHoldingObject && ((Component)__instance.currentlyHeldObjectServer).TryGetComponent<Cojiro>(ref cojiro) && cojiro.isFloating && __instance.fallValue >= -38f)
			{
				WildCardMod.Log.LogDebug((object)"Preventing Fall Damage");
				__instance.GetCurrentMaterialStandingOn();
				__instance.movementAudio.PlayOneShot(StartOfRound.Instance.playerHitGroundSoft, 1f);
				__instance.LandFromJumpServerRpc(false);
				cojiro.itemAnimator.Animator.SetBool("Floating", false);
				return false;
			}
			if ((Object)(object)cojiro == (Object)null && __instance.fallValue >= -38f)
			{
				Cojiro[] array = Object.FindObjectsOfType<Cojiro>();
				Cojiro[] array2 = array;
				foreach (Cojiro cojiro2 in array2)
				{
					if ((Object)(object)cojiro2.previousPlayer == (Object)(object)__instance && ((GrabbableObject)cojiro2).currentUseCooldown > 0f)
					{
						WildCardMod.Log.LogDebug((object)"Preventing Fall Damage");
						__instance.GetCurrentMaterialStandingOn();
						__instance.movementAudio.PlayOneShot(StartOfRound.Instance.playerHitGroundSoft, 1f);
						__instance.LandFromJumpServerRpc(false);
						cojiro2.itemAnimator.Animator.SetBool("Floating", false);
						return false;
					}
				}
			}
			return true;
		}
	}
}
namespace LCWildCardMod.Items
{
	public class ClauvioMask : PhysicsProp
	{
		public Transform meshTransform;

		public Animator maskAnimator;

		public Coroutine peekCoroutine;

		public PlayerControllerB previousPlayer;

		public override void OnNetworkSpawn()
		{
			((NetworkBehaviour)this).OnNetworkSpawn();
			WildCardMod.wildcardKeyBinds.WildCardButton.started += MaskPeek;
		}

		public override void EquipItem()
		{
			((PhysicsProp)this).EquipItem();
			if (((NetworkBehaviour)this).IsOwner)
			{
				meshTransform.parent = ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform;
				maskAnimator.SetBool("isOwner", true);
			}
			else
			{
				meshTransform.parent = ((GrabbableObject)this).playerHeldBy.bodyParts[0];
				maskAnimator.SetBool("isOwner", false);
			}
			previousPlayer = ((GrabbableObject)this).playerHeldBy;
			maskAnimator.SetBool("isHeld", true);
		}

		public override void PocketItem()
		{
			((GrabbableObject)this).PocketItem();
			meshTransform.parent = ((Component)this).transform;
			maskAnimator.SetBool("isHeld", false);
			if (peekCoroutine != null)
			{
				((MonoBehaviour)this).StopCoroutine(peekCoroutine);
				peekCoroutine = null;
			}
		}

		public override void DiscardItem()
		{
			meshTransform.parent = ((Component)this).transform;
			maskAnimator.SetBool("isHeld", false);
			if (peekCoroutine != null)
			{
				((MonoBehaviour)this).StopCoroutine(peekCoroutine);
				peekCoroutine = null;
			}
			((GrabbableObject)this).DiscardItem();
		}

		public void MaskPeek(CallbackContext throwContext)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			if (((NetworkBehaviour)this).IsOwner && (Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null && ((GrabbableObject)this).playerHeldBy.moveInputVector == Vector2.zero)
			{
				WildCardMod.Log.LogDebug((object)"Mask Beginning Coroutine");
				peekCoroutine = ((MonoBehaviour)this).StartCoroutine(PeekCoroutine(throwContext));
			}
		}

		public IEnumerator PeekCoroutine(CallbackContext throwContext)
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			AnimTriggerServerRpc("Lift");
			WildCardMod.Log.LogDebug((object)"Waiting for Button Release");
			yield return (object)new WaitUntil((Func<bool>)(() => !((CallbackContext)(ref throwContext)).action.IsPressed() || (Object)(object)((GrabbableObject)this).playerHeldBy == (Object)null || ((GrabbableObject)this).playerHeldBy.moveInputVector != Vector2.zero));
			WildCardMod.Log.LogDebug((object)"Button Released");
			AnimTriggerServerRpc("Lower");
			peekCoroutine = null;
		}

		[ServerRpc(RequireOwnership = false)]
		public void AnimTriggerServerRpc(string name)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: 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 != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(3330981963u, val, (RpcDelivery)0);
				bool flag = name != null;
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
				if (flag)
				{
					((FastBufferWriter)(ref val2)).WriteValueSafe(name, false);
				}
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3330981963u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				AnimTriggerClientRpc(name);
			}
		}

		[ClientRpc]
		public void AnimTriggerClientRpc(string name)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: 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(1800613117u, val, (RpcDelivery)0);
				bool flag = name != null;
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref flag, default(ForPrimitives));
				if (flag)
				{
					((FastBufferWriter)(ref val2)).WriteValueSafe(name, false);
				}
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1800613117u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				maskAnimator.SetTrigger(name);
			}
		}

		protected override void __initializeVariables()
		{
			((PhysicsProp)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ClauvioMask()
		{
			//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
			NetworkManager.__rpc_func_table.Add(3330981963u, new RpcReceiveHandler(__rpc_handler_3330981963));
			NetworkManager.__rpc_func_table.Add(1800613117u, new RpcReceiveHandler(__rpc_handler_1800613117));
		}

		private static void __rpc_handler_3330981963(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_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				bool flag = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
				string name = null;
				if (flag)
				{
					((FastBufferReader)(ref reader)).ReadValueSafe(ref name, false);
				}
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ClauvioMask)(object)target).AnimTriggerServerRpc(name);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1800613117(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_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				bool flag = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
				string name = null;
				if (flag)
				{
					((FastBufferReader)(ref reader)).ReadValueSafe(ref name, false);
				}
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ClauvioMask)(object)target).AnimTriggerClientRpc(name);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "ClauvioMask";
		}
	}
	public class ClauvioMouse : PhysicsProp
	{
		public NetworkAnimator itemAnimator;

		public MeshRenderer meshRenderer;

		public ParticleSystem particleSystem;

		public AnimationCurve sleebCurve;

		public Texture[] particleTextures;

		public Texture[] faceTextures;

		public AudioSource passiveSource;

		public AudioClip[] passiveClips;

		public AudioClip[] squeakClips;

		public Coroutine agitateCounter;

		public Coroutine cryingCoroutine;

		public int stateId;

		public int agitate;

		public bool agitating;

		public bool crying;

		private Random random;

		public override void OnNetworkSpawn()
		{
			((NetworkBehaviour)this).OnNetworkSpawn();
			random = new Random(StartOfRound.Instance.randomMapSeed + 69);
			ChangeState(0);
		}

		public override void ItemActivate(bool used, bool buttonDown = true)
		{
			((GrabbableObject)this).ItemActivate(used, buttonDown);
			if (((NetworkBehaviour)this).IsServer)
			{
				agitate--;
				if (agitate == 0 && stateId == 1)
				{
					ChangeStateServerRpc(0);
				}
				else if (agitate < 0)
				{
					agitate = 0;
				}
				if (stateId == 1)
				{
					float num = Mathf.Max(1f, (float)agitate / 2f);
					((GrabbableObject)this).useCooldown = 0.5f / num;
					itemAnimator.Animator.SetFloat("Intensity", num);
				}
				else
				{
					((GrabbableObject)this).useCooldown = 0.5f;
					itemAnimator.Animator.SetFloat("Intensity", 1f);
				}
				itemAnimator.SetTrigger("Pet");
			}
			((Component)this).GetComponent<AudioSource>().PlayOneShot(squeakClips[random.Next(0, squeakClips.Length)], 1f);
		}

		public override void GrabItem()
		{
			((GrabbableObject)this).GrabItem();
			if (((NetworkBehaviour)this).IsServer && agitateCounter == null)
			{
				agitateCounter = ((MonoBehaviour)this).StartCoroutine(AgitateCounter());
			}
		}

		public override void PocketItem()
		{
			((GrabbableObject)this).PocketItem();
			particleSystem.Stop();
			particleSystem.Clear();
		}

		public override void EquipItem()
		{
			((PhysicsProp)this).EquipItem();
			if (!particleSystem.isPlaying)
			{
				particleSystem.Play();
			}
		}

		public override void DiscardItem()
		{
			((GrabbableObject)this).DiscardItem();
			if (!particleSystem.isPlaying)
			{
				particleSystem.Play();
			}
		}

		public IEnumerator AgitateCounter()
		{
			agitating = true;
			while (agitate < 10 || StartOfRound.Instance.inShipPhase)
			{
				yield return (object)new WaitForSeconds((float)random.Next(5, 50) / 10f);
				agitate++;
				if (agitate >= 10)
				{
					agitate = 5;
				}
			}
			ChangeStateServerRpc(1);
			cryingCoroutine = ((MonoBehaviour)this).StartCoroutine(CryingCoroutine());
			agitating = false;
		}

		public IEnumerator CryingCoroutine()
		{
			crying = true;
			int cryingTime = 0;
			while (stateId == 1)
			{
				DogNoiseServerRpc(cryingTime);
				cryingTime++;
				yield return (object)new WaitForSeconds(1f);
			}
			agitateCounter = ((MonoBehaviour)this).StartCoroutine(AgitateCounter());
			crying = false;
		}

		public void ChangeState(int id)
		{
			stateId = id;
			((Renderer)((Component)particleSystem).gameObject.GetComponent<ParticleSystemRenderer>()).material.mainTexture = particleTextures[stateId];
			((Renderer)meshRenderer).materials[1].mainTexture = faceTextures[stateId];
			passiveSource.Stop();
			passiveSource.clip = passiveClips[stateId];
			if (stateId == 0)
			{
				passiveSource.rolloffMode = (AudioRolloffMode)2;
				passiveSource.SetCustomCurve((AudioSourceCurveType)0, sleebCurve);
				passiveSource.volume = 0.1f;
			}
			else if (stateId == 1)
			{
				passiveSource.rolloffMode = (AudioRolloffMode)1;
				passiveSource.volume = 1f;
			}
			passiveSource.Play();
		}

		public override void LoadItemSaveData(int saveData)
		{
			agitateCounter = ((MonoBehaviour)this).StartCoroutine(AgitateCounter());
		}

		[ServerRpc(RequireOwnership = false)]
		public void ChangeStateServerRpc(int id)
		{
			//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(3357987228u, val, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val2, id);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3357987228u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ChangeStateClientRpc(id);
				}
			}
		}

		[ClientRpc]
		public void ChangeStateClientRpc(int id)
		{
			//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 != 2 && (networkManager.IsServer || networkManager.IsHost))
				{
					ClientRpcParams val = default(ClientRpcParams);
					FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2097798272u, val, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val2, id);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2097798272u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					ChangeState(id);
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void DogNoiseServerRpc(int times)
		{
			//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(3976846861u, val, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val2, times);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3976846861u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					DogNoiseClientRpc(times);
				}
			}
		}

		[ClientRpc]
		public void DogNoiseClientRpc(int times)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: 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(696130839u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, times);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 696130839u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 25f, 1f, times, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0);
				if ((Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null)
				{
					((GrabbableObject)this).playerHeldBy.timeSinceMakingLoudNoise = 0f;
				}
			}
		}

		protected override void __initializeVariables()
		{
			((PhysicsProp)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_ClauvioMouse()
		{
			//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(3357987228u, new RpcReceiveHandler(__rpc_handler_3357987228));
			NetworkManager.__rpc_func_table.Add(2097798272u, new RpcReceiveHandler(__rpc_handler_2097798272));
			NetworkManager.__rpc_func_table.Add(3976846861u, new RpcReceiveHandler(__rpc_handler_3976846861));
			NetworkManager.__rpc_func_table.Add(696130839u, new RpcReceiveHandler(__rpc_handler_696130839));
		}

		private static void __rpc_handler_3357987228(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 id = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref id);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ClauvioMouse)(object)target).ChangeStateServerRpc(id);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2097798272(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 id = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref id);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ClauvioMouse)(object)target).ChangeStateClientRpc(id);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3976846861(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 times = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref times);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((ClauvioMouse)(object)target).DogNoiseServerRpc(times);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_696130839(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 times = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref times);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((ClauvioMouse)(object)target).DogNoiseClientRpc(times);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "ClauvioMouse";
		}
	}
	public class CloverBee : PhysicsProp
	{
		public NetworkAnimator itemAnimator;

		public AudioSource buzzSource;

		public AudioSource shootSource;

		public Coroutine buzzCoroutine;

		public Vector3 targetPosition;

		public bool isShooting;

		public float stingerTime;

		public Vector3 startingPosition;

		public Vector3 localPosition;

		public Transform stinger;

		public PlayerControllerB lastPlayer;

		public List<IHittable> hitList = new List<IHittable>();

		private Random random;

		public override void OnNetworkSpawn()
		{
			//IL_0027: 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)
			((NetworkBehaviour)this).OnNetworkSpawn();
			random = new Random(StartOfRound.Instance.randomMapSeed + 69);
			localPosition = stinger.localPosition;
			((GrabbableObject)this).insertedBattery.charge = 1f;
			if (((NetworkBehaviour)this).IsServer)
			{
				buzzCoroutine = ((MonoBehaviour)this).StartCoroutine(BuzzLoop());
			}
		}

		public override void GrabItem()
		{
			((GrabbableObject)this).GrabItem();
			lastPlayer = ((GrabbableObject)this).playerHeldBy;
		}

		public override void ItemActivate(bool used, bool buttonDown = true)
		{
			//IL_002a: 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)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			((GrabbableObject)this).ItemActivate(used, buttonDown);
			if (((NetworkBehaviour)this).IsOwner)
			{
				Ray val = default(Ray);
				((Ray)(ref val))..ctor(((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.position, ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.forward);
				RaycastHit val2 = default(RaycastHit);
				if (Physics.Raycast(val, ref val2, 20f, StartOfRound.Instance.collidersAndRoomMaskAndDefault, (QueryTriggerInteraction)1))
				{
					targetPosition = ((Ray)(ref val)).GetPoint(((RaycastHit)(ref val2)).distance - 0.05f);
				}
				else
				{
					targetPosition = ((Ray)(ref val)).GetPoint(20f);
				}
				if (hitList.Count > 0)
				{
					hitList.Clear();
				}
				ShootServerRpc(targetPosition, (float)random.Next(80, 121) / 100f);
				((GrabbableObject)this).playerHeldBy.DamagePlayer(1, false, true, (CauseOfDeath)14, 0, false, default(Vector3));
			}
		}

		public override void Update()
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: 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_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			((GrabbableObject)this).Update();
			if (!isShooting)
			{
				return;
			}
			stinger.position = Vector3.Lerp(startingPosition, targetPosition, stingerTime);
			stingerTime += Mathf.Abs(Time.deltaTime * 8f);
			if (stingerTime >= 1f)
			{
				if (((NetworkBehaviour)this).IsServer)
				{
					itemAnimator.SetTrigger("New Stinger");
				}
				isShooting = false;
				stinger.localPosition = localPosition;
				stingerTime = 0f;
			}
			else
			{
				if (!((NetworkBehaviour)this).IsOwner)
				{
					return;
				}
				RaycastHit[] array = Physics.SphereCastAll(stinger.position, 0.25f, ((Component)lastPlayer.gameplayCamera).transform.forward, 0f, 1084754248, (QueryTriggerInteraction)2);
				RaycastHit[] array2 = array;
				IHittable val2 = default(IHittable);
				for (int i = 0; i < array2.Length; i++)
				{
					RaycastHit val = array2[i];
					if (((Component)((RaycastHit)(ref val)).transform).TryGetComponent<IHittable>(ref val2) && !hitList.Contains(val2) && (Object)(object)((Component)lastPlayer).transform != (Object)(object)((RaycastHit)(ref val)).transform && (Object.op_Implicit((Object)(object)((Component)((RaycastHit)(ref val)).transform).GetComponent<PlayerControllerB>()) || Object.op_Implicit((Object)(object)((Component)((RaycastHit)(ref val)).transform).GetComponent<EnemyAICollisionDetect>())))
					{
						hitList.Add(val2);
						val2.Hit(1, ((Component)lastPlayer.gameplayCamera).transform.forward, lastPlayer, true, 1);
					}
				}
			}
		}

		public IEnumerator BuzzLoop()
		{
			while (true)
			{
				yield return (object)new WaitForSeconds((float)random.Next(5, 51) / 10f);
				PlayBuzzServerRpc((float)random.Next(80, 121) / 100f);
				RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 25f, 0.75f, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0);
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void PlayBuzzServerRpc(float pitch)
		{
			//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(1174008083u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1174008083u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					PlayBuzzClientRpc(pitch);
				}
			}
		}

		[ClientRpc]
		public void PlayBuzzClientRpc(float pitch)
		{
			//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(783753092u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 783753092u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					buzzSource.pitch = pitch;
					buzzSource.Play();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ShootServerRpc(Vector3 target, float pitch)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: 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(3659799825u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref target);
					((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3659799825u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ShootClientRpc(target, pitch);
				}
			}
		}

		[ClientRpc]
		public void ShootClientRpc(Vector3 target, float pitch)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: 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_00f2: 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)
			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(2580293440u, val, (RpcDelivery)0);
				((FastBufferWriter)(ref val2)).WriteValueSafe(ref target);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2580293440u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				targetPosition = target;
				startingPosition = stinger.position;
				isShooting = true;
				shootSource.pitch = pitch;
				shootSource.Play();
				if (((GrabbableObject)this).insertedBattery.charge <= 0f && !((GrabbableObject)this).insertedBattery.empty)
				{
					((GrabbableObject)this).insertedBattery.empty = true;
				}
			}
		}

		protected override void __initializeVariables()
		{
			((PhysicsProp)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_CloverBee()
		{
			//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(1174008083u, new RpcReceiveHandler(__rpc_handler_1174008083));
			NetworkManager.__rpc_func_table.Add(783753092u, new RpcReceiveHandler(__rpc_handler_783753092));
			NetworkManager.__rpc_func_table.Add(3659799825u, new RpcReceiveHandler(__rpc_handler_3659799825));
			NetworkManager.__rpc_func_table.Add(2580293440u, new RpcReceiveHandler(__rpc_handler_2580293440));
		}

		private static void __rpc_handler_1174008083(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 pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((CloverBee)(object)target).PlayBuzzServerRpc(pitch);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_783753092(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 pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((CloverBee)(object)target).PlayBuzzClientRpc(pitch);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3659799825(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				Vector3 target2 = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref target2);
				float pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((CloverBee)(object)target).ShootServerRpc(target2, pitch);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2580293440(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				Vector3 target2 = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref target2);
				float pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((CloverBee)(object)target).ShootClientRpc(target2, pitch);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "CloverBee";
		}
	}
	public class Cojiro : NoisemakerProp
	{
		public AudioSource flapSource;

		public NetworkAnimator itemAnimator;

		public bool isFloating;

		public PlayerControllerB previousPlayer;

		public override void GrabItem()
		{
			((GrabbableObject)this).GrabItem();
			if ((Object)(object)previousPlayer == (Object)null)
			{
				previousPlayer = ((GrabbableObject)this).playerHeldBy;
			}
		}

		public override void ItemActivate(bool used, bool buttonDown = true)
		{
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			int num = base.noisemakerRandom.Next(0, base.noiseSFX.Length);
			float num2 = (float)base.noisemakerRandom.Next((int)(base.minLoudness * 100f), (int)(base.maxLoudness * 100f)) / 100f;
			float pitch = (float)base.noisemakerRandom.Next((int)(base.minPitch * 100f), (int)(base.maxPitch * 100f)) / 100f;
			base.noiseAudio.pitch = pitch;
			base.noiseAudio.PlayOneShot(base.noiseSFX[num], num2);
			if (((NetworkBehaviour)this).IsServer)
			{
				itemAnimator.SetTrigger("playAnim");
			}
			WalkieTalkie.TransmitOneShotAudio(base.noiseAudio, base.noiseSFX[num], num2);
			RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, base.noiseRange, num2, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0);
			((GrabbableObject)this).playerHeldBy.timeSinceMakingLoudNoise = 0f;
		}

		public override void Update()
		{
			((GrabbableObject)this).Update();
			if (!((GrabbableObject)this).isPocketed && (Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null && (((GrabbableObject)this).playerHeldBy.isFallingFromJump || ((GrabbableObject)this).playerHeldBy.isFallingNoJump))
			{
				if (!isFloating)
				{
					isFloating = true;
					if (((NetworkBehaviour)this).IsServer)
					{
						itemAnimator.Animator.SetBool("Floating", true);
					}
					flapSource.Play();
				}
				PlayerControllerB playerHeldBy = ((GrabbableObject)this).playerHeldBy;
				playerHeldBy.fallValue *= 0.9f;
			}
			else if (isFloating)
			{
				isFloating = false;
				if (((NetworkBehaviour)this).IsServer)
				{
					itemAnimator.Animator.SetBool("Floating", false);
				}
				flapSource.Stop();
			}
			if (((GrabbableObject)this).currentUseCooldown < 0f)
			{
				((GrabbableObject)this).currentUseCooldown = 0f;
			}
			else if (((GrabbableObject)this).currentUseCooldown == 0f && (Object)(object)((GrabbableObject)this).playerHeldBy == (Object)null && (Object)(object)previousPlayer != (Object)null)
			{
				previousPlayer = null;
			}
			else if (((GrabbableObject)this).currentUseCooldown == 0f && (Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null && (Object)(object)previousPlayer != (Object)(object)((GrabbableObject)this).playerHeldBy)
			{
				previousPlayer = ((GrabbableObject)this).playerHeldBy;
			}
			if (((GrabbableObject)this).currentUseCooldown < 1f && isFloating)
			{
				((GrabbableObject)this).currentUseCooldown = ((GrabbableObject)this).currentUseCooldown + 2f * Time.deltaTime;
			}
			else if (((GrabbableObject)this).currentUseCooldown > 1f)
			{
				((GrabbableObject)this).currentUseCooldown = 1f;
			}
		}

		protected override void __initializeVariables()
		{
			((NoisemakerProp)this).__initializeVariables();
		}

		protected internal override string __getTypeName()
		{
			return "Cojiro";
		}
	}
	public class SmithHalo : PhysicsProp
	{
		public ParticleSystem[] dripParticles;

		public ParticleSystem spinParticle;

		public AudioSource spawnMusic;

		public AudioSource throwAudio;

		public AudioClip[] throwClips;

		public AudioClip breakSound;

		public float minPitch;

		public float maxPitch;

		public NetworkAnimator itemAnimator;

		public int isExhausted = 0;

		public AnimationCurve throwCurve;

		public Component parentComponent;

		public bool isThrowing = false;

		public float throwTime = 0f;

		public Vector3 handPosition;

		public Vector3 targetPosition;

		public List<IHittable> hitList = new List<IHittable>();

		private Random random;

		public override void OnNetworkSpawn()
		{
			((NetworkBehaviour)this).OnNetworkSpawn();
			random = new Random(StartOfRound.Instance.randomMapSeed + 69);
			WildCardMod.wildcardKeyBinds.WildCardButton.performed += ThrowButton;
			((Component)spinParticle).gameObject.SetActive(false);
			BeginMusicServerRpc();
		}

		public void BeginMusic()
		{
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			if (isExhausted == 1)
			{
				((Renderer)((Component)this).GetComponentInChildren<MeshRenderer>()).material.color = new Color(0.1f, 0.1f, 0.1f);
				((Component)spinParticle).gameObject.SetActive(false);
				StopDripServerRpc();
			}
			else
			{
				StartDripServerRpc();
				spawnMusic.Play();
			}
		}

		public void ThrowButton(CallbackContext throwContext)
		{
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null && (Object)(object)((GrabbableObject)this).playerHeldBy.currentlyHeldObjectServer == (Object)(object)this && isExhausted == 0 && !isThrowing && ((NetworkBehaviour)this).IsOwner)
			{
				if ((Object)(object)throwAudio != (Object)null && throwClips.Length != 0)
				{
					float pitch = (float)random.Next((int)(minPitch * 100f), (int)(maxPitch * 100f)) / 100f;
					throwAudio.pitch = pitch;
					int selectedClip = random.Next(0, throwClips.Length);
					RoundManager.Instance.PlayAudibleNoise(((Component)this).transform.position, 25f, 0.75f, 0, ((GrabbableObject)this).isInElevator && StartOfRound.Instance.hangarDoorsClosed, 0);
					((GrabbableObject)this).playerHeldBy.timeSinceMakingLoudNoise = 0f;
					ThrowAudioServerRpc(pitch, selectedClip);
				}
				ThrowServerRpc();
			}
		}

		public override void Update()
		{
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: 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_00c0: 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_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			((GrabbableObject)this).Update();
			if (!((NetworkBehaviour)this).IsOwner)
			{
				return;
			}
			if (isThrowing)
			{
				if ((Object)(object)((GrabbableObject)this).playerHeldBy == (Object)null)
				{
					ThrowCurveServerRpc(parentComponent.transform.position);
					ThrowEndServerRpc();
					return;
				}
				ThrowCurve();
				if (throwTime >= 1f)
				{
					ThrowCurveServerRpc(parentComponent.transform.position);
					ThrowEndServerRpc();
					return;
				}
				RaycastHit[] array = Physics.SphereCastAll(parentComponent.transform.position, 0.5f, ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.forward, 0f, 1084754248, (QueryTriggerInteraction)2);
				RaycastHit[] array2 = array;
				IHittable val2 = default(IHittable);
				for (int i = 0; i < array2.Length; i++)
				{
					RaycastHit val = array2[i];
					if (((Component)((RaycastHit)(ref val)).transform).TryGetComponent<IHittable>(ref val2) && !hitList.Contains(val2) && (Object)(object)((Component)((GrabbableObject)this).playerHeldBy).transform != (Object)(object)((RaycastHit)(ref val)).transform && (Object.op_Implicit((Object)(object)((Component)((RaycastHit)(ref val)).transform).GetComponent<PlayerControllerB>()) || Object.op_Implicit((Object)(object)((Component)((RaycastHit)(ref val)).transform).GetComponent<EnemyAICollisionDetect>())))
					{
						hitList.Add(val2);
						val2.Hit(2, ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.forward, ((GrabbableObject)this).playerHeldBy, true, 1);
					}
				}
			}
			else if (parentComponent.transform.localPosition != Vector3.zero)
			{
				parentComponent.transform.localPosition = Vector3.zero;
			}
		}

		public void ThrowCurve()
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: 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_0078: Unknown result type (might be due to invalid IL or missing references)
			handPosition = ((Component)((GrabbableObject)this).playerHeldBy.localItemHolder).transform.position;
			parentComponent.transform.position = Vector3.Lerp(handPosition, targetPosition, throwCurve.Evaluate(throwTime));
			throwTime += Mathf.Abs(Time.deltaTime * 0.75f);
			ThrowCurveServerRpc(parentComponent.transform.position);
		}

		public override void EquipItem()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			((PhysicsProp)this).EquipItem();
			parentComponent.transform.localPosition = Vector3.zero;
			((Component)this).transform.localPosition = ((GrabbableObject)this).itemProperties.positionOffset;
			if (((NetworkBehaviour)this).IsServer)
			{
				itemAnimator.Animator.SetBool("BeingHeld", true);
			}
			spawnMusic.Stop();
		}

		public void Throw()
		{
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: 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_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			throwTime = 0f;
			isThrowing = true;
			if (((NetworkBehaviour)this).IsServer)
			{
				itemAnimator.Animator.SetBool("BeingThrown", true);
			}
			if (((NetworkBehaviour)this).IsOwner)
			{
				if (hitList.Count > 0)
				{
					hitList.Clear();
				}
				Ray val = default(Ray);
				((Ray)(ref val))..ctor(((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.position, ((Component)((GrabbableObject)this).playerHeldBy.gameplayCamera).transform.forward);
				RaycastHit val2 = default(RaycastHit);
				if (Physics.Raycast(val, ref val2, 10f, StartOfRound.Instance.collidersAndRoomMaskAndDefault, (QueryTriggerInteraction)1))
				{
					targetPosition = ((Ray)(ref val)).GetPoint(((RaycastHit)(ref val2)).distance - 0.05f);
				}
				else
				{
					targetPosition = ((Ray)(ref val)).GetPoint(10f);
				}
				SyncThrowDestinationServerRpc(targetPosition);
				StopDripServerRpc();
			}
		}

		public void ThrowEnd()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			parentComponent.transform.localPosition = Vector3.zero;
			((Component)this).transform.localPosition = ((GrabbableObject)this).itemProperties.positionOffset;
			if ((Object)(object)((GrabbableObject)this).playerHeldBy != (Object)null)
			{
				((Component)this).transform.position = ((Component)((GrabbableObject)this).playerHeldBy.localItemHolder).transform.position;
			}
			isThrowing = false;
			if (((NetworkBehaviour)this).IsServer)
			{
				itemAnimator.Animator.SetBool("BeingThrown", false);
			}
			throwAudio.Stop();
			if (isExhausted == 0)
			{
				StartDripServerRpc();
			}
			else
			{
				((Component)spinParticle).gameObject.SetActive(false);
			}
		}

		public override void DiscardItem()
		{
			((GrabbableObject)this).DiscardItem();
			if (((NetworkBehaviour)this).IsServer)
			{
				itemAnimator.Animator.SetBool("BeingHeld", false);
			}
		}

		public override void PocketItem()
		{
			((GrabbableObject)this).PocketItem();
			if (isExhausted == 0 && ((NetworkBehaviour)this).IsOwner)
			{
				StopDripServerRpc();
			}
		}

		public void ExhaustHalo()
		{
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			isExhausted = 1;
			((Component)this).GetComponent<AudioSource>().clip = breakSound;
			((Component)this).GetComponent<AudioSource>().Play();
			((Renderer)((Component)this).GetComponentInChildren<MeshRenderer>()).material.color = new Color(0.1f, 0.1f, 0.1f);
			if (((NetworkBehaviour)this).IsOwner)
			{
				ThrowEndServerRpc();
				StopDripServerRpc();
			}
		}

		public override int GetItemDataToSave()
		{
			return isExhausted;
		}

		public override void LoadItemSaveData(int saveData)
		{
			isExhausted = saveData;
		}

		[ServerRpc(RequireOwnership = false)]
		public void BeginMusicServerRpc()
		{
			//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(3808683666u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 3808683666u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					BeginMusicClientRpc(isExhausted);
				}
			}
		}

		[ClientRpc]
		public void BeginMusicClientRpc(int id)
		{
			//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 != 2 && (networkManager.IsServer || networkManager.IsHost))
				{
					ClientRpcParams val = default(ClientRpcParams);
					FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(531627869u, val, (RpcDelivery)0);
					BytePacker.WriteValueBitPacked(val2, id);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 531627869u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					isExhausted = id;
					BeginMusic();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ThrowAudioServerRpc(float pitch, int selectedClip)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			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(4222697771u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
					BytePacker.WriteValueBitPacked(val2, selectedClip);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4222697771u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ThrowAudioClientRpc(pitch, selectedClip);
				}
			}
		}

		[ClientRpc]
		public void ThrowAudioClientRpc(float pitch, int selectedClip)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			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(3023309125u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref pitch, default(ForPrimitives));
					BytePacker.WriteValueBitPacked(val2, selectedClip);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3023309125u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					throwAudio.pitch = pitch;
					throwAudio.clip = throwClips[selectedClip];
					throwAudio.Play();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ThrowEndServerRpc()
		{
			//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(1102316136u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1102316136u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ThrowEndClientRpc();
				}
			}
		}

		[ClientRpc]
		public void ThrowEndClientRpc()
		{
			//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(3954899210u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3954899210u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					ThrowEnd();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ThrowCurveServerRpc(Vector3 position)
		{
			//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_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: 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(2360152811u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref position);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2360152811u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ThrowCurveClientRpc(position);
				}
			}
		}

		[ClientRpc]
		public void ThrowCurveClientRpc(Vector3 position)
		{
			//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_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			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(1492584630u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref position);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 1492584630u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					parentComponent.transform.position = position;
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ThrowServerRpc()
		{
			//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(4122643843u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4122643843u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ThrowClientRpc();
				}
			}
		}

		[ClientRpc]
		public void ThrowClientRpc()
		{
			//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(3941211751u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3941211751u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					Throw();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void SyncThrowDestinationServerRpc(Vector3 target)
		{
			//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_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: 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(584416021u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref target);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 584416021u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					SyncThrowDestinationClientRpc(target);
				}
			}
		}

		[ClientRpc]
		public void SyncThrowDestinationClientRpc(Vector3 target)
		{
			//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_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: 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(64712968u, val, (RpcDelivery)0);
					((FastBufferWriter)(ref val2)).WriteValueSafe(ref target);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 64712968u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					targetPosition = target;
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void ExhaustHaloServerRpc()
		{
			//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(2233711573u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2233711573u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					ExhaustHaloClientRpc();
				}
			}
		}

		[ClientRpc]
		public void ExhaustHaloClientRpc()
		{
			//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(2654217673u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2654217673u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
				{
					ExhaustHalo();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void StopDripServerRpc()
		{
			//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(916081272u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 916081272u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					StopDripClientRpc();
				}
			}
		}

		[ClientRpc]
		public void StopDripClientRpc()
		{
			//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)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2796365296u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2796365296u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				ParticleSystem[] array = dripParticles;
				foreach (ParticleSystem val3 in array)
				{
					((Component)val3).gameObject.SetActive(false);
				}
				if (isExhausted == 0 && itemAnimator.Animator.GetBool("BeingThrown"))
				{
					((Component)spinParticle).gameObject.SetActive(true);
					spinParticle.Play();
				}
			}
		}

		[ServerRpc(RequireOwnership = false)]
		public void StartDripServerRpc()
		{
			//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(1708145919u, val, (RpcDelivery)0);
					((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1708145919u, val, (RpcDelivery)0);
				}
				if ((int)((NetworkBehaviour)this).__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
				{
					StartDripClientRpc();
				}
			}
		}

		[ClientRpc]
		public void StartDripClientRpc()
		{
			//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)
			{
				return;
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3460477655u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3460477655u, val, (RpcDelivery)0);
			}
			if ((int)((NetworkBehaviour)this).__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			if (isExhausted == 0)
			{
				ParticleSystem[] array = dripParticles;
				foreach (ParticleSystem val3 in array)
				{
					((Component)val3).gameObject.SetActive(true);
					val3.Play();
				}
			}
			((Component)spinParticle).gameObject.SetActive(false);
		}

		protected override void __initializeVariables()
		{
			((PhysicsProp)this).__initializeVariables();
		}

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_SmithHalo()
		{
			//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
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Expected O, but got Unknown
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Expected O, but got Unknown
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Expected O, but got Unknown
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Expected O, but got Unknown
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Expected O, but got Unknown
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Expected O, but got Unknown
			//IL_018b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Expected O, but got Unknown
			//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Expected O, but got Unknown
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Expected O, but got Unknown
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Expected O, but got Unknown
			NetworkManager.__rpc_func_table.Add(3808683666u, new RpcReceiveHandler(__rpc_handler_3808683666));
			NetworkManager.__rpc_func_table.Add(531627869u, new RpcReceiveHandler(__rpc_handler_531627869));
			NetworkManager.__rpc_func_table.Add(4222697771u, new RpcReceiveHandler(__rpc_handler_4222697771));
			NetworkManager.__rpc_func_table.Add(3023309125u, new RpcReceiveHandler(__rpc_handler_3023309125));
			NetworkManager.__rpc_func_table.Add(1102316136u, new RpcReceiveHandler(__rpc_handler_1102316136));
			NetworkManager.__rpc_func_table.Add(3954899210u, new RpcReceiveHandler(__rpc_handler_3954899210));
			NetworkManager.__rpc_func_table.Add(2360152811u, new RpcReceiveHandler(__rpc_handler_2360152811));
			NetworkManager.__rpc_func_table.Add(1492584630u, new RpcReceiveHandler(__rpc_handler_1492584630));
			NetworkManager.__rpc_func_table.Add(4122643843u, new RpcReceiveHandler(__rpc_handler_4122643843));
			NetworkManager.__rpc_func_table.Add(3941211751u, new RpcReceiveHandler(__rpc_handler_3941211751));
			NetworkManager.__rpc_func_table.Add(584416021u, new RpcReceiveHandler(__rpc_handler_584416021));
			NetworkManager.__rpc_func_table.Add(64712968u, new RpcReceiveHandler(__rpc_handler_64712968));
			NetworkManager.__rpc_func_table.Add(2233711573u, new RpcReceiveHandler(__rpc_handler_2233711573));
			NetworkManager.__rpc_func_table.Add(2654217673u, new RpcReceiveHandler(__rpc_handler_2654217673));
			NetworkManager.__rpc_func_table.Add(916081272u, new RpcReceiveHandler(__rpc_handler_916081272));
			NetworkManager.__rpc_func_table.Add(2796365296u, new RpcReceiveHandler(__rpc_handler_2796365296));
			NetworkManager.__rpc_func_table.Add(1708145919u, new RpcReceiveHandler(__rpc_handler_1708145919));
			NetworkManager.__rpc_func_table.Add(3460477655u, new RpcReceiveHandler(__rpc_handler_3460477655));
		}

		private static void __rpc_handler_3808683666(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;
				((SmithHalo)(object)target).BeginMusicServerRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_531627869(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 id = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref id);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((SmithHalo)(object)target).BeginMusicClientRpc(id);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_4222697771(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				int selectedClip = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref selectedClip);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((SmithHalo)(object)target).ThrowAudioServerRpc(pitch, selectedClip);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3023309125(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				float pitch = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref pitch, default(ForPrimitives));
				int selectedClip = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref selectedClip);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((SmithHalo)(object)target).ThrowAudioClientRpc(pitch, selectedClip);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1102316136(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;
				((SmithHalo)(object)target).ThrowEndServerRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3954899210(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;
				((SmithHalo)(object)target).ThrowEndClientRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2360152811(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: 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)
			{
				Vector3 position = default(Vector3);
				((FastBufferReader)(ref reader)).ReadValueSafe(ref position);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((SmithHalo)(object)target).ThrowCurveServerRpc(position);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1492584630(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: 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 && n