Decompiled source of HellDivers2 SES Liberty GameMenu v1.7.0

HellDivers2_SES_Liberty_GameMenu.dll

Decompiled 2 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using Atlas;
using BepInEx;
using BepInEx.Logging;
using FistVR;
using H3MP.Tracking;
using HarmonyLib;
using JerryHD2HP;
using JerryHD2Pelican;
using OtherLoader;
using Sodalite;
using Sodalite.Api;
using UnityEditor;
using UnityEngine;
using UnityEngine.AI;
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 JerryHD2HP
{
	public class HellPodOnStart : MonoBehaviour
	{
		public GameObject Pad;

		public Transform down;

		public Transform up;

		public Vector3 Padref;

		public float cd = 0f;

		public GameObject cover;

		public bool iscoverflew = false;

		public Rigidbody rig;

		private void Start()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			GM.CurrentSceneSettings.UsesPlayerCatcher = false;
			Pad.transform.position = ((Component)down).transform.position;
		}

		private void FixedUpdate()
		{
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: 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_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
			{
				cd += Time.deltaTime;
				if (cd >= 2f && !iscoverflew)
				{
					Rigidbody val = cover.AddComponent<Rigidbody>();
					val.AddForce(new Vector3(1f, 25f, 0f), (ForceMode)1);
					val.AddRelativeTorque(new Vector3(10f, 0f, 0f), (ForceMode)1);
					iscoverflew = true;
				}
				if (cd > 3.5f)
				{
					Pad.transform.localPosition = Vector3.SmoothDamp(Pad.transform.localPosition, up.localPosition, ref Padref, 0.25f);
				}
				if (cd <= 5f)
				{
					((Component)GM.CurrentPlayerBody).transform.position = Pad.transform.position;
				}
				if (cd > 15f)
				{
					((Behaviour)this).enabled = false;
				}
			}
		}

		private void OnDestroy()
		{
			Object.Destroy((Object)(object)cover);
			GM.CurrentSceneSettings.UsesPlayerCatcher = true;
		}
	}
}
namespace JerryHD2
{
	[BepInPlugin("JerryHD2.Plugin", "JerryHD2.Plugin", "1.0.0")]
	[BepInDependency("nrgill28.Sodalite", "1.4.1")]
	[BepInProcess("h3vr.exe")]
	public class KidnapPlayerToShip : BaseUnityPlugin
	{
		public bool KidnapSucceed = false;

		public Sprite placeholder;

		[NonSerialized]
		public MainMenuScenePointable[] scenes;

		[NonSerialized]
		public List<string> scenenames = new List<string>();

		[NonSerialized]
		public List<Sprite> icons = new List<Sprite>();

		[NonSerialized]
		public GameObject sceneselector;

		[NonSerialized]
		public SelectMapSP script;

		[NonSerialized]
		public GameObject HellPod;

		[NonSerialized]
		public static GameObject Pelican;

		[NonSerialized]
		public MainMenuScreen screen;

		public bool hellpoddeployed = false;

		public bool loaded = false;

		public float cd = 5f;

		public float lasttime;

		public bool isloadingring = false;

		[NonSerialized]
		public string mapname;

		internal static ManualLogSource Logger { get; private set; }

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			Logger.LogMessage((object)"New harmony");
			Logger.LogMessage((object)"Setted the fields");
			Harmony.CreateAndPatchAll(typeof(KidnapPlayerToShip), (string)null);
			Logger.LogMessage((object)"Loaded sf System");
		}

		[HarmonyPatch(typeof(FVRWristMenu2), "Awake")]
		[HarmonyPostfix]
		public static void SFWMAH(FVRWristMenu2 __instance)
		{
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Expected O, but got Unknown
			if ((Object)(object)__instance == (Object)null)
			{
				Logger.LogMessage((object)"No FVRWristMenu2");
			}
			bool flag = false;
			string text = "Pelican Extract";
			foreach (WristMenuButton button in WristMenuAPI.Buttons)
			{
				Logger.LogMessage((object)("CC " + button.Text));
				if (button.Text == text)
				{
					flag = true;
					break;
				}
			}
			if (!flag)
			{
				WristMenuAPI.Buttons.Add(new WristMenuButton(text, new ButtonClickEvent(PelicanExtract)));
			}
		}

		private static void PelicanExtract(object sender, ButtonClickEventArgs args)
		{
			if ((Object)(object)Pelican != (Object)null && (Object)(object)Pelican.GetComponent<PelicanExtract>() != (Object)null)
			{
				Pelican.GetComponent<PelicanExtract>().startextracting = true;
			}
			Logger.LogMessage((object)"Pelican Extraction started,ETA 2 minutes.");
		}

		private void FixedUpdate()
		{
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0602: Unknown result type (might be due to invalid IL or missing references)
			//IL_0607: 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_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_0678: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0793: Unknown result type (might be due to invalid IL or missing references)
			//IL_0736: Unknown result type (might be due to invalid IL or missing references)
			//IL_075a: Unknown result type (might be due to invalid IL or missing references)
			//IL_080d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			lasttime = LoaderStatus.LastLoadEventTime;
			if (lasttime > 1f)
			{
				loaded = true;
			}
			if ((Object)(object)HellPod == (Object)null || (Object)(object)script == (Object)null || (Object)(object)sceneselector == (Object)null || scenes == null || scenenames == null || (Object)(object)screen == (Object)null)
			{
			}
			Scene activeScene = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene)).name == "MainMenu3" && !KidnapSucceed)
			{
				if (mapname == null)
				{
					cd -= Time.deltaTime;
					SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
					scenes = Object.FindObjectsOfType<MainMenuScenePointable>();
					GameObject val = GameObject.Find("LevelLoadScreen");
					screen = val.GetComponent<MainMenuScreen>();
					for (int i = 0; i < scenes.Length; i++)
					{
						if (scenes[i].Def.SceneName != null)
						{
							if (!scenenames.Contains(scenes[i].Def.SceneName))
							{
								scenenames.Add(scenes[i].Def.SceneName);
							}
						}
						else if (scenes[i].Def.SceneName == null && scenes[i].Def.Name != null && !scenenames.Contains(scenes[i].Def.Name) && scenes[i].Def.Name != "Liberty")
						{
							scenenames.Add(scenes[i].Def.Name);
						}
						if ((Object)(object)scenes[i].Def.Image != (Object)null)
						{
							if (!icons.Contains(scenes[i].Def.Image) && scenes[i].Def.Name != "Liberty")
							{
								icons.Add(scenes[i].Def.Image);
							}
						}
						else if ((Object)(object)scenes[i].Def.Image == (Object)null)
						{
							icons.Add(placeholder);
						}
						if (scenes[i].Def.Name == "Liberty")
						{
							screen.m_def = scenes[i].Def;
						}
					}
					if (loaded && cd <= 0f)
					{
						screen.LoadScene();
						KidnapSucceed = true;
						isloadingring = false;
						hellpoddeployed = false;
					}
				}
				else
				{
					if (mapname == null)
					{
						return;
					}
					cd -= Time.deltaTime;
					SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
					scenes = Object.FindObjectsOfType<MainMenuScenePointable>();
					GameObject val2 = GameObject.Find("LevelLoadScreen");
					screen = val2.GetComponent<MainMenuScreen>();
					for (int j = 0; j < scenes.Length; j++)
					{
						if (scenes[j].Def.SceneName == null)
						{
							if (scenes[j].Def.Name != null && scenes[j].Def.Name == mapname)
							{
								screen.m_def = scenes[j].Def;
							}
						}
						else if (scenes[j].Def.SceneName != null && scenes[j].Def.SceneName == mapname)
						{
							screen.m_def = scenes[j].Def;
						}
					}
					if (loaded && cd <= 0f)
					{
						screen.LoadScene();
						KidnapSucceed = true;
						isloadingring = false;
						hellpoddeployed = false;
						mapname = null;
					}
				}
				return;
			}
			Scene activeScene2 = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene2)).name == "Liberty")
			{
				if (KidnapSucceed)
				{
					cd = 5f;
					sceneselector = GameObject.Find("HD2SceneSelector");
					if ((Object)(object)sceneselector != (Object)null && (Object)(object)sceneselector.GetComponent<SelectMapSP>() != (Object)null)
					{
						script = sceneselector.GetComponent<SelectMapSP>();
						script.Maps = scenenames;
						script.previews = icons;
						KidnapSucceed = false;
						hellpoddeployed = false;
						isloadingring = false;
					}
				}
				else if (!KidnapSucceed && (Object)(object)script != (Object)null)
				{
					mapname = script.curmap;
				}
				return;
			}
			Scene activeScene3 = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene3)).name != "Liberty"))
			{
				return;
			}
			Scene activeScene4 = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene4)).name != "MainMenu3") || hellpoddeployed || !((Object)(object)GM.CurrentPlayerBody != (Object)null))
			{
				return;
			}
			cd -= Time.deltaTime;
			if (!isloadingring)
			{
				cd = 1f;
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
				isloadingring = true;
			}
			else
			{
				if (!(cd <= 0f))
				{
					return;
				}
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), 0.1f, true);
				if (IM.OD.ContainsKey("PlayerHellPodPrefab"))
				{
					AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD["PlayerHellPodPrefab"]).GetGameObjectAsync();
					if (Object.op_Implicit((Object)(object)gameObjectAsync.Result))
					{
						HellPod = Object.Instantiate<GameObject>(gameObjectAsync.Result);
						HellPod.transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
						HellPod.transform.eulerAngles = new Vector3(0f, 0f, 0f);
						hellpoddeployed = true;
						KidnapSucceed = false;
						cd = 5f;
					}
				}
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), 0.1f, true);
				if (IM.OD.ContainsKey("PlayerPelicanPrefab"))
				{
					AnvilCallback<GameObject> gameObjectAsync2 = ((AnvilAsset)IM.OD["PlayerPelicanPrefab"]).GetGameObjectAsync();
					if (Object.op_Implicit((Object)(object)gameObjectAsync2.Result))
					{
						Pelican = Object.Instantiate<GameObject>(gameObjectAsync2.Result);
						Pelican.transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
						Pelican.transform.eulerAngles = new Vector3(0f, 0f, 0f);
					}
				}
			}
		}
	}
}
namespace JerryHD2MP
{
	[BepInPlugin("JerryHD2.Plugin", "JerryHD2.Plugin", "1.0.0")]
	[BepInProcess("h3vr.exe")]
	public class KidnapPlayerToShipMP : BaseUnityPlugin
	{
		public bool KidnapSucceed = false;

		public Sprite placeholder;

		[NonSerialized]
		public MainMenuScenePointable[] scenes;

		[NonSerialized]
		public List<string> scenenames = new List<string>();

		[NonSerialized]
		public List<Sprite> icons = new List<Sprite>();

		[NonSerialized]
		public GameObject sceneselector;

		[NonSerialized]
		public SelectMapMP script;

		[NonSerialized]
		public GameObject HellPod;

		[NonSerialized]
		public MainMenuScreen screen;

		public bool hellpoddeployed = false;

		public bool loaded = false;

		public float cd = 5f;

		public float lasttime;

		public bool isloadingring = false;

		[NonSerialized]
		public string mapname;

		[NonSerialized]
		public GameObject Pelican;

		private void Start()
		{
		}

		private void FixedUpdate()
		{
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0602: Unknown result type (might be due to invalid IL or missing references)
			//IL_0607: 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_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_0678: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0793: Unknown result type (might be due to invalid IL or missing references)
			//IL_0736: Unknown result type (might be due to invalid IL or missing references)
			//IL_075a: Unknown result type (might be due to invalid IL or missing references)
			//IL_080f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0833: Unknown result type (might be due to invalid IL or missing references)
			lasttime = LoaderStatus.LastLoadEventTime;
			if (lasttime > 1f)
			{
				loaded = true;
			}
			if ((Object)(object)HellPod == (Object)null || (Object)(object)script == (Object)null || (Object)(object)sceneselector == (Object)null || scenes == null || scenenames == null || (Object)(object)screen == (Object)null)
			{
			}
			Scene activeScene = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene)).name == "MainMenu3" && !KidnapSucceed)
			{
				if (mapname == null)
				{
					cd -= Time.deltaTime;
					SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
					scenes = Object.FindObjectsOfType<MainMenuScenePointable>();
					GameObject val = GameObject.Find("LevelLoadScreen");
					screen = val.GetComponent<MainMenuScreen>();
					for (int i = 0; i < scenes.Length; i++)
					{
						if (scenes[i].Def.SceneName != null)
						{
							if (!scenenames.Contains(scenes[i].Def.SceneName))
							{
								scenenames.Add(scenes[i].Def.SceneName);
							}
						}
						else if (scenes[i].Def.SceneName == null && scenes[i].Def.Name != null && !scenenames.Contains(scenes[i].Def.Name) && scenes[i].Def.Name != "LibertyMP")
						{
							scenenames.Add(scenes[i].Def.Name);
						}
						if ((Object)(object)scenes[i].Def.Image != (Object)null)
						{
							if (!icons.Contains(scenes[i].Def.Image) && scenes[i].Def.Name != "LibertyMP")
							{
								icons.Add(scenes[i].Def.Image);
							}
						}
						else if ((Object)(object)scenes[i].Def.Image == (Object)null)
						{
							icons.Add(placeholder);
						}
						if (scenes[i].Def.Name == "LibertyMP")
						{
							screen.m_def = scenes[i].Def;
						}
					}
					if (loaded && cd <= 0f)
					{
						screen.LoadScene();
						KidnapSucceed = true;
						isloadingring = false;
						hellpoddeployed = false;
					}
				}
				else
				{
					if (mapname == null)
					{
						return;
					}
					cd -= Time.deltaTime;
					SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
					scenes = Object.FindObjectsOfType<MainMenuScenePointable>();
					GameObject val2 = GameObject.Find("LevelLoadScreen");
					screen = val2.GetComponent<MainMenuScreen>();
					for (int j = 0; j < scenes.Length; j++)
					{
						if (scenes[j].Def.SceneName == null)
						{
							if (scenes[j].Def.Name != null && scenes[j].Def.Name == mapname)
							{
								screen.m_def = scenes[j].Def;
							}
						}
						else if (scenes[j].Def.SceneName != null && scenes[j].Def.SceneName == mapname)
						{
							screen.m_def = scenes[j].Def;
						}
					}
					if (loaded && cd <= 0f)
					{
						screen.LoadScene();
						KidnapSucceed = true;
						isloadingring = false;
						hellpoddeployed = false;
						mapname = null;
					}
				}
				return;
			}
			Scene activeScene2 = SceneManager.GetActiveScene();
			if (((Scene)(ref activeScene2)).name == "LibertyMP")
			{
				if (KidnapSucceed)
				{
					cd = 5f;
					sceneselector = GameObject.Find("HD2SceneSelector");
					if ((Object)(object)sceneselector != (Object)null && (Object)(object)sceneselector.GetComponent<SelectMapMP>() != (Object)null)
					{
						script = sceneselector.GetComponent<SelectMapMP>();
						script.Maps = scenenames;
						script.previews = icons;
						KidnapSucceed = false;
						hellpoddeployed = false;
						isloadingring = false;
					}
				}
				else if (!KidnapSucceed && (Object)(object)script != (Object)null)
				{
					mapname = script.curmap;
				}
				return;
			}
			Scene activeScene3 = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene3)).name != "LibertyMP"))
			{
				return;
			}
			Scene activeScene4 = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene4)).name != "MainMenu3") || hellpoddeployed || !((Object)(object)GM.CurrentPlayerBody != (Object)null))
			{
				return;
			}
			cd -= Time.deltaTime;
			if (!isloadingring)
			{
				cd = 1f;
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 0f, true);
				isloadingring = true;
			}
			else
			{
				if (!(cd <= 0f))
				{
					return;
				}
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), 0.1f, true);
				if (IM.OD.ContainsKey("PlayerHellPodPrefab"))
				{
					AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD["PlayerHellPodPrefab"]).GetGameObjectAsync();
					if (Object.op_Implicit((Object)(object)gameObjectAsync.Result))
					{
						HellPod = Object.Instantiate<GameObject>(gameObjectAsync.Result);
						HellPod.transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
						HellPod.transform.eulerAngles = new Vector3(0f, 0f, 0f);
						hellpoddeployed = true;
						KidnapSucceed = false;
						cd = 5f;
					}
				}
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 0f), 0.1f, true);
				if (IM.OD.ContainsKey("PlayerPelicanPrefabMP"))
				{
					AnvilCallback<GameObject> gameObjectAsync2 = ((AnvilAsset)IM.OD["PlayerPelicanPrefabMP"]).GetGameObjectAsync();
					if (Object.op_Implicit((Object)(object)gameObjectAsync2.Result))
					{
						Pelican = Object.Instantiate<GameObject>(gameObjectAsync2.Result);
						Pelican.transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
						Pelican.transform.eulerAngles = new Vector3(0f, 0f, 0f);
					}
				}
			}
		}
	}
}
namespace JerryHD2Pelican
{
	public class PelicanTurret : MonoBehaviour
	{
		public SimpleLauncher launcher;

		public FVRFireArmChamber gun;

		public float firecd = 0.3f;

		public float firecdtotal = 1f;

		public float firecdbtw = 3f;

		public GameObject turretbase;

		public float scancd = 0f;

		[NonSerialized]
		public NavMeshAgent[] bugs;

		public Rigidbody rig;

		public Transform muzzle;

		public GameObject mark;

		[NonSerialized]
		public Transform curtarg;

		public GameObject lookAtObj;

		public Transform player;

		private Vector3 velocity;

		public GameObject firesound;

		private void FixedUpdate()
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: 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_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_025f: Unknown result type (might be due to invalid IL or missing references)
			//IL_026f: 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_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_029f: Unknown result type (might be due to invalid IL or missing references)
			scancd -= Time.deltaTime;
			if (scancd <= 0f)
			{
				bugs = Object.FindObjectsOfType<NavMeshAgent>();
				scancd = 10f;
			}
			((Component)rig).gameObject.transform.position = muzzle.position;
			((Component)rig).gameObject.transform.eulerAngles = muzzle.eulerAngles;
			if ((Object)(object)curtarg == (Object)null)
			{
				mark.SetActive(false);
				mark.transform.localPosition = new Vector3(0f, 0f, 0f);
				turretbase.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				lookAtObj.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			}
			if ((Object)(object)curtarg != (Object)null)
			{
				mark.SetActive(true);
				mark.transform.position = Vector3.SmoothDamp(mark.transform.position, ((Component)curtarg).transform.position, ref velocity, 0.25f);
				AxisLookAtX(lookAtObj.transform, mark.gameObject.transform.position, Vector3.forward);
				AxisLookAtY(turretbase.transform, mark.gameObject.transform.position, Vector3.forward);
				firecdbtw -= Time.deltaTime;
				if (firecdbtw <= 0f)
				{
					firecdtotal -= Time.deltaTime;
					if (firecdtotal <= 0f)
					{
						firecdtotal = 1f;
						firecdbtw = Random.Range(3, 5);
					}
					firecd -= Time.deltaTime;
					if (firecd <= 0f)
					{
						firesound.SetActive(false);
						gun.SetRound((FireArmRoundClass)181, ((Component)gun).transform.position, ((Component)gun).transform.rotation);
						launcher.Fire();
						gun.EjectRound(((Component)gun).transform.position, Vector3.zero, Vector3.zero, false);
						firecd = 0.3f;
						firesound.SetActive(true);
					}
				}
				else if (firecdbtw > 0f)
				{
					firecdtotal = 1f;
					firecd = 0.3f;
				}
			}
			if (bugs.Length <= 0)
			{
				return;
			}
			for (int i = 0; i < bugs.Length - 1; i++)
			{
				if ((Object)(object)bugs[i] == (Object)null)
				{
					RemoveAt(ref bugs, i);
				}
			}
			curtarg = GetNearestGameObject(player, bugs);
		}

		public static void RemoveAt<T>(ref T[] arr, int index)
		{
			for (int i = index; i < arr.Length - 1; i++)
			{
				arr[i] = arr[i + 1];
			}
			Array.Resize(ref arr, arr.Length - 1);
		}

		private void AxisLookAtX(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: 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_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			Quaternion rotation = tr_self.rotation;
			Vector3 val = lookPos - tr_self.position;
			Vector3 val2 = tr_self.rotation * directionAxis;
			Vector3 val3 = Vector3.Cross(val2, val);
			Vector3 normalized = ((Vector3)(ref val3)).normalized;
			float num = Vector3.Angle(val2, val);
			tr_self.rotation = Quaternion.AngleAxis(num, normalized) * rotation;
			tr_self.localEulerAngles = new Vector3(tr_self.localEulerAngles.x, 0f, 0f);
		}

		private void AxisLookAtY(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: 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_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: 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_006a: Unknown result type (might be due to invalid IL or missing references)
			Quaternion rotation = tr_self.rotation;
			Vector3 val = lookPos - tr_self.position;
			Vector3 val2 = tr_self.rotation * directionAxis;
			Vector3 val3 = Vector3.Cross(val2, val);
			Vector3 normalized = ((Vector3)(ref val3)).normalized;
			float num = Vector3.Angle(val2, val);
			tr_self.rotation = Quaternion.AngleAxis(num, normalized) * rotation;
			tr_self.localEulerAngles = new Vector3(0f, tr_self.localEulerAngles.y, 0f);
		}

		public Transform GetNearestGameObject(Transform player, NavMeshAgent[] objects)
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			Transform val = null;
			if (objects == null || (Object)(object)val == (Object)null)
			{
			}
			if (objects.Length > 0 && (Object)(object)objects[0] != (Object)null)
			{
				val = ((Component)objects[0]).transform;
				float num = Vector3.Distance(player.position, ((Component)objects[0]).transform.position);
				for (int i = 1; i < objects.Length - 1; i++)
				{
					float num2 = Vector3.Distance(player.position, ((Component)objects[i]).transform.position);
					if (num > num2)
					{
						num = num2;
						val = ((Component)objects[i]).transform;
					}
				}
			}
			return val;
		}
	}
}
namespace JerryHD2PelicanMP
{
	public class PelicanTurretMP : MonoBehaviour
	{
		public SimpleLauncher launcher;

		public FVRFireArmChamber gun;

		public float firecd = 0.3f;

		public float firecdtotal = 1f;

		public float firecdbtw = 3f;

		public GameObject turretbase;

		public float scancd = 0f;

		[NonSerialized]
		public NavMeshAgent[] bugs;

		public Rigidbody rig;

		public Transform muzzle;

		public GameObject mark;

		[NonSerialized]
		public Transform curtarg;

		public GameObject lookAtObj;

		public Transform player;

		private Vector3 velocity;

		public GameObject firesound;

		private void FixedUpdate()
		{
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: 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_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			scancd -= Time.deltaTime;
			if (scancd <= 0f)
			{
				bugs = Object.FindObjectsOfType<NavMeshAgent>();
				scancd = 10f;
			}
			((Component)rig).gameObject.transform.position = muzzle.position;
			((Component)rig).gameObject.transform.eulerAngles = muzzle.eulerAngles;
			if ((Object)(object)curtarg == (Object)null)
			{
				mark.SetActive(false);
				mark.transform.localPosition = new Vector3(0f, 0f, 0f);
				turretbase.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				lookAtObj.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			}
			if ((Object)(object)curtarg != (Object)null)
			{
				mark.SetActive(true);
				mark.transform.position = Vector3.SmoothDamp(mark.transform.position, ((Component)curtarg).transform.position, ref velocity, 0.25f);
				AxisLookAtX(lookAtObj.transform, mark.gameObject.transform.position, Vector3.forward);
				AxisLookAtY(turretbase.transform, mark.gameObject.transform.position, Vector3.forward);
				firecdbtw -= Time.deltaTime;
				if (firecdbtw <= 0f)
				{
					firecdtotal -= Time.deltaTime;
					if (firecdtotal <= 0f)
					{
						firecdtotal = 1f;
						firecdbtw = 3f;
					}
					firecd -= Time.deltaTime;
					if (firecd <= 0f)
					{
						firesound.SetActive(false);
						gun.SetRound((FireArmRoundClass)181, ((Component)gun).transform.position, ((Component)gun).transform.rotation);
						launcher.Fire();
						gun.EjectRound(((Component)gun).transform.position, Vector3.zero, Vector3.zero, false);
						firecd = 0.3f;
						firesound.SetActive(true);
					}
				}
				else if (firecdbtw > 0f)
				{
					firecdtotal = 1f;
					firecd = 0.3f;
				}
			}
			if (bugs.Length <= 0)
			{
				return;
			}
			for (int i = 0; i < bugs.Length - 1; i++)
			{
				if ((Object)(object)bugs[i] == (Object)null)
				{
					RemoveAt(ref bugs, i);
				}
			}
			curtarg = GetNearestGameObject(player, bugs);
		}

		public static void RemoveAt<T>(ref T[] arr, int index)
		{
			for (int i = index; i < arr.Length - 1; i++)
			{
				arr[i] = arr[i + 1];
			}
			Array.Resize(ref arr, arr.Length - 1);
		}

		private void AxisLookAtX(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: 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_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			Quaternion rotation = tr_self.rotation;
			Vector3 val = lookPos - tr_self.position;
			Vector3 val2 = tr_self.rotation * directionAxis;
			Vector3 val3 = Vector3.Cross(val2, val);
			Vector3 normalized = ((Vector3)(ref val3)).normalized;
			float num = Vector3.Angle(val2, val);
			tr_self.rotation = Quaternion.AngleAxis(num, normalized) * rotation;
			tr_self.localEulerAngles = new Vector3(tr_self.localEulerAngles.x, 0f, 0f);
		}

		private void AxisLookAtY(Transform tr_self, Vector3 lookPos, Vector3 directionAxis)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: 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_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: 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_006a: Unknown result type (might be due to invalid IL or missing references)
			Quaternion rotation = tr_self.rotation;
			Vector3 val = lookPos - tr_self.position;
			Vector3 val2 = tr_self.rotation * directionAxis;
			Vector3 val3 = Vector3.Cross(val2, val);
			Vector3 normalized = ((Vector3)(ref val3)).normalized;
			float num = Vector3.Angle(val2, val);
			tr_self.rotation = Quaternion.AngleAxis(num, normalized) * rotation;
			tr_self.localEulerAngles = new Vector3(0f, tr_self.localEulerAngles.y, 0f);
		}

		public Transform GetNearestGameObject(Transform player, NavMeshAgent[] objects)
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			Transform val = null;
			if (objects == null || (Object)(object)val == (Object)null)
			{
			}
			if (objects.Length > 0 && (Object)(object)objects[0] != (Object)null)
			{
				val = ((Component)objects[0]).transform;
				float num = Vector3.Distance(player.position, ((Component)objects[0]).transform.position);
				for (int i = 1; i < objects.Length - 1; i++)
				{
					float num2 = Vector3.Distance(player.position, ((Component)objects[i]).transform.position);
					if (num > num2)
					{
						num = num2;
						val = ((Component)objects[i]).transform;
					}
				}
			}
			return val;
		}
	}
}
namespace JerryHD2Pelican
{
	public class PelicanExtract : MonoBehaviour
	{
		public GameObject pelicanbase;

		public GameObject pelicanaway;

		public GameObject PelicanVehicle;

		public float pelicanrefy;

		public float pelicanrefz;

		public Vector3 pelicanrotref;

		public GameObject enginerot;

		public GameObject thrusterrot;

		public GameObject doorrot;

		public bool startextracting = false;

		public bool extracted = false;

		public GameObject extractbgm;

		public AudioSource extractost;

		public GameObject extractSuccessbgm;

		public AudioSource extractSuccessost;

		public AudioSource afterburner;

		public float abvolume;

		public float abref;

		public float cdlanding = 60f;

		public Transform extractpose;

		public Transform playerheadref;

		public GameObject ETA2;

		public GameObject ETA1;

		public GameObject CFL;

		public GameObject Comment;

		public GameObject afterburnerboost;

		public Material pelicanmat1;

		public Material pelicanmat2;

		public Material pelicanmat3;

		public Material pelicanmat4;

		public float mat1ref;

		public GameObject innerandlight;

		public float pelicanmatvalue = 0f;

		public PelicanTurret PT;

		public RotateOverTime ROT;

		public float ROTYref;

		public AR15HandleSightFlipper flipper;

		public GameObject beaconrot;

		public GameObject beaconrot2;

		public float cdbeacon = 15f;

		public GameObject evac;

		public GameObject cdtext;

		public Text text;

		public GameObject beam;

		public GameObject beacongeo;

		public Animator ani;

		public GameObject playerrefOWN;

		public GameObject p1pos;

		public GameObject p2pos;

		public GameObject p3pos;

		public GameObject p4pos;

		public bool seated = false;

		public GameObject hordesignal;

		public GameObject TerminidOST;

		public int curnum = 0;

		public Transform UP;

		public Transform DOWN;

		public Transform LEFT;

		public Transform RIGHT;

		public int curstep = 0;

		public int curans = 0;

		public Text Text1;

		public Text Text2;

		public Text Text3;

		public Text Text4;

		public Text Text5;

		public GameObject texts;

		public GameObject textinsert;

		public Color correct;

		public Color incorrect;

		public Color neutral;

		public bool Slamed = false;

		public Vector3 velLinearWorldL;

		public Vector3 velLinearWorldR;

		public bool input = false;

		public int que1;

		public int que2;

		public int que3;

		public int que4;

		public int que5;

		public float cd = 0.25f;

		public AudioEvent yes;

		public AudioEvent no;

		public Transform sound;

		public bool ready = false;

		private void Start()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			pelicanbase.transform.eulerAngles = new Vector3(0f, (float)Random.Range(0, 359), 0f);
			((Behaviour)PT).enabled = false;
			beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			TerminidOST.SetActive(false);
			que1 = Random.Range(1, 4);
			que2 = Random.Range(1, 4);
			que3 = Random.Range(1, 4);
			que4 = Random.Range(1, 4);
			que5 = Random.Range(1, 4);
		}

		private void FixedUpdate()
		{
			//IL_1157: Unknown result type (might be due to invalid IL or missing references)
			//IL_115c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1262: Unknown result type (might be due to invalid IL or missing references)
			//IL_138e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1465: Unknown result type (might be due to invalid IL or missing references)
			//IL_14ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_180a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1846: Unknown result type (might be due to invalid IL or missing references)
			//IL_1856: Unknown result type (might be due to invalid IL or missing references)
			//IL_1551: Unknown result type (might be due to invalid IL or missing references)
			//IL_1575: Unknown result type (might be due to invalid IL or missing references)
			//IL_1596: Unknown result type (might be due to invalid IL or missing references)
			//IL_15a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_196e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1973: Unknown result type (might be due to invalid IL or missing references)
			//IL_18cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_18db: Unknown result type (might be due to invalid IL or missing references)
			//IL_1885: Unknown result type (might be due to invalid IL or missing references)
			//IL_18b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1660: Unknown result type (might be due to invalid IL or missing references)
			//IL_1670: Unknown result type (might be due to invalid IL or missing references)
			//IL_1602: Unknown result type (might be due to invalid IL or missing references)
			//IL_1626: Unknown result type (might be due to invalid IL or missing references)
			//IL_164a: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_19b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_19b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_19d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_19d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_19de: Unknown result type (might be due to invalid IL or missing references)
			//IL_19f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a03: Unknown result type (might be due to invalid IL or missing references)
			//IL_190a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1729: Unknown result type (might be due to invalid IL or missing references)
			//IL_1739: Unknown result type (might be due to invalid IL or missing references)
			//IL_168f: Unknown result type (might be due to invalid IL or missing references)
			//IL_169f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a46: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1774: Unknown result type (might be due to invalid IL or missing references)
			//IL_1798: Unknown result type (might be due to invalid IL or missing references)
			//IL_16ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_1713: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b05: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b15: Unknown result type (might be due to invalid IL or missing references)
			//IL_1acf: Unknown result type (might be due to invalid IL or missing references)
			//IL_1ae8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b58: Unknown result type (might be due to invalid IL or missing references)
			//IL_1b71: Unknown result type (might be due to invalid IL or missing references)
			//IL_0277: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0293: 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_1be1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bfa: 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_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_039e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: 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_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0483: Unknown result type (might be due to invalid IL or missing references)
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0403: Unknown result type (might be due to invalid IL or missing references)
			//IL_040e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03be: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_033e: 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_0568: 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_04e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_042e: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0588: Unknown result type (might be due to invalid IL or missing references)
			//IL_0593: Unknown result type (might be due to invalid IL or missing references)
			//IL_0508: Unknown result type (might be due to invalid IL or missing references)
			//IL_0513: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_065b: Unknown result type (might be due to invalid IL or missing references)
			//IL_066c: Unknown result type (might be due to invalid IL or missing references)
			//IL_067d: 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_069f: Unknown result type (might be due to invalid IL or missing references)
			//IL_088d: Unknown result type (might be due to invalid IL or missing references)
			//IL_089e: Unknown result type (might be due to invalid IL or missing references)
			//IL_08af: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b03: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_06fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_070c: Unknown result type (might be due to invalid IL or missing references)
			//IL_071d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d35: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a09: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_090b: Unknown result type (might be due to invalid IL or missing references)
			//IL_091c: Unknown result type (might be due to invalid IL or missing references)
			//IL_092d: Unknown result type (might be due to invalid IL or missing references)
			//IL_093e: Unknown result type (might be due to invalid IL or missing references)
			//IL_094f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0834: Unknown result type (might be due to invalid IL or missing references)
			//IL_0758: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f45: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c19: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c4c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a66: Unknown result type (might be due to invalid IL or missing references)
			//IL_098a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e7e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c98: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
			//IL_107d: Unknown result type (might be due to invalid IL or missing references)
			//IL_108e: Unknown result type (might be due to invalid IL or missing references)
			//IL_109f: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eca: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dee: Unknown result type (might be due to invalid IL or missing references)
			//IL_10fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1020: Unknown result type (might be due to invalid IL or missing references)
			if (ready)
			{
				if (que1 == 1)
				{
					Text1.text = "⇧";
				}
				if (que2 == 1)
				{
					Text2.text = "⇧";
				}
				if (que3 == 1)
				{
					Text3.text = "⇧";
				}
				if (que4 == 1)
				{
					Text4.text = "⇧";
				}
				if (que5 == 1)
				{
					Text5.text = "⇧";
				}
				if (que1 == 2)
				{
					Text1.text = "⇩";
				}
				if (que2 == 2)
				{
					Text2.text = "⇩";
				}
				if (que3 == 2)
				{
					Text3.text = "⇩";
				}
				if (que4 == 2)
				{
					Text4.text = "⇩";
				}
				if (que5 == 2)
				{
					Text5.text = "⇩";
				}
				if (que1 == 3)
				{
					Text1.text = "⇦";
				}
				if (que2 == 3)
				{
					Text2.text = "⇦";
				}
				if (que3 == 3)
				{
					Text3.text = "⇦";
				}
				if (que4 == 3)
				{
					Text4.text = "⇦";
				}
				if (que5 == 3)
				{
					Text5.text = "⇦";
				}
				if (que1 == 4)
				{
					Text1.text = "⇨";
				}
				if (que2 == 4)
				{
					Text2.text = "⇨";
				}
				if (que3 == 4)
				{
					Text3.text = "⇨";
				}
				if (que4 == 4)
				{
					Text4.text = "⇨";
				}
				if (que5 == 4)
				{
					Text5.text = "⇨";
				}
				velLinearWorldL = GM.CurrentMovementManager.Hands[0].Input.VelLinearWorld;
				velLinearWorldR = GM.CurrentMovementManager.Hands[1].Input.VelLinearWorld;
				if (!input && ((Vector3.Distance(GM.CurrentMovementManager.Hands[0].PalmTransform.position, UP.position) < 0.1f && Vector3.Angle(velLinearWorldL, UP.forward) < 35f && ((Vector3)(ref velLinearWorldL)).magnitude > 1f) || (Vector3.Distance(GM.CurrentMovementManager.Hands[1].PalmTransform.position, UP.position) < 0.1f && Vector3.Angle(velLinearWorldR, UP.forward) < 35f && ((Vector3)(ref velLinearWorldR)).magnitude > 1f)))
				{
					input = true;
					curans = 1;
				}
				if (!input && ((Vector3.Distance(GM.CurrentMovementManager.Hands[0].PalmTransform.position, DOWN.position) < 0.1f && Vector3.Angle(velLinearWorldL, DOWN.forward) < 35f && ((Vector3)(ref velLinearWorldL)).magnitude > 1f) || (Vector3.Distance(GM.CurrentMovementManager.Hands[1].PalmTransform.position, DOWN.position) < 0.1f && Vector3.Angle(velLinearWorldR, DOWN.forward) < 35f && ((Vector3)(ref velLinearWorldR)).magnitude > 1f)))
				{
					input = true;
					curans = 2;
				}
				if (!input && ((Vector3.Distance(GM.CurrentMovementManager.Hands[0].PalmTransform.position, LEFT.position) < 0.1f && Vector3.Angle(velLinearWorldL, LEFT.forward) < 35f && ((Vector3)(ref velLinearWorldL)).magnitude > 1f) || (Vector3.Distance(GM.CurrentMovementManager.Hands[1].PalmTransform.position, LEFT.position) < 0.1f && Vector3.Angle(velLinearWorldR, LEFT.forward) < 35f && ((Vector3)(ref velLinearWorldR)).magnitude > 1f)))
				{
					input = true;
					curans = 3;
				}
				if (!input && ((Vector3.Distance(GM.CurrentMovementManager.Hands[0].PalmTransform.position, RIGHT.position) < 0.1f && Vector3.Angle(velLinearWorldL, RIGHT.forward) < 35f && ((Vector3)(ref velLinearWorldL)).magnitude > 1f) || (Vector3.Distance(GM.CurrentMovementManager.Hands[1].PalmTransform.position, RIGHT.position) < 0.1f && Vector3.Angle(velLinearWorldR, RIGHT.forward) < 35f && ((Vector3)(ref velLinearWorldR)).magnitude > 1f)))
				{
					input = true;
					curans = 4;
				}
				if (curstep == 0)
				{
					if (!input && curans == 0)
					{
						((Graphic)Text1).color = neutral;
						((Graphic)Text2).color = neutral;
						((Graphic)Text3).color = neutral;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
					}
					if (input && curans != 0 && curans == que1)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = neutral;
						((Graphic)Text3).color = neutral;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, yes, sound.position);
							curstep++;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
					else if (curans != 0 && curans != que1)
					{
						((Graphic)Text1).color = incorrect;
						((Graphic)Text2).color = incorrect;
						((Graphic)Text3).color = incorrect;
						((Graphic)Text4).color = incorrect;
						((Graphic)Text5).color = incorrect;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, no, sound.position);
							curstep = 0;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
				}
				if (curstep == 1)
				{
					if (!input && curans == 0)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = neutral;
						((Graphic)Text3).color = neutral;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
					}
					if (input && curans != 0 && curans == que2)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = neutral;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, yes, sound.position);
							curstep++;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
					else if (curans != 0 && curans != que2)
					{
						((Graphic)Text1).color = incorrect;
						((Graphic)Text2).color = incorrect;
						((Graphic)Text3).color = incorrect;
						((Graphic)Text4).color = incorrect;
						((Graphic)Text5).color = incorrect;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, no, sound.position);
							curstep = 0;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
				}
				if (curstep == 2)
				{
					if (!input && curans == 0)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = neutral;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
					}
					if (input && curans != 0 && curans == que3)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = correct;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, yes, sound.position);
							curstep++;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
					else if (curans != 0 && curans != que3)
					{
						((Graphic)Text1).color = incorrect;
						((Graphic)Text2).color = incorrect;
						((Graphic)Text3).color = incorrect;
						((Graphic)Text4).color = incorrect;
						((Graphic)Text5).color = incorrect;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, no, sound.position);
							curstep = 0;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
				}
				if (curstep == 3)
				{
					if (!input && curans == 0)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = correct;
						((Graphic)Text4).color = neutral;
						((Graphic)Text5).color = neutral;
					}
					if (input && curans != 0 && curans == que4)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = correct;
						((Graphic)Text4).color = correct;
						((Graphic)Text5).color = neutral;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, yes, sound.position);
							curstep++;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
					else if (curans != 0 && curans != que4)
					{
						((Graphic)Text1).color = incorrect;
						((Graphic)Text2).color = incorrect;
						((Graphic)Text3).color = incorrect;
						((Graphic)Text4).color = incorrect;
						((Graphic)Text5).color = incorrect;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, no, sound.position);
							curstep = 0;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
				}
				if (curstep == 4)
				{
					if (!input && curans == 0)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = correct;
						((Graphic)Text4).color = correct;
						((Graphic)Text5).color = neutral;
					}
					if (input && curans != 0 && curans == que5)
					{
						((Graphic)Text1).color = correct;
						((Graphic)Text2).color = correct;
						((Graphic)Text3).color = correct;
						((Graphic)Text4).color = correct;
						((Graphic)Text5).color = correct;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, yes, sound.position);
							curstep++;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
					else if (curans != 0 && curans != que5)
					{
						((Graphic)Text1).color = incorrect;
						((Graphic)Text2).color = incorrect;
						((Graphic)Text3).color = incorrect;
						((Graphic)Text4).color = incorrect;
						((Graphic)Text5).color = incorrect;
						cd -= Time.deltaTime;
						if (cd <= 0f)
						{
							SM.PlayCoreSound((FVRPooledAudioType)41, no, sound.position);
							curstep = 0;
							cd = 0.25f;
							input = false;
							curans = 0;
						}
					}
				}
				if (curstep == 5)
				{
					startextracting = true;
					texts.SetActive(false);
				}
			}
			if (!startextracting)
			{
				Scene activeScene = SceneManager.GetActiveScene();
				if (((Scene)(ref activeScene)).name == "GP_Sandtrap" && (Object)(object)GameObject.Find("TERMINDS_HUNTER(Clone)") != (Object)null)
				{
					TerminidOST.SetActive(true);
				}
			}
			if ((Object)(object)GameObject.Find("SporeMushroomCore") != (Object)null || (Object)(object)GameObject.Find("SEAFCannonCore") != (Object)null)
			{
				cdbeacon = 15f;
			}
			if (cdbeacon > 0f && (Object)(object)GameObject.Find("SporeMushroomCore") == (Object)null && (Object)(object)GameObject.Find("SEAFCannonCore") == (Object)null)
			{
				cdbeacon -= Time.deltaTime;
			}
			else if (cdbeacon <= 0f && !startextracting)
			{
				beacongeo.SetActive(true);
				beaconrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!flipper.m_isLargeAperture)
			{
				evac.SetActive(false);
				texts.SetActive(true);
				ready = true;
				flipper.m_isLargeAperture = true;
			}
			if (!startextracting)
			{
				return;
			}
			TerminidOST.SetActive(false);
			hordesignal.SetActive(true);
			cdtext.SetActive(true);
			text.text = ((int)cdlanding).ToString();
			pelicanmat1.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat2.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat3.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat4.SetFloat("_DissolveCutoff", pelicanmatvalue);
			afterburner.volume = abvolume;
			if (cdlanding > 0f)
			{
				beaconrot2.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
				beam.SetActive(true);
				cdlanding -= Time.deltaTime;
			}
			if (cdlanding > 30f && cdlanding < 60f)
			{
				extractbgm.SetActive(true);
				ETA2.SetActive(true);
			}
			if (cdlanding > 15f && cdlanding < 30f)
			{
				ETA1.SetActive(true);
			}
			if (cdlanding > 0f && cdlanding < 15f)
			{
				pelicanmatvalue = 1f;
				thrusterrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!(cdlanding <= 0f))
			{
				return;
			}
			if (seated)
			{
				GM.CurrentPlayerBody.Health = 5000f;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
			}
			if (!extracted)
			{
				PelicanVehicle.SetActive(true);
				if (PelicanVehicle.activeInHierarchy)
				{
					ani.SetBool("Landing", true);
					CFL.SetActive(true);
					pelicanmatvalue = Mathf.SmoothDamp(pelicanmatvalue, 0f, ref mat1ref, 2f);
				}
				beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				beaconrot2.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				beam.SetActive(false);
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 25f)
				{
					((Behaviour)PT).enabled = true;
					abvolume = Mathf.SmoothDamp(abvolume, 0.75f, ref abref, 5f);
					enginerot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					doorrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) <= 25f && Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 5f)
				{
					abvolume = Mathf.SmoothDamp(abvolume, 0.05f, ref abref, 5f);
					enginerot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) <= 5f)
				{
					((Behaviour)PT).enabled = false;
					doorrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
				}
			}
			else if (extracted)
			{
				((Behaviour)PT).enabled = true;
				Comment.SetActive(true);
				extractbgm.SetActive(false);
				extractSuccessbgm.SetActive(true);
				ani.SetBool("Extract", true);
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 1f, true);
				abvolume = Mathf.SmoothDamp(abvolume, 0.75f, ref abref, 5f);
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 10f)
				{
					enginerot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					afterburnerboost.SetActive(true);
					doorrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 2f)
				{
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (!extractSuccessost.isPlaying)
				{
					SteamVR_LoadLevel.Begin("MainMenu3", false, 0f, 0f, 0f, 0f, 1f);
					startextracting = false;
				}
			}
			if ((Object)(object)GM.CurrentPlayerBody != (Object)null && doorrot.transform.localEulerAngles.x > 45f)
			{
				playerrefOWN.transform.position = new Vector3(((Component)GM.CurrentPlayerBody.Head).transform.position.x, extractpose.position.y, ((Component)GM.CurrentPlayerBody.Head).transform.position.z);
				if (Vector3.Distance(playerrefOWN.transform.position, p1pos.transform.position) <= 0.35f)
				{
					((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p1pos.transform);
					((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
					((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
					seated = true;
				}
				if (Vector3.Distance(playerrefOWN.transform.position, p2pos.transform.position) <= 0.35f)
				{
					((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p2pos.transform);
					((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
					((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
					seated = true;
				}
				if (Vector3.Distance(playerrefOWN.transform.position, p3pos.transform.position) <= 0.35f)
				{
					((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p3pos.transform);
					((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
					((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
					seated = true;
				}
				if (Vector3.Distance(playerrefOWN.transform.position, p4pos.transform.position) <= 0.35f)
				{
					((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p4pos.transform);
					((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
					((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
					seated = true;
				}
				if (seated)
				{
					extracted = true;
				}
			}
		}
	}
}
namespace JerryHD2PelicanMP
{
	public class PelicanExtractMP : MonoBehaviour
	{
		public TrackedPlayerBody[] Bodies;

		public List<Transform> PlayerHeads;

		public GameObject pelicanbase;

		public GameObject pelicanaway;

		public GameObject PelicanVehicle;

		public float pelicanrefy;

		public float pelicanrefz;

		public Vector3 pelicanrotref;

		public GameObject enginerot;

		public GameObject thrusterrot;

		public GameObject doorrot;

		public bool startextracting = false;

		public bool extracted = false;

		public GameObject extractbgm;

		public AudioSource extractost;

		public GameObject extractSuccessbgm;

		public AudioSource extractSuccessost;

		public AudioSource afterburner;

		public float abvolume;

		public float abref;

		public float cdlanding = 60f;

		public Transform extractpose;

		public GameObject ETA2;

		public GameObject ETA1;

		public GameObject CFL;

		public GameObject Comment;

		public GameObject afterburnerboost;

		public Material pelicanmat1;

		public Material pelicanmat2;

		public Material pelicanmat3;

		public Material pelicanmat4;

		public float mat1ref;

		public GameObject innerandlight;

		public float pelicanmatvalue = 1f;

		public PelicanTurretMP PT;

		public AR15HandleSightFlipper flipper;

		public GameObject beaconrot;

		public GameObject beaconrot2;

		public float cdbeacon = 15f;

		public GameObject evac;

		public GameObject cdtext;

		public Text text;

		public GameObject beam;

		public GameObject beacongeo;

		public float detcd = 0f;

		public GameObject playerref;

		public GameObject playerref2;

		public GameObject playerref3;

		public GameObject playerref4;

		public GameObject playerrefOWN;

		public GameObject p1pos;

		public GameObject p2pos;

		public GameObject p3pos;

		public GameObject p4pos;

		public bool p1onboard = false;

		public bool p2onboard = false;

		public bool p3onboard = false;

		public bool p4onboard = false;

		public bool seated = false;

		public List<GameObject> onboardpos = new List<GameObject>();

		public Animator ani;

		private void Start()
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			((Behaviour)PT).enabled = false;
			beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
			beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
		}

		private void FixedUpdate()
		{
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_030a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0323: Unknown result type (might be due to invalid IL or missing references)
			//IL_039e: 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_03e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0657: 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_06a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_044f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0473: Unknown result type (might be due to invalid IL or missing references)
			//IL_0497: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0718: Unknown result type (might be due to invalid IL or missing references)
			//IL_0728: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0702: Unknown result type (might be due to invalid IL or missing references)
			//IL_0576: Unknown result type (might be due to invalid IL or missing references)
			//IL_0586: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0757: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0560: Unknown result type (might be due to invalid IL or missing references)
			//IL_0943: Unknown result type (might be due to invalid IL or missing references)
			//IL_0948: Unknown result type (might be due to invalid IL or missing references)
			//IL_0957: Unknown result type (might be due to invalid IL or missing references)
			//IL_095c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0971: Unknown result type (might be due to invalid IL or missing references)
			//IL_0976: 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_09b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a51: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b25: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b58: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a98: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c78: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c44: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cd4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d98: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e86: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e25: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f74: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd2: Unknown result type (might be due to invalid IL or missing references)
			//IL_1052: Unknown result type (might be due to invalid IL or missing references)
			//IL_1062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff1: Unknown result type (might be due to invalid IL or missing references)
			//IL_1001: Unknown result type (might be due to invalid IL or missing references)
			//IL_1081: Unknown result type (might be due to invalid IL or missing references)
			//IL_1091: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10df: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ef: Unknown result type (might be due to invalid IL or missing references)
			if (cdbeacon > 0f)
			{
				cdbeacon -= Time.deltaTime;
			}
			else if (cdbeacon <= 0f && !startextracting)
			{
				beacongeo.SetActive(true);
				beaconrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!flipper.m_isLargeAperture && (Object)(object)GameObject.Find("EVACPin(Clone)") == (Object)null)
			{
				if (IM.OD.ContainsKey("EVACPin"))
				{
					AnvilCallback<GameObject> gameObjectAsync = ((AnvilAsset)IM.OD["EVACPin"]).GetGameObjectAsync();
					if (Object.op_Implicit((Object)(object)gameObjectAsync.Result))
					{
						Object.Instantiate<GameObject>(gameObjectAsync.Result);
					}
				}
				flipper.m_isLargeAperture = true;
			}
			if ((Object)(object)GameObject.Find("EVACPin(Clone)") != (Object)null)
			{
				startextracting = true;
			}
			if (!startextracting)
			{
				return;
			}
			cdtext.SetActive(true);
			evac.SetActive(false);
			text.text = ((int)cdlanding).ToString();
			pelicanmat1.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat2.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat3.SetFloat("_DissolveCutoff", pelicanmatvalue);
			pelicanmat4.SetFloat("_DissolveCutoff", pelicanmatvalue);
			afterburner.volume = abvolume;
			if (cdlanding > 0f)
			{
				beaconrot2.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
				beam.SetActive(true);
				cdlanding -= Time.deltaTime;
			}
			if (cdlanding > 30f && cdlanding < 60f)
			{
				extractbgm.SetActive(true);
				ETA2.SetActive(true);
			}
			if (cdlanding > 15f && cdlanding < 30f)
			{
				ETA1.SetActive(true);
			}
			if (cdlanding > 0f && cdlanding < 15f)
			{
				pelicanmatvalue = 1f;
				thrusterrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
			}
			if (!(cdlanding <= 0f))
			{
				return;
			}
			if (seated)
			{
				GM.CurrentPlayerBody.Health = 5000f;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
			}
			if (!extracted)
			{
				PelicanVehicle.SetActive(true);
				ani.SetBool("Landing", true);
				CFL.SetActive(true);
				pelicanmatvalue = Mathf.SmoothDamp(pelicanmatvalue, 0f, ref mat1ref, 2f);
				beaconrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				beaconrot2.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				beam.SetActive(false);
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 25f)
				{
					((Behaviour)PT).enabled = true;
					abvolume = Mathf.SmoothDamp(abvolume, 0.75f, ref abref, 5f);
					enginerot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					doorrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) <= 25f && Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 5f)
				{
					abvolume = Mathf.SmoothDamp(abvolume, 0.05f, ref abref, 5f);
					enginerot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) <= 5f)
				{
					((Behaviour)PT).enabled = false;
					doorrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
					thrusterrot.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
				}
			}
			else if (extracted)
			{
				((Behaviour)PT).enabled = true;
				Comment.SetActive(true);
				extractbgm.SetActive(false);
				extractSuccessbgm.SetActive(true);
				ani.SetBool("Extract", true);
				SteamVR_Fade.Start(new Color(0f, 0f, 0f, 1f), 1f, true);
				abvolume = Mathf.SmoothDamp(abvolume, 0.75f, ref abref, 5f);
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 10f)
				{
					enginerot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
					afterburnerboost.SetActive(true);
					doorrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (Vector3.Distance(pelicanaway.transform.position, pelicanbase.transform.position) > 2f)
				{
					thrusterrot.transform.localEulerAngles = new Vector3(0f, 0f, 0f);
				}
				if (!extractSuccessost.isPlaying)
				{
					SteamVR_LoadLevel.Begin("MainMenu3", false, 0f, 0f, 0f, 0f, 1f);
					startextracting = false;
				}
			}
			if (!((Object)(object)GM.CurrentPlayerBody != (Object)null) || !(doorrot.transform.localEulerAngles.x > 45f))
			{
				return;
			}
			detcd -= Time.deltaTime;
			if (detcd <= 0f)
			{
				Bodies = null;
				Bodies = Object.FindObjectsOfType<TrackedPlayerBody>();
				for (int i = 0; i < Bodies.Length; i++)
				{
					if ((Object)(object)Bodies[i].physicalPlayerBody != (Object)null && (Object)(object)Bodies[i].physicalPlayerBody.headTransform != (Object)null && !PlayerHeads.Contains(Bodies[i].physicalPlayerBody.headTransform))
					{
						PlayerHeads.Add(Bodies[i].physicalPlayerBody.headTransform);
					}
				}
				detcd = 5f;
			}
			if (PlayerHeads.Count > 0)
			{
				for (int j = 0; j < PlayerHeads.Count; j++)
				{
					if ((Object)(object)PlayerHeads[j] == (Object)null)
					{
						PlayerHeads.Remove(PlayerHeads[j]);
					}
				}
			}
			if (PlayerHeads.Count >= 1)
			{
				playerref.transform.position = new Vector3(PlayerHeads[0].position.x, extractpose.position.y, PlayerHeads[0].position.z);
			}
			if (PlayerHeads.Count >= 2)
			{
				playerref2.transform.position = new Vector3(PlayerHeads[1].position.x, extractpose.position.y, PlayerHeads[1].position.z);
			}
			if (PlayerHeads.Count >= 3)
			{
				playerref3.transform.position = new Vector3(PlayerHeads[2].position.x, extractpose.position.y, PlayerHeads[2].position.z);
			}
			if (PlayerHeads.Count >= 4)
			{
				playerref4.transform.position = new Vector3(PlayerHeads[3].position.x, extractpose.position.y, PlayerHeads[3].position.z);
			}
			playerrefOWN.transform.position = new Vector3(((Component)GM.CurrentPlayerBody.Head).transform.position.x, extractpose.position.y, ((Component)GM.CurrentPlayerBody.Head).transform.position.z);
			if (Vector3.Distance(playerrefOWN.transform.position, p1pos.transform.position) <= 0.2f)
			{
				((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p1pos.transform);
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
				p1onboard = true;
				seated = true;
			}
			if (Vector3.Distance(playerrefOWN.transform.position, p2pos.transform.position) <= 0.2f)
			{
				((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p2pos.transform);
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
				p2onboard = true;
				seated = true;
			}
			if (Vector3.Distance(playerrefOWN.transform.position, p3pos.transform.position) <= 0.2f)
			{
				((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p3pos.transform);
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
				p3onboard = true;
				seated = true;
			}
			if (Vector3.Distance(playerrefOWN.transform.position, p4pos.transform.position) <= 0.2f)
			{
				((Component)GM.CurrentPlayerBody).gameObject.transform.SetParent(p4pos.transform);
				((Component)GM.CurrentPlayerBody).gameObject.transform.localPosition = Vector3.zero;
				((Component)GM.CurrentPlayerBody).gameObject.transform.localEulerAngles = Vector3.zero;
				p4onboard = true;
				seated = true;
			}
			if (Vector3.Distance(playerref.transform.position, p1pos.transform.position) <= 0.2f || Vector3.Distance(playerref2.transform.position, p1pos.transform.position) <= 0.2f || Vector3.Distance(playerref3.transform.position, p1pos.transform.position) <= 0.2f || Vector3.Distance(playerref4.transform.position, p1pos.transform.position) <= 0.2f)
			{
				if (!onboardpos.Contains(p1pos))
				{
					onboardpos.Add(p1pos);
				}
				p1onboard = true;
			}
			if (Vector3.Distance(playerref.transform.position, p2pos.transform.position) <= 0.2f || Vector3.Distance(playerref2.transform.position, p2pos.transform.position) <= 0.2f || Vector3.Distance(playerref3.transform.position, p2pos.transform.position) <= 0.2f || Vector3.Distance(playerref4.transform.position, p2pos.transform.position) <= 0.2f)
			{
				if (!onboardpos.Contains(p2pos))
				{
					onboardpos.Add(p2pos);
				}
				p2onboard = true;
			}
			if (Vector3.Distance(playerref.transform.position, p3pos.transform.position) <= 0.2f || Vector3.Distance(playerref2.transform.position, p3pos.transform.position) <= 0.35f || Vector3.Distance(playerref3.transform.position, p3pos.transform.position) <= 0.2f || Vector3.Distance(playerref4.transform.position, p3pos.transform.position) <= 0.2f)
			{
				if (!onboardpos.Contains(p3pos))
				{
					onboardpos.Add(p3pos);
				}
				p3onboard = true;
			}
			if (Vector3.Distance(playerref.transform.position, p4pos.transform.position) <= 0.2f || Vector3.Distance(playerref2.transform.position, p4pos.transform.position) <= 0.35f || Vector3.Distance(playerref3.transform.position, p4pos.transform.position) <= 0.2f || Vector3.Distance(playerref4.transform.position, p4pos.transform.position) <= 0.2f)
			{
				if (!onboardpos.Contains(p4pos))
				{
					onboardpos.Add(p4pos);
				}
				p4onboard = true;
			}
			if (onboardpos.Count >= PlayerHeads.Count && onboardpos.Count > 0 && seated)
			{
				extracted = true;
			}
			else if (PlayerHeads.Count <= 0 && seated)
			{
				extracted = true;
			}
		}
	}
}
namespace JerryHD2
{
	public class SelectMap : MonoBehaviour
	{
		public GameObject rocketFX;

		public ShakeTransformS shake;

		public bool shakestarted = false;

		public Sprite placeholder;

		public List<Sprite> previews;

		public Material Im1;

		public GameObject playerref;

		public Light podlight;

		public float podlightref;

		public Transform hellpodpos;

		public Transform hellpad;

		public GameObject HellpodGeo;

		public Transform shootpos;

		public FVRInteractiveObject grabL;

		public FVRInteractiveObject grabR;

		public AR15HandleSightFlipper prev;

		public AR15HandleSightFlipper next;

		public AR15HandleSightFlipper ok;

		public Text mapname;

		public string curmap;

		public bool mapselected = false;

		public bool hellpodactivated = false;

		public int num;

		public List<string> Maps;

		public AudioEvent clickOK;

		public AudioEvent shoot;

		public AudioSource Mapselected;

		public AudioSource Mapdeselected;

		public GameObject podlid;

		public Transform podup;

		public Transform poddown;

		public GameObject truecover;

		public GameObject piston;

		public GameObject pistonend;

		public GameObject cover;

		public bool BGMLoaded = false;

		public float pistonref;

		public float pistonendref;

		public float coverref;

		public bool shot = false;

		public float selected;

		public float deselected;

		public Vector3 lidref;

		public AudioSource HellDiveBGM;

		public AudioSource whoosh;

		public float warnlightref;

		public float cd = 37f;

		public Light warnlight;

		public GameObject HMD;

		public GameObject headcam;

		public GameObject HMDRot;

		public float HMDRotref;

		public bool faded = false;

		public GameObject HellDoor;

		public float HellDoorref;

		public AudioSource HPP;

		public AudioSource HPLI;

		public AudioSource stepon;

		public bool stept = false;

		private void Start()
		{
		}

		private void FixedUpdate()
		{
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0350: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_0368: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0384: Unknown result type (might be due to invalid IL or missing references)
			//IL_0389: 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_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0602: Unknown result type (might be due to invalid IL or missing references)
			//IL_0607: Unknown result type (might be due to invalid IL or missing references)
			//IL_062f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0659: Unknown result type (might be due to invalid IL or missing references)
			//IL_065e: Unknown result type (might be due to invalid IL or missing references)
			//IL_067c: 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_06fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_071f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0492: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0787: Unknown result type (might be due to invalid IL or missing references)
			//IL_0400: Unknown result type (might be due to invalid IL or missing references)
			//IL_040b: Unknown result type (might be due to invalid IL or missing references)
			//IL_041b: Unknown result type (might be due to invalid IL or missing references)
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_080c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0870: Unknown re