Decompiled source of SOTF ModMenu v1.5.0

BepInEx/plugins/SOTF_ModMenu.dll

Decompiled 8 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using Assemblies.Sons.Cinematics;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using Construction;
using Endnight.Types;
using HarmonyLib;
using Il2CppInterop.Runtime.Injection;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using Il2CppSystem.IO;
using Microsoft.CodeAnalysis;
using SOTF_ModMenu.Cheats.ESP;
using SOTF_ModMenu.Cheats.Other;
using SOTF_ModMenu.Cheats.Player;
using SOTF_ModMenu.Cheats.World;
using SOTF_ModMenu.UI;
using Sons.Ai.Vail;
using Sons.Crafting.Structures;
using Sons.Input;
using Sons.Items.Core;
using Sons.StatSystem;
using TheForest;
using TheForest.Items.Inventory;
using TheForest.Utils;
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("SOTF_ModMenu")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("Trainer for Sons Of The Forest by Nie, Config and Custom Input support added by Maalik")]
[assembly: AssemblyFileVersion("1.5.0.0")]
[assembly: AssemblyInformationalVersion("1.5.0+4768162d64550dac76a45108215a1031974df8a0")]
[assembly: AssemblyProduct("SOTF_ModMenu")]
[assembly: AssemblyTitle("SOTF_ModMenu")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.5.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace SOTF_ModMenu
{
	public class SotfMain : MonoBehaviour
	{
		public static Camera CameraMain;

		public static HashSet<Structure> DirtyStructures;

		public static Scene SonsMainScene;

		private List<PlayerViews> _playerViewsList = new List<PlayerViews>();

		private bool _stylesInitialized;

		private void Start()
		{
			((MonoBehaviour)this).InvokeRepeating("SlowUpdate", 0f, 0.5f);
			OgMenuMusic.Start();
			_playerViewsList.Add((PlayerViews)(-1));
			_playerViewsList.Add((PlayerViews)1);
			_playerViewsList.Add((PlayerViews)2);
			_playerViewsList.Add((PlayerViews)3);
			_playerViewsList.Add((PlayerViews)5);
			_playerViewsList.Add((PlayerViews)9);
		}

		private void OnGUI()
		{
			if (!_stylesInitialized)
			{
				_stylesInitialized = true;
				UIHelper.InitializeStyles();
			}
			UIManager.Display();
		}

		private void SlowUpdate()
		{
			if (!((Scene)(ref SonsMainScene)).isLoaded)
			{
				ESP.Enabled = false;
				InfiniteLogs.Enabled = false;
				AlwaysRested.Enabled = false;
				GodMode.Enabled = false;
				InfAmmo.Enabled = false;
				InfHeal.Enabled = false;
				InfLungCapacity.Enabled = false;
				InfStamina.Enabled = false;
				NoCold.Enabled = false;
				NoFallDamage.Enabled = false;
				NoHunger.Enabled = false;
				NoThirst.Enabled = false;
				SpeedyRun.Enabled = false;
				CaveLight.Enabled = false;
				InfiniteBuild.Enabled = false;
				InstantBuild.Enabled = false;
			}
		}

		private void Update()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: 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)
			if (!((Scene)(ref SonsMainScene)).isLoaded)
			{
				SonsMainScene = SceneManager.GetSceneByName("SonsMain");
			}
			if ((Object)(object)CameraMain == (Object)null)
			{
				CameraMain = Camera.main ?? null;
			}
			GodMode.Update();
			CaveLight.Update();
			NoThirst.Update();
			NoHunger.Update();
			InfStamina.Update();
			InfHeal.Update();
			InfLungCapacity.Update();
			InfAmmo.Update();
			AlwaysRested.Update();
			InfiniteLogs.Update();
			NoFallDamage.Update();
			if (Input.anyKey && Input.anyKeyDown && Input.GetKeyDown(Plugin.ModKey.Value))
			{
				UIManager.MenuVisible = !UIManager.MenuVisible;
				if (UIManager.MenuVisible)
				{
					InputSystem.SetState((InputState)0, true);
					Cursor.visible = true;
					Cursor.lockState = (CursorLockMode)0;
				}
				else if (_playerViewsList.Contains(LocalPlayer.CurrentView))
				{
					InputSystem.SetState((InputState)0, false);
					Cursor.visible = false;
					Cursor.lockState = (CursorLockMode)1;
				}
			}
		}
	}
	[BepInPlugin("Nie_SOTF_ModMenu", "SOTF_ModMenu", "1.5.0")]
	public class Plugin : BasePlugin
	{
		public const string MODNAME = "SOTF_ModMenu";

		public const string AUTHOR = "Nie";

		public const string GUID = "Nie_SOTF_ModMenu";

		public const string VERSION = "1.5.0";

		public static ConfigFile ConfigFile = new ConfigFile(Path.Combine(Paths.ConfigPath, "SOTF_ModMenu.cfg"), true);

		public static ConfigEntry<KeyCode> ModKey = ConfigFile.Bind<KeyCode>("Hotkeys", "Toggle", (KeyCode)96, "Toggles menu visibility");

		public static ConfigEntry<bool> OgMenu = ConfigFile.Bind<bool>("Other", "Enabled", false, "Plays the og menu music form The Forest");

		public static ManualLogSource log;

		public Plugin()
		{
			log = ((BasePlugin)this).Log;
		}

		public override void Load()
		{
			//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_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Expected O, but got Unknown
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Expected O, but got Unknown
			bool flag = default(bool);
			try
			{
				ClassInjector.RegisterTypeInIl2Cpp<SotfMain>();
				GameObject val = new GameObject("SotfBehavior");
				val.AddComponent<SotfMain>();
				((Object)val).hideFlags = (HideFlags)61;
				Object.DontDestroyOnLoad((Object)val);
			}
			catch
			{
				ManualLogSource obj = log;
				BepInExErrorLogInterpolatedStringHandler val2 = new BepInExErrorLogInterpolatedStringHandler(31, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("FAILED to Register Il2Cpp Type!");
				}
				obj.LogError(val2);
			}
			try
			{
				Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null);
			}
			catch
			{
				ManualLogSource obj3 = log;
				BepInExErrorLogInterpolatedStringHandler val2 = new BepInExErrorLogInterpolatedStringHandler(27, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val2).AppendLiteral("FAILED to register patches!");
				}
				obj3.LogError(val2);
			}
		}
	}
}
namespace SOTF_ModMenu.UI
{
	public class UIHelper
	{
		private static float x;

		private static float y;

		private static float width;

		private static float height;

		private static float margin;

		private static float controlHeight;

		private static float controlDist;

		private static float nextControlY;

		private static Texture2D _panelOff;

		private static Texture2D _panelOn;

		private static GUIStyle _boxStyle;

		private static GUIStyle _titlebarStyle;

		public static GUIStyle TextFieldStyle;

		private static GUIStyle _centeredLabelStyle;

		public static GUIStyle ButtonStyle;

		public static GUIStyle SpawnerButtonStyle;

		public static GUIStyle PanelStyle;

		private static Color onColor = new Color(77f / 85f, 6f / 85f, 0f);

		private static Color offColor = Color.white;

		public static GUIStyle StringStyle { get; set; } = new GUIStyle(GUI.skin.label);


		public static void InitializeStyles()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Expected O, but got Unknown
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Expected O, but got Unknown
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Expected O, but got Unknown
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Expected O, but got Unknown
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Expected O, but got Unknown
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Expected O, but got Unknown
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Expected O, but got Unknown
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0301: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Expected O, but got Unknown
			//IL_0326: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: 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)
			_panelOff = MakeTex(1, 1, new Color(0.32156864f, 0.32156864f, 0.32156864f));
			((Object)_panelOff).hideFlags = (HideFlags)61;
			_panelOn = MakeTex(1, 1, new Color(77f / 85f, 6f / 85f, 0f));
			((Object)_panelOn).hideFlags = (HideFlags)61;
			PanelStyle = new GUIStyle(GUI.skin.label);
			PanelStyle.normal.background = _panelOff;
			((Object)PanelStyle.normal.background).hideFlags = (HideFlags)61;
			_boxStyle = new GUIStyle(GUI.skin.box);
			_boxStyle.normal.background = MakeTex(1, 1, new Color(14f / 85f, 14f / 85f, 14f / 85f));
			((Object)_boxStyle.normal.background).hideFlags = (HideFlags)61;
			_titlebarStyle = new GUIStyle(GUI.skin.box);
			_titlebarStyle.normal.background = MakeTex(1, 1, new Color(77f / 85f, 6f / 85f, 0f));
			((Object)_titlebarStyle.normal.background).hideFlags = (HideFlags)61;
			_centeredLabelStyle = new GUIStyle(GUI.skin.label);
			_centeredLabelStyle.alignment = (TextAnchor)4;
			SpawnerButtonStyle = new GUIStyle(GUI.skin.button);
			SpawnerButtonStyle.normal.background = Texture2D.blackTexture;
			((Object)SpawnerButtonStyle.normal.background).hideFlags = (HideFlags)61;
			SpawnerButtonStyle.hover.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f));
			((Object)SpawnerButtonStyle.hover.background).hideFlags = (HideFlags)61;
			SpawnerButtonStyle.active.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f));
			((Object)SpawnerButtonStyle.active.background).hideFlags = (HideFlags)61;
			ButtonStyle = new GUIStyle(GUI.skin.button);
			ButtonStyle.alignment = (TextAnchor)3;
			ButtonStyle.padding = new RectOffset(4, 0, 0, 0);
			ButtonStyle.normal.background = Texture2D.blackTexture;
			((Object)ButtonStyle.normal.background).hideFlags = (HideFlags)61;
			ButtonStyle.hover.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f));
			((Object)ButtonStyle.hover.background).hideFlags = (HideFlags)61;
			ButtonStyle.active.background = MakeTex(1, 1, new Color(6f / 85f, 6f / 85f, 6f / 85f));
			((Object)ButtonStyle.active.background).hideFlags = (HideFlags)61;
			TextFieldStyle = new GUIStyle(GUI.skin.textField);
			TextFieldStyle.normal.background = MakeTex(2, 2, new Color(0.10980392f, 0.10980392f, 0.10980392f));
			((Object)TextFieldStyle.normal.background).hideFlags = (HideFlags)61;
			TextFieldStyle.hover.background = MakeTex(2, 2, new Color(6f / 85f, 6f / 85f, 6f / 85f));
			((Object)TextFieldStyle.hover.background).hideFlags = (HideFlags)61;
			TextFieldStyle.focused.background = MakeTex(2, 2, new Color(0.10980392f, 0.10980392f, 0.10980392f));
			((Object)TextFieldStyle.focused.background).hideFlags = (HideFlags)61;
		}

		public static void Begin(string text, float _x, float _y, float _width, float _height, float _margin, float _controlHeight, float _controlDist)
		{
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			x = _x;
			y = _y;
			width = _width;
			height = _height;
			margin = _margin;
			controlHeight = _controlHeight;
			controlDist = _controlDist;
			nextControlY = 20f;
			GUI.Box(new Rect(x, y, width, height), "", _boxStyle);
			GUI.Box(new Rect(x, y, width, 20f), "", _titlebarStyle);
			GUI.Label(new Rect(x, y, width, 20f), "<b>" + text + "</b>", _centeredLabelStyle);
		}

		private static Rect NextControlRect()
		{
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			Rect result = new Rect(x + margin, nextControlY + y, width - margin * 2f, controlHeight);
			nextControlY += controlHeight + controlDist;
			return result;
		}

		private static string MakeEnable(string text, bool state)
		{
			//IL_0028: 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_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			PanelStyle.normal.background = (state ? _panelOn : _panelOff);
			Color val = (state ? onColor : offColor);
			int value = (int)(val.r * 255f);
			int value2 = (int)(val.g * 255f);
			int value3 = (int)(val.b * 255f);
			string value4 = $"#{value:X2}{value2:X2}{value3:X2}";
			return $"<color={value4}>{text}</color>";
		}

		public static void Button(string text, bool state, Action function)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			Rect val = NextControlRect();
			bool num = GUI.Button(val, MakeEnable(text, state), ButtonStyle);
			GUI.Label(new Rect(((Rect)(ref val)).xMax - 6f, ((Rect)(ref val)).y + 3f, 3f, ((Rect)(ref val)).height - 6f), GUIContent.none, PanelStyle);
			if (num)
			{
				function();
			}
		}

		public static bool Button(string text)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			return GUI.Button(NextControlRect(), text, ButtonStyle);
		}

		public static void Label(string text, float value, int decimals = 2)
		{
			Label($"{text}{Math.Round((double)value, 2).ToString()}");
		}

		public static void Label(string text)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			GUI.Label(NextControlRect(), text, _centeredLabelStyle);
		}

		public static float Slider(float val, float min, float max)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			return GUI.HorizontalSlider(NextControlRect(), val, min, max);
		}

		public static bool DrawString(Vector2 position, string label, Color color, int fontSize, bool centered = true)
		{
			//IL_0000: 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_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			GUI.color = color;
			StringStyle.fontSize = fontSize;
			StringStyle.normal.textColor = color;
			GUIContent val = new GUIContent(label);
			Vector2 val2 = StringStyle.CalcSize(val);
			GUI.Label(new Rect(centered ? (position - val2 / 2f) : position, val2), val, StringStyle);
			return true;
		}

		public static void DrawLine(Vector2 start, Vector2 end, Color color, float width)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			GUI.depth = 0;
			Vector2 val = end - start;
			float num = 57.29578f * Mathf.Atan(val.y / val.x);
			if (val.x < 0f)
			{
				num += 180f;
			}
			int num2 = (int)Mathf.Ceil(width / 2f);
			GUIUtility.RotateAroundPivot(num, start);
			GUI.color = color;
			GUI.DrawTexture(new Rect(start.x, start.y - (float)num2, ((Vector2)(ref val)).magnitude, width), (Texture)(object)Texture2D.whiteTexture, (ScaleMode)0);
			GUIUtility.RotateAroundPivot(0f - num, start);
		}

		public static void DrawBox(Vector2 position, Vector2 size, Color color, bool centered = true)
		{
			//IL_0016: 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_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0004: 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)
			if (centered)
			{
				position -= size / 2f;
			}
			GUI.color = color;
			GUI.DrawTexture(new Rect(position, size), (Texture)(object)Texture2D.whiteTexture, (ScaleMode)0);
		}

		public static void DrawBoxOutline(Vector2 Point, float width, float height, Color color)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: 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_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: 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_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: 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_0079: Unknown result type (might be due to invalid IL or missing references)
			//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_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			DrawLine(Point, new Vector2(Point.x + width, Point.y), color, 2f);
			DrawLine(Point, new Vector2(Point.x, Point.y + height), color, 2f);
			DrawLine(new Vector2(Point.x + width, Point.y + height), new Vector2(Point.x + width, Point.y), color, 2f);
			DrawLine(new Vector2(Point.x + width, Point.y + height), new Vector2(Point.x, Point.y + height), color, 2f);
		}

		private static Texture2D MakeTex(int width, int height, Color col)
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Expected O, but got Unknown
			Color[] array = (Color[])(object)new Color[width * height];
			for (int i = 0; i < array.Length; i++)
			{
				array[i] = col;
			}
			Texture2D val = new Texture2D(width, height);
			val.SetPixels(Il2CppStructArray<Color>.op_Implicit(array));
			val.Apply();
			return val;
		}
	}
	public class UIManager
	{
		public static bool MenuVisible;

		public static bool IdsMenuVisible;

		private static string _itemIdInput = "392";

		private static string _amountInput = "1";

		private static Vector2 _scrollPosition = Vector2.zero;

		private static List<ItemData> _itemList;

		private static string _searchQuery = "";

		private static bool _initialized;

		public static void Display()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0481: Unknown result type (might be due to invalid IL or missing references)
			if (ESP.Enabled)
			{
				ESP.Enable();
			}
			else
			{
				ESP.Disable();
			}
			if (MenuVisible)
			{
				GUI.color = Color.white;
				UIHelper.Begin("Player", 10f, 10f, 150f, 272f, 0f, 22f, 1f);
				UIHelper.Button("God Mode", GodMode.Enabled, GodMode.Toggle);
				UIHelper.Button("Inf Heal", InfHeal.Enabled, InfHeal.Toggle);
				UIHelper.Button("Inf Stamina", InfStamina.Enabled, InfStamina.Toggle);
				UIHelper.Button("Inf Lung Capacity", InfLungCapacity.Enabled, InfLungCapacity.Toggle);
				UIHelper.Button("No Fall Damage", NoFallDamage.Enabled, NoFallDamage.Toggle);
				UIHelper.Button("No Cold", NoCold.Enabled, NoCold.Toggle);
				UIHelper.Button("No Hunger", NoHunger.Enabled, NoHunger.Toggle);
				UIHelper.Button("No Thirst", NoThirst.Enabled, NoThirst.Toggle);
				UIHelper.Button("Always Rested", AlwaysRested.Enabled, AlwaysRested.Toggle);
				UIHelper.Button("Infinite Ammo <color=yellow><b>[Broken]</b></color>", InfAmmo.Enabled, InfAmmo.Toggle);
				UIHelper.Button("SpeedRun", SpeedyRun.Enabled, SpeedyRun.Toggle);
				UIHelper.Begin("World", 165f, 10f, 165f, 88f, 0f, 22f, 1f);
				UIHelper.Button("Instant Build", InstantBuild.Enabled, InstantBuild.Toggle);
				UIHelper.Button("Infinite Build", InfiniteBuild.Enabled, InfiniteBuild.Toggle);
				UIHelper.Button("Cave Light", CaveLight.Enabled, CaveLight.Toggle);
				UIHelper.Begin("ESP", 335f, 10f, 165f, 134f, 0f, 22f, 1f);
				UIHelper.Button("Enable", ESP.Enabled, ESP.ToggleEnabled);
				UIHelper.Button("Animals", ESP.AnimalsEsp, ESP.ToggleAnimalsEsp);
				UIHelper.Button("Enemies", ESP.EnemyEsp, ESP.ToggleEnemiesEsp);
				UIHelper.Button("Friendly", ESP.FriendlyEsp, ESP.ToggleFriendlyEsp);
				UIHelper.Button("Structure Damage", ESP.StructureDamageEsp, ESP.ToggleStructureDamageEsp);
				UIHelper.Begin("Other", 505f, 10f, 165f, 88f, 0f, 22f, 1f);
				UIHelper.Button("OG Menu Music", OgMenuMusic.Enabled, OgMenuMusic.Toggle);
				UIHelper.Button("Infinite Logs <color=yellow><b>[Broken]</b></color>", InfiniteLogs.Enabled, InfiniteLogs.Toggle);
				if (UIHelper.Button("Fix Stuck Mouse"))
				{
					InputSystem.SetState((InputState)0, false);
					Cursor.visible = false;
					Cursor.lockState = (CursorLockMode)1;
					MenuVisible = false;
				}
				ItemSpawnerWindow();
				if (IdsMenuVisible)
				{
					AllIdsWindow();
				}
				GUI.color = Color.gray;
			}
		}

		private static void ItemSpawnerWindow()
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Expected O, but got Unknown
			UIHelper.Begin("Item Spawner", 165f, 103f, 165f, 83f, 2f, 20f, 2f);
			UIHelper.Label("Enter <b>id</b> and <b>amount</b>");
			_itemIdInput = GUI.TextField(new Rect(167f, 142f, 40f, 20f), _itemIdInput, UIHelper.TextFieldStyle);
			_amountInput = GUI.TextField(new Rect(209f, 142f, 30f, 20f), _amountInput, UIHelper.TextFieldStyle);
			if (GUI.Button(new Rect(241f, 142f, 87f, 20f), "Spawn", UIHelper.ButtonStyle))
			{
				if (!LocalPlayer.IsInWorld)
				{
					return;
				}
				if (int.TryParse(_itemIdInput, out var result) && int.TryParse(_amountInput, out var result2))
				{
					LocalPlayer._instance.AddItem(result, result2, true);
				}
				else
				{
					ManualLogSource log = Plugin.log;
					bool flag = default(bool);
					BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(27, 1, ref flag);
					if (flag)
					{
						((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to add item with id ");
						((BepInExLogInterpolatedStringHandler)val).AppendFormatted<int>(result);
					}
					log.LogError(val);
				}
			}
			GUI.Label(new Rect(324f, 145f, 3f, 14f), GUIContent.none, UIHelper.PanelStyle);
			if (GUI.Button(new Rect(167f, 164f, 161f, 20f), "Show all ID's", UIHelper.SpawnerButtonStyle))
			{
				IdsMenuVisible = !IdsMenuVisible;
			}
		}

		private static void AllIdsWindow()
		{
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Expected O, but got Unknown
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Unknown result type (might be due to invalid IL or missing references)
			UIHelper.Begin("All Ids", 165f, 191f, 300f, 500f, 0f, 22f, 2f);
			if (LocalPlayer.IsInWorld && !_initialized)
			{
				_initialized = true;
				if (_itemList == null)
				{
					_itemList = ItemDatabaseManager.Items;
				}
			}
			string text = ((_searchQuery.Length == 0) ? "Search" : "");
			GUILayout.BeginArea(new Rect(166f, 215f, 295f, 470f));
			_searchQuery = GUILayout.TextField(_searchQuery, UIHelper.TextFieldStyle, Array.Empty<GUILayoutOption>());
			GUI.Label(new Rect(9f, 1f, 60f, 30f), text);
			if (_itemList == null || _itemList.Count == 0)
			{
				GUI.Label(new Rect(0f, 22f, 300f, 500f), "Item list is empty load a save to populate the list");
			}
			else
			{
				StringWriter val = new StringWriter();
				Enumerator<ItemData> enumerator = _itemList.GetEnumerator();
				while (enumerator.MoveNext())
				{
					ItemData current = enumerator.Current;
					if (current._name.ToLower().Contains(_searchQuery.ToLower()))
					{
						((TextWriter)val).Write(current._name);
						((TextWriter)val).Write(" : ");
						((TextWriter)val).WriteLine(Object.op_Implicit(current._id));
					}
				}
				_scrollPosition = GUILayout.BeginScrollView(_scrollPosition, Array.Empty<GUILayoutOption>());
				GUILayout.BeginVertical((Il2CppReferenceArray<GUILayoutOption>)null);
				GUILayout.Label(((Object)val).ToString(), (Il2CppReferenceArray<GUILayoutOption>)null);
				GUILayout.EndVertical();
				GUILayout.EndScrollView();
			}
			GUILayout.EndArea();
		}
	}
}
namespace SOTF_ModMenu.Cheats.World
{
	public class CaveLight
	{
		public static bool Enabled;

		private static bool _lightCreated;

		private static GameObject _light;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(42, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle CaveLight, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
				ToggleCaveLight();
			}
		}

		private static void ToggleCaveLight()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			if (!_lightCreated)
			{
				_lightCreated = true;
				_light = new GameObject("CaveLight");
				_light.transform.SetParent(LocalPlayer.GameObject.transform);
				_light.transform.position = LocalPlayer.GameObject.transform.position + Vector3.up * 3f;
				Light obj = _light.AddComponent<Light>();
				obj.intensity = 500000f;
				_light.AddComponent<HDAdditionalLightData>().affectsVolumetric = false;
				obj.intensity = (Enabled ? 500000f : 0f);
			}
			else
			{
				_light.GetComponent<Light>().intensity = (Enabled ? 500000f : 0f);
			}
		}

		public static void Update()
		{
			if (!LocalPlayer.IsInWorld && !((Scene)(ref SotfMain.SonsMainScene)).isLoaded)
			{
				_lightCreated = false;
			}
		}
	}
	public class InfiniteBuild
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(46, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InfiniteBuild, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
				LocalPlayer.Inventory.HeldOnlyItemController.InfiniteHack = Enabled;
			}
		}
	}
	public class InstantBuild
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(45, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InstantBuild, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
				SingletonBehaviour<StructureCraftingSystem>._instance.InstantBuild = Enabled;
			}
		}
	}
}
namespace SOTF_ModMenu.Cheats.Player
{
	public class AlwaysRested
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(45, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle AlwaysRested, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				((Stat)LocalPlayer.Vitals._rested)._currentValue = ((Stat)LocalPlayer.Vitals._rested)._max;
			}
		}
	}
	public class GodMode
	{
		public static bool Enabled;

		private static bool _gotMaxHealthValue;

		private static float _maxHealthBefore;

		private static bool _check;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(40, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle GodMode, not in a world");
				}
				log.LogError(val);
				return;
			}
			Enabled = !Enabled;
			if (Enabled)
			{
				if (!_gotMaxHealthValue)
				{
					_check = true;
					_gotMaxHealthValue = true;
					_maxHealthBefore = ((Stat)LocalPlayer.Vitals._health)._max;
				}
			}
			else
			{
				((Stat)LocalPlayer.Vitals._health)._max = _maxHealthBefore;
			}
		}

		public static void Update()
		{
			if (!Enabled && _check && !LocalPlayer.IsInWorld)
			{
				_check = false;
				_gotMaxHealthValue = false;
				_maxHealthBefore = 0f;
			}
			if (Enabled && LocalPlayer.IsInWorld)
			{
				((Stat)LocalPlayer.Vitals._health)._max = 99999f;
				LocalPlayer.Vitals._targetHealth = ((Stat)LocalPlayer.Vitals._health)._max;
				((Stat)LocalPlayer.Vitals._health)._currentValue = ((Stat)LocalPlayer.Vitals._health)._max;
			}
		}
	}
	public class InfAmmo
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(40, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InfAmmo, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
		}
	}
	public class InfHeal
	{
		public static bool Enabled;

		public static void Toggle()
		{
			if (!LocalPlayer.IsInWorld)
			{
				Plugin.log.LogError((object)"Failed to toggle InfHealth, not in a world");
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				LocalPlayer.Vitals._targetHealth = ((Stat)LocalPlayer.Vitals._health)._max;
				((Stat)LocalPlayer.Vitals._health)._currentValue = ((Stat)LocalPlayer.Vitals._health)._max;
			}
		}
	}
	public class InfLungCapacity
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(48, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InfLungCapacity, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				LocalPlayer.Vitals.LungBreathing.CurrentLungAir = LocalPlayer.Vitals.LungBreathing.MaxLungAirCapacity;
			}
		}
	}
	public class InfStamina
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(43, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InfStamina, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				((Stat)LocalPlayer.Vitals._stamina)._currentValue = ((Stat)LocalPlayer.Vitals._stamina)._max;
			}
		}
	}
	public class NoCold
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(39, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle NoCold, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
				LocalPlayer.Stats.InteriorSpaceWarmth = Enabled;
			}
		}
	}
	public class NoFallDamage
	{
		public static bool Enabled;

		public static void Toggle()
		{
			if (!LocalPlayer.IsInWorld)
			{
				Plugin.log.LogError((object)"Failed to toggle NoFallDamage, not in a world");
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				LocalPlayer.FpCharacter._allowFallDamage = !Enabled;
			}
		}
	}
	public class NoHunger
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(41, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle NoHunger, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				((Stat)LocalPlayer.Vitals._fullness)._currentValue = ((Stat)LocalPlayer.Vitals._fullness)._max;
			}
		}
	}
	public class NoThirst
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(41, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle NoThirst, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
			if (Enabled && LocalPlayer.IsInWorld)
			{
				((Stat)LocalPlayer.Vitals._hydration)._currentValue = ((Stat)LocalPlayer.Vitals._hydration)._max;
			}
		}
	}
	public class SpeedyRun
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(42, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle SpeedyRun, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
				DebugConsole.Instance._speedyrun(Enabled ? "on" : "off");
			}
		}
	}
}
namespace SOTF_ModMenu.Cheats.Other
{
	public class InfiniteLogs
	{
		public static bool Enabled;

		public static void Toggle()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(46, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle InfiniteBuild, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void Update()
		{
		}
	}
	public class OgMenuMusic
	{
		[HarmonyPatch(typeof(KonamiCode), "Update")]
		public class KonamiCodePatch
		{
			public static void Prefix(KonamiCode __instance)
			{
				if (!_executed && Plugin.OgMenu.Value)
				{
					_executed = true;
					__instance._onCodeCompleted.Invoke();
				}
			}
		}

		public static bool Enabled;

		private static bool _executed;

		public static void Start()
		{
			Enabled = Plugin.OgMenu.Value;
		}

		public static void Toggle()
		{
			if (!((Scene)(ref SotfMain.SonsMainScene)).isLoaded)
			{
				Enabled = !Enabled;
				Plugin.OgMenu.Value = Enabled;
			}
		}
	}
}
namespace SOTF_ModMenu.Cheats.ESP
{
	internal static class ESP
	{
		public static bool Enabled;

		public static bool AnimalsEsp;

		public static bool EnemyEsp;

		public static bool FriendlyEsp;

		public static bool StructureDamageEsp;

		public static void Enable()
		{
			if ((Object)(object)SotfMain.CameraMain != (Object)null)
			{
				Actors();
				Structures();
			}
		}

		public static void Disable()
		{
			AnimalsEsp = false;
			EnemyEsp = false;
			FriendlyEsp = false;
			StructureDamageEsp = false;
		}

		public static void ToggleEnabled()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(36, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle ESP, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				Enabled = !Enabled;
			}
		}

		public static void ToggleAnimalsEsp()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(36, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle ESP, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				AnimalsEsp = !AnimalsEsp;
			}
		}

		public static void ToggleEnemiesEsp()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(36, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle ESP, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				EnemyEsp = !EnemyEsp;
			}
		}

		public static void ToggleFriendlyEsp()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(36, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle ESP, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				FriendlyEsp = !FriendlyEsp;
			}
		}

		public static void ToggleStructureDamageEsp()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			if (!LocalPlayer.IsInWorld)
			{
				ManualLogSource log = Plugin.log;
				bool flag = default(bool);
				BepInExErrorLogInterpolatedStringHandler val = new BepInExErrorLogInterpolatedStringHandler(36, 0, ref flag);
				if (flag)
				{
					((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Failed to toggle ESP, not in a world");
				}
				log.LogError(val);
			}
			else
			{
				StructureDamageEsp = !StructureDamageEsp;
			}
		}

		private static void Structures()
		{
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: 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_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0111: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: 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_0159: Unknown result type (might be due to invalid IL or missing references)
			if (!StructureDamageEsp)
			{
				return;
			}
			if (((Scene)(ref SotfMain.SonsMainScene)).isLoaded && SotfMain.DirtyStructures == null)
			{
				GameObject val = ((IEnumerable<GameObject>)((Scene)(ref SotfMain.SonsMainScene)).GetRootGameObjects()).FirstOrDefault((Func<GameObject, bool>)((GameObject ob) => ((Object)ob).name == "GameManagers"));
				if ((Object)(object)val != (Object)null)
				{
					SotfMain.DirtyStructures = val.GetComponentInChildren<StructureDestructionManager>()._distortedStructures;
				}
			}
			if (!((Scene)(ref SotfMain.SonsMainScene)).isLoaded || SotfMain.DirtyStructures == null)
			{
				return;
			}
			Enumerator<Structure> enumerator = SotfMain.DirtyStructures.GetEnumerator();
			while (enumerator.MoveNext())
			{
				Structure current = enumerator.Current;
				if (!((Object)(object)current == (Object)null))
				{
					Vector3 position = ((Component)current).transform.position;
					Vector3 val2 = SotfMain.CameraMain.WorldToScreenPoint(position);
					float num = Vector3.Distance(((Component)SotfMain.CameraMain).transform.position, position);
					if (val2.z >= 0f && num < 250f && StructureDamageEsp)
					{
						UIHelper.DrawString(new Vector2(val2.x, (float)Screen.height - val2.y), "Repair", Color.magenta, 12);
						UIHelper.DrawString(new Vector2(val2.x, (float)Screen.height - val2.y + 12f), Mathf.Round(num) + "m", Color.yellow, 12);
					}
				}
			}
		}

		private static void Actors()
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: 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)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_0992: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a76: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ae: 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_09b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b9: Invalid comparison between Unknown and I4
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Expected I4, but got Unknown
			//IL_09c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bf: Invalid comparison between Unknown and I4
			//IL_04e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0504: Unknown result type (might be due to invalid IL or missing references)
			//IL_0182: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0197: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0518: Unknown result type (might be due to invalid IL or missing references)
			//IL_0525: Unknown result type (might be due to invalid IL or missing references)
			//IL_052d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0537: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0207: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0228: Unknown result type (might be due to invalid IL or missing references)
			//IL_0230: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_024e: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0263: Unknown result type (might be due to invalid IL or missing references)
			//IL_026d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: Unknown result type (might be due to invalid IL or missing references)
			//IL_028e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0296: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_054b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0558: 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_056a: Unknown result type (might be due to invalid IL or missing references)
			//IL_057e: Unknown result type (might be due to invalid IL or missing references)
			//IL_058b: 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_059d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05be: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0603: Unknown result type (might be due to invalid IL or missing references)
			//IL_0617: Unknown result type (might be due to invalid IL or missing references)
			//IL_0624: Unknown result type (might be due to invalid IL or missing references)
			//IL_062c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0636: Unknown result type (might be due to invalid IL or missing references)
			//IL_064a: 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_065f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0669: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0306: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_032f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_034d: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_036c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0380: Unknown result type (might be due to invalid IL or missing references)
			//IL_038d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_039f: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e6: 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_03fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0405: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_0426: 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_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_044c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_0461: Unknown result type (might be due to invalid IL or missing references)
			//IL_046b: Unknown result type (might be due to invalid IL or missing references)
			//IL_047f: Unknown result type (might be due to invalid IL or missing references)
			//IL_048c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0494: Unknown result type (might be due to invalid IL or missing references)
			//IL_049e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d1: 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_068a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0692: Unknown result type (might be due to invalid IL or missing references)
			//IL_069c: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f8: 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_0716: Unknown result type (might be due to invalid IL or missing references)
			//IL_0723: Unknown result type (might be due to invalid IL or missing references)
			//IL_072b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0735: Unknown result type (might be due to invalid IL or missing references)
			//IL_0749: Unknown result type (might be due to invalid IL or missing references)
			//IL_0756: Unknown result type (might be due to invalid IL or missing references)
			//IL_075e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0768: Unknown result type (might be due to invalid IL or missing references)
			//IL_077c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0789: Unknown result type (might be due to invalid IL or missing references)
			//IL_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_079b: Unknown result type (might be due to invalid IL or missing references)
			//IL_07af: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0801: Unknown result type (might be due to invalid IL or missing references)
			//IL_0815: Unknown result type (might be due to invalid IL or missing references)
			//IL_0822: Unknown result type (might be due to invalid IL or missing references)
			//IL_082a: 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_0848: Unknown result type (might be due to invalid IL or missing references)
			//IL_0855: Unknown result type (might be due to invalid IL or missing references)
			//IL_085d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0867: Unknown result type (might be due to invalid IL or missing references)
			//IL_087b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0888: Unknown result type (might be due to invalid IL or missing references)
			//IL_0890: Unknown result type (might be due to invalid IL or missing references)
			//IL_089a: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_08de: Unknown result type (might be due to invalid IL or missing references)
			//IL_08eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_090e: Unknown result type (might be due to invalid IL or missing references)
			//IL_091b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0923: Unknown result type (might be due to invalid IL or missing references)
			//IL_092d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa9: Invalid comparison between Unknown and I4
			//IL_09f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a00: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae2: Invalid comparison between Unknown and I4
			//IL_0aab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad0: Expected I4, but got Unknown
			//IL_0a2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a68: Unknown result type (might be due to invalid IL or missing references)
			//IL_094a: 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_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c9b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aeb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b09: Expected I4, but got Unknown
			//IL_0b17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b24: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b57: 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_0b69: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dde: Unknown result type (might be due to invalid IL or missing references)
			//IL_0deb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bcf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c23: 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_0c35: 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_0ad4: Invalid comparison between Unknown and I4
			//IL_0caf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d22: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d48: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d55: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d67: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e2d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7b: 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_0d90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b09: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0d: Invalid comparison between Unknown and I4
			//IL_0c49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5e: 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_0e49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e64: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dbb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dcd: Unknown result type (might be due to invalid IL or missing references)
			List<VailActor> activeActors;
			try
			{
				activeActors = VailActorManager._instance._activeActors;
			}
			catch (Exception)
			{
				return;
			}
			if (activeActors == null)
			{
				return;
			}
			Enumerator<VailActor> enumerator = activeActors.GetEnumerator();
			while (enumerator.MoveNext())
			{
				VailActor current = enumerator.Current;
				if (!Object.op_Implicit((Object)(object)current) || current._isDead)
				{
					continue;
				}
				Vector3 position = ((Component)current).transform.position;
				Vector3 val = SotfMain.CameraMain.WorldToScreenPoint(position);
				float num = Vector3.Distance(((Component)SotfMain.CameraMain).transform.position, position);
				bool flag = false;
				VailActorTypeId typeId;
				if (val.z >= 0f && num < 250f && EnemyEsp)
				{
					typeId = current.TypeId;
					if ((typeId - 8) switch
					{
						3 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Fingers", Color.red, 12), 
						5 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Andy", Color.red, 12), 
						6 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Danny", Color.red, 12), 
						7 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Billy", Color.red, 12), 
						10 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Baby", Color.red, 12), 
						11 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Twins", Color.red, 12), 
						8 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Gold Mask", Color.red, 12), 
						20 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Muddy Female", Color.red, 12), 
						21 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Muddy Male", Color.red, 12), 
						22 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Heavy Male", Color.red, 12), 
						30 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Fat Male", Color.red, 12), 
						31 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Fat Female", Color.red, 12), 
						32 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "John 2.0", Color.red, 12), 
						33 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Faceless Male", Color.red, 12), 
						34 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Demon", Color.red, 12), 
						35 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Painted Male", Color.red, 12), 
						36 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Painted Female", Color.red, 12), 
						0 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Timmy", Color.red, 12), 
						4 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Carl", Color.red, 12), 
						12 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Mr. Puffy", Color.red, 12), 
						13 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Mrs. Puffy", Color.red, 12), 
						15 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Angel", Color.red, 12), 
						17 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Brandy", Color.red, 12), 
						18 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Crystal", Color.red, 12), 
						19 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Destiny", Color.red, 12), 
						37 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Demon Boss", Color.red, 12), 
						38 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Puffy Boss Male", Color.red, 12), 
						39 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Puffy Boss Female", Color.red, 12), 
						40 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Boss Mutant", Color.red, 12), 
						41 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Creepy Virginia", Color.red, 12), 
						42 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Armsy", Color.red, 12), 
						43 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Frank", Color.red, 12), 
						44 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Eddy", Color.red, 12), 
						45 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Greg", Color.red, 12), 
						46 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Henry", Color.red, 12), 
						47 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Igor", Color.red, 12), 
						48 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Elise", Color.red, 12), 
						50 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Legsy", Color.red, 12), 
						51 => UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Holey", Color.red, 12), 
						_ => flag, 
					})
					{
						UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y + 12f), Mathf.Round(num) + "m", Color.yellow, 12);
					}
				}
				if (val.z >= 0f && FriendlyEsp)
				{
					typeId = current.TypeId;
					if (((int)typeId == 9) ? UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Robby", Color.cyan, 12) : ((int)typeId == 10 && UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Virginia", Color.cyan, 12)))
					{
						UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y + 12f), Mathf.Round(num) + "m", Color.yellow, 12);
					}
				}
				if (!(val.z >= 0f) || !(num < 250f) || !AnimalsEsp)
				{
					continue;
				}
				typeId = current.TypeId;
				bool flag2;
				if ((int)typeId <= 17)
				{
					switch (typeId - 1)
					{
					case 0:
						goto IL_0b17;
					case 1:
						goto IL_0b4a;
					case 2:
						goto IL_0b7d;
					case 4:
						goto IL_0bb0;
					case 5:
						goto IL_0be3;
					case 6:
						goto IL_0c16;
					case 3:
						goto IL_0dde;
					}
					if ((int)typeId != 17)
					{
						goto IL_0e3e;
					}
					flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Moose", Color.green, 12);
				}
				else if ((int)typeId != 24)
				{
					switch (typeId - 32)
					{
					case 0:
						goto IL_0caf;
					case 1:
						goto IL_0ce2;
					case 2:
						goto IL_0d15;
					case 3:
						goto IL_0d48;
					case 5:
						goto IL_0d7b;
					case 4:
						goto IL_0e0e;
					}
					if ((int)typeId != 57)
					{
						goto IL_0e3e;
					}
					flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Raccoon", Color.green, 12);
				}
				else
				{
					flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Salmon", Color.green, 12);
				}
				goto IL_0e41;
				IL_0b4a:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Squirrel", Color.green, 12);
				goto IL_0e41;
				IL_0e3e:
				flag2 = false;
				goto IL_0e41;
				IL_0be3:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Eagle", Color.green, 12);
				goto IL_0e41;
				IL_0d7b:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Land Turtle", Color.green, 12);
				goto IL_0e41;
				IL_0d48:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Hummingbird", Color.green, 12);
				goto IL_0e41;
				IL_0d15:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Bluebird", Color.green, 12);
				goto IL_0e41;
				IL_0dde:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Shark", Color.red, 12);
				goto IL_0e41;
				IL_0c16:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Duck", Color.green, 12);
				goto IL_0e41;
				IL_0e0e:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Killer Whale", Color.red, 12);
				goto IL_0e41;
				IL_0bb0:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Seagull", Color.green, 12);
				goto IL_0e41;
				IL_0b7d:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Turtle", Color.green, 12);
				goto IL_0e41;
				IL_0b17:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Rabbit", Color.green, 12);
				goto IL_0e41;
				IL_0e41:
				if (flag2)
				{
					UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y + 12f), Mathf.Round(num) + "m", Color.yellow, 12);
				}
				continue;
				IL_0ce2:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Deer", Color.green, 12);
				goto IL_0e41;
				IL_0caf:
				flag2 = UIHelper.DrawString(new Vector2(val.x, (float)Screen.height - val.y), "Bat", Color.green, 12);
				goto IL_0e41;
			}
		}
	}
}