Decompiled source of EFT HideOut SafeHouse v1.5.0

EFT_HideOut_SafeHouse.dll

Decompiled 3 weeks ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using System.Xml.Serialization;
using Atlas;
using Atlas.MappingComponents.Sandbox;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using EFT_Frame;
using FistVR;
using H3MP;
using H3MP.Networking;
using HarmonyLib;
using JerryComponent;
using NGA;
using Sodalite.Api;
using Sodalite.Utilities;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using Valve.VR;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryComponent
{
	public class AlphaCase : MonoBehaviour
	{
		public GameObject BoxPos;

		public GameObject box;

		public Collider colgrab;

		public Collider colgrabalt;

		public FVRPhysicalObject mainobj;

		public GameObject lock1;

		public GameObject lock2;

		public GameObject savevalue;

		public GameObject WaX;

		public GameObject WaY;

		public GameObject WaZ;

		public WaggleJoint X;

		public WaggleJoint Y;

		public WaggleJoint Z;

		public PlayerCrouch PC;

		public GameObject rot;

		public GameObject phymain;

		public GameObject phylid;

		public FVRInteractiveObject althold;

		private void Awake()
		{
		}

		private void Update()
		{
			//IL_02f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_034e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0088: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_041a: Unknown result type (might be due to invalid IL or missing references)
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
			if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
			{
				if ((Object)(object)((FVRInteractiveObject)mainobj).m_hand == (Object)null && (Object)(object)althold.m_hand == (Object)null)
				{
					BoxPos.transform.localPosition = new Vector3(0f, 0f, 0f);
					BoxPos.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					phymain.SetActive(false);
					phylid.SetActive(false);
					((Component)this).gameObject.transform.position = ((Component)GM.CurrentPlayerBody.Head).transform.position;
					((Component)this).gameObject.transform.eulerAngles = ((Component)GM.CurrentPlayerBody.Head).transform.eulerAngles;
					((Behaviour)X).enabled = true;
					((Behaviour)Y).enabled = true;
					((Behaviour)Z).enabled = true;
					((Behaviour)PC).enabled = true;
				}
				else if ((Object)(object)((FVRInteractiveObject)mainobj).m_hand != (Object)null || (Object)(object)althold.m_hand != (Object)null)
				{
					if ((Object)(object)((FVRInteractiveObject)mainobj).m_hand != (Object)null)
					{
						BoxPos.transform.position = ((Component)((FVRInteractiveObject)mainobj).m_hand).transform.position;
						BoxPos.transform.eulerAngles = ((Component)((FVRInteractiveObject)mainobj).m_hand).transform.eulerAngles;
					}
					else if ((Object)(object)althold.m_hand != (Object)null)
					{
						BoxPos.transform.position = ((Component)althold.m_hand).transform.position;
						BoxPos.transform.eulerAngles = ((Component)althold.m_hand).transform.eulerAngles;
					}
					phymain.SetActive(true);
					phylid.SetActive(true);
					((Behaviour)X).enabled = false;
					((Behaviour)Y).enabled = false;
					((Behaviour)Z).enabled = false;
					WaX.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					WaY.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					WaZ.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					((Behaviour)PC).enabled = false;
					rot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
			}
			Scene activeScene = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene)).name == "MainMenu3" || GM.IsDead())
			{
				box.SetActive(false);
				colgrab.enabled = false;
				colgrabalt.enabled = false;
			}
			else
			{
				Scene activeScene2 = SceneManager.GetActiveScene();
				if (((Scene)(ref activeScene2)).name != "MainMenu3" && !GM.IsDead())
				{
					box.SetActive(true);
					colgrab.enabled = true;
					colgrabalt.enabled = true;
				}
			}
			if (lock1.transform.localEulerAngles.x > 15f && lock2.transform.localEulerAngles.x > 15f)
			{
				savevalue.SetActive(true);
			}
			else if (lock1.transform.localEulerAngles.x < 15f || lock2.transform.localEulerAngles.x < 15f)
			{
				savevalue.SetActive(false);
			}
		}
	}
	public class PlayerCrouch : MonoBehaviour
	{
		public GameObject crouch;

		[SerializeField]
		private Transform body;

		public Ray ray;

		public float rayLength;

		[SerializeField]
		private LayerMask terrainLayer;

		public float rayStartYOffset = 0f;

		public float rayMul;

		public float dis;

		public RaycastHit rayhit;

		private void Start()
		{
		}

		private void Update()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_0097: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: 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_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0143: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			ray = new Ray(body.position + Vector3.up * rayStartYOffset, Vector3.down);
			Physics.Raycast(ray, ref rayhit, rayLength, ((LayerMask)(ref terrainLayer)).value);
			if (((RaycastHit)(ref rayhit)).distance > 0.6f)
			{
				dis = 0.6f * rayMul;
				crouch.transform.localEulerAngles = new Vector3(dis, 0f, 0f);
			}
			else
			{
				dis = ((RaycastHit)(ref rayhit)).distance * rayMul;
				crouch.transform.localEulerAngles = new Vector3(dis, 0f, 0f);
			}
			if (crouch.transform.localEulerAngles.x > 60f)
			{
				crouch.transform.localEulerAngles = new Vector3(60f, 0f, 0f);
			}
			else if (crouch.transform.localEulerAngles.x < 0f)
			{
				crouch.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			}
		}
	}
	public class VolumeSlot : MonoBehaviour
	{
		public Transform parent;

		private void OnTriggerStay(Collider other)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			GameObject gameObject = ((Component)other).gameObject;
			FVRPhysicalObject component = gameObject.GetComponent<FVRPhysicalObject>();
			if (!((Object)(object)component != (Object)null) || !((Object)(object)gameObject != (Object)(object)parent) || (int)component.QBSlotType != 0 || ((FVRInteractiveObject)component).m_isHeld || !((Object)(object)component.m_quickbeltSlot == (Object)null) || !((Object)(object)((Component)component).gameObject.GetComponent<FVRFireArm>() == (Object)null) || !((Object)(object)((Component)component).gameObject.GetComponent<FVRFireArmMagazine>() == (Object)null))
			{
				return;
			}
			float num = Vector3.Distance(((Component)component).transform.position, ((Component)GM.CurrentPlayerBody.LeftHand).transform.position);
			float num2 = Vector3.Distance(((Component)component).transform.position, ((Component)GM.CurrentPlayerBody.RightHand).transform.position);
			if (num < 0.25f || num2 < 0.25f)
			{
				Rigidbody component2 = gameObject.GetComponent<Rigidbody>();
				if ((Object)(object)component2 != (Object)null)
				{
					gameObject.transform.SetParent(((Component)parent).transform);
					component2.useGravity = false;
					component2.isKinematic = true;
				}
			}
		}

		private void OnTriggerExit(Collider other)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			GameObject gameObject = ((Component)other).gameObject;
			FVRPhysicalObject component = gameObject.GetComponent<FVRPhysicalObject>();
			if ((Object)(object)component != (Object)null && (Object)(object)gameObject != (Object)(object)parent && (int)component.QBSlotType == 0 && ((FVRInteractiveObject)component).m_isHeld && (Object)(object)component.m_quickbeltSlot == (Object)null && (Object)(object)((Component)component).gameObject.GetComponent<FVRFireArm>() == (Object)null && (Object)(object)((Component)component).gameObject.GetComponent<FVRFireArmMagazine>() == (Object)null)
			{
				Rigidbody component2 = gameObject.GetComponent<Rigidbody>();
				if ((Object)(object)component2 != (Object)null)
				{
					Scene activeScene = SceneManager.GetActiveScene();
					gameObject.transform.SetParent((Transform)null);
					SceneManager.MoveGameObjectToScene(gameObject, activeScene);
					component2.useGravity = true;
					component2.isKinematic = false;
				}
			}
		}
	}
	public class Beacon : MonoBehaviour
	{
		private void Start()
		{
		}

		private void Update()
		{
		}
	}
	public class DeathActivate : MonoBehaviour
	{
		public float countdown = 2f;

		public bool isNGAInstalled;

		public float timer = 1f;

		public bool loadouted = false;

		private void Start()
		{
			isNGAInstalled = Chainloader.PluginInfos.ContainsKey("NGA.SafehouseMP");
		}

		private void EnterWithLoadOut()
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Expected O, but got Unknown
			if (countdown >= 0f)
			{
				countdown -= Time.deltaTime;
			}
			if (!loadouted && countdown < 0f)
			{
				loadouted = true;
				Transform transform = new GameObject().transform;
				transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
				VaultFile val = new VaultFile();
				if (!VaultSystem.LoadVaultFile(SafehouseMP.raid_extracted_loadout_filename, (VaultFileDisplayMode)1, ref val))
				{
					Debug.Log((object)"ERROR: Loading saved loadout failed.");
					return;
				}
				string text = default(string);
				if (!VaultSystem.SpawnObjects((VaultFileDisplayMode)1, val, ref text, transform, Vector3.zero))
				{
					Debug.Log((object)"ERROR: Spawning saved loadout failed.");
					return;
				}
				VaultFile val2 = new VaultFile();
				VaultSystem.SaveVaultFile(SafehouseMP.raid_extracted_loadout_filename, (VaultFileDisplayMode)1, val2);
			}
		}

		private void FixedUpdate()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			if (!isNGAInstalled)
			{
				return;
			}
			Scene activeScene = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene)).name == "FactoryExt"))
			{
				return;
			}
			timer -= Time.deltaTime;
			if (timer <= 0f)
			{
				timer = 0f;
				if (Vector3.Distance(((Component)this).transform.position, GM.CurrentMovementManager.Head.position) < 0.25f)
				{
					EnterWithLoadOut();
				}
			}
		}
	}
	public class DeathBody : MonoBehaviour
	{
		public GameObject deathswitch;

		public GameObject body;

		public Transform spawnpoint;

		public GameObject player;

		public bool dead = false;

		private DropItems deadbody;

		public FVRQuickBeltSlot headslotalive;

		public FVRQuickBeltSlot bodyslotalive;

		public FVRQuickBeltSlot maskslotalive;

		public FVRQuickBeltSlot armorslotalive;

		public FVRQuickBeltSlot beltslotalive;

		private FVRPhysicalObject helmet;

		private FVRPhysicalObject vest;

		private FVRPhysicalObject mask;

		private FVRPhysicalObject armor;

		private FVRPhysicalObject belt;

		public MeshRenderer armband;

		private void Start()
		{
		}

		private void Update()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_022d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0610: Unknown result type (might be due to invalid IL or missing references)
			//IL_0620: Unknown result type (might be due to invalid IL or missing references)
			//IL_028a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02af: Unknown result type (might be due to invalid IL or missing references)
			if (deathswitch.transform.localEulerAngles.x < 45f)
			{
			}
			if (!(deathswitch.transform.localEulerAngles.x > 45f))
			{
				return;
			}
			if ((Object)(object)deadbody == (Object)null || !dead || (Object)(object)helmet == (Object)null || (Object)(object)vest == (Object)null || (Object)(object)mask == (Object)null || (Object)(object)armor == (Object)null || (Object)(object)belt == (Object)null)
			{
			}
			if ((Object)(object)deadbody != (Object)null && dead)
			{
				deadbody.dc.isdead = true;
				if ((Object)(object)helmet != (Object)null)
				{
					((Component)helmet).gameObject.transform.position = deadbody.headslot.position;
					((Component)helmet).gameObject.transform.eulerAngles = deadbody.headslot.eulerAngles;
				}
				if ((Object)(object)vest != (Object)null)
				{
					((Component)vest).gameObject.transform.position = deadbody.bodyslot.position;
					((Component)vest).gameObject.transform.eulerAngles = deadbody.bodyslot.eulerAngles;
				}
				if ((Object)(object)mask != (Object)null)
				{
					((Component)mask).gameObject.transform.position = deadbody.maskslot.position;
					((Component)mask).gameObject.transform.eulerAngles = deadbody.maskslot.eulerAngles;
				}
				if ((Object)(object)armor != (Object)null)
				{
					((Component)armor).gameObject.transform.position = deadbody.armorslot.position;
					((Component)armor).gameObject.transform.eulerAngles = deadbody.armorslot.eulerAngles;
				}
				if ((Object)(object)belt != (Object)null)
				{
					((Component)belt).gameObject.transform.position = deadbody.beltslot.position;
					((Component)belt).gameObject.transform.eulerAngles = deadbody.beltslot.eulerAngles;
				}
				if ((Object)(object)headslotalive.CurObject != (Object)null)
				{
					helmet = headslotalive.CurObject;
					headslotalive.CurObject.ClearQuickbeltState();
				}
				if ((Object)(object)maskslotalive.CurObject != (Object)null)
				{
					mask = maskslotalive.CurObject;
					maskslotalive.CurObject.ClearQuickbeltState();
				}
				if ((Object)(object)bodyslotalive.CurObject != (Object)null)
				{
					vest = bodyslotalive.CurObject;
					bodyslotalive.CurObject.ClearQuickbeltState();
				}
				if ((Object)(object)armorslotalive.CurObject != (Object)null)
				{
					armor = armorslotalive.CurObject;
					armorslotalive.CurObject.ClearQuickbeltState();
				}
				if ((Object)(object)beltslotalive.CurObject != (Object)null)
				{
					belt = beltslotalive.CurObject;
					beltslotalive.CurObject.ClearQuickbeltState();
				}
			}
			if (GM.IsDead())
			{
				for (int num = GM.CurrentPlayerBody.QuickbeltSlots.Count - 1; num >= 0; num--)
				{
					if ((Object)(object)GM.CurrentPlayerBody.QuickbeltSlots[num] != (Object)null && (Object)(object)GM.CurrentPlayerBody.QuickbeltSlots[num].CurObject != (Object)null)
					{
						FVRPhysicalObject curObject = GM.CurrentPlayerBody.QuickbeltSlots[num].CurObject;
						curObject.ClearQuickbeltState();
						curObject.DeRegisterQuickbeltSlots();
						curObject.SetIsKinematicLocked(false);
						curObject.SetQuickBeltSlot((FVRQuickBeltSlot)null);
						curObject.SetParentage((Transform)null);
						((FVRInteractiveObject)curObject).SetAllCollidersToLayer(false, "Default");
						((FVRInteractiveObject)curObject).BeginInteraction(GM.CurrentMovementManager.Hands[0]);
						((FVRInteractiveObject)curObject).EndInteraction(GM.CurrentMovementManager.Hands[0]);
						GM.CurrentPlayerBody.QuickbeltSlots[num].CurObject = null;
					}
				}
				if ((Object)(object)GM.CurrentMovementManager.Hands[0].CurrentInteractable != (Object)null)
				{
					GM.CurrentMovementManager.Hands[0].CurrentInteractable.IsHeld = false;
					GM.CurrentMovementManager.Hands[0].CurrentInteractable.EndInteraction(GM.CurrentMovementManager.Hands[0]);
					GM.CurrentMovementManager.Hands[0].EndInteractionIfHeld(GM.CurrentMovementManager.Hands[0].CurrentInteractable);
				}
				if ((Object)(object)GM.CurrentMovementManager.Hands[1].CurrentInteractable != (Object)null)
				{
					GM.CurrentMovementManager.Hands[1].CurrentInteractable.IsHeld = false;
					GM.CurrentMovementManager.Hands[1].CurrentInteractable.EndInteraction(GM.CurrentMovementManager.Hands[1]);
					GM.CurrentMovementManager.Hands[1].EndInteractionIfHeld(GM.CurrentMovementManager.Hands[1].CurrentInteractable);
				}
				DropQuickbeltContents();
				((Renderer)armband).enabled = false;
				player.SetActive(false);
				if (!dead)
				{
					int quickbeltPreset = GM.Options.QuickbeltOptions.QuickbeltPreset;
					GM.CurrentPlayerBody.ConfigureQuickbelt(quickbeltPreset + 1);
					deadbody = Object.Instantiate<GameObject>(body, ((Component)spawnpoint).transform.position, ((Component)spawnpoint).transform.rotation).GetComponent<DropItems>();
					dead = true;
				}
			}
			if (!GM.IsDead())
			{
				if ((Object)(object)deadbody != (Object)null)
				{
					deadbody.dc.cam.SetActive(false);
					deadbody.dc.isdead = false;
				}
				if (dead)
				{
					int quickbeltPreset2 = GM.Options.QuickbeltOptions.QuickbeltPreset;
					GM.CurrentPlayerBody.ConfigureQuickbelt(quickbeltPreset2);
				}
				if ((Object)(object)helmet != (Object)null)
				{
					((Component)helmet).transform.SetParent((Transform)null);
				}
				if ((Object)(object)vest != (Object)null)
				{
					((Component)vest).transform.SetParent((Transform)null);
				}
				if ((Object)(object)mask != (Object)null)
				{
					((Component)mask).transform.SetParent((Transform)null);
				}
				if ((Object)(object)armor != (Object)null)
				{
					((Component)armor).transform.SetParent((Transform)null);
				}
				if ((Object)(object)belt != (Object)null)
				{
					((Component)belt).transform.SetParent((Transform)null);
				}
				helmet = null;
				vest = null;
				mask = null;
				armor = null;
				belt = null;
				((Renderer)armband).enabled = true;
				player.SetActive(true);
				dead = false;
			}
		}

		public void DropQuickbeltContents()
		{
		}
	}
	public class DeathCamera : MonoBehaviour
	{
		public bool spawned = true;

		public bool isdead = true;

		public GameObject cam;

		public GameObject cam2;

		public GameObject camholderpos;

		public GameObject camholderrot;

		private void Start()
		{
			cam.SetActive(false);
			spawned = true;
		}

		private void Update()
		{
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: 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_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			if (isdead)
			{
				cam.SetActive(true);
				((Component)GM.CurrentMovementManager).transform.eulerAngles = cam2.transform.eulerAngles;
				camholderpos.transform.localPosition = -((Component)GM.CurrentPlayerBody.Head).gameObject.transform.localPosition;
				spawned = false;
			}
			if (!isdead)
			{
				cam.SetActive(false);
				if (!spawned)
				{
					((Component)GM.CurrentMovementManager).transform.position = GM.CurrentSceneSettings.DeathResetPoint.position;
					spawned = true;
				}
				((Component)GM.CurrentMovementManager).transform.eulerAngles = new Vector3(0f, ((Component)GM.CurrentMovementManager).transform.eulerAngles.y, 0f);
			}
		}

		private void OnDestroy()
		{
			cam.SetActive(false);
		}
	}
	public class DestroyOnAudioStop : MonoBehaviour
	{
		public GameObject thisobj;

		public AudioSource thisaudio;

		private void Start()
		{
			Object.DontDestroyOnLoad((Object)(object)thisobj);
		}

		private void Update()
		{
			if (!thisaudio.isPlaying)
			{
				Object.Destroy((Object)(object)thisobj);
			}
		}
	}
	public class DropItems : MonoBehaviour
	{
		public DeathCamera dc;

		public Rigidbody head;

		public Rigidbody pelvis;

		public Rigidbody spine;

		public Rigidbody thighL;

		public Rigidbody thighR;

		public Rigidbody calfL;

		public Rigidbody calfR;

		public Rigidbody upperarmL;

		public Rigidbody upperarmR;

		public Rigidbody forearmL;

		public Rigidbody forearmR;

		public Transform headslot;

		public Transform bodyslot;

		public Transform maskslot;

		public Transform armorslot;

		public Transform beltslot;

		private void Start()
		{
		}

		private void Update()
		{
			head.isKinematic = false;
			pelvis.isKinematic = false;
			spine.isKinematic = false;
			thighL.isKinematic = false;
			thighR.isKinematic = false;
			calfL.isKinematic = false;
			calfR.isKinematic = false;
			upperarmL.isKinematic = false;
			upperarmR.isKinematic = false;
			forearmL.isKinematic = false;
			forearmR.isKinematic = false;
		}
	}
	public class AmmoSpawnPoint : MonoBehaviour
	{
		public bool isH3MPInstalled;

		public bool dumped = false;

		public Transform Cartpos;

		public GameObject Cartobj;

		public GameObject Lid;

		public bool Cartspawned;

		public FVRFireArmRound CartPhys;

		public GameObject X;

		public GameObject Z;

		public bool Cartlock = true;

		public string CartIDs;

		public GameObject downward;

		private void Start()
		{
			isH3MPInstalled = Chainloader.PluginInfos.ContainsKey("VIP.TommySoucy.H3MP");
		}

		private void Update()
		{
			//IL_06f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0768: Unknown result type (might be due to invalid IL or missing references)
			//IL_076d: Unknown result type (might be due to invalid IL or missing references)
			//IL_038c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Unknown result type (might be due to invalid IL or missing references)
			//IL_0407: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_080b: Unknown result type (might be due to invalid IL or missing references)
			//IL_081b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0884: Unknown result type (might be due to invalid IL or missing references)
			//IL_0889: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_051e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_08de: Unknown result type (might be due to invalid IL or missing references)
			//IL_0903: Unknown result type (might be due to invalid IL or missing references)
			//IL_0923: Unknown result type (might be due to invalid IL or missing references)
			//IL_0928: Unknown result type (might be due to invalid IL or missing references)
			//IL_093c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0941: Unknown result type (might be due to invalid IL or missing references)
			//IL_095b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0960: Unknown result type (might be due to invalid IL or missing references)
			//IL_097f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: Unknown result type (might be due to invalid IL or missing references)
			//IL_0998: Unknown result type (might be due to invalid IL or missing references)
			//IL_099d: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09db: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0573: Unknown result type (might be due to invalid IL or missing references)
			//IL_0578: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_059d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05db: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0619: Unknown result type (might be due to invalid IL or missing references)
			//IL_061e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0632: Unknown result type (might be due to invalid IL or missing references)
			//IL_0637: Unknown result type (might be due to invalid IL or missing references)
			//IL_0651: Unknown result type (might be due to invalid IL or missing references)
			//IL_0656: Unknown result type (might be due to invalid IL or missing references)
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_067a: Unknown result type (might be due to invalid IL or missing references)
			//IL_068e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0693: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_025d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_0315: Unknown result type (might be due to invalid IL or missing references)
			//IL_0329: Unknown result type (might be due to invalid IL or missing references)
			//IL_032e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_034d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			if (isH3MPInstalled)
			{
				if (Client.isFullyConnected)
				{
					if (!ThreadManager.host)
					{
						return;
					}
					if (Lid.transform.localEulerAngles.x <= 10f)
					{
						if (!dumped && Cartspawned && (Object)(object)Cartobj != (Object)null && (Object)(object)CartPhys != (Object)null)
						{
							Object.Destroy((Object)(object)Cartobj);
							Cartspawned = false;
						}
					}
					else
					{
						if (!(Lid.transform.localEulerAngles.x > 10f))
						{
							return;
						}
						if ((Object)(object)Cartobj == (Object)null || (Object)(object)CartPhys == (Object)null)
						{
						}
						if (!Cartspawned)
						{
							if (IM.OD.ContainsKey(CartIDs))
							{
								AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD[CartIDs]).GetGameObjectAsync();
								if (Object.op_Implicit((Object)(object)gameObjectAsync.Result))
								{
									Cartobj = Object.Instantiate<GameObject>(gameObjectAsync.Result, ((Component)Cartpos).transform.position, ((Component)Cartpos).transform.rotation);
									CartPhys = Cartobj.GetComponent<FVRFireArmRound>();
								}
							}
							Cartspawned = true;
						}
						if (Cartspawned && (Object)(object)CartPhys != (Object)null)
						{
							if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand != (Object)null || downward.transform.localPosition.y > 0.25f)
							{
								CartPhys = null;
								Cartobj = null;
								dumped = true;
							}
							else if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand == (Object)null && downward.transform.localPosition.y <= 0.25f)
							{
								Cartobj.transform.position = Cartpos.position;
								Cartobj.transform.eulerAngles = new Vector3(Mathf.Clamp(Cartobj.transform.eulerAngles.x, ((Component)Cartpos).transform.eulerAngles.x - 2.5f, ((Component)Cartpos).transform.eulerAngles.x + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.y, ((Component)Cartpos).transform.eulerAngles.y - 2.5f, ((Component)Cartpos).transform.eulerAngles.y + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.z, ((Component)Cartpos).transform.eulerAngles.z - 2.5f, ((Component)Cartpos).transform.eulerAngles.z + 2.5f));
							}
						}
					}
				}
				else
				{
					if (Client.isFullyConnected)
					{
						return;
					}
					if (Lid.transform.localEulerAngles.x <= 10f)
					{
						if (!dumped && Cartspawned && (Object)(object)Cartobj != (Object)null && (Object)(object)CartPhys != (Object)null)
						{
							Object.Destroy((Object)(object)Cartobj);
							Cartspawned = false;
						}
					}
					else
					{
						if (!(Lid.transform.localEulerAngles.x > 10f))
						{
							return;
						}
						if ((Object)(object)Cartobj == (Object)null || (Object)(object)CartPhys == (Object)null)
						{
						}
						if (!Cartspawned)
						{
							if (IM.OD.ContainsKey(CartIDs))
							{
								AnvilCallback<GameObject> gameObjectAsync2 = ((AnvilAsset)IM.OD[CartIDs]).GetGameObjectAsync();
								if (Object.op_Implicit((Object)(object)gameObjectAsync2.Result))
								{
									Cartobj = Object.Instantiate<GameObject>(gameObjectAsync2.Result, ((Component)Cartpos).transform.position, ((Component)Cartpos).transform.rotation);
									CartPhys = Cartobj.GetComponent<FVRFireArmRound>();
								}
							}
							Cartspawned = true;
						}
						if (Cartspawned && (Object)(object)CartPhys != (Object)null)
						{
							if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand != (Object)null || downward.transform.localPosition.y > 0.25f)
							{
								CartPhys = null;
								Cartobj = null;
								dumped = true;
							}
							else if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand == (Object)null && downward.transform.localPosition.y <= 0.25f)
							{
								Cartobj.transform.position = Cartpos.position;
								Cartobj.transform.eulerAngles = new Vector3(Mathf.Clamp(Cartobj.transform.eulerAngles.x, ((Component)Cartpos).transform.eulerAngles.x - 2.5f, ((Component)Cartpos).transform.eulerAngles.x + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.y, ((Component)Cartpos).transform.eulerAngles.y - 2.5f, ((Component)Cartpos).transform.eulerAngles.y + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.z, ((Component)Cartpos).transform.eulerAngles.z - 2.5f, ((Component)Cartpos).transform.eulerAngles.z + 2.5f));
							}
						}
					}
				}
			}
			else
			{
				if (isH3MPInstalled)
				{
					return;
				}
				if (Lid.transform.localEulerAngles.x <= 10f)
				{
					if (!dumped && Cartspawned && (Object)(object)Cartobj != (Object)null && (Object)(object)CartPhys != (Object)null)
					{
						Object.Destroy((Object)(object)Cartobj);
						Cartspawned = false;
					}
				}
				else
				{
					if (!(Lid.transform.localEulerAngles.x > 10f))
					{
						return;
					}
					if ((Object)(object)Cartobj == (Object)null || (Object)(object)CartPhys == (Object)null)
					{
					}
					if (!Cartspawned)
					{
						if (IM.OD.ContainsKey(CartIDs))
						{
							AnvilCallback<GameObject> gameObjectAsync3 = ((AnvilAsset)IM.OD[CartIDs]).GetGameObjectAsync();
							if (Object.op_Implicit((Object)(object)gameObjectAsync3.Result))
							{
								Cartobj = Object.Instantiate<GameObject>(gameObjectAsync3.Result, ((Component)Cartpos).transform.position, ((Component)Cartpos).transform.rotation);
								CartPhys = Cartobj.GetComponent<FVRFireArmRound>();
							}
						}
						Cartspawned = true;
					}
					if (Cartspawned && (Object)(object)CartPhys != (Object)null)
					{
						if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand != (Object)null || downward.transform.localPosition.y > 0.25f)
						{
							CartPhys = null;
							Cartobj = null;
							dumped = true;
						}
						else if ((Object)(object)((FVRInteractiveObject)CartPhys).m_hand == (Object)null && downward.transform.localPosition.y <= 0.25f)
						{
							Cartobj.transform.position = Cartpos.position;
							Cartobj.transform.eulerAngles = new Vector3(Mathf.Clamp(Cartobj.transform.eulerAngles.x, ((Component)Cartpos).transform.eulerAngles.x - 2.5f, ((Component)Cartpos).transform.eulerAngles.x + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.y, ((Component)Cartpos).transform.eulerAngles.y - 2.5f, ((Component)Cartpos).transform.eulerAngles.y + 2.5f), Mathf.Clamp(Cartobj.transform.eulerAngles.z, ((Component)Cartpos).transform.eulerAngles.z - 2.5f, ((Component)Cartpos).transform.eulerAngles.z + 2.5f));
						}
					}
				}
			}
		}
	}
	public class EFT_AmmoBox : MonoBehaviour
	{
		public FVRPhysicalObject mainobj;

		public Collider grabcol;

		private void Start()
		{
		}

		private void Update()
		{
			if ((Object)(object)((FVRInteractiveObject)mainobj).m_hand != (Object)null)
			{
				grabcol.enabled = false;
			}
			else if ((Object)(object)((FVRInteractiveObject)mainobj).m_hand == (Object)null)
			{
				grabcol.enabled = true;
			}
		}
	}
	public class EFTMode : MonoBehaviour
	{
		public TextMesh countdowntext;

		public GameObject countdownboard;

		public float countdownstart = 3f;

		public bool startcount = false;

		public bool tele = true;

		public GameObject playerdetectpoint;

		public bool m_isLoading = false;

		public GameObject death;

		public GameObject escape;

		public float deathcountdownnum = 15f;

		public bool addcomp = false;

		private void Start()
		{
			escape.SetActive(false);
			death.SetActive(false);
		}

		private void FixedUpdate()
		{
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			if (startcount)
			{
				countdownboard.SetActive(true);
				countdownstart -= Time.deltaTime;
				countdowntext.text = "SpawnLoadout" + countdownstart.ToString("f1");
			}
			if (countdownstart < 0f)
			{
				countdownboard.SetActive(false);
				startcount = false;
			}
			if (!addcomp && (Object)(object)GM.CurrentPlayerBody != (Object)null && (Object)(object)Object.FindObjectOfType<DeathActivate>() == (Object)null)
			{
				playerdetectpoint.AddComponent<DeathActivate>();
				startcount = true;
				addcomp = true;
			}
			if ((Object)(object)GM.CurrentMovementManager != (Object)null)
			{
				playerdetectpoint.transform.position = GM.CurrentMovementManager.Head.position;
				playerdetectpoint.transform.eulerAngles = GM.CurrentMovementManager.Head.eulerAngles;
			}
			if (!GM.IsDead())
			{
				return;
			}
			deathcountdownnum -= 1f * Time.deltaTime;
			if (deathcountdownnum < 10f)
			{
				death.SetActive(true);
				if (tele)
				{
					GM.CurrentMovementManager.TeleportToPoint(new Vector3(0f, 0f, 0f), true, new Vector3(0f, 0f, 0f));
					tele = false;
				}
			}
			if (!m_isLoading && deathcountdownnum < 0f)
			{
				m_isLoading = true;
			}
		}
	}
}
namespace EFTHideOut
{
	public class MapAudioScript : MonoBehaviour
	{
		public AudioSource TargetSource;

		public float RandomDelayRangeMin = 1f;

		public float RandomDelayRangeMax = 4f;

		public List<AudioClip> Clips = new List<AudioClip>();

		private float nextdelay = 1f;

		private float t;

		private void Update()
		{
			if (((Component)this).gameObject.activeInHierarchy && !TargetSource.isPlaying)
			{
				t += Time.deltaTime;
				if (t >= nextdelay)
				{
					TargetSource.clip = SodaliteUtils.GetRandom<AudioClip>((IList<AudioClip>)Clips);
					TargetSource.Play();
					t -= nextdelay;
					nextdelay = Random.Range(RandomDelayRangeMin, RandomDelayRangeMax);
				}
			}
		}

		public void VolumeChange(float Volume)
		{
			AudioSource targetSource = TargetSource;
			targetSource.volume += Volume;
		}

		public void RangeChange(float Range)
		{
			AudioSource targetSource = TargetSource;
			targetSource.maxDistance += Range;
		}
	}
	public class MapLevelScript : MonoBehaviour
	{
		public bool scenechanged = false;

		private int LV = 3;

		public bool IsLit = true;

		public SpawnAIScene AI;

		public GameObject LV3LitSound;

		public GameObject LV3DarkSound;

		public SpawnPrefabOnPoint SPOP;

		public GameObject lightswitch;

		public GameObject lightswitchbase;

		private void Start()
		{
			SceneManager.LoadScene("EFHideOut_LV3Lit", (LoadSceneMode)1);
		}

		private void LV3Lit()
		{
			SceneManager.UnloadSceneAsync("EFHideOut_LV3Dark");
			SceneManager.LoadScene("EFHideOut_LV3Lit", (LoadSceneMode)1);
			LV3LitSound.SetActive(true);
			LV3DarkSound.SetActive(false);
			AI.spawn = false;
			IsLit = true;
		}

		private void LV3Dark()
		{
			SceneManager.UnloadSceneAsync("EFHideOut_LV3Lit");
			SceneManager.LoadScene("EFHideOut_LV3Dark", (LoadSceneMode)1);
			LV3LitSound.SetActive(false);
			LV3DarkSound.SetActive(true);
			AI.spawn = true;
			IsLit = false;
		}

		public void FixedUpdate()
		{
			//IL_009f: 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_00c4: 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_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)SPOP.obj != (Object)null)
			{
				lightswitch = SPOP.obj;
			}
			else if (!((Object)(object)SPOP.obj == (Object)null) && !((Object)(object)lightswitch == (Object)null))
			{
			}
			if (!((Object)(object)lightswitch != (Object)null))
			{
				return;
			}
			lightswitch.transform.SetParent(lightswitchbase.transform);
			lightswitch.transform.localPosition = new Vector3(0f, 0f, 0f);
			lightswitch.transform.localEulerAngles = new Vector3(lightswitch.transform.localEulerAngles.x, 0f, 0f);
			lightswitch.transform.localScale = new Vector3(1f, 1f, 1f);
			if (lightswitch.transform.localEulerAngles.x > 45f)
			{
				if (IsLit)
				{
					LV3Dark();
				}
			}
			else if (lightswitch.transform.localEulerAngles.x < 45f && !IsLit)
			{
				LV3Lit();
			}
		}
	}
}
namespace JerryComponent
{
	public class Extractpoint : MonoBehaviour
	{
		public bool isNGAInstalled;

		public float telecountdown = 1f;

		public bool telecount = false;

		public bool telecount2 = false;

		public GameObject motherboard;

		public bool startcountdown = false;

		public EFTMode modemain;

		public float countdownnum = 12f;

		public bool sceneswitched = false;

		public GameObject countdownboard;

		public Transform hidepoint;

		public TextMesh countdowntext;

		private void OnTriggerStay(Collider other)
		{
			if ((Object)(object)((Component)other).gameObject == (Object)(object)modemain.playerdetectpoint)
			{
				startcountdown = true;
			}
		}

		private void OnTriggerExit(Collider other)
		{
			if ((Object)(object)((Component)other).gameObject == (Object)(object)modemain.playerdetectpoint)
			{
				startcountdown = false;
			}
		}

		private void Start()
		{
			isNGAInstalled = Chainloader.PluginInfos.ContainsKey("NGA.SafehouseMP");
			motherboard.SetActive(true);
		}

		private void FixedUpdate()
		{
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			if (!isNGAInstalled)
			{
				((Component)this).gameObject.SetActive(false);
			}
			else if (isNGAInstalled)
			{
				if (telecount)
				{
					telecountdown -= Time.deltaTime;
				}
				if (telecountdown < 0f && !telecount2)
				{
					telecount = false;
					telecount2 = true;
					modemain.escape.SetActive(true);
					GM.CurrentMovementManager.TeleportToPoint(((Component)hidepoint).transform.position, true, ((Component)hidepoint).transform.localEulerAngles);
				}
				if (countdownnum < 2f)
				{
					motherboard.SetActive(false);
					SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0.25f, false);
					telecount = true;
				}
				if (countdownnum < 0f && !sceneswitched)
				{
					Save();
					Escape();
					startcountdown = false;
					sceneswitched = true;
				}
				if (startcountdown)
				{
					countdownboard.SetActive(true);
					countdownboard.transform.position = ((Component)GM.CurrentMovementManager.Head).transform.position;
					countdownboard.transform.eulerAngles = ((Component)GM.CurrentMovementManager.Head).transform.eulerAngles;
					countdowntext.text = "Extract" + (countdownnum - 2f).ToString("f1");
					countdownnum -= 1f * Time.deltaTime;
				}
				if (!startcountdown)
				{
					countdownboard.SetActive(false);
					countdowntext.text = "Extract10";
					countdownnum = 12f;
				}
			}
		}

		private void Save()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			VaultFile val = new VaultFile();
			if (VaultSystem.FindAndScanObjectsInQuickbelt(val))
			{
				if (!VaultSystem.SaveVaultFile(SafehouseMP.raid_extracted_loadout_filename, (VaultFileDisplayMode)1, val))
				{
					Debug.Log((object)"ERROR: Saving loadout failed.");
				}
				else if (SafehouseMP.config_delete_loadout_on_save.Value)
				{
					VaultFile val2 = new VaultFile();
					FVRPlayerBody val3 = Object.FindObjectOfType<FVRPlayerBody>();
					Transform transform = new GameObject().transform;
					transform.position = ((Component)val3).transform.position;
					string text = default(string);
					if (!VaultSystem.SpawnObjects((VaultFileDisplayMode)1, val2, ref text, transform, Vector3.zero))
					{
						Debug.Log((object)("ERROR: Couldn't spawn empty loadout w status: " + text));
					}
				}
			}
			else
			{
				Debug.Log((object)"ERROR: Quickbelt scan failed.");
			}
		}

		private void Escape()
		{
			for (int i = 0; i < GM.CurrentSceneSettings.QuitReceivers.Count; i++)
			{
				GM.CurrentSceneSettings.QuitReceivers[i].BroadcastMessage("QUIT", (SendMessageOptions)1);
			}
			if (((AnvilCallbackBase)GM.LoadingCallback).IsCompleted)
			{
				CustomSceneInfo customScene = AtlasPlugin.GetCustomScene("EFTHideOut_SafeHouse");
				if (customScene != null)
				{
					AtlasPlugin.LoadCustomScene("EFTHideOut_SafeHouse");
				}
				else
				{
					SteamVR_LoadLevel.Begin("EFTHideOut_SafeHouse", false, 0f, 0f, 0f, 0f, 1f);
				}
			}
		}
	}
	public class Humansig : MonoBehaviour
	{
		public GameObject handL;

		public GameObject handR;

		public Sosig sosig;

		public GameObject body;

		private void Start()
		{
			sosig = ((Component)this).GetComponentInParent<Sosig>();
		}

		private void Update()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)sosig == (Object)null)
			{
			}
			if ((Object)(object)sosig != (Object)null)
			{
				if ((int)sosig.BodyState != 0)
				{
					Object.Instantiate<GameObject>(body, ((Component)sosig).gameObject.transform.position, ((Component)sosig).gameObject.transform.rotation);
					Object.Destroy((Object)(object)((Component)sosig).gameObject);
					Object.Destroy((Object)(object)this);
				}
				sosig.Renderers[0].enabled = false;
				sosig.Renderers[1].enabled = false;
				sosig.Renderers[2].enabled = false;
				sosig.Renderers[3].enabled = false;
				if (sosig.Hand_Primary != null)
				{
					handR.transform.position = ((Component)sosig.Hand_Primary.Root).transform.position;
					handR.transform.eulerAngles = ((Component)sosig.Hand_Primary.Root).transform.eulerAngles;
				}
				if (sosig.Hand_Secondary != null)
				{
					handL.transform.position = ((Component)sosig.Hand_Secondary.Root).transform.position;
					handL.transform.eulerAngles = ((Component)sosig.Hand_Secondary.Root).transform.eulerAngles;
				}
			}
		}
	}
	public class Humansigconv : MonoBehaviour
	{
		public float countdown = 2f;

		public bool conved = false;

		public FVRObject body;

		public FVRObject bodySCAVBoss;

		private void Start()
		{
		}

		private void Update()
		{
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			if (!conved)
			{
				countdown -= Time.deltaTime;
			}
			if (!(countdown < 0f) || conved)
			{
				return;
			}
			conved = true;
			Sosig[] array = Object.FindObjectsOfType<Sosig>();
			if (array == null)
			{
				return;
			}
			Sosig[] array2 = array;
			foreach (Sosig val in array2)
			{
				Debug.Log((object)"sosig found");
				if (((Object)((Component)val).gameObject).name == "Zosig_Rot(Clone)" && val.Renderers[0].enabled && (Object)(object)val.Links[0] != (Object)null)
				{
					GameObject val2 = Object.Instantiate<GameObject>(((AnvilAsset)bodySCAVBoss).GetGameObject(), ((Component)val.Links[0]).transform);
					val.CanBeKnockedOut = false;
					val.DoesDropWeaponsOnBallistic = false;
					val.DamMult_Blunt = 0.25f;
					val.DamMult_Chilling = 0.25f;
					val.DamMult_Cutting = 0.25f;
					val.DamMult_EMP = 0.15f;
					val.DamMult_Explosive = 0.55f;
					val.DamMult_Melee = 0.35f;
					val.DamMult_Piercing = 0.1f;
					val.DamMult_Projectile = 0.1f;
					val.DamMult_Thermal = 0.1f;
					if ((Object)(object)val2 != (Object)null)
					{
						val2.transform.localPosition = new Vector3(0f, 0f, 0f);
						val2.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
						Humansig component = val2.GetComponent<Humansig>();
						if ((Object)(object)component != (Object)null)
						{
							component.sosig = val;
						}
					}
					Debug.Log((object)"SCAVboss spawned on sosig");
				}
				if (!(((Object)((Component)val).gameObject).name != "Zosig_Rot(Clone)") || !val.Renderers[0].enabled || !((Object)(object)val.Links[0] != (Object)null))
				{
					continue;
				}
				GameObject val3 = Object.Instantiate<GameObject>(((AnvilAsset)body).GetGameObject(), ((Component)val.Links[0]).transform);
				val.DamMult_Blunt = 0.75f;
				val.DamMult_Chilling = 1f;
				val.DamMult_Cutting = 0.75f;
				val.DamMult_EMP = 0.5f;
				val.DamMult_Explosive = 1f;
				val.DamMult_Melee = 1.5f;
				val.DamMult_Piercing = 0.5f;
				val.DamMult_Projectile = 0.5f;
				val.DamMult_Thermal = 0.5f;
				if ((Object)(object)val3 != (Object)null)
				{
					val3.transform.localPosition = new Vector3(0f, 0f, 0f);
					val3.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					Humansig component2 = val3.GetComponent<Humansig>();
					if ((Object)(object)component2 != (Object)null)
					{
						component2.sosig = val;
					}
				}
				Debug.Log((object)"USEC spawned on sosig");
			}
		}
	}
	public class AmITheFirst : MonoBehaviour
	{
		public string objname;

		public GameObject objtoenable;

		public FVRObject theobjname;

		private void Start()
		{
			if ((Object)(object)GameObject.Find(objname) == (Object)null)
			{
				objtoenable.SetActive(true);
				Object.Instantiate<GameObject>(((AnvilAsset)theobjname).GetGameObject(), ((Component)this).transform);
				Debug.Log((object)"first");
			}
			if ((Object)(object)GameObject.Find(objname) != (Object)null)
			{
				objtoenable.SetActive(false);
				Debug.Log((object)"not first");
			}
		}

		private void Update()
		{
		}
	}
	public class SpawnFVROBJ : MonoBehaviour
	{
		public bool spawnpicked = false;

		public Random Rand;

		public ObjectSpawnPoint[] IDs;

		public ObjectSpawnPoint ID;

		public int length;

		private void Start()
		{
			IDs = ((Component)this).GetComponents<ObjectSpawnPoint>();
			RandomPick();
		}

		private void FixedUpdate()
		{
			if ((Object)(object)ID == (Object)null)
			{
				Debug.Log((object)"Null");
			}
		}

		private void RandomPick()
		{
			if (!spawnpicked)
			{
				int num = Random.Range(0, IDs.Length);
				ID = IDs[num];
				if ((Object)(object)ID != (Object)null)
				{
					((Behaviour)ID).enabled = true;
					Debug.Log((object)"Loot spawned");
				}
				spawnpicked = true;
			}
		}
	}
	public class DrawDecal : MonoBehaviour
	{
		private void OnTriggerEnter(Collider other)
		{
			if (((Object)((Component)other).gameObject).name == "MarkeTail")
			{
				Object.Destroy((Object)(object)this);
			}
		}

		private void Start()
		{
		}

		private void Update()
		{
		}
	}
	public class DrawingTool : MonoBehaviour
	{
		public GameObject penref;

		public GameObject decal;

		private void OnTriggerStay(Collider other)
		{
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			if (((Object)((Component)other).gameObject).name == "MarkerTip")
			{
				penref.transform.position = ((Component)other).gameObject.transform.position;
				Object.Instantiate<GameObject>(decal, penref.transform.position, ((Component)this).transform.rotation, ((Component)this).transform);
			}
		}

		private void Start()
		{
		}

		private void FixedUpdate()
		{
		}
	}
	public class SnapToPointRigidbody : MonoBehaviour
	{
		public Transform snapTo;

		[NonSerialized]
		private Rigidbody body;

		public float snapTime = 2f;

		[NonSerialized]
		private float dropTimer;

		public void Start()
		{
			body = ((Component)this).GetComponent<Rigidbody>();
		}

		public void FixedUpdate()
		{
			//IL_0099: 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_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			dropTimer += Time.deltaTime / (snapTime / 2f);
			body.isKinematic = dropTimer > 1f;
			if (dropTimer > 1f)
			{
				((Component)this).transform.position = snapTo.position;
				((Component)this).transform.rotation = snapTo.rotation;
				return;
			}
			float num = Mathf.Pow(35f, dropTimer);
			body.velocity = Vector3.Lerp(body.velocity, Vector3.zero, Time.fixedDeltaTime * 4f);
			if (body.useGravity)
			{
				body.AddForce(-Physics.gravity);
			}
			((Component)this).transform.position = Vector3.Lerp(((Component)this).transform.position, snapTo.position, Time.fixedDeltaTime * num * 3f);
			((Component)this).transform.rotation = Quaternion.Slerp(((Component)this).transform.rotation, snapTo.rotation, Time.fixedDeltaTime * num * 2f);
		}
	}
}
namespace JerryAr.EFT_HideOut_SafeHouse
{
	[BepInPlugin("JerryAr.EFT_HideOut_SafeHouse", "EFT_HideOut_SafeHouse", "1.5.0")]
	[BepInProcess("h3vr.exe")]
	[Description("Built with MeatKit")]
	[BepInDependency("nrgill28.Atlas", "1.0.1")]
	[BepInDependency("nrgill28.Sodalite", "1.4.2")]
	public class EFT_HideOut_SafeHousePlugin : BaseUnityPlugin
	{
		private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

		internal static ManualLogSource Logger;

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			LoadAssets();
		}

		private void LoadAssets()
		{
			Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "JerryAr.EFT_HideOut_SafeHouse");
			AtlasPlugin.RegisterScene(Path.Combine(BasePath, "efthideout_safehouse"));
			GameAPI.PreloadAllAssets(Path.Combine(BasePath, "eft_hideout_safehouse_preload"));
		}
	}
}
namespace EFT_MeatStore
{
	public static class MEATStoreConfig
	{
		public static string GetUserProfilePath()
		{
			return Environment.ExpandEnvironmentVariables("%USERPROFILE%\\AppData\\LocalLow\\RUST LTD\\Hot Dogs Horseshoes and Hand Grenades");
		}

		public static string CheckEFConfigFolder(string SubName)
		{
			string userProfilePath = GetUserProfilePath();
			string text = userProfilePath + "\\EF\\" + SubName + "\\";
			if (!Directory.Exists(text))
			{
				Directory.CreateDirectory(text);
			}
			return text;
		}

		public static string CheckEFConfigFile(string SubName, string FileName)
		{
			string userProfilePath = GetUserProfilePath();
			string text = userProfilePath + "\\EF\\" + SubName + "\\" + FileName;
			if (!File.Exists(text))
			{
				File.Create(text);
			}
			return text;
		}

		public static void Store(string path, MEATStoreSetting Target)
		{
			XmlSerializer xmlSerializer = new XmlSerializer(typeof(MEATStoreSetting));
			FileStream fileStream = File.OpenWrite(path);
			fileStream.Seek(0L, SeekOrigin.Begin);
			fileStream.SetLength(0L);
			xmlSerializer.Serialize(fileStream, Target);
			fileStream.Flush();
			fileStream.Close();
		}

		public static MEATStoreSetting Read(string path)
		{
			FileStream fileStream = new FileStream(path, FileMode.Open);
			XmlSerializer xmlSerializer = new XmlSerializer(typeof(MEATStoreSetting));
			MEATStoreSetting mEATStoreSetting = new MEATStoreSetting();
			mEATStoreSetting = (MEATStoreSetting)xmlSerializer.Deserialize(fileStream);
			fileStream.Close();
			return mEATStoreSetting;
		}
	}
	public class MEATStoreEFT : MonoBehaviour
	{
		public bool readyforsale = false;

		public Text prapor;

		public Transform spawnpoint;

		public Collider detectcol;

		public AudioEvent cantbuy;

		public AudioEvent canbuy;

		public AudioEvent click;

		public string curitemname;

		public FVRPhysicalObject curitemforsell;

		public Text DepositBUY;

		public Text LevelBUY;

		public Text DepositSELL;

		public Text PriceBUY;

		public Text PriceSELL;

		public Text LvlBUY;

		public Text LvlSELL;

		public Text ItemBUY;

		public Text ItemSell;

		public Text curEXPTxt;

		public Text nxtEXPTxt;

		public Text CatigoryType;

		public int curType = 0;

		public int curItem = 0;

		public int deposit = 5000;

		public int level = 1;

		public float nxtEXP = 1000f;

		public int curprice = 0;

		public int curlevel = 1;

		private MEATStoreGlobalObj GO;

		public GameObject SoBPage;

		public GameObject SellPage;

		public GameObject BuyPage;

		public GameObject TypePage;

		public string[] Types = new string[9];

		public string[] Food = new string[7];

		public string[] Medical = new string[7];

		public string[] Ammo = new string[10];

		public string[] Grenade = new string[5];

		public string[] Attachment = new string[55];

		public string[] Weapon = new string[27];

		public string[] Helmet = new string[66];

		public string[] Magazine = new string[32];

		public string[] Valuables = new string[17];

		public int[] FoodP = new int[7];

		public int[] MedicalP = new int[7];

		public int[] AmmoP = new int[10];

		public int[] GrenadeP = new int[5];

		public int[] AttachmentP = new int[55];

		public int[] WeaponP = new int[27];

		public int[] HelmetP = new int[66];

		public int[] MagazineP = new int[32];

		public int[] ValuablesP = new int[17];

		public int[] FoodE = new int[7];

		public int[] MedicalE = new int[7];

		public int[] AmmoE = new int[10];

		public int[] GrenadeE = new int[5];

		public int[] AttachmentE = new int[55];

		public int[] WeaponE = new int[27];

		public int[] HelmetE = new int[66];

		public int[] MagazineE = new int[32];

		public void OnTriggerEnter(Collider other)
		{
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_032e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0440: Unknown result type (might be due to invalid IL or missing references)
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_066d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0785: Unknown result type (might be due to invalid IL or missing references)
			//IL_089d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aeb: Unknown result type (might be due to invalid IL or missing references)
			if (!((Object)(object)((Component)other).gameObject.GetComponent<FVRPhysicalObject>() != (Object)null))
			{
				return;
			}
			curitemforsell = ((Component)other).gameObject.GetComponent<FVRPhysicalObject>();
			if (Food.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int i = 0; i < Food.Count() - 1; i++)
				{
					if (Food[i] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)FoodP[i] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "How did you know I'm hungry?!";
						Debug.Log((object)"How did you know I'm hungry?!");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Medical.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int j = 0; j < Medical.Count() - 1; j++)
				{
					if (Medical[j] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)MedicalP[j] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Therapist will love this!";
						Debug.Log((object)"Therapist will love this!");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Weapon.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int k = 0; k < Weapon.Count() - 1; k++)
				{
					if (Weapon[k] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)WeaponP[k] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Gun? I LOVE guns!";
						Debug.Log((object)"Gun? I LOVE guns!");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Magazine.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int l = 0; l < Magazine.Count() - 1; l++)
				{
					if (Magazine[l] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)MagazineP[l] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Would be better to come with a gun next time.";
						Debug.Log((object)"Would be better to come with a gun next time.");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Ammo.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int m = 0; m < Ammo.Count() - 1; m++)
				{
					if (Ammo[m] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)AmmoP[m] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "So you are selling me loose rounds???";
						Debug.Log((object)"So you are selling me loose rounds???");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Attachment.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int n = 0; n < Attachment.Count() - 1; n++)
				{
					if (Attachment[n] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)AttachmentP[n] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Never too many mods!";
						Debug.Log((object)"Never too many mods!");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Grenade.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int num = 0; num < Grenade.Count() - 1; num++)
				{
					if (Grenade[num] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)GrenadeP[num] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "HA HA! Explosives!";
						Debug.Log((object)"HA HA! Explosives!");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (Helmet.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int num2 = 0; num2 < Helmet.Count() - 1; num2++)
				{
					if (Helmet[num2] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)HelmetP[num2] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Wearables? Am I becoming Ragman?";
						Debug.Log((object)"Wearables? Am I becoming Ragman?");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			if (Valuables.Contains(curitemforsell.ObjectWrapper.ItemID))
			{
				for (int num3 = 0; num3 < Valuables.Count() - 1; num3++)
				{
					if (Valuables[num3] == curitemforsell.ObjectWrapper.ItemID)
					{
						curitemname = curitemforsell.ObjectWrapper.ItemID;
						ItemSell.text = curitemforsell.ObjectWrapper.ItemID.ToString();
						curprice = (int)((float)ValuablesP[num3] * 0.75f);
						PriceSELL.text = curprice.ToString();
						prapor.text = "Random stuffs? Hmmmmm......";
						Debug.Log((object)"Random stuffs? Hmmmmm......");
						SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).gameObject.transform.position);
						readyforsale = true;
					}
				}
			}
			else if (!Valuables.Contains(ItemSell.text) && !Food.Contains(ItemSell.text) && !Medical.Contains(ItemSell.text) && !Weapon.Contains(ItemSell.text) && !Magazine.Contains(ItemSell.text) && !Ammo.Contains(ItemSell.text) && !Attachment.Contains(ItemSell.text) && !Grenade.Contains(ItemSell.text) && !Helmet.Contains(ItemSell.text))
			{
				SM.PlayCoreSound((FVRPooledAudioType)41, cantbuy, ((Component)this).gameObject.transform.position);
				prapor.text = "I don't need your garbage!";
				Debug.Log((object)"I don't need your garbage!");
				readyforsale = false;
			}
		}

		public void OnTriggerExit(Collider other)
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)((Component)other).gameObject.GetComponent<FVRPhysicalObject>() != (Object)null && ((Component)other).gameObject.GetComponent<FVRPhysicalObject>().ObjectWrapper.ItemID == curitemname)
			{
				SM.PlayCoreSound((FVRPooledAudioType)41, cantbuy, ((Component)this).gameObject.transform.position);
				curitemname = null;
				curitemforsell = null;
				ItemSell.text = "Canceled";
				curprice = 0;
				PriceSELL.text = curprice.ToString();
				prapor.text = "Changed you mind huh?";
				readyforsale = false;
			}
		}

		public void Awake()
		{
			curItem = 0;
			curType = 0;
			curprice = 0;
			CatigoryType.text = curType.ToString();
			prapor.text = "Huh so you wanna go shopping? They call me Prapor, let's make a deal.";
			detectcol.enabled = false;
			SoBPage.SetActive(true);
			SellPage.SetActive(false);
			BuyPage.SetActive(false);
			TypePage.SetActive(false);
		}

		public void Start()
		{
			GO = MEATStoreGlobalObj.GetInstance();
			GO.ReadConfig();
			RefreshUIStat();
			prapor.text = "Huh so you wanna go shopping? They call me Prapor, let's make a deal.";
			Types[0] = "Weapon";
			Types[1] = "Magazine";
			Types[2] = "Ammo";
			Types[3] = "Attachment";
			Types[4] = "Grenade";
			Types[5] = "Rig";
			Types[6] = "Food";
			Types[7] = "Medical";
			Food[0] = "EFT BeefCan";
			Food[1] = "EFT MRE";
			Food[2] = "EFT Kolbasa";
			Food[3] = "EFT WatterBottle";
			Food[4] = "EFT JuiceBox Green";
			Food[5] = "EFT JuiceBox Red";
			Food[6] = "EFT JuiceBox Yellow";
			Medical[0] = "Med_Analgin";
			Medical[1] = "Med_Bandage";
			Medical[2] = "Med_CAT";
			Medical[3] = "Med_CMSK";
			Medical[4] = "Med_GoldenStar";
			Medical[5] = "Med_Propital";
			Medical[6] = "AI2 Medkit";
			Weapon[0] = "AKS74U";
			Weapon[1] = "AK74N";
			Weapon[2] = "AKS74UTactical";
			Weapon[3] = "AKM";
			Weapon[4] = "RPK";
			Weapon[5] = "AKMTactical";
			Weapon[6] = "Mk18Mod0";
			Weapon[7] = "H416";
			Weapon[8] = "M16";
			Weapon[9] = "M4A1Block2CQBR";
			Weapon[10] = "SV98";
			Weapon[11] = "Toz106";
			Weapon[12] = "MosinM1891";
			Weapon[13] = "Mosin91_30";
			Weapon[14] = "MosinM38";
			Weapon[15] = "ASVAL";
			Weapon[16] = "SR3M";
			Weapon[17] = "VSSVintorez";
			Weapon[18] = "Dragonuv";
			Weapon[19] = "FaTactical";
			Weapon[20] = "Fal";
			Weapon[21] = "FalPara";
			Weapon[22] = "IZh18_12g";
			Weapon[23] = "KS23";
			Weapon[24] = "I37Classic";
			Weapon[25] = "M2ThreeGun";
			Weapon[26] = "Saiga12k";
			Magazine[0] = "MagazineAK74_10rnd";
			Magazine[1] = "MagazineAK74_20rnd";
			Magazine[2] = "MagazineAKS74U";
			Magazine[3] = "MagazineAKS74U2";
			Magazine[4] = "MagazineAK74N";
			Magazine[5] = "MagazineAK12";
			Magazine[6] = "MagazineAK74Drum";
			Magazine[7] = "MagazineAKMTactical10rnd";
			Magazine[8] = "MagazineAKMTactical20rnd";
			Magazine[9] = "MagazineAKM";
			Magazine[10] = "MagazineAKMTactical";
			Magazine[11] = "MagazineRPK";
			Magazine[12] = "MagazineAKMDrum";
			Magazine[13] = "MagazineAKMHeirloom";
			Magazine[14] = "MagazineStanagUSGI5rnd";
			Magazine[15] = "MagazineStanagUSGI10rnd";
			Magazine[16] = "MagazineStanagUSGI20rnd";
			Magazine[17] = "MagazineStanagUSGI25rnd";
			Magazine[18] = "MagazineStanagUSGI30rnd";
			Magazine[19] = "MagazineStanagUSGI30rndCustom";
			Magazine[20] = "Magazine_Stanag_PM_30rnd";
			Magazine[21] = "MagazineStanagPDDrum60rnd";
			Magazine[22] = "MagazineStanagSM60rnd";
			Magazine[23] = "MagazineSV98";
			Magazine[24] = "MagazineToz106";
			Magazine[25] = "762x54mmRStripperClip";
			Magazine[26] = "MagazineVSSVintorez10rnd";
			Magazine[27] = "MagazineASVal20Rnd";
			Magazine[28] = "MagazineDragonuv";
			Magazine[29] = "MagazineFal20rnd";
			Magazine[30] = "MagazineSaiga12k12rnd";
			Magazine[31] = "MagazineSaiga12k20rnd";
			Ammo[0] = "545x39mmCartridgeAP";
			Ammo[1] = "762x39mmCartridgeAP";
			Ammo[2] = "556x45mmCartridgeAP";
			Ammo[3] = "762x54mmRCartridgeAP";
			Ammo[4] = "9x39mmCartridgeAP";
			Ammo[5] = "762x51mmCartridgeAP";
			Ammo[6] = "12GaugeShell00Buckshot";
			Ammo[7] = "12GaugeShellDragonsBreath";
			Ammo[8] = "23x75mmR_Buckshot";
			Ammo[9] = "23x75mmR_Flash";
			Grenade[0] = "PinnedGrenadeRG5";
			Grenade[1] = "F-1 Russia (Remastered)";
			Grenade[2] = "PinnedGrenadeRGO";
			Grenade[3] = "PinnedGrenadeRGN";
			Grenade[4] = "PinnedGrenadeM67";
			Attachment[0] = "TacticalFlashlight";
			Attachment[1] = "KlashLight";
			Attachment[2] = "CompactFlashlight2";
			Attachment[3] = "AKForeB10";
			Attachment[4] = "ForegripLarge";
			Attachment[5] = "ForegripLDAG";
			Attachment[6] = "ForegripMVG";
			Attachment[7] = "ForegripOffset";
			Attachment[8] = "ForegripRKO";
			Attachment[9] = "ForegripShift";
			Attachment[10] = "ForegripValk";
			Attachment[11] = "ForegripZG106";
			Attachment[12] = "HandstopKAG";
			Attachment[13] = "H416IronsFront";
			Attachment[14] = "H416IronsRear";
			Attachment[15] = "CantedSightsFront";
			Attachment[16] = "CantedSightsRear";
			Attachment[17] = "ANPEQ15";
			Attachment[18] = "TacticalLaser2";
			Attachment[19] = "Perst3Laser";
			Attachment[20] = "MuzzleBrakeCobra";
			Attachment[21] = "MuzzleBrakeCharon";
			Attachment[22] = "MuzzleBrakeOrbit";
			Attachment[23] = "MuzzleBrakeTruepoint";
			Attachment[24] = "RailRiserTall";
			Attachment[25] = "RailRiserShort";
			Attachment[26] = "RailRiserMed";
			Attachment[27] = "ReflexEG1";
			Attachment[28] = "ReflexOKP7OSA";
			Attachment[29] = "ReflexPK01VS";
			Attachment[30] = "ReflexPK120";
			Attachment[31] = "ReflexHolosightLong";
			Attachment[32] = "ReflexHolosightShort";
			Attachment[33] = "MagnifierPSO1";
			Attachment[34] = "T12Scope";
			Attachment[35] = "ScopeVRZ_6_36x56mmBronze";
			Attachment[36] = "ScopeVRZ_6_36x56mmBlack";
			Attachment[37] = "ScopeHAMComboScope4x24";
			Attachment[38] = "MagnifierGhostDRFDE";
			Attachment[39] = "MagnifierGhostDR";
			Attachment[40] = "ScopeEVU110x28mm";
			Attachment[41] = "ScopeAcog4x32";
			Attachment[42] = "ScopePVS30";
			Attachment[43] = "ScopePVS14";
			Attachment[44] = "SuppressorPBS4";
			Attachment[45] = "SuppressorPBS1";
			Attachment[46] = "SuppressorCorded";
			Attachment[47] = "SuppressorCordedTan";
			Attachment[48] = "SuppressorWrapped";
			Attachment[49] = "SuppressorSalvo";
			Attachment[50] = "AttachableBipodH";
			Attachment[51] = "RailAdapterRussianToPicatinny";
			Attachment[52] = "ScopeMosinPU";
			Attachment[53] = "AKForeShark";
			Attachment[54] = "AKForeRomanian";
			Helmet[0] = "BackpackWartech";
			Helmet[1] = "FTW.EXFILShieldB.helmet";
			Helmet[2] = "FTW.FASTAirsoft.helmetTan";
			Helmet[3] = "FTW.FastShield.attachment";
			Helmet[4] = "FTW.FastPic.attachment";
			Helmet[5] = "FTW.HeavyTrooper.attachment";
			Helmet[6] = "FTW.RysT.helmet";
			Helmet[7] = "FTW.RysTMask.helmet";
			Helmet[8] = "FTW.helmet.LSHZMask";
			Helmet[9] = "FTW.FastEars.attachment";
			Helmet[10] = "FTW.TC800.helmet";
			Helmet[11] = "FTW.Helmet.Jason";
			Helmet[12] = "ftw.altynmask.helmet";
			Helmet[13] = "FTW.EXFILShieldT.helmet";
			Helmet[14] = "FTW.SLAPPPlate.attachement";
			Helmet[15] = "FTW.FastVisor.attachment";
			Helmet[16] = "FTW.HeavyTrooper.attachmentB";
			Helmet[17] = "FTW.Caiman.helmet";
			Helmet[18] = "FTW.FAST.helmet";
			Helmet[19] = "FTW.EXFILt.helmet";
			Helmet[20] = "FTW.ZshShield.helmet";
			Helmet[21] = "FTW.HeavyTrooper.attachmentWolfe";
			Helmet[22] = "ftw.Airframe.helmet";
			Helmet[23] = "FTW.Kiver.helmet";
			Helmet[24] = "FTW.HeavyTrooper.attachmentT";
			Helmet[25] = "ftw.Bastion.helmet";
			Helmet[26] = "ftw.Bastionshield.helmet";
			Helmet[27] = "FTW.helmet.LSHZAventail";
			Helmet[28] = "FTW.FastEars.attachmentTan";
			Helmet[29] = "ftw.altyn.helmet";
			Helmet[30] = "FTW.EXFILEars.helmetB";
			Helmet[31] = "FTW.CaimanShield.helmet";
			Helmet[32] = "FTW.KiverShield.helmet";
			Helmet[33] = "FTW.FASTTan.helmet";
			Helmet[34] = "FTW.UNHelmet.helmet";
			Helmet[35] = "FTW.EXFILt.helmetTan";
			Helmet[36] = "FTW.FastMandible.attachment";
			Helmet[37] = "FTW.ZSH.helmet";
			Helmet[38] = "FTW.CaimanMandible.helmet";
			Helmet[39] = "FTW.CaimanFixedVisor.helmet";
			Helmet[40] = "FTW.Ushanka.helmet";
			Helmet[41] = "FTW.Helmet.Ronin";
			Helmet[42] = "FTW.EXFILEars.helmet";
			Helmet[43] = "ftw.Airframe.helmetEars";
			Helmet[44] = "FTW.HeavyTrooper.attachmentBT";
			Helmet[45] = "ftw.Airframe.helmetChops";
			Helmet[46] = "FTW.helmet.LSHZ";
			Helmet[47] = "FTW.TankHelmet.helmet";
			Helmet[48] = "6B5ArmourCamo";
			Helmet[49] = "6B5ArmourGreen";
			Helmet[50] = "6B5ArmourYellow";
			Helmet[51] = "Brobber";
			Helmet[52] = "Blackrock";
			Helmet[53] = "CommandoTan";
			Helmet[54] = "6SH112";
			Helmet[55] = "Triton";
			Helmet[56] = "TV109";
			Helmet[57] = "RigTV110";
			Helmet[58] = "AlphaRig";
			Helmet[59] = "ARSPC";
			Helmet[60] = "ScavVest";
			Helmet[61] = "6B13ArmourEMR";
			Helmet[62] = "6B13ArmourFlora";
			Helmet[63] = "6B13ArmourTan";
			Helmet[64] = "6b13BackPlate";
			Helmet[65] = "6b13FrontPlate";
			Valuables[0] = "EFT_BitCoin";
			Valuables[1] = "EFT_CarbonCase";
			Valuables[2] = "EFT_Chemcontainer";
			Valuables[3] = "EFT_CPUChip";
			Valuables[4] = "EFT_CPUCooler";
			Valuables[5] = "EFT_DVD";
			Valuables[6] = "EFT_ElectronicCase";
			Valuables[7] = "EFT_Envelope";
			Valuables[8] = "EFT_Fuelconditioner";
			Valuables[9] = "EFT_Geger";
			Valuables[10] = "EFT_HandDrill";
			Valuables[11] = "EFT_Laptop";
			Valuables[12] = "EFT_Parcel";
			Valuables[13] = "EFT_Photograph";
			Valuables[14] = "EFT_RadioJammer";
			Valuables[15] = "EFT_Ratchetwrench";
			Valuables[16] = "EFT_SSD";
			FoodP[0] = 250;
			FoodP[1] = 500;
			FoodP[2] = 100;
			FoodP[3] = 250;
			FoodP[4] = 500;
			FoodP[5] = 500;
			FoodP[6] = 500;
			MedicalP[0] = 250;
			MedicalP[1] = 250;
			MedicalP[2] = 500;
			MedicalP[3] = 1000;
			MedicalP[4] = 250;
			MedicalP[5] = 1000;
			MedicalP[6] = 2000;
			WeaponP[0] = 1000;
			WeaponP[1] = 1200;
			WeaponP[2] = 1500;
			WeaponP[3] = 1000;
			WeaponP[4] = 1200;
			WeaponP[5] = 2000;
			WeaponP[6] = 2000;
			WeaponP[7] = 3000;
			WeaponP[8] = 1500;
			WeaponP[9] = 2000;
			WeaponP[10] = 2000;
			WeaponP[11] = 500;
			WeaponP[12] = 750;
			WeaponP[13] = 800;
			WeaponP[14] = 1000;
			WeaponP[15] = 3000;
			WeaponP[16] = 2500;
			WeaponP[17] = 2500;
			WeaponP[18] = 1500;
			WeaponP[19] = 2500;
			WeaponP[20] = 2000;
			WeaponP[21] = 3000;
			WeaponP[22] = 1000;
			WeaponP[23] = 2000;
			WeaponP[24] = 1500;
			WeaponP[25] = 2000;
			WeaponP[26] = 3000;
			MagazineP[0] = 100;
			MagazineP[1] = 200;
			MagazineP[2] = 300;
			MagazineP[3] = 300;
			MagazineP[4] = 300;
			MagazineP[5] = 350;
			MagazineP[6] = 1000;
			MagazineP[7] = 100;
			MagazineP[8] = 200;
			MagazineP[9] = 300;
			MagazineP[10] = 350;
			MagazineP[11] = 500;
			MagazineP[12] = 1000;
			MagazineP[13] = 350;
			MagazineP[14] = 50;
			MagazineP[15] = 100;
			MagazineP[16] = 200;
			MagazineP[17] = 250;
			MagazineP[18] = 300;
			MagazineP[19] = 350;
			MagazineP[20] = 350;
			MagazineP[21] = 1000;
			MagazineP[22] = 1500;
			MagazineP[23] = 200;
			MagazineP[24] = 50;
			MagazineP[25] = 25;
			MagazineP[26] = 200;
			MagazineP[27] = 400;
			MagazineP[28] = 200;
			MagazineP[29] = 200;
			MagazineP[30] = 500;
			MagazineP[31] = 1000;
			AmmoP[0] = 10;
			AmmoP[1] = 5;
			AmmoP[2] = 15;
			AmmoP[3] = 20;
			AmmoP[4] = 25;
			AmmoP[5] = 20;
			AmmoP[6] = 5;
			AmmoP[7] = 10;
			AmmoP[8] = 15;
			AmmoP[9] = 50;
			GrenadeP[0] = 500;
			GrenadeP[1] = 750;
			GrenadeP[2] = 1000;
			GrenadeP[3] = 1000;
			GrenadeP[4] = 750;
			AttachmentP[0] = 750;
			AttachmentP[1] = 500;
			AttachmentP[2] = 500;
			AttachmentP[3] = 450;
			AttachmentP[4] = 200;
			AttachmentP[5] = 200;
			AttachmentP[6] = 250;
			AttachmentP[7] = 250;
			AttachmentP[8] = 300;
			AttachmentP[9] = 300;
			AttachmentP[10] = 300;
			AttachmentP[11] = 250;
			AttachmentP[12] = 200;
			AttachmentP[13] = 150;
			AttachmentP[14] = 150;
			AttachmentP[15] = 100;
			AttachmentP[16] = 100;
			AttachmentP[17] = 500;
			AttachmentP[18] = 100;
			AttachmentP[19] = 750;
			AttachmentP[20] = 200;
			AttachmentP[21] = 250;
			AttachmentP[22] = 250;
			AttachmentP[23] = 200;
			AttachmentP[24] = 300;
			AttachmentP[25] = 200;
			AttachmentP[26] = 250;
			AttachmentP[27] = 750;
			AttachmentP[28] = 250;
			AttachmentP[29] = 500;
			AttachmentP[30] = 750;
			AttachmentP[31] = 800;
			AttachmentP[32] = 900;
			AttachmentP[33] = 750;
			AttachmentP[34] = 500;
			AttachmentP[35] = 1500;
			AttachmentP[36] = 1500;
			AttachmentP[37] = 850;
			AttachmentP[38] = 1000;
			AttachmentP[39] = 1000;
			AttachmentP[40] = 750;
			AttachmentP[41] = 750;
			AttachmentP[42] = 5000;
			AttachmentP[43] = 4500;
			AttachmentP[44] = 350;
			AttachmentP[45] = 500;
			AttachmentP[46] = 750;
			AttachmentP[47] = 750;
			AttachmentP[48] = 750;
			AttachmentP[49] = 900;
			AttachmentP[50] = 100;
			AttachmentP[51] = 250;
			AttachmentP[52] = 500;
			AttachmentP[53] = 200;
			AttachmentP[54] = 250;
			HelmetP[0] = 750;
			HelmetP[1] = 500;
			HelmetP[2] = 250;
			HelmetP[3] = 500;
			HelmetP[4] = 200;
			HelmetP[5] = 750;
			HelmetP[6] = 500;
			HelmetP[7] = 450;
			HelmetP[8] = 500;
			HelmetP[9] = 500;
			HelmetP[10] = 750;
			HelmetP[11] = 120;
			HelmetP[12] = 750;
			HelmetP[13] = 500;
			HelmetP[14] = 400;
			HelmetP[15] = 500;
			HelmetP[16] = 400;
			HelmetP[17] = 600;
			HelmetP[18] = 700;
			HelmetP[19] = 800;
			HelmetP[20] = 500;
			HelmetP[21] = 500;
			HelmetP[22] = 650;
			HelmetP[23] = 500;
			HelmetP[24] = 350;
			HelmetP[25] = 600;
			HelmetP[26] = 400;
			HelmetP[27] = 400;
			HelmetP[28] = 300;
			HelmetP[29] = 1500;
			HelmetP[30] = 500;
			HelmetP[31] = 750;
			HelmetP[32] = 200;
			HelmetP[33] = 700;
			HelmetP[34] = 250;
			HelmetP[35] = 750;
			HelmetP[36] = 350;
			HelmetP[37] = 1000;
			HelmetP[38] = 350;
			HelmetP[39] = 400;
			HelmetP[40] = 50;
			HelmetP[41] = 10;
			HelmetP[42] = 150;
			HelmetP[43] = 250;
			HelmetP[44] = 350;
			HelmetP[45] = 320;
			HelmetP[46] = 710;
			HelmetP[47] = 100;
			HelmetP[48] = 2500;
			HelmetP[49] = 2500;
			HelmetP[50] = 2500;
			HelmetP[51] = 75;
			HelmetP[52] = 500;
			HelmetP[53] = 1000;
			HelmetP[54] = 500;
			HelmetP[55] = 750;
			HelmetP[56] = 200;
			HelmetP[57] = 1000;
			HelmetP[58] = 500;
			HelmetP[59] = 1000;
			HelmetP[60] = 75;
			HelmetP[61] = 10000;
			HelmetP[62] = 10000;
			HelmetP[63] = 10000;
			HelmetP[64] = 2500;
			HelmetP[65] = 3000;
			ValuablesP[0] = 1000000;
			ValuablesP[1] = 250000;
			ValuablesP[2] = 10000;
			ValuablesP[3] = 5000;
			ValuablesP[4] = 3500;
			ValuablesP[5] = 2500;
			ValuablesP[6] = 7500;
			ValuablesP[7] = 5000;
			ValuablesP[8] = 2000;
			ValuablesP[9] = 2500;
			ValuablesP[10] = 6500;
			ValuablesP[11] = 10000;
			ValuablesP[12] = 15000;
			ValuablesP[13] = 2000;
			ValuablesP[14] = 7500;
			ValuablesP[15] = 3500;
			ValuablesP[16] = 6000;
			FoodE[0] = 1;
			FoodE[1] = 2;
			FoodE[2] = 1;
			FoodE[3] = 1;
			FoodE[4] = 2;
			FoodE[5] = 2;
			FoodE[6] = 2;
			MedicalE[0] = 2;
			MedicalE[1] = 1;
			MedicalE[2] = 1;
			MedicalE[3] = 2;
			MedicalE[4] = 1;
			MedicalE[5] = 3;
			MedicalE[6] = 2;
			WeaponE[0] = 1;
			WeaponE[1] = 1;
			WeaponE[2] = 3;
			WeaponE[3] = 1;
			WeaponE[4] = 2;
			WeaponE[5] = 3;
			WeaponE[6] = 3;
			WeaponE[7] = 4;
			WeaponE[8] = 2;
			WeaponE[9] = 3;
			WeaponE[10] = 2;
			WeaponE[11] = 1;
			WeaponE[12] = 1;
			WeaponE[13] = 2;
			WeaponE[14] = 1;
			WeaponE[15] = 4;
			WeaponE[16] = 3;
			WeaponE[17] = 3;
			WeaponE[18] = 2;
			WeaponE[19] = 3;
			WeaponE[20] = 1;
			WeaponE[21] = 2;
			WeaponE[22] = 1;
			WeaponE[23] = 3;
			WeaponE[24] = 2;
			WeaponE[25] = 3;
			WeaponE[26] = 4;
			MagazineE[0] = 1;
			MagazineE[1] = 1;
			MagazineE[2] = 1;
			MagazineE[3] = 1;
			MagazineE[4] = 1;
			MagazineE[5] = 2;
			MagazineE[6] = 3;
			MagazineE[7] = 1;
			MagazineE[8] = 1;
			MagazineE[9] = 1;
			MagazineE[10] = 2;
			MagazineE[11] = 3;
			MagazineE[12] = 3;
			MagazineE[13] = 2;
			MagazineE[14] = 1;
			MagazineE[15] = 1;
			MagazineE[16] = 1;
			MagazineE[17] = 1;
			MagazineE[18] = 2;
			MagazineE[19] = 2;
			MagazineE[20] = 2;
			MagazineE[21] = 3;
			MagazineE[22] = 4;
			MagazineE[23] = 2;
			MagazineE[24] = 1;
			MagazineE[25] = 1;
			MagazineE[26] = 1;
			MagazineE[27] = 2;
			MagazineE[28] = 2;
			MagazineE[29] = 1;
			MagazineE[30] = 3;
			MagazineE[31] = 5;
			AmmoE[0] = 2;
			AmmoE[1] = 1;
			AmmoE[2] = 3;
			AmmoE[3] = 3;
			AmmoE[4] = 4;
			AmmoE[5] = 3;
			AmmoE[6] = 1;
			AmmoE[7] = 3;
			AmmoE[8] = 2;
			AmmoE[9] = 4;
			GrenadeE[0] = 1;
			GrenadeE[1] = 2;
			GrenadeE[2] = 3;
			GrenadeE[3] = 3;
			GrenadeE[4] = 2;
			AttachmentE[0] = 2;
			AttachmentE[1] = 2;
			AttachmentE[2] = 2;
			AttachmentE[3] = 2;
			AttachmentE[4] = 1;
			AttachmentE[5] = 1;
			AttachmentE[6] = 1;
			AttachmentE[7] = 2;
			AttachmentE[8] = 2;
			AttachmentE[9] = 2;
			AttachmentE[10] = 2;
			AttachmentE[11] = 2;
			AttachmentE[12] = 3;
			AttachmentE[13] = 1;
			AttachmentE[14] = 1;
			AttachmentE[15] = 1;
			AttachmentE[16] = 1;
			AttachmentE[17] = 3;
			AttachmentE[18] = 2;
			AttachmentE[19] = 3;
			AttachmentE[20] = 1;
			AttachmentE[21] = 1;
			AttachmentE[22] = 2;
			AttachmentE[23] = 2;
			AttachmentE[24] = 3;
			AttachmentE[25] = 1;
			AttachmentE[26] = 2;
			AttachmentE[27] = 3;
			AttachmentE[28] = 1;
			AttachmentE[29] = 2;
			AttachmentE[30] = 3;
			AttachmentE[31] = 2;
			AttachmentE[32] = 3;
			AttachmentE[33] = 3;
			AttachmentE[34] = 2;
			AttachmentE[35] = 3;
			AttachmentE[36] = 3;
			AttachmentE[37] = 4;
			AttachmentE[38] = 3;
			AttachmentE[39] = 3;
			AttachmentE[40] = 3;
			AttachmentE[41] = 3;
			AttachmentE[42] = 4;
			AttachmentE[43] = 4;
			AttachmentE[44] = 2;
			AttachmentE[45] = 2;
			AttachmentE[46] = 3;
			AttachmentE[47] = 3;
			AttachmentE[48] = 3;
			AttachmentE[49] = 4;
			AttachmentE[50] = 3;
			AttachmentE[51] = 2;
			AttachmentE[52] = 2;
			AttachmentE[53] = 2;
			AttachmentE[54] = 2;
			HelmetE[0] = 1;
			HelmetE[1] = 2;
			HelmetE[2] = 1;
			HelmetE[3] = 3;
			HelmetE[4] = 1;
			HelmetE[5] = 2;
			HelmetE[6] = 2;
			HelmetE[7] = 2;
			HelmetE[8] = 2;
			HelmetE[9] = 2;
			HelmetE[10] = 2;
			HelmetE[11] = 1;
			HelmetE[12] = 3;
			HelmetE[13] = 2;
			HelmetE[14] = 2;
			HelmetE[15] = 2;
			HelmetE[16] = 2;
			HelmetE[17] = 2;
			HelmetE[18] = 3;
			HelmetE[19] = 3;
			HelmetE[20] = 2;
			HelmetE[21] = 2;
			HelmetE[22] = 3;
			HelmetE[23] = 2;
			HelmetE[24] = 2;
			HelmetE[25] = 2;
			HelmetE[26] = 2;
			HelmetE[27] = 2;
			HelmetE[28] = 2;
			HelmetE[29] = 3;
			HelmetE[30] = 2;
			HelmetE[31] = 2;
			HelmetE[32] = 2;
			HelmetE[33] = 3;
			HelmetE[34] = 1;
			HelmetE[35] = 3;
			HelmetE[36] = 3;
			HelmetE[37] = 3;
			HelmetE[38] = 2;
			HelmetE[39] = 2;
			HelmetE[40] = 1;
			HelmetE[41] = 1;
			HelmetE[42] = 2;
			HelmetE[43] = 2;
			HelmetE[44] = 2;
			HelmetE[45] = 2;
			HelmetE[46] = 3;
			HelmetE[47] = 1;
			HelmetE[48] = 3;
			HelmetE[49] = 3;
			HelmetE[50] = 3;
			HelmetE[51] = 1;
			HelmetE[52] = 2;
			HelmetE[53] = 2;
			HelmetE[54] = 2;
			HelmetE[55] = 2;
			HelmetE[56] = 3;
			HelmetE[57] = 3;
			HelmetE[58] = 1;
			HelmetE[59] = 3;
			HelmetE[60] = 1;
			HelmetE[61] = 4;
			HelmetE[62] = 4;
			HelmetE[63] = 4;
			HelmetE[64] = 5;
			HelmetE[65] = 5;
		}

		public void FixedUpdate()
		{
			DepositBUY.text = deposit.ToString();
			DepositSELL.text = deposit.ToString();
			if (GO != null)
			{
				level = GO.Config.Level;
				curEXPTxt.text = GO.Config.currentEXP.ToString();
				nxtEXP = 1000f - GO.Config.currentEXP;
			}
			nxtEXPTxt.text = nxtEXP.ToString();
			LvlBUY.text = level.ToString();
			LvlSELL.text = level.ToString();
			CatigoryType.text = Types[curType];
			if (curitemname != null)
			{
				ItemBUY.text = curitemname;
			}
			if ((Object)(object)curitemforsell == (Object)null || curitemname == null)
			{
			}
			PriceBUY.text = curprice.ToString();
			PriceSELL.text = curprice.ToString();
			LevelBUY.text = curlevel.ToString();
		}

		public void TYPEPAGE()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			curItem = 0;
			curitemname = null;
			prapor.text = "So you wanna buy something or just selling some garbage to me?";
			detectcol.enabled = false;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(false);
			SellPage.SetActive(false);
			BuyPage.SetActive(false);
			TypePage.SetActive(true);
		}

		public void SELLPAGE()
		{
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			prapor.text = "Throw your shit out of the door and we will make a deal, one item at a time.";
			curitemname = "No item yet.";
			ItemSell.text = curitemname.ToString();
			detectcol.enabled = true;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(false);
			SellPage.SetActive(true);
			BuyPage.SetActive(false);
			TypePage.SetActive(false);
		}

		public void BUYPAGE()
		{
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			curItem = 0;
			curitemname = "DefaultText Click Next/Prev";
			NEXTCATIGORY();
			PREVCATIGORY();
			prapor.text = "Finally decided what to buy?";
			detectcol.enabled = false;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(false);
			SellPage.SetActive(false);
			BuyPage.SetActive(true);
			TypePage.SetActive(false);
		}

		public void NEXTCATIGORY()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			if (curType < 7)
			{
				curType++;
			}
			else if (curType == 7)
			{
				curType = 0;
			}
		}

		public void PREVCATIGORY()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			if (curType > 0)
			{
				curType--;
			}
			else if (curType == 0)
			{
				curType = 7;
			}
		}

		public void NEXTITEM()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			if (curType == 0)
			{
				if (curItem >= 26)
				{
					curItem = 0;
				}
				else if (curItem < 26)
				{
					curItem++;
				}
				curitemname = Weapon[curItem];
				curprice = WeaponP[curItem];
				curlevel = WeaponE[curItem];
			}
			if (curType == 1)
			{
				if (curItem >= 31)
				{
					curItem = 0;
				}
				else if (curItem < 31)
				{
					curItem++;
				}
				curitemname = Magazine[curItem];
				curprice = MagazineP[curItem];
				curlevel = MagazineE[curItem];
			}
			if (curType == 2)
			{
				if (curItem >= 9)
				{
					curItem = 0;
				}
				else if (curItem < 9)
				{
					curItem++;
				}
				curitemname = Ammo[curItem];
				curprice = AmmoP[curItem];
				curlevel = AmmoE[curItem];
			}
			if (curType == 3)
			{
				if (curItem >= 54)
				{
					curItem = 0;
				}
				else if (curItem < 54)
				{
					curItem++;
				}
				curitemname = Attachment[curItem];
				curprice = AttachmentP[curItem];
				curlevel = AttachmentE[curItem];
			}
			if (curType == 4)
			{
				if (curItem >= 4)
				{
					curItem = 0;
				}
				else if (curItem < 4)
				{
					curItem++;
				}
				curitemname = Grenade[curItem];
				curprice = GrenadeP[curItem];
				curlevel = GrenadeE[curItem];
			}
			if (curType == 5)
			{
				if (curItem >= 65)
				{
					curItem = 0;
				}
				else if (curItem < 65)
				{
					curItem++;
				}
				curitemname = Helmet[curItem];
				curprice = HelmetP[curItem];
				curlevel = HelmetE[curItem];
			}
			if (curType == 6)
			{
				if (curItem >= 6)
				{
					curItem = 0;
				}
				else if (curItem < 6)
				{
					curItem++;
				}
				curitemname = Food[curItem];
				curprice = FoodP[curItem];
				curlevel = FoodE[curItem];
			}
			if (curType == 7)
			{
				if (curItem >= 6)
				{
					curItem = 0;
				}
				else if (curItem < 6)
				{
					curItem++;
				}
				curitemname = Medical[curItem];
				curprice = MedicalP[curItem];
				curlevel = MedicalE[curItem];
			}
		}

		public void PREVITEM()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			if (curType == 0)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 26;
				}
				curitemname = Weapon[curItem];
				curprice = WeaponP[curItem];
				curlevel = WeaponE[curItem];
			}
			if (curType == 1)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 31;
				}
				curitemname = Magazine[curItem];
				curprice = MagazineP[curItem];
				curlevel = MagazineE[curItem];
			}
			if (curType == 2)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 9;
				}
				curitemname = Ammo[curItem];
				curprice = AmmoP[curItem];
				curlevel = AmmoE[curItem];
			}
			if (curType == 3)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 54;
				}
				curitemname = Attachment[curItem];
				curprice = AttachmentP[curItem];
				curlevel = AttachmentE[curItem];
			}
			if (curType == 4)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 4;
				}
				curitemname = Grenade[curItem];
				curprice = GrenadeP[curItem];
				curlevel = GrenadeE[curItem];
			}
			if (curType == 5)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 65;
				}
				curitemname = Helmet[curItem];
				curprice = HelmetP[curItem];
				curlevel = HelmetE[curItem];
			}
			if (curType == 6)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 6;
				}
				curitemname = Food[curItem];
				curprice = FoodP[curItem];
				curlevel = FoodE[curItem];
			}
			if (curType == 7)
			{
				if (curItem > 0)
				{
					curItem--;
				}
				else if (curItem <= 0)
				{
					curItem = 6;
				}
				curitemname = Medical[curItem];
				curprice = MedicalP[curItem];
				curlevel = MedicalE[curItem];
			}
		}

		public void BACKPAGE()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			curItem = 0;
			prapor.text = "You are not gonna sell me the stuffs you just bought from me, right?";
			detectcol.enabled = false;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(true);
			SellPage.SetActive(false);
			BuyPage.SetActive(false);
			TypePage.SetActive(false);
		}

		public void BACKBUYPAGE()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			curItem = 0;
			prapor.text = "Changed your mind?";
			detectcol.enabled = false;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(false);
			SellPage.SetActive(false);
			BuyPage.SetActive(false);
			TypePage.SetActive(true);
			curitemname = null;
			curitemforsell = null;
		}

		public void BACKSELLPAGE()
		{
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			curlevel = 0;
			curprice = 0;
			PriceBUY.text = "0";
			PriceSELL.text = "0";
			curItem = 0;
			prapor.text = "Yea yea just keep them.";
			detectcol.enabled = false;
			SM.PlayCoreSound((FVRPooledAudioType)41, click, ((Component)this).transform.position);
			SoBPage.SetActive(true);
			SellPage.SetActive(false);
			BuyPage.SetActive(false);
			TypePage.SetActive(false);
			curitemname = null;
			curitemforsell = null;
		}

		public void BUY()
		{
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0267: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			RefreshUIStat();
			if (curprice <= deposit && curlevel <= level)
			{
				deposit -= curprice;
				if (GO != null)
				{
					GO.Config.Deposit = deposit;
					GO.Config.currentEXP += (float)curprice * 0.01f;
				}
				StoreConfig();
				if (IM.OD.ContainsKey(curitemname))
				{
					AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD[curitemname]).