Decompiled source of LethalGym v3.5.0

LethalGym/LethalGym.dll

Decompiled 10 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LethalGym.NetcodePatcher;
using LethalGym.Scripts;
using LethalLib.Modules;
using Microsoft.CodeAnalysis;
using TMPro;
using Unity.Collections;
using Unity.Netcode;
using UnityEngine;
using UnityEngine.InputSystem;

[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: AssemblyCompany("LethalGym")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("LethalGym")]
[assembly: AssemblyTitle("LethalGym")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: NetcodePatchedAssembly]
internal class <Module>
{
	static <Module>()
	{
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
public class Equipment : NetworkBehaviour
{
	public PlayerActions playerActions;

	public InteractTrigger trigger;

	public Animator animator;

	public TMP_Text nameText;

	public TMP_Text repsText;

	public GameObject[] weights;

	public string EquipmentName;

	public int playerStrengthLevel;

	public AnimatorOverrideController overrideController;

	public AnimationClip equipmentEnter;

	public AnimationClip equipmentRep;

	public static AnimationClip benchEnter;

	public static AnimationClip benchRep;

	public static AnimationClip squatEnter;

	public static AnimationClip squatRep;

	public int reps;

	public bool inUse;

	public bool isRepping;

	public PlayerControllerB playerController;

	public PlayerStrengthLevel psl;

	public void Awake()
	{
		//IL_0009: Unknown result type (might be due to invalid IL or missing references)
		//IL_0013: Expected O, but got Unknown
		//IL_0019: Unknown result type (might be due to invalid IL or missing references)
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		inUse = false;
		playerActions = new PlayerActions();
		MovementActions movement = playerActions.Movement;
		((MovementActions)(ref movement)).Enable();
		trigger = ((Component)this).GetComponent<InteractTrigger>();
	}

	private void OnEnable()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		MovementActions movement = playerActions.Movement;
		((MovementActions)(ref movement)).Interact.performed += BackOut;
		movement = playerActions.Movement;
		((MovementActions)(ref movement)).Use.performed += Rep;
	}

	private void OnDisable()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		MovementActions movement = playerActions.Movement;
		((MovementActions)(ref movement)).Interact.performed -= BackOut;
		movement = playerActions.Movement;
		((MovementActions)(ref movement)).Use.performed -= Rep;
	}

	public void Start()
	{
		nameText.text = "Enter Bench";
		repsText.text = "To Start Count";
		if (EquipmentName == "Bench")
		{
			equipmentEnter = benchEnter;
			equipmentRep = benchRep;
		}
		else if (EquipmentName == "Squat")
		{
			equipmentEnter = squatEnter;
			equipmentRep = squatRep;
		}
		else
		{
			Debug.LogError((object)"No Name?");
		}
	}

	public void Update()
	{
		if ((Object)(object)nameText != (Object)null && (Object)(object)repsText != (Object)null && (Object)(object)psl != (Object)null)
		{
			nameText.text = playerController.playerUsername + "'s";
			repsText.text = "Reps:" + psl.currentRepsInLevel;
		}
	}

	public void Rep(CallbackContext context)
	{
		if (inUse && !isRepping && playerController.playerClientId == GameNetworkManager.Instance.localPlayerController.playerClientId)
		{
			RepServerRpc();
		}
	}

	[ServerRpc(RequireOwnership = false)]
	public void RepServerRpc()
	{
		//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)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(208976721u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 208976721u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				((MonoBehaviour)this).StartCoroutine(playRep());
				reps++;
				RepClientRpc(reps);
			}
		}
	}

	[ClientRpc]
	public void RepClientRpc(int serverReps)
	{
		//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)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2906675056u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, serverReps);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2906675056u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				reps = serverReps;
				((MonoBehaviour)this).StartCoroutine(playRep());
				((Component)playerController).gameObject.GetComponent<PlayerStrengthLevel>().addRep(this);
			}
		}
	}

	public IEnumerator playRep()
	{
		playerController.playerBodyAnimator.Play("SpecialAnimations.TypeOnTerminal2", -1, 0f);
		animator.Play("Base Layer.EquipmentRepAnimation", -1, 0f);
		isRepping = true;
		yield return (object)new WaitForSeconds(1f);
		isRepping = false;
	}

	public void OnEnter(PlayerControllerB player)
	{
		Debug.LogWarning((object)"Entered");
		PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController;
		OnEnterServerRpc(localPlayerController.playerClientId);
	}

	[ServerRpc(RequireOwnership = false)]
	public void OnEnterServerRpc(ulong playerInBenchID)
	{
		//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_0105: Unknown result type (might be due to invalid IL or missing references)
		//IL_010f: Expected O, but got Unknown
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager == null || !networkManager.IsListening)
		{
			return;
		}
		if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
		{
			ServerRpcParams val = default(ServerRpcParams);
			FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1953265794u, val, (RpcDelivery)0);
			BytePacker.WriteValueBitPacked(val2, playerInBenchID);
			((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1953265794u, val, (RpcDelivery)0);
		}
		if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
		{
			return;
		}
		inUse = true;
		PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
		PlayerControllerB[] array2 = array;
		foreach (PlayerControllerB val3 in array2)
		{
			if (val3.playerClientId == playerInBenchID)
			{
				playerController = val3;
				overrideController = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
				psl = ((Component)val3).GetComponent<PlayerStrengthLevel>();
				playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>().playerStrength;
				break;
			}
		}
		if ((Object)(object)equipmentEnter == (Object)null)
		{
			Debug.LogError((object)"equipmentEnter is null");
		}
		else
		{
			Debug.LogError((object)((Object)equipmentEnter).name.ToString());
		}
		if ((Object)(object)equipmentRep == (Object)null)
		{
			Debug.LogError((object)"equipmentRep is null");
		}
		else
		{
			Debug.LogError((object)((Object)equipmentRep).name.ToString());
		}
		Debug.LogError((object)((Object)overrideController).name.ToString());
		overrideController["TypeOnTerminal"] = equipmentEnter;
		overrideController["TypeOnTermina2"] = equipmentRep;
		SetWeights(playerStrengthLevel);
		Debug.LogError((object)playerStrengthLevel);
		animator.ResetTrigger("EquipmentRep");
		animator.SetTrigger("EquipmentRep");
		reps = 1;
		OnEnterClientRpc(playerInBenchID);
	}

	[ClientRpc]
	public void OnEnterClientRpc(ulong playerInBenchID)
	{
		//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_0105: Unknown result type (might be due to invalid IL or missing references)
		//IL_010f: Expected O, but got Unknown
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager == null || !networkManager.IsListening)
		{
			return;
		}
		if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
		{
			ClientRpcParams val = default(ClientRpcParams);
			FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(4277572156u, val, (RpcDelivery)0);
			BytePacker.WriteValueBitPacked(val2, playerInBenchID);
			((NetworkBehaviour)this).__endSendClientRpc(ref val2, 4277572156u, val, (RpcDelivery)0);
		}
		if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
		{
			return;
		}
		inUse = true;
		PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
		PlayerControllerB[] array2 = array;
		foreach (PlayerControllerB val3 in array2)
		{
			if (val3.playerClientId == playerInBenchID)
			{
				playerController = val3;
				overrideController = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
				psl = ((Component)val3).GetComponent<PlayerStrengthLevel>();
				if ((Object)(object)psl == (Object)null)
				{
					Debug.LogWarning((object)"no psl");
				}
				playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>().playerStrength;
				break;
			}
		}
		if ((Object)(object)equipmentEnter == (Object)null)
		{
			Debug.LogError((object)"equipmentEnter is null");
		}
		else
		{
			Debug.LogError((object)((Object)equipmentEnter).name.ToString());
		}
		if ((Object)(object)equipmentRep == (Object)null)
		{
			Debug.LogError((object)"equipmentRep is null");
		}
		else
		{
			Debug.LogError((object)((Object)equipmentRep).name.ToString());
		}
		if ((Object)(object)overrideController == (Object)null)
		{
			Debug.LogError((object)"no overridecontroller");
		}
		overrideController["TypeOnTerminal"] = equipmentEnter;
		overrideController["TypeOnTerminal2"] = equipmentRep;
		SetWeights(playerStrengthLevel);
		Debug.LogError((object)playerStrengthLevel);
		animator.ResetTrigger("EquipmentRep");
		animator.SetTrigger("EquipmentRep");
		reps = 1;
		((Component)playerController).gameObject.GetComponent<PlayerStrengthLevel>().addRep(this);
	}

	public void BackOut(CallbackContext context)
	{
		if (inUse && playerController.playerClientId == GameNetworkManager.Instance.localPlayerController.playerClientId)
		{
			StopSpecialAnimation();
			BackOutServerRpc();
		}
	}

	public void StopSpecialAnimation()
	{
		trigger.StopSpecialAnimation();
	}

	[ServerRpc(RequireOwnership = false)]
	public void BackOutServerRpc()
	{
		//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)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1102693684u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1102693684u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				Debug.LogWarning((object)"BACKOUT CONFIRM");
				LeaveEquipment();
				BackOutClientRpc();
			}
		}
	}

	[ClientRpc]
	public void BackOutClientRpc()
	{
		//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)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3160475806u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3160475806u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage == 2 && (networkManager.IsClient || networkManager.IsHost))
			{
				Debug.LogWarning((object)"BACKOUT CONFIRM");
				LeaveEquipment();
			}
		}
	}

	public void LeaveEquipment()
	{
		animator.SetTrigger("StopAnimation");
		inUse = false;
		playerController = null;
		psl = null;
	}

	public void SetWeights(int levelNumber)
	{
		for (int i = 0; i < weights.Length; i++)
		{
			if (i == 0)
			{
				weights[i].SetActive(true);
			}
			else
			{
				weights[i].SetActive(false);
			}
		}
		if (levelNumber == 1)
		{
			weights[0].SetActive(true);
		}
		if (levelNumber >= 2)
		{
			weights[1].SetActive(true);
		}
		if (levelNumber >= 3)
		{
			weights[2].SetActive(true);
		}
		if (levelNumber >= 4)
		{
			weights[3].SetActive(true);
		}
		if (levelNumber >= 5)
		{
			weights[4].SetActive(true);
		}
		if (levelNumber >= 6)
		{
			weights[5].SetActive(true);
		}
	}

	[ServerRpc(RequireOwnership = false)]
	public void BeginTerminalServerRPC(ulong playerID)
	{
		//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_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager == null || !networkManager.IsListening)
		{
			return;
		}
		if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
		{
			ServerRpcParams val = default(ServerRpcParams);
			FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(4209962670u, val, (RpcDelivery)0);
			BytePacker.WriteValueBitPacked(val2, playerID);
			((NetworkBehaviour)this).__endSendServerRpc(ref val2, 4209962670u, val, (RpcDelivery)0);
		}
		if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
		{
			return;
		}
		PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
		PlayerControllerB[] array2 = array;
		foreach (PlayerControllerB val3 in array2)
		{
			if (val3.playerClientId == playerID)
			{
				AnimatorOverrideController controller = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
				resetAnimations(controller);
				break;
			}
		}
		BeginTerminalClientRPC(playerID);
	}

	[ClientRpc]
	public void BeginTerminalClientRPC(ulong playerID)
	{
		//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_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
		if (networkManager == null || !networkManager.IsListening)
		{
			return;
		}
		if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
		{
			ClientRpcParams val = default(ClientRpcParams);
			FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2769116482u, val, (RpcDelivery)0);
			BytePacker.WriteValueBitPacked(val2, playerID);
			((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2769116482u, val, (RpcDelivery)0);
		}
		if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
		{
			return;
		}
		PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
		PlayerControllerB[] array2 = array;
		foreach (PlayerControllerB val3 in array2)
		{
			if (val3.playerClientId == playerID)
			{
				AnimatorOverrideController controller = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
				resetAnimations(controller);
				break;
			}
		}
	}

	public static void resetAnimations(AnimatorOverrideController controller)
	{
		List<KeyValuePair<AnimationClip, AnimationClip>> list = new List<KeyValuePair<AnimationClip, AnimationClip>>(controller.overridesCount);
		controller.GetOverrides(list);
		for (int i = 0; i < list.Count; i++)
		{
			list[i] = new KeyValuePair<AnimationClip, AnimationClip>(list[i].Key, null);
		}
		controller.ApplyOverrides((IList<KeyValuePair<AnimationClip, AnimationClip>>)list);
	}

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

	[RuntimeInitializeOnLoadMethod]
	internal static void InitializeRPCS_Equipment()
	{
		//IL_0011: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Expected O, but got Unknown
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Expected O, but got Unknown
		//IL_0047: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Expected O, but got Unknown
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_006c: Expected O, but got Unknown
		//IL_007d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0087: Expected O, but got Unknown
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a2: Expected O, but got Unknown
		//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bd: Expected O, but got Unknown
		//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d8: Expected O, but got Unknown
		NetworkManager.__rpc_func_table.Add(208976721u, new RpcReceiveHandler(__rpc_handler_208976721));
		NetworkManager.__rpc_func_table.Add(2906675056u, new RpcReceiveHandler(__rpc_handler_2906675056));
		NetworkManager.__rpc_func_table.Add(1953265794u, new RpcReceiveHandler(__rpc_handler_1953265794));
		NetworkManager.__rpc_func_table.Add(4277572156u, new RpcReceiveHandler(__rpc_handler_4277572156));
		NetworkManager.__rpc_func_table.Add(1102693684u, new RpcReceiveHandler(__rpc_handler_1102693684));
		NetworkManager.__rpc_func_table.Add(3160475806u, new RpcReceiveHandler(__rpc_handler_3160475806));
		NetworkManager.__rpc_func_table.Add(4209962670u, new RpcReceiveHandler(__rpc_handler_4209962670));
		NetworkManager.__rpc_func_table.Add(2769116482u, new RpcReceiveHandler(__rpc_handler_2769116482));
	}

	private static void __rpc_handler_208976721(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;
			((Equipment)(object)target).RepServerRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_2906675056(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 serverReps = default(int);
			ByteUnpacker.ReadValueBitPacked(reader, ref serverReps);
			target.__rpc_exec_stage = (__RpcExecStage)2;
			((Equipment)(object)target).RepClientRpc(serverReps);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_1953265794(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)
		{
			ulong playerInBenchID = default(ulong);
			ByteUnpacker.ReadValueBitPacked(reader, ref playerInBenchID);
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((Equipment)(object)target).OnEnterServerRpc(playerInBenchID);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_4277572156(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)
		{
			ulong playerInBenchID = default(ulong);
			ByteUnpacker.ReadValueBitPacked(reader, ref playerInBenchID);
			target.__rpc_exec_stage = (__RpcExecStage)2;
			((Equipment)(object)target).OnEnterClientRpc(playerInBenchID);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_1102693684(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;
			((Equipment)(object)target).BackOutServerRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_3160475806(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;
			((Equipment)(object)target).BackOutClientRpc();
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_4209962670(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)
		{
			ulong playerID = default(ulong);
			ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
			target.__rpc_exec_stage = (__RpcExecStage)1;
			((Equipment)(object)target).BeginTerminalServerRPC(playerID);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	private static void __rpc_handler_2769116482(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)
		{
			ulong playerID = default(ulong);
			ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
			target.__rpc_exec_stage = (__RpcExecStage)2;
			((Equipment)(object)target).BeginTerminalClientRPC(playerID);
			target.__rpc_exec_stage = (__RpcExecStage)0;
		}
	}

	protected internal override string __getTypeName()
	{
		return "Equipment";
	}
}
public class PlayerStrengthLevel : NetworkBehaviour
{
	public int playerStrength = 1;

	public int currentRepsInLevel = 0;

	public static int repsNeededL1 = 25;

	public static int repsNeededL2 = 50;

	public static int repsNeededL3 = 75;

	public static int repsNeededL4 = 100;

	public static int repsNeededL5 = 200;

	public bool canGrab;

	public bool canDrop;

	public static bool strongerBodyStatus;

	public float originalCarryWeight;

	public PlayerControllerB playerController;

	public void Start()
	{
		originalCarryWeight = 1f;
		canGrab = true;
		canDrop = true;
	}

	public void Update()
	{
	}

	public void UpdateConfigs(bool nStrongerBodyStatus)
	{
		strongerBodyStatus = nStrongerBodyStatus;
	}

	public void addRep(Equipment bench)
	{
		currentRepsInLevel++;
		Debug.LogWarning((object)currentRepsInLevel.ToString());
		if (playerStrength == 1 && currentRepsInLevel >= repsNeededL1)
		{
			playerStrength++;
			currentRepsInLevel = 0;
			bench.SetWeights(playerStrength);
			Debug.Log((object)(playerStrength + " PlayerUpgraded!"));
		}
		if (playerStrength == 2 && currentRepsInLevel >= repsNeededL2)
		{
			playerStrength++;
			currentRepsInLevel = 0;
			bench.SetWeights(playerStrength);
			Debug.Log((object)(playerStrength + " PlayerUpgraded!"));
		}
		if (playerStrength == 3 && currentRepsInLevel >= repsNeededL3)
		{
			playerStrength++;
			currentRepsInLevel = 0;
			bench.SetWeights(playerStrength);
			Debug.Log((object)(playerStrength + " PlayerUpgraded!"));
		}
		if (playerStrength == 4 && currentRepsInLevel >= repsNeededL4)
		{
			playerStrength++;
			currentRepsInLevel = 0;
			bench.SetWeights(playerStrength);
			Debug.Log((object)(playerStrength + " PlayerUpgraded!"));
		}
		if (playerStrength == 5 && currentRepsInLevel >= repsNeededL5)
		{
			bench.repsText.text = "MAXED OUT";
			Debug.Log((object)"Bro is maxed out");
		}
	}

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

	protected internal override string __getTypeName()
	{
		return "PlayerStrengthLevel";
	}
}
namespace LethalGym
{
	[BepInPlugin("Dryedcoolbro.LethalGym", "LethalGym", "1.0.0.0")]
	public class Plugin : BaseUnityPlugin
	{
		private const string modGUID = "Dryedcoolbro.LethalGym";

		private const string modName = "LethalGym";

		private const string modVersion = "1.0.0.0";

		private readonly Harmony harmony = new Harmony("Dryedcoolbro.LethalGym");

		private static Plugin Instance;

		internal static ManualLogSource Logger;

		public static AssetBundle assetBundle;

		public static AnimationClip pushupAnimation;

		public static UnlockablesList unlockablesList;

		public static Config Config { get; private set; }

		public static bool IsModLoaded(string guid)
		{
			return Chainloader.PluginInfos.ContainsKey(guid);
		}

		private void Awake()
		{
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
			Config = new Config(((BaseUnityPlugin)this).Config);
			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);
					}
				}
			}
			Logger = Logger.CreateLogSource("Dryedcoolbro.LethalGym");
			assetBundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "lethalequipment"));
			LoadAnimations();
			if ((Object)(object)pushupAnimation == (Object)null)
			{
				Logger.LogError((object)"pushupAnim not exist!");
			}
			else
			{
				Logger.LogInfo((object)((Object)pushupAnimation).name);
			}
			if ((Object)(object)assetBundle == (Object)null)
			{
				Logger.LogError((object)"Assetbundle not exist!");
			}
			else
			{
				Logger.LogInfo((object)((object)assetBundle).ToString());
				Logger.LogInfo((object)((Object)assetBundle).name);
			}
			harmony.PatchAll();
			NetworkObjectManager.assetBundle = assetBundle;
			unlockablesList = assetBundle.LoadAsset<UnlockablesList>("Assets/MyAssets/Unlockables.asset");
			unlockablesList = unlockablesList;
			LoadNetworkPrefabs();
			RegisterUnlockables();
		}

		public static void LoadAnimations()
		{
			Equipment.benchEnter = assetBundle.LoadAsset<AnimationClip>("Assets/MyAssets/Bench/BenchPressStart.anim");
			Equipment.benchRep = assetBundle.LoadAsset<AnimationClip>("Assets/MyAssets/Bench/BenchRep.anim");
			Equipment.squatEnter = assetBundle.LoadAsset<AnimationClip>("Assets/MyAssets/SquatRack/SquatEnter.anim");
			Equipment.squatRep = assetBundle.LoadAsset<AnimationClip>("Assets/MyAssets/SquatRack/SquatRep.anim");
		}

		public static void LoadNetworkPrefabs()
		{
			NetworkPrefabs.RegisterNetworkPrefab(unlockablesList.unlockables[0].prefabObject);
			NetworkPrefabs.RegisterNetworkPrefab(unlockablesList.unlockables[1].prefabObject);
		}

		public static void RegisterUnlockables()
		{
			ConfigApply.unlockablesList = unlockablesList;
			Unlockables.RegisterUnlockable(unlockablesList.unlockables[0], (StoreType)1, (TerminalNode)null, (TerminalNode)null, (TerminalNode)null, 60);
			Unlockables.RegisterUnlockable(unlockablesList.unlockables[1], (StoreType)1, (TerminalNode)null, (TerminalNode)null, (TerminalNode)null, 60);
		}
	}
	[DataContract]
	public class Config : SyncedInstance<Config>
	{
		[DataMember]
		public bool strongerBody { get; private set; }

		[DataMember]
		public bool overridePrices { get; private set; }

		[DataMember]
		public int benchPrice { get; private set; }

		[DataMember]
		public int squatPrice { get; private set; }

		public Config(ConfigFile cfg)
		{
			InitInstance(this);
			strongerBody = cfg.Bind<bool>("General", "Stronger Body", false, "More strength levels you have, the faster you can walk while carrying heavy items").Value;
			overridePrices = cfg.Bind<bool>("Prices", "Override Prices", false, "If set to true, all prices underneath will be set as the price no matter what.").Value;
			benchPrice = cfg.Bind<int>("Prices", "Bench Price", 60, "Default is 60").Value;
			squatPrice = cfg.Bind<int>("Prices", "Squat Rack Price", 60, "Default is 60").Value;
		}

		public static void RequestSync()
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			if (!SyncedInstance<Config>.IsClient)
			{
				return;
			}
			FastBufferWriter stream = default(FastBufferWriter);
			((FastBufferWriter)(ref stream))..ctor(SyncedInstance<Config>.IntSize, (Allocator)2, -1);
			try
			{
				SyncedInstance<Config>.SendMessage("ModName_OnRequestConfigSync", 0uL, stream);
			}
			finally
			{
				((IDisposable)(FastBufferWriter)(ref stream)).Dispose();
			}
		}

		public static void OnRequestSync(ulong clientId, FastBufferReader _)
		{
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			if (!SyncedInstance<Config>.IsHost)
			{
				return;
			}
			Plugin.Logger.LogInfo((object)$"Config sync request received from client: {clientId}");
			byte[] array = SyncedInstance<Config>.SerializeToBytes(SyncedInstance<Config>.Instance);
			int num = array.Length;
			FastBufferWriter stream = default(FastBufferWriter);
			((FastBufferWriter)(ref stream))..ctor(num + SyncedInstance<Config>.IntSize, (Allocator)2, -1);
			try
			{
				((FastBufferWriter)(ref stream)).WriteValueSafe<int>(ref num, default(ForPrimitives));
				((FastBufferWriter)(ref stream)).WriteBytesSafe(array, -1, 0);
				SyncedInstance<Config>.SendMessage("ModName_OnReceiveConfigSync", clientId, stream);
			}
			catch (Exception arg)
			{
				Plugin.Logger.LogInfo((object)$"Error occurred syncing config with client: {clientId}\n{arg}");
			}
			finally
			{
				((IDisposable)(FastBufferWriter)(ref stream)).Dispose();
			}
		}

		public static void OnReceiveSync(ulong _, FastBufferReader reader)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			if (!((FastBufferReader)(ref reader)).TryBeginRead(SyncedInstance<Config>.IntSize))
			{
				Plugin.Logger.LogError((object)"Config sync error: Could not begin reading buffer.");
				return;
			}
			int num = default(int);
			((FastBufferReader)(ref reader)).ReadValueSafe<int>(ref num, default(ForPrimitives));
			if (!((FastBufferReader)(ref reader)).TryBeginRead(num))
			{
				Plugin.Logger.LogError((object)"Config sync error: Host could not sync.");
				return;
			}
			byte[] data = new byte[num];
			((FastBufferReader)(ref reader)).ReadBytesSafe(ref data, num, 0);
			SyncedInstance<Config>.SyncInstance(data);
			Plugin.Logger.LogInfo((object)"Successfully synced config with host.");
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(PlayerControllerB), "ConnectClientToPlayerObject")]
		public static void InitializeLocalPlayer()
		{
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Expected O, but got Unknown
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected O, but got Unknown
			if (SyncedInstance<Config>.IsHost)
			{
				SyncedInstance<Config>.MessageManager.RegisterNamedMessageHandler("ModName_OnRequestConfigSync", new HandleNamedMessageDelegate(OnRequestSync));
				SyncedInstance<Config>.Synced = true;
			}
			else
			{
				SyncedInstance<Config>.Synced = false;
				SyncedInstance<Config>.MessageManager.RegisterNamedMessageHandler("ModName_OnReceiveConfigSync", new HandleNamedMessageDelegate(OnReceiveSync));
				RequestSync();
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(GameNetworkManager), "StartDisconnect")]
		public static void PlayerLeave()
		{
			SyncedInstance<Config>.RevertSync();
		}
	}
	[Serializable]
	public class SyncedInstance<T>
	{
		[NonSerialized]
		protected static int IntSize = 4;

		[NonSerialized]
		private static readonly DataContractSerializer serializer = new DataContractSerializer(typeof(T));

		internal static bool Synced;

		[NonSerialized]
		private static int MAX_BUFFER_SIZE = 1300;

		public static CustomMessagingManager MessageManager => NetworkManager.Singleton.CustomMessagingManager;

		public static bool IsClient => NetworkManager.Singleton.IsClient;

		public static bool IsHost => NetworkManager.Singleton.IsHost;

		internal static T Default { get; private set; }

		internal static T Instance { get; private set; }

		protected void InitInstance(T instance, int maxSize = 1024)
		{
			Default = instance;
			Instance = instance;
			IntSize = 4;
			if (maxSize < 1300)
			{
				MAX_BUFFER_SIZE = maxSize;
			}
		}

		internal static void SyncInstance(byte[] data)
		{
			Instance = DeserializeFromBytes(data);
			Synced = true;
		}

		internal static void RevertSync()
		{
			Instance = Default;
			Synced = false;
		}

		public static byte[] SerializeToBytes(T val)
		{
			using MemoryStream memoryStream = new MemoryStream();
			try
			{
				serializer.WriteObject(memoryStream, val);
				return memoryStream.ToArray();
			}
			catch (Exception arg)
			{
				Plugin.Logger.LogError((object)$"Error serializing instance: {arg}");
				return null;
			}
		}

		public static T DeserializeFromBytes(byte[] data)
		{
			using MemoryStream stream = new MemoryStream(data);
			try
			{
				return (T)serializer.ReadObject(stream);
			}
			catch (Exception arg)
			{
				Plugin.Logger.LogError((object)$"Error deserializing instance: {arg}");
				return default(T);
			}
		}

		internal static void SendMessage(string label, ulong clientId, FastBufferWriter stream)
		{
			//IL_0017: 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_0052: Unknown result type (might be due to invalid IL or missing references)
			bool flag = ((FastBufferWriter)(ref stream)).Capacity > MAX_BUFFER_SIZE;
			NetworkDelivery val = (NetworkDelivery)(flag ? 4 : 2);
			if (flag)
			{
				Plugin.Logger.LogDebug((object)($"Size of stream ({((FastBufferWriter)(ref stream)).Capacity}) was past the max buffer size.\n" + "Config instance will be sent in fragments to avoid overflowing the buffer."));
			}
			MessageManager.SendNamedMessage(label, clientId, stream, val);
		}
	}
}
namespace LethalGym.Scripts
{
	[HarmonyPatch]
	internal class MoreEmotesPatcher
	{
		public static bool moreEmotes;

		[HarmonyPatch(typeof(PreInitSceneScript), "Awake")]
		[HarmonyPostfix]
		public static void ApplyPatch()
		{
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dc: Expected O, but got Unknown
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Expected O, but got Unknown
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_010d: Expected O, but got Unknown
			if (!Plugin.IsModLoaded("MoreEmotes") || !Chainloader.PluginInfos.TryGetValue("MoreEmotes", out var value))
			{
				return;
			}
			Assembly assembly = ((object)value.Instance).GetType().Assembly;
			if (assembly != null)
			{
				Plugin.Logger.LogWarning((object)"Applying compatibility patch for More_Emotes");
				Type type = assembly.GetType("MoreEmotes.Patch.EmotePatch");
				FieldInfo field = type.GetField("local", BindingFlags.Static | BindingFlags.Public);
				RuntimeAnimatorController val = (RuntimeAnimatorController)field.GetValue(null);
				if ((Object)(object)val != (Object)null && !(val is AnimatorOverrideController))
				{
					field.SetValue(null, (object?)new AnimatorOverrideController(val));
				}
				FieldInfo field2 = type.GetField("others", BindingFlags.Static | BindingFlags.Public);
				RuntimeAnimatorController val2 = (RuntimeAnimatorController)field2.GetValue(null);
				if ((Object)(object)val2 != (Object)null && !(val2 is AnimatorOverrideController))
				{
					field2.SetValue(null, (object?)new AnimatorOverrideController(val2));
				}
				moreEmotes = true;
			}
		}

		[HarmonyPatch(typeof(StartOfRound), "Awake")]
		[HarmonyPostfix]
		public static void AddEmote(StartOfRound __instance)
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected O, but got Unknown
			__instance.localClientAnimatorController = (RuntimeAnimatorController)new AnimatorOverrideController(__instance.localClientAnimatorController);
			__instance.otherClientsAnimatorController = (RuntimeAnimatorController)new AnimatorOverrideController(__instance.otherClientsAnimatorController);
		}
	}
	public class EquipmentNetworkHandler : NetworkBehaviour
	{
		public static bool strongerBody;

		public static bool overridePrices;

		public static int benchPrce;

		public static int squatPrice;

		public static EquipmentNetworkHandler Instance { get; private set; }

		public override void OnNetworkSpawn()
		{
			if (NetworkManager.Singleton.IsHost || NetworkManager.Singleton.IsServer)
			{
				EquipmentNetworkHandler instance = Instance;
				if (instance != null)
				{
					((Component)instance).gameObject.GetComponent<NetworkObject>().Despawn(true);
				}
			}
			Instance = this;
			((NetworkBehaviour)this).OnNetworkSpawn();
		}

		[ServerRpc(RequireOwnership = false)]
		public void SyncStrengthValuesServerRpc()
		{
			//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)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(445641438u, val, (RpcDelivery)0);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 445641438u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage == 1 && (networkManager.IsServer || networkManager.IsHost))
			{
				PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
				PlayerControllerB[] array2 = array;
				foreach (PlayerControllerB val3 in array2)
				{
					PlayerStrengthLevel component = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					SyncStrengthValuesClientRpc(val3.playerClientId, component.playerStrength, component.currentRepsInLevel, component.originalCarryWeight, strongerBody);
				}
			}
		}

		[ClientRpc]
		public void SyncStrengthValuesClientRpc(ulong playerID, int playerStrength, int currentRepsInLevel, float carryWeight, bool strongerBody)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f3: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(2633422452u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				BytePacker.WriteValueBitPacked(val2, playerStrength);
				BytePacker.WriteValueBitPacked(val2, currentRepsInLevel);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref carryWeight, default(ForPrimitives));
				((FastBufferWriter)(ref val2)).WriteValueSafe<bool>(ref strongerBody, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 2633422452u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val3 in array2)
			{
				if (val3.playerClientId == playerID)
				{
					PlayerStrengthLevel playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					if ((Object)(object)playerStrengthLevel == (Object)null)
					{
						playerStrengthLevel = ((Component)val3).gameObject.AddComponent<PlayerStrengthLevel>();
					}
					playerStrengthLevel.playerStrength = playerStrength;
					playerStrengthLevel.currentRepsInLevel = currentRepsInLevel;
					playerStrengthLevel.originalCarryWeight = carryWeight;
					PlayerStrengthLevel.strongerBodyStatus = strongerBody;
				}
			}
		}

		public void DoubleCheckGrabFunction(PlayerStrengthLevel psl, bool GrabOrDrop)
		{
			((MonoBehaviour)this).StartCoroutine(DoubleCheckGrab(psl, GrabOrDrop));
		}

		public IEnumerator DoubleCheckGrab(PlayerStrengthLevel psl, bool GrabOrDrop)
		{
			yield return (object)new WaitForSeconds(0.1f);
			if (GrabOrDrop)
			{
				psl.canGrab = true;
			}
			else
			{
				psl.canDrop = true;
			}
		}

		public void ChangeWeightsFunction(PlayerControllerB player, PlayerStrengthLevel psl)
		{
			((MonoBehaviour)this).StartCoroutine(ChangeWeights(player, psl));
		}

		public IEnumerator ChangeWeights(PlayerControllerB player, PlayerStrengthLevel psl)
		{
			yield return (object)new WaitForSeconds(0.1f);
			switch (psl.playerStrength)
			{
			case 1:
				player.carryWeight = psl.originalCarryWeight / 1f;
				break;
			case 2:
				player.carryWeight = psl.originalCarryWeight / 1.05f;
				break;
			case 3:
				player.carryWeight = psl.originalCarryWeight / 1.1f;
				break;
			case 4:
				player.carryWeight = psl.originalCarryWeight / 1.3f;
				break;
			case 5:
				player.carryWeight = psl.originalCarryWeight / 1.5f;
				break;
			}
			Debug.LogError((object)("(Grab) Middle instance: " + player.carryWeight));
			if (player.carryWeight < 1f)
			{
				player.carryWeight = 1f;
				psl.originalCarryWeight = 1f;
				Debug.LogWarning((object)"Carry weight less than 1.0");
			}
			Debug.LogError((object)("(grab) Last original: " + psl.originalCarryWeight));
			Debug.LogError((object)("(Grab) Last instance: " + player.carryWeight));
			DoubleCheckGrabFunction(psl, GrabOrDrop: false);
			psl.canDrop = false;
		}

		public static void setConfigs(bool strongerBodyValue)
		{
			strongerBody = strongerBodyValue;
			PlayerStrengthLevel[] array = Object.FindObjectsOfType<PlayerStrengthLevel>();
			PlayerStrengthLevel[] array2 = array;
			foreach (PlayerStrengthLevel playerStrengthLevel in array2)
			{
				playerStrengthLevel.UpdateConfigs(strongerBody);
			}
		}

		[ServerRpc]
		public void GrabWeightServerRpc(ulong playerID, float grabbedObjectWeight)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Invalid comparison between Unknown and I4
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Invalid comparison between Unknown and I4
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId)
				{
					if ((int)networkManager.LogLevel <= 1)
					{
						Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!");
					}
					return;
				}
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2569922344u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2569922344u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB val3 = null;
			PlayerStrengthLevel playerStrengthLevel = null;
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val4 in array2)
			{
				if (val4.playerClientId == playerID)
				{
					val3 = val4;
					playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					break;
				}
			}
			GrabWeightClientRpc(playerID, grabbedObjectWeight);
		}

		[ClientRpc]
		public void GrabWeightClientRpc(ulong playerID, float grabbedObjectWeight)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(895823418u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 895823418u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB val3 = null;
			PlayerStrengthLevel playerStrengthLevel = null;
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val4 in array2)
			{
				if (val4.playerClientId == playerID)
				{
					val3 = val4;
					playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					break;
				}
			}
			playerStrengthLevel.originalCarryWeight += Mathf.Clamp(grabbedObjectWeight - 1f, 0f, 10f);
			switch (playerStrengthLevel.playerStrength)
			{
			case 1:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1f;
				break;
			case 2:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.05f;
				break;
			case 3:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.1f;
				break;
			case 4:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.3f;
				break;
			case 5:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.5f;
				break;
			}
			if (val3.carryWeight < 1f)
			{
				val3.carryWeight = 1f;
				playerStrengthLevel.originalCarryWeight = 1f;
			}
			Debug.LogWarning((object)playerStrengthLevel.originalCarryWeight.ToString());
		}

		[ServerRpc]
		public void DropWeightServerRpc(ulong playerID, float grabbedObjectWeight)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Invalid comparison between Unknown and I4
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Invalid comparison between Unknown and I4
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				if (((NetworkBehaviour)this).OwnerClientId != networkManager.LocalClientId)
				{
					if ((int)networkManager.LogLevel <= 1)
					{
						Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!");
					}
					return;
				}
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(2151574417u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 2151574417u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB val3 = null;
			PlayerStrengthLevel playerStrengthLevel = null;
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val4 in array2)
			{
				if (val4.playerClientId == playerID)
				{
					val3 = val4;
					playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					break;
				}
			}
			DropWeightClientRpc(playerID, grabbedObjectWeight);
		}

		[ClientRpc]
		public void DropWeightClientRpc(ulong playerID, float grabbedObjectWeight)
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Invalid comparison between Unknown and I4
			//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Invalid comparison between Unknown and I4
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(56241821u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((FastBufferWriter)(ref val2)).WriteValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 56241821u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB val3 = null;
			PlayerStrengthLevel playerStrengthLevel = null;
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val4 in array2)
			{
				if (val4.playerClientId == playerID)
				{
					val3 = val4;
					playerStrengthLevel = ((Component)val3).GetComponent<PlayerStrengthLevel>();
					break;
				}
			}
			playerStrengthLevel.originalCarryWeight -= Mathf.Clamp(grabbedObjectWeight - 1f, 0f, 10f);
			switch (playerStrengthLevel.playerStrength)
			{
			case 1:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1f;
				break;
			case 2:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.05f;
				break;
			case 3:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.1f;
				break;
			case 4:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.3f;
				break;
			case 5:
				val3.carryWeight = playerStrengthLevel.originalCarryWeight / 1.5f;
				break;
			}
			if (val3.carryWeight < 1f)
			{
				val3.carryWeight = 1f;
				playerStrengthLevel.originalCarryWeight = 1f;
			}
			Debug.LogWarning((object)playerStrengthLevel.originalCarryWeight.ToString());
			Debug.LogWarning((object)playerStrengthLevel.originalCarryWeight.ToString());
		}

		public void UpdateDecorPriceStart(UnlockablesList unlockablesList)
		{
			((MonoBehaviour)this).StartCoroutine(UpdateDecorPrice(unlockablesList));
		}

		public IEnumerator UpdateDecorPrice(UnlockablesList unlockablesList)
		{
			yield return (object)new WaitForSeconds(2f);
			if (!SyncedInstance<Config>.Instance.overridePrices)
			{
				if (SyncedInstance<Config>.Instance.strongerBody)
				{
					for (int k = 0; k < Unlockables.registeredUnlockables.Count; k++)
					{
						if (Unlockables.registeredUnlockables[k].unlockable == unlockablesList.unlockables[0])
						{
							Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[k].unlockable, 299);
						}
						else if (Unlockables.registeredUnlockables[k].unlockable == unlockablesList.unlockables[1])
						{
							Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[k].unlockable, 299);
						}
					}
				}
				else
				{
					for (int j = 0; j < Unlockables.registeredUnlockables.Count; j++)
					{
						if (Unlockables.registeredUnlockables[j].unlockable == unlockablesList.unlockables[0])
						{
							Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[j].unlockable, 60);
						}
						else if (Unlockables.registeredUnlockables[j].unlockable == unlockablesList.unlockables[1])
						{
							Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[j].unlockable, 60);
						}
					}
				}
			}
			else
			{
				for (int i = 0; i < Unlockables.registeredUnlockables.Count; i++)
				{
					if (Unlockables.registeredUnlockables[i].unlockable == unlockablesList.unlockables[0])
					{
						Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[i].unlockable, SyncedInstance<Config>.Instance.benchPrice);
					}
					else if (Unlockables.registeredUnlockables[i].unlockable == unlockablesList.unlockables[1])
					{
						Unlockables.UpdateUnlockablePrice(Unlockables.registeredUnlockables[i].unlockable, SyncedInstance<Config>.Instance.squatPrice);
					}
				}
			}
			setConfigs(SyncedInstance<Config>.Instance.strongerBody);
		}

		[ServerRpc(RequireOwnership = false)]
		public void BeginTerminalServerRPC(ulong playerID)
		{
			//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_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Expected O, but got Unknown
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 1 && (networkManager.IsClient || networkManager.IsHost))
			{
				ServerRpcParams val = default(ServerRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendServerRpc(1945757694u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((NetworkBehaviour)this).__endSendServerRpc(ref val2, 1945757694u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 1 || (!networkManager.IsServer && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val3 in array2)
			{
				if (val3.playerClientId == playerID)
				{
					AnimatorOverrideController controller = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
					Debug.LogWarning((object)((object)val3.playerBodyAnimator.runtimeAnimatorController).ToString());
					resetAnimations(controller);
					break;
				}
			}
			BeginTerminalClientRPC(playerID);
		}

		[ClientRpc]
		public void BeginTerminalClientRPC(ulong playerID)
		{
			//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_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Expected O, but got Unknown
			NetworkManager networkManager = ((NetworkBehaviour)this).NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if ((int)base.__rpc_exec_stage != 2 && (networkManager.IsServer || networkManager.IsHost))
			{
				ClientRpcParams val = default(ClientRpcParams);
				FastBufferWriter val2 = ((NetworkBehaviour)this).__beginSendClientRpc(3487933852u, val, (RpcDelivery)0);
				BytePacker.WriteValueBitPacked(val2, playerID);
				((NetworkBehaviour)this).__endSendClientRpc(ref val2, 3487933852u, val, (RpcDelivery)0);
			}
			if ((int)base.__rpc_exec_stage != 2 || (!networkManager.IsClient && !networkManager.IsHost))
			{
				return;
			}
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val3 in array2)
			{
				if (val3.playerClientId == playerID)
				{
					AnimatorOverrideController controller = (AnimatorOverrideController)val3.playerBodyAnimator.runtimeAnimatorController;
					resetAnimations(controller);
					break;
				}
			}
		}

		public static void resetAnimations(AnimatorOverrideController controller)
		{
			List<KeyValuePair<AnimationClip, AnimationClip>> list = new List<KeyValuePair<AnimationClip, AnimationClip>>(controller.overridesCount);
			controller.GetOverrides(list);
			for (int i = 0; i < list.Count; i++)
			{
				list[i] = new KeyValuePair<AnimationClip, AnimationClip>(list[i].Key, null);
			}
			controller.ApplyOverrides((IList<KeyValuePair<AnimationClip, AnimationClip>>)list);
		}

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

		[RuntimeInitializeOnLoadMethod]
		internal static void InitializeRPCS_EquipmentNetworkHandler()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Expected O, but got Unknown
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Expected O, but got Unknown
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Expected O, but got Unknown
			//IL_00ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Expected O, but got Unknown
			NetworkManager.__rpc_func_table.Add(445641438u, new RpcReceiveHandler(__rpc_handler_445641438));
			NetworkManager.__rpc_func_table.Add(2633422452u, new RpcReceiveHandler(__rpc_handler_2633422452));
			NetworkManager.__rpc_func_table.Add(2569922344u, new RpcReceiveHandler(__rpc_handler_2569922344));
			NetworkManager.__rpc_func_table.Add(895823418u, new RpcReceiveHandler(__rpc_handler_895823418));
			NetworkManager.__rpc_func_table.Add(2151574417u, new RpcReceiveHandler(__rpc_handler_2151574417));
			NetworkManager.__rpc_func_table.Add(56241821u, new RpcReceiveHandler(__rpc_handler_56241821));
			NetworkManager.__rpc_func_table.Add(1945757694u, new RpcReceiveHandler(__rpc_handler_1945757694));
			NetworkManager.__rpc_func_table.Add(3487933852u, new RpcReceiveHandler(__rpc_handler_3487933852));
		}

		private static void __rpc_handler_445641438(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;
				((EquipmentNetworkHandler)(object)target).SyncStrengthValuesServerRpc();
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2633422452(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: 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_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				int playerStrength = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerStrength);
				int currentRepsInLevel = default(int);
				ByteUnpacker.ReadValueBitPacked(reader, ref currentRepsInLevel);
				float carryWeight = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref carryWeight, default(ForPrimitives));
				bool flag = default(bool);
				((FastBufferReader)(ref reader)).ReadValueSafe<bool>(ref flag, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((EquipmentNetworkHandler)(object)target).SyncStrengthValuesClientRpc(playerID, playerStrength, currentRepsInLevel, carryWeight, flag);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2569922344(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: 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_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Invalid comparison between Unknown and I4
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId)
			{
				if ((int)networkManager.LogLevel <= 1)
				{
					Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!");
				}
			}
			else
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				float grabbedObjectWeight = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((EquipmentNetworkHandler)(object)target).GrabWeightServerRpc(playerID, grabbedObjectWeight);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_895823418(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				float grabbedObjectWeight = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((EquipmentNetworkHandler)(object)target).GrabWeightClientRpc(playerID, grabbedObjectWeight);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_2151574417(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: 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_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Invalid comparison between Unknown and I4
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager == null || !networkManager.IsListening)
			{
				return;
			}
			if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId)
			{
				if ((int)networkManager.LogLevel <= 1)
				{
					Debug.LogError((object)"Only the owner can invoke a ServerRpc that requires ownership!");
				}
			}
			else
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				float grabbedObjectWeight = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((EquipmentNetworkHandler)(object)target).DropWeightServerRpc(playerID, grabbedObjectWeight);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_56241821(NetworkBehaviour target, FastBufferReader reader, __RpcParams rpcParams)
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			NetworkManager networkManager = target.NetworkManager;
			if (networkManager != null && networkManager.IsListening)
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				float grabbedObjectWeight = default(float);
				((FastBufferReader)(ref reader)).ReadValueSafe<float>(ref grabbedObjectWeight, default(ForPrimitives));
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((EquipmentNetworkHandler)(object)target).DropWeightClientRpc(playerID, grabbedObjectWeight);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_1945757694(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)
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				target.__rpc_exec_stage = (__RpcExecStage)1;
				((EquipmentNetworkHandler)(object)target).BeginTerminalServerRPC(playerID);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		private static void __rpc_handler_3487933852(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)
			{
				ulong playerID = default(ulong);
				ByteUnpacker.ReadValueBitPacked(reader, ref playerID);
				target.__rpc_exec_stage = (__RpcExecStage)2;
				((EquipmentNetworkHandler)(object)target).BeginTerminalClientRPC(playerID);
				target.__rpc_exec_stage = (__RpcExecStage)0;
			}
		}

		protected internal override string __getTypeName()
		{
			return "EquipmentNetworkHandler";
		}
	}
	[HarmonyPatch]
	internal class LethalGymPatches
	{
		public static AnimationClip benchEnter;

		public static AnimationClip benchRep;

		public static AnimationClip term1;

		public static AnimationClip term2;

		[HarmonyPatch(typeof(Terminal), "BeginUsingTerminal")]
		[HarmonyPostfix]
		public static void ResetAnimation(Terminal __instance)
		{
			EquipmentNetworkHandler equipmentNetworkHandler = Object.FindObjectOfType<EquipmentNetworkHandler>();
			if ((Object)(object)equipmentNetworkHandler != (Object)null)
			{
				equipmentNetworkHandler.BeginTerminalServerRPC(GameNetworkManager.Instance.localPlayerController.playerClientId);
			}
		}

		[HarmonyPatch(typeof(ShipBuildModeManager), "StoreShipObjectClientRpc")]
		[HarmonyPrefix]
		public static void KickPlayerOutClientRpc()
		{
			Equipment equipment = Object.FindObjectOfType<Equipment>();
			if ((Object)(object)equipment != (Object)null)
			{
				equipment.LeaveEquipment();
				equipment.StopSpecialAnimation();
			}
		}

		[HarmonyPatch(typeof(ShipBuildModeManager), "StoreObjectServerRpc")]
		[HarmonyPrefix]
		public static void KickPlayerOutServerRpc()
		{
			Equipment equipment = Object.FindObjectOfType<Equipment>();
			if ((Object)(object)equipment != (Object)null)
			{
				equipment.LeaveEquipment();
			}
		}

		[HarmonyPatch(typeof(PlayerControllerB), "Start")]
		[HarmonyPrefix]
		public static void CheckLiftName()
		{
			Equipment[] array = Object.FindObjectsOfType<Equipment>();
			Equipment[] array2 = array;
			foreach (Equipment equipment in array2)
			{
				if (equipment.EquipmentName == "Bench")
				{
					equipment.equipmentEnter = Equipment.benchEnter;
					equipment.equipmentRep = Equipment.benchRep;
				}
				else if (equipment.EquipmentName == "Squat")
				{
					equipment.equipmentEnter = Equipment.squatEnter;
					equipment.equipmentRep = Equipment.squatRep;
				}
				else
				{
					Debug.LogError((object)"No Name?");
				}
			}
		}
	}
	[HarmonyPatch]
	internal class NetworkObjectManager
	{
		public static AssetBundle assetBundle;

		private static GameObject networkPrefab;

		[HarmonyPostfix]
		[HarmonyPatch(typeof(GameNetworkManager), "Start")]
		public static void Init()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			if (!((Object)(object)networkPrefab != (Object)null))
			{
				networkPrefab = (GameObject)assetBundle.LoadAsset("Assets/MyAssets/EquipmentNetworkHandlerPrefab.prefab");
				networkPrefab.AddComponent<EquipmentNetworkHandler>();
				NetworkManager.Singleton.AddNetworkPrefab(networkPrefab);
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(StartOfRound), "Awake")]
		private static void SpawnNetworkHandler()
		{
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			if (NetworkManager.Singleton.IsHost || NetworkManager.Singleton.IsServer)
			{
				GameObject val = Object.Instantiate<GameObject>(networkPrefab, Vector3.zero, Quaternion.identity);
				val.GetComponent<NetworkObject>().Spawn(false);
			}
		}
	}
	[HarmonyPatch]
	internal class StrengthValuesSaveAndLoad : NetworkBehaviour
	{
		private static StrengthValuesSaveAndLoad Instance;

		public void Awake()
		{
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
		}

		[HarmonyPatch(typeof(GameNetworkManager), "SaveGameValues")]
		[HarmonyPostfix]
		private static void SaveStrengthValues(GameNetworkManager __instance)
		{
			PlayerControllerB[] array = Object.FindObjectsOfType<PlayerControllerB>();
			PlayerControllerB[] array2 = array;
			foreach (PlayerControllerB val in array2)
			{
				PlayerStrengthLevel component = ((Component)val).GetComponent<PlayerStrengthLevel>();
				if ((Object)(object)component != (Object)null)
				{
					ES3.Save<int>("PlayerStrength" + val.playerSteamId, component.playerStrength, __instance.currentSaveFileName);
					ES3.Save<int>("PlayerReps" + val.playerSteamId, component.currentRepsInLevel, __instance.currentSaveFileName);
					Debug.LogWarning((object)val.playerSteamId.ToString());
					Debug.LogWarning((object)(component.playerStrength + " " + component.currentRepsInLevel));
				}
			}
		}

		[HarmonyPatch(typeof(PlayerControllerB), "SendNewPlayerValuesClientRpc")]
		[HarmonyPostfix]
		private static void LoadStrengthValues(PlayerControllerB __instance)
		{
			PlayerStrengthLevel playerStrengthLevel = ((Component)__instance).gameObject.GetComponent<PlayerStrengthLevel>();
			if ((Object)(object)((Component)__instance).gameObject.GetComponent<PlayerStrengthLevel>() == (Object)null)
			{
				playerStrengthLevel = ((Component)__instance).gameObject.AddComponent<PlayerStrengthLevel>();
			}
			if ((Object)(object)playerStrengthLevel != (Object)null)
			{
				Debug.LogWarning((object)"psl not null");
				playerStrengthLevel.playerController = __instance;
				string currentSaveFileName = Object.FindObjectOfType<GameNetworkManager>().currentSaveFileName;
				Debug.LogWarning((object)currentSaveFileName);
				while (__instance.playerSteamId == 0)
				{
				}
				playerStrengthLevel.playerStrength = ES3.Load<int>("PlayerStrength" + __instance.playerSteamId, currentSaveFileName, 1);
				playerStrengthLevel.currentRepsInLevel = ES3.Load<int>("PlayerReps" + __instance.playerSteamId, currentSaveFileName, 0);
				Debug.LogWarning((object)__instance.playerSteamId.ToString());
				Debug.LogWarning((object)(playerStrengthLevel.playerStrength + " " + playerStrengthLevel.currentRepsInLevel));
			}
			Object.FindObjectOfType<EquipmentNetworkHandler>().SyncStrengthValuesServerRpc();
		}

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

		protected internal override string __getTypeName()
		{
			return "StrengthValuesSaveAndLoad";
		}
	}
	[HarmonyPatch]
	internal class StrengthPatches : NetworkBehaviour
	{
		[HarmonyPatch(typeof(PlayerControllerB), "GrabObjectClientRpc")]
		[HarmonyPostfix]
		private static void BeginGrab(PlayerControllerB __instance)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected O, but got Unknown
			PlayerStrengthLevel component = ((Component)__instance).GetComponent<PlayerStrengthLevel>();
			GrabbableObject val = (GrabbableObject)Traverse.Create((object)__instance).Field("currentlyGrabbingObject").GetValue();
			if (component.canGrab && PlayerStrengthLevel.strongerBodyStatus)
			{
				Object.FindObjectOfType<EquipmentNetworkHandler>().DoubleCheckGrabFunction(component, GrabOrDrop: true);
				Object.FindObjectOfType<EquipmentNetworkHandler>().GrabWeightServerRpc(__instance.playerClientId, val.itemProperties.weight);
				component.canGrab = false;
			}
		}

		[HarmonyPatch(typeof(PlayerControllerB), "DiscardHeldObject")]
		[HarmonyPrefix]
		private static void BeginDrop(PlayerControllerB __instance, bool placeObject = false, NetworkObject parentObjectTo = null, Vector3 placePosition = default(Vector3), bool matchRotationOfParent = true)
		{
			PlayerStrengthLevel component = ((Component)__instance).GetComponent<PlayerStrengthLevel>();
			if (component.canDrop && PlayerStrengthLevel.strongerBodyStatus)
			{
				Object.FindObjectOfType<EquipmentNetworkHandler>().ChangeWeightsFunction(__instance, component);
				Object.FindObjectOfType<EquipmentNetworkHandler>().DropWeightServerRpc(__instance.playerClientId, __instance.currentlyHeldObjectServer.itemProperties.weight);
				component.canDrop = false;
			}
		}

		[HarmonyPatch(typeof(HUDManager), "Update")]
		[HarmonyPostfix]
		private static void ChangeHUDWeight(HUDManager __instance)
		{
			if (PlayerStrengthLevel.strongerBodyStatus)
			{
				PlayerStrengthLevel component = ((Component)GameNetworkManager.Instance.localPlayerController).gameObject.GetComponent<PlayerStrengthLevel>();
				if ((Object)(object)component == (Object)null)
				{
					Debug.LogWarning((object)"no psl?>?>");
				}
				float num = Mathf.RoundToInt(Mathf.Clamp(component.originalCarryWeight - 1f, 0f, 100f) * 105f);
				((TMP_Text)__instance.weightCounter).text = $"{num} lb";
				__instance.weightCounterAnimator.SetFloat("weight", num / 130f);
			}
		}

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

		protected internal override string __getTypeName()
		{
			return "StrengthPatches";
		}
	}
	[HarmonyPatch]
	internal class ConfigApply : NetworkBehaviour
	{
		public static UnlockablesList unlockablesList;

		[HarmonyPatch(typeof(PlayerControllerB), "Start")]
		[HarmonyPostfix]
		private static void UpdateBenchPriceController()
		{
			Object.FindObjectOfType<EquipmentNetworkHandler>().UpdateDecorPriceStart(unlockablesList);
		}

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

		protected internal override string __getTypeName()
		{
			return "ConfigApply";
		}
	}
}
namespace LethalGym.NetcodePatcher
{
	[AttributeUsage(AttributeTargets.Module)]
	internal class NetcodePatchedAssemblyAttribute : Attribute
	{
	}
}