Decompiled source of CheatMenu v1.2.61

NineSolsPlugin.dll

Decompiled 3 hours ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using Cysharp.Threading.Tasks;
using Cysharp.Threading.Tasks.CompilerServices;
using HarmonyLib;
using Newtonsoft.Json;
using QFSW.QC;
using RCGFSM.PlayerAbility;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("NineSolsPlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("NineSolsPlugin")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("181a46b5-f9aa-45c1-905f-f62be3e98520")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: AssemblyVersion("1.0.0.0")]
public class LocalizationManager
{
	private Dictionary<string, string> _localizationStrings;

	private string _currentLanguage;

	public LocalizationManager()
	{
		_currentLanguage = "zh-cn";
		LoadLocalizationStrings(_currentLanguage);
	}

	public void SetLanguage(string languageCode)
	{
		_currentLanguage = languageCode;
		LoadLocalizationStrings(languageCode);
	}

	private void LoadLocalizationStrings(string languageCode)
	{
		_localizationStrings = new Dictionary<string, string>();
		string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "strings_" + languageCode + ".json");
		if (File.Exists(path))
		{
			string text = File.ReadAllText(path);
			_localizationStrings = JsonConvert.DeserializeObject<Dictionary<string, string>>(text);
		}
	}

	public string GetString(string key)
	{
		if (_localizationStrings.TryGetValue(key, out var value))
		{
			return value;
		}
		return key;
	}
}
namespace NineSolsPlugin;

public class Patch
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(QuantumConsole), "IsSupportedState")]
	public static bool IsSupportedState(ref bool __result)
	{
		if (Plugin.Instance.isEnableConsole.Value)
		{
			__result = true;
			return false;
		}
		return true;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(MonsterBase), "DecreasePosture")]
	public static bool DecreasePosture(ref EffectHitData data, ref float scale)
	{
		if (Plugin.Instance.isOneHitKill)
		{
			scale = 9999f;
		}
		return true;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(FOV_Follower), "Update")]
	public static bool FOV_Follower_Update(ref FOV_Follower __instance)
	{
		if ((Object)(object)__instance.followCamera == (Object)null)
		{
			return false;
		}
		if (Plugin.Instance.isFov && Plugin.Instance.fov > 0f)
		{
			Traverse.Create((object)__instance).Field("mCamera").GetValue<Camera>()
				.fieldOfView = Plugin.Instance.fov;
		}
		else
		{
			Traverse.Create((object)__instance).Field("mCamera").GetValue<Camera>()
				.fieldOfView = __instance.followCamera.fieldOfView;
		}
		return false;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(SkillTreeUI), "UpgradeCheck")]
	public static bool UpgradeCheck(ref SkillTreeUI __instance)
	{
		if (Plugin.Instance.isFastLearnSkill)
		{
			__instance.longPressSubmit.submitTime = 0f;
		}
		else
		{
			__instance.longPressSubmit.submitTime = 1f;
		}
		return true;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(BossGeneralState), "OnStateUpdate")]
	public static bool OnStateUpdate(ref BossGeneralState __instance)
	{
		if (Plugin.Instance.showSupportWindow)
		{
			Plugin.Instance.SupportText = ((Object)((Component)__instance).gameObject).name;
		}
		return true;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(MonsterBase), "UnFreeze")]
	public static bool UnFreeze(ref MonsterBase __instance)
	{
		if (Plugin.Instance.isBossSpeed)
		{
			Traverse.Create((object)__instance).Field("isFreezing").SetValue((object)false);
			Plugin.Instance.modifyBossSpeed(Plugin.Instance.bossSpeed);
			return false;
		}
		return true;
	}

	[HarmonyPrefix]
	[HarmonyPatch(typeof(SkillNodeUIControlButton), "UpdateView")]
	public static bool UpdateView(ref SkillNodeUIControlButton __instance)
	{
		((Component)__instance).GetComponent<Animator>().SetBool(Animator.StringToHash("Activated"), false);
		return true;
	}
}
[BepInPlugin("NineSols.Yukikaco.plugin", "Nine Sols Cheat Menu Made By Yuki.kaco", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
	[StructLayout(LayoutKind.Auto)]
	[CompilerGenerated]
	private struct <PrePrecoess>d__64 : IAsyncStateMachine
	{
		public int <>1__state;

		public AsyncUniTaskVoidMethodBuilder <>t__builder;

		public Plugin <>4__this;

		public string sceneName;

		public TeleportPointData teleportPointData;

		private Awaiter <>u__1;

		private void MoveNext()
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: 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_007d: 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_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: 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_001f: 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_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: 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_0041: Unknown result type (might be due to invalid IL or missing references)
			int num = <>1__state;
			Plugin plugin = <>4__this;
			try
			{
				Awaiter awaiter;
				UniTask val;
				if (num != 0)
				{
					if (num == 1)
					{
						awaiter = <>u__1;
						<>u__1 = default(Awaiter);
						num = (<>1__state = -1);
						goto IL_00d3;
					}
					val = plugin.WaitForSceneLoad(sceneName);
					awaiter = ((UniTask)(ref val)).GetAwaiter();
					if (!((Awaiter)(ref awaiter)).IsCompleted)
					{
						num = (<>1__state = 0);
						<>u__1 = awaiter;
						((AsyncUniTaskVoidMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <PrePrecoess>d__64>(ref awaiter, ref this);
						return;
					}
				}
				else
				{
					awaiter = <>u__1;
					<>u__1 = default(Awaiter);
					num = (<>1__state = -1);
				}
				((Awaiter)(ref awaiter)).GetResult();
				val = plugin.WaitForEnterGame();
				awaiter = ((UniTask)(ref val)).GetAwaiter();
				if (!((Awaiter)(ref awaiter)).IsCompleted)
				{
					num = (<>1__state = 1);
					<>u__1 = awaiter;
					((AsyncUniTaskVoidMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <PrePrecoess>d__64>(ref awaiter, ref this);
					return;
				}
				goto IL_00d3;
				IL_00d3:
				((Awaiter)(ref awaiter)).GetResult();
				SingletonBehaviour<GameCore>.Instance.DiscardUnsavedFlagsAndReset();
				if ((Object)(object)teleportPointData != (Object)null)
				{
					SingletonBehaviour<GameCore>.Instance.TeleportToSavePoint(teleportPointData, false);
				}
				plugin.checkMultiplier();
				plugin.CheckGetAll();
			}
			catch (Exception exception)
			{
				<>1__state = -2;
				((AsyncUniTaskVoidMethodBuilder)(ref <>t__builder)).SetException(exception);
				return;
			}
			<>1__state = -2;
			((AsyncUniTaskVoidMethodBuilder)(ref <>t__builder)).SetResult();
		}

		void IAsyncStateMachine.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			this.MoveNext();
		}

		[DebuggerHidden]
		private void SetStateMachine(IAsyncStateMachine stateMachine)
		{
			((AsyncUniTaskVoidMethodBuilder)(ref <>t__builder)).SetStateMachine(stateMachine);
		}

		void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
		{
			//ILSpy generated this explicit interface implementation from .override directive in SetStateMachine
			this.SetStateMachine(stateMachine);
		}
	}

	[StructLayout(LayoutKind.Auto)]
	[CompilerGenerated]
	private struct <WaitForEnterGame>d__65 : IAsyncStateMachine
	{
		public int <>1__state;

		public AsyncUniTaskMethodBuilder <>t__builder;

		private Awaiter <>u__1;

		private void MoveNext()
		{
			//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_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: 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_0018: 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_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Invalid comparison between Unknown and I4
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			int num = <>1__state;
			try
			{
				Awaiter awaiter;
				if (num != 0)
				{
					if (num != 1)
					{
						goto IL_0070;
					}
					awaiter = <>u__1;
					<>u__1 = default(Awaiter);
					num = (<>1__state = -1);
					goto IL_00d2;
				}
				awaiter = <>u__1;
				<>u__1 = default(Awaiter);
				num = (<>1__state = -1);
				goto IL_0069;
				IL_0070:
				YieldAwaitable val;
				if ((Object)(object)SingletonBehaviour<GameCore>.Instance == (Object)null)
				{
					val = UniTask.Yield();
					awaiter = ((YieldAwaitable)(ref val)).GetAwaiter();
					if (!((Awaiter)(ref awaiter)).IsCompleted)
					{
						num = (<>1__state = 0);
						<>u__1 = awaiter;
						((AsyncUniTaskMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <WaitForEnterGame>d__65>(ref awaiter, ref this);
						return;
					}
					goto IL_0069;
				}
				goto IL_00d9;
				IL_00d2:
				((Awaiter)(ref awaiter)).GetResult();
				goto IL_00d9;
				IL_00d9:
				if ((int)SingletonBehaviour<GameCore>.Instance.currentCoreState != 1)
				{
					val = UniTask.Yield();
					awaiter = ((YieldAwaitable)(ref val)).GetAwaiter();
					if (!((Awaiter)(ref awaiter)).IsCompleted)
					{
						num = (<>1__state = 1);
						<>u__1 = awaiter;
						((AsyncUniTaskMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <WaitForEnterGame>d__65>(ref awaiter, ref this);
						return;
					}
					goto IL_00d2;
				}
				goto end_IL_0007;
				IL_0069:
				((Awaiter)(ref awaiter)).GetResult();
				goto IL_0070;
				end_IL_0007:;
			}
			catch (Exception exception)
			{
				<>1__state = -2;
				((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetException(exception);
				return;
			}
			<>1__state = -2;
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetResult();
		}

		void IAsyncStateMachine.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			this.MoveNext();
		}

		[DebuggerHidden]
		private void SetStateMachine(IAsyncStateMachine stateMachine)
		{
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetStateMachine(stateMachine);
		}

		void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
		{
			//ILSpy generated this explicit interface implementation from .override directive in SetStateMachine
			this.SetStateMachine(stateMachine);
		}
	}

	[StructLayout(LayoutKind.Auto)]
	[CompilerGenerated]
	private struct <WaitForSceneLoad>d__66 : IAsyncStateMachine
	{
		public int <>1__state;

		public AsyncUniTaskMethodBuilder <>t__builder;

		public string sceneName;

		private Awaiter <>u__1;

		private void MoveNext()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: 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_006b: 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_0011: 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_0019: 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_002e: Unknown result type (might be due to invalid IL or missing references)
			int num = <>1__state;
			try
			{
				if (num != 0)
				{
					goto IL_0066;
				}
				Awaiter awaiter = <>u__1;
				<>u__1 = default(Awaiter);
				num = (<>1__state = -1);
				goto IL_005f;
				IL_0066:
				Scene activeScene = SceneManager.GetActiveScene();
				if (((Scene)(ref activeScene)).name != sceneName)
				{
					YieldAwaitable val = UniTask.Yield();
					awaiter = ((YieldAwaitable)(ref val)).GetAwaiter();
					if (!((Awaiter)(ref awaiter)).IsCompleted)
					{
						num = (<>1__state = 0);
						<>u__1 = awaiter;
						((AsyncUniTaskMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <WaitForSceneLoad>d__66>(ref awaiter, ref this);
						return;
					}
					goto IL_005f;
				}
				goto end_IL_0007;
				IL_005f:
				((Awaiter)(ref awaiter)).GetResult();
				goto IL_0066;
				end_IL_0007:;
			}
			catch (Exception exception)
			{
				<>1__state = -2;
				((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetException(exception);
				return;
			}
			<>1__state = -2;
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetResult();
		}

		void IAsyncStateMachine.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			this.MoveNext();
		}

		[DebuggerHidden]
		private void SetStateMachine(IAsyncStateMachine stateMachine)
		{
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetStateMachine(stateMachine);
		}

		void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
		{
			//ILSpy generated this explicit interface implementation from .override directive in SetStateMachine
			this.SetStateMachine(stateMachine);
		}
	}

	[StructLayout(LayoutKind.Auto)]
	[CompilerGenerated]
	private struct <checkMove>d__63 : IAsyncStateMachine
	{
		public int <>1__state;

		public AsyncUniTaskMethodBuilder <>t__builder;

		private Awaiter <>u__1;

		private void MoveNext()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: 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_0011: 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_0019: 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_002d: 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)
			int num = <>1__state;
			try
			{
				if (num != 0)
				{
					goto IL_0066;
				}
				Awaiter awaiter = <>u__1;
				<>u__1 = default(Awaiter);
				num = (<>1__state = -1);
				goto IL_005f;
				IL_0066:
				if ((Object)(object)Player.i == (Object)null || Player.i.moveVec.x == 0f)
				{
					YieldAwaitable val = UniTask.Yield();
					awaiter = ((YieldAwaitable)(ref val)).GetAwaiter();
					if (!((Awaiter)(ref awaiter)).IsCompleted)
					{
						num = (<>1__state = 0);
						<>u__1 = awaiter;
						((AsyncUniTaskMethodBuilder)(ref <>t__builder)).AwaitUnsafeOnCompleted<Awaiter, <checkMove>d__63>(ref awaiter, ref this);
						return;
					}
					goto IL_005f;
				}
				goto end_IL_0007;
				IL_005f:
				((Awaiter)(ref awaiter)).GetResult();
				goto IL_0066;
				end_IL_0007:;
			}
			catch (Exception exception)
			{
				<>1__state = -2;
				((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetException(exception);
				return;
			}
			<>1__state = -2;
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetResult();
		}

		void IAsyncStateMachine.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			this.MoveNext();
		}

		[DebuggerHidden]
		private void SetStateMachine(IAsyncStateMachine stateMachine)
		{
			((AsyncUniTaskMethodBuilder)(ref <>t__builder)).SetStateMachine(stateMachine);
		}

		void IAsyncStateMachine.SetStateMachine(IAsyncStateMachine stateMachine)
		{
			//ILSpy generated this explicit interface implementation from .override directive in SetStateMachine
			this.SetStateMachine(stateMachine);
		}
	}

	private bool isInit;

	private Vector2Int lastScreenSize;

	private GUIStyle titleStyle;

	private GUIStyle toggleStyle;

	private GUIStyle textFieldStyle;

	private GUIStyle buttonStyle;

	private GUIStyle supportTextStyle;

	private float basetitleSize = 24f;

	private float baseToggleSize = 24f;

	private float baseTextFieldSize = 24f;

	private float baseButtonSize = 24f;

	private LocalizationManager localizationManager;

	private ConfigEntry<KeyCode> MenuToggleKey;

	private ConfigEntry<KeyCode> SpeedToggleKey;

	private ConfigEntry<KeyCode> FovToggleKey;

	private ConfigEntry<KeyCode> MouseTeleportKey;

	private ConfigEntry<KeyCode> SkipKey;

	private ConfigEntry<string> Language;

	public ConfigEntry<bool> isEnableConsole;

	private bool showMenu;

	public bool isFov;

	public bool isOneHitKill;

	public bool isInvincible;

	public bool isGetAll;

	public bool isGetAllWithoutActiveSkill;

	public bool isSpeed;

	public bool isFastLearnSkill;

	public bool isAutoHeal;

	public bool isInfiniteChi;

	public bool isInfinitePotion;

	public bool isInfiniteAmmo;

	public bool isBossSpeed;

	public bool isAttackMult;

	public bool isInjeryMult;

	private bool previousIsBossSpeed;

	private bool previousIsAttackMult;

	private bool previousIsInjeryMult;

	public float fov = 68f;

	public float speed = 2f;

	public float bossSpeed = 1f;

	public float attackMult = 1f;

	public float injeryMult = 1f;

	private float previousBossSpeed;

	private float previousAttackMult;

	private float previousInjeryMult;

	private string speedInput = "2";

	private string bossSpeedInput = "1";

	private string attackMultInput = "1";

	private string injeryMultInput = "1";

	private Rect windowRect;

	private Rect supportRect;

	public bool showSupportWindow;

	public string SupportText = "test";

	private bool isShowSupportWindowNoBackGround;

	public static Plugin Instance { get; private set; }

	private void Awake()
	{
		//IL_0185: Unknown result type (might be due to invalid IL or missing references)
		//IL_018a: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
		RCGLifeCycle.DontDestroyForever(((Component)this).gameObject);
		Debug.Log((object)"九日修改器");
		Instance = this;
		MenuToggleKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Menu", "MenuToggleKey", (KeyCode)284, "Open Cheat Menu ShortCut\n開啟選單快捷鍵\n开启选单热键");
		SpeedToggleKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Menu", "SpeedToggleKey", (KeyCode)285, "Timer ShortCut\n加速快捷鍵\n加速热键");
		FovToggleKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Menu", "FOVToggleKey", (KeyCode)286, "FOV ShortCut\nFOV快捷鍵\nFOV热键");
		MouseTeleportKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Menu", "MouseTeleportKey", (KeyCode)283, "Mouse Move Character ShortCut\n滑鼠移動快捷鍵\n滑鼠移动热键");
		SkipKey = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Menu", "SkilKey", (KeyCode)306, "Skip ShortCut\n跳過快捷鍵\n跳過热键");
		isEnableConsole = ((BaseUnityPlugin)this).Config.Bind<bool>("Menu", "isEnableConsole", true, "Is Enable Console? F1 Open Console\n是否開啟控制台 F1開啟控制台\n是否开启控制台 F1开启控制台");
		Language = ((BaseUnityPlugin)this).Config.Bind<string>("Menu", "MenuLanguage", "en-us", "Menu Language\n選單語言\n选单语言\nen-us, zh-tw, zh-cn");
		localizationManager = new LocalizationManager();
		localizationManager.SetLanguage(Language.Value);
		Harmony.CreateAndPatchAll(typeof(Patch), (string)null);
		float num = (float)Screen.width * 0.5f;
		float num2 = (float)Screen.height * 0.92f;
		windowRect = new Rect(((float)Screen.width - num) / 2f, ((float)Screen.height - num2) / 2f, num, num2);
		supportRect = new Rect(((float)Screen.width - num) / 2f, ((float)Screen.height - num2) / 2f, num, num2 / 6f);
	}

	private void Start()
	{
		previousIsBossSpeed = isBossSpeed;
		previousBossSpeed = bossSpeed;
		previousIsAttackMult = isAttackMult;
		previousAttackMult = previousAttackMult;
		previousIsInjeryMult = isInjeryMult;
		previousInjeryMult = injeryMult;
	}

	private async void Kanghui(string SceneName, Vector3 teleportPostion, List<string> flags = null)
	{
		//IL_001e: 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)
		HandleTeleportButtonClick(SceneName, teleportPostion);
		if (flags != null)
		{
			foreach (string flag in flags)
			{
				ModifyFlag(flag, 1);
			}
		}
		await checkMove();
		PlayerAbilityModifyPackApplyAction[] array = Object.FindObjectsOfType<PlayerAbilityModifyPackApplyAction>();
		for (int i = 0; i < array.Length; i++)
		{
			array[i].ExitLevelAndDestroy();
		}
	}

	private async void Jee(string SceneName, Vector3 teleportPostion, List<string> flags = null)
	{
		//IL_001e: 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)
		HandleTeleportButtonClick(SceneName, teleportPostion);
		if (flags != null)
		{
			foreach (string flag in flags)
			{
				ModifyFlag(flag, 1);
			}
		}
		await checkMove();
		if ((Object)(object)Player.i != (Object)null)
		{
			Traverse.Create((object)Player.i).Method("UnlockParryJumpKickAbility", Array.Empty<object>()).GetValue();
		}
	}

	private async void PerformActionsAfterTeleport(string SceneName, Vector3 teleportPostion, List<string> flags = null)
	{
		//IL_001e: 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)
		HandleTeleportButtonClick(SceneName, teleportPostion);
		if (flags != null)
		{
			foreach (string flag in flags)
			{
				ModifyFlag(flag, 1);
			}
		}
		await checkMove();
		KillAllEnemiesExcept((MonsterLevel)2);
	}

	[AsyncStateMachine(typeof(<checkMove>d__63))]
	private UniTask checkMove()
	{
		//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_0029: Unknown result type (might be due to invalid IL or missing references)
		<checkMove>d__63 <checkMove>d__ = default(<checkMove>d__63);
		<checkMove>d__.<>t__builder = AsyncUniTaskMethodBuilder.Create();
		<checkMove>d__.<>1__state = -1;
		((AsyncUniTaskMethodBuilder)(ref <checkMove>d__.<>t__builder)).Start<<checkMove>d__63>(ref <checkMove>d__);
		return ((AsyncUniTaskMethodBuilder)(ref <checkMove>d__.<>t__builder)).Task;
	}

	[AsyncStateMachine(typeof(<PrePrecoess>d__64))]
	private UniTaskVoid PrePrecoess(string sceneName, TeleportPointData teleportPointData)
	{
		//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_0041: Unknown result type (might be due to invalid IL or missing references)
		<PrePrecoess>d__64 <PrePrecoess>d__ = default(<PrePrecoess>d__64);
		<PrePrecoess>d__.<>t__builder = AsyncUniTaskVoidMethodBuilder.Create();
		<PrePrecoess>d__.<>4__this = this;
		<PrePrecoess>d__.sceneName = sceneName;
		<PrePrecoess>d__.teleportPointData = teleportPointData;
		<PrePrecoess>d__.<>1__state = -1;
		((AsyncUniTaskVoidMethodBuilder)(ref <PrePrecoess>d__.<>t__builder)).Start<<PrePrecoess>d__64>(ref <PrePrecoess>d__);
		return ((AsyncUniTaskVoidMethodBuilder)(ref <PrePrecoess>d__.<>t__builder)).Task;
	}

	[AsyncStateMachine(typeof(<WaitForEnterGame>d__65))]
	private UniTask WaitForEnterGame()
	{
		//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_0029: Unknown result type (might be due to invalid IL or missing references)
		<WaitForEnterGame>d__65 <WaitForEnterGame>d__ = default(<WaitForEnterGame>d__65);
		<WaitForEnterGame>d__.<>t__builder = AsyncUniTaskMethodBuilder.Create();
		<WaitForEnterGame>d__.<>1__state = -1;
		((AsyncUniTaskMethodBuilder)(ref <WaitForEnterGame>d__.<>t__builder)).Start<<WaitForEnterGame>d__65>(ref <WaitForEnterGame>d__);
		return ((AsyncUniTaskMethodBuilder)(ref <WaitForEnterGame>d__.<>t__builder)).Task;
	}

	[AsyncStateMachine(typeof(<WaitForSceneLoad>d__66))]
	private UniTask WaitForSceneLoad(string sceneName)
	{
		//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_0031: Unknown result type (might be due to invalid IL or missing references)
		<WaitForSceneLoad>d__66 <WaitForSceneLoad>d__ = default(<WaitForSceneLoad>d__66);
		<WaitForSceneLoad>d__.<>t__builder = AsyncUniTaskMethodBuilder.Create();
		<WaitForSceneLoad>d__.sceneName = sceneName;
		<WaitForSceneLoad>d__.<>1__state = -1;
		((AsyncUniTaskMethodBuilder)(ref <WaitForSceneLoad>d__.<>t__builder)).Start<<WaitForSceneLoad>d__66>(ref <WaitForSceneLoad>d__);
		return ((AsyncUniTaskMethodBuilder)(ref <WaitForSceneLoad>d__.<>t__builder)).Task;
	}

	private void OnScreenSizeChanged(float width, float height)
	{
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Unknown result type (might be due to invalid IL or missing references)
		//IL_0060: 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)
		width *= 0.5f;
		height *= 0.92f;
		windowRect = new Rect(((float)Screen.width - width) / 2f, ((float)Screen.height - height) / 2f, width, height);
		supportRect = new Rect(((float)Screen.width - width) / 2f, ((float)Screen.height - height) / 2f, width, height / 6f);
		Debug.Log((object)$"Screen size changed to: {width}x{height}");
		if (isInit)
		{
			UpdateGUIStyle();
		}
	}

	private void UpdateGUIStyle()
	{
		//IL_007b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0085: Expected O, but got Unknown
		//IL_00af: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: Expected O, but got Unknown
		float num = Mathf.Min((float)Screen.width / 1920f, (float)Screen.height / 1080f);
		int num2 = Mathf.RoundToInt(baseToggleSize * num);
		int num3 = Mathf.RoundToInt(baseButtonSize * num);
		int fontSize = Mathf.RoundToInt(baseTextFieldSize * num);
		int fontSize2 = Mathf.RoundToInt(baseTextFieldSize * num * 2f);
		toggleStyle.fontSize = num2;
		toggleStyle.padding = new RectOffset(num2 * 2, num2 * 2, num2 / 2, num2 / 2);
		textFieldStyle.fontSize = fontSize;
		buttonStyle.fontSize = num3;
		buttonStyle.padding = new RectOffset(num3 / 3, num3 / 3, num3 / 3, num3 / 3);
		titleStyle.fontSize = Mathf.RoundToInt(basetitleSize * num);
		supportTextStyle.fontSize = fontSize2;
	}

	private void OnDestory()
	{
		Harmony.UnpatchAll();
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private void CheckScreenSize()
	{
		if (Screen.width != ((Vector2Int)(ref lastScreenSize)).x || Screen.height != ((Vector2Int)(ref lastScreenSize)).y)
		{
			((Vector2Int)(ref lastScreenSize)).x = Screen.width;
			((Vector2Int)(ref lastScreenSize)).y = Screen.height;
			OnScreenSizeChanged(((Vector2Int)(ref lastScreenSize)).x, ((Vector2Int)(ref lastScreenSize)).y);
		}
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private void ProcessShortCut()
	{
		//IL_0006: 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_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_0069: Unknown result type (might be due to invalid IL or missing references)
		//IL_0085: Unknown result type (might be due to invalid IL or missing references)
		if (Input.GetKeyDown(MenuToggleKey.Value))
		{
			showMenu = !showMenu;
		}
		if (Input.GetKeyDown(SpeedToggleKey.Value))
		{
			isSpeed = !isSpeed;
		}
		if (Input.GetKeyDown(FovToggleKey.Value))
		{
			isFov = !isFov;
		}
		if (Input.GetKeyDown(SkipKey.Value))
		{
			SingletonBehaviour<SkippableManager>.Instance.TrySkip();
		}
		if (Input.GetKey(MouseTeleportKey.Value))
		{
			CheatManager instance = SingletonBehaviour<CheatManager>.Instance;
			if ((Object)(object)instance != (Object)null && (Object)(object)Player.i != (Object)null)
			{
				Traverse.Create((object)instance).Method("DropPlayerAtMousePosition", Array.Empty<object>()).GetValue();
			}
		}
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private void TickLogic()
	{
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		if (showMenu || Input.GetKey(MouseTeleportKey.Value))
		{
			Cursor.visible = true;
			Cursor.lockState = (CursorLockMode)0;
		}
		if (isFov)
		{
			float num = Input.GetAxis("Mouse ScrollWheel") * 30f;
			float num2 = fov - num;
			if (num2 > 0f && num2 < 180f)
			{
				fov = num2;
			}
		}
		TimePauseManager.GlobalSimulationSpeed = ((isSpeed && speed > 0f) ? speed : 1f);
		if (isInvincible)
		{
			if ((Object)(object)Player.i != (Object)null && (Object)(object)Player.i.GetHealth != (Object)null)
			{
				Player.i.GetHealth.isInvincibleVote.Vote((Object)(object)((Component)Player.i).gameObject, true);
			}
		}
		else if ((Object)(object)Player.i != (Object)null && (Object)(object)Player.i.GetHealth != (Object)null)
		{
			Player.i.GetHealth.isInvincibleVote.Vote((Object)(object)((Component)Player.i).gameObject, false);
		}
		if ((Object)(object)Player.i != (Object)null)
		{
			if (isAutoHeal && (Object)(object)Player.i.health != (Object)null)
			{
				((Health)Player.i.health).GainFull();
			}
			if (isInfiniteChi && (Object)(object)Player.i.chiContainer != (Object)null)
			{
				Player.i.chiContainer.GainFull();
			}
			if (isInfinitePotion && (Object)(object)Player.i.potion != (Object)null)
			{
				Player.i.potion.GainFull();
			}
			if (isInfiniteAmmo && (Object)(object)Player.i.ammo != (Object)null)
			{
				Player.i.ammo.GainFull();
			}
		}
		if (isBossSpeed != previousIsBossSpeed || bossSpeed != previousBossSpeed)
		{
			modifyBossSpeed(bossSpeed);
		}
		previousIsBossSpeed = isBossSpeed;
		previousBossSpeed = bossSpeed;
		if (isAttackMult != previousIsAttackMult || attackMult != previousInjeryMult)
		{
			checkMultiplier();
		}
		previousIsAttackMult = isAttackMult;
		previousAttackMult = attackMult;
		if (isInjeryMult != previousIsInjeryMult || injeryMult != previousInjeryMult)
		{
			checkMultiplier();
		}
		previousIsInjeryMult = isInjeryMult;
		previousInjeryMult = injeryMult;
	}

	private void checkMultiplier()
	{
		if (isAttackMult)
		{
			modifyStat("0_PlayerAttackBaseDamageRatio 主角攻擊的基礎倍率", attackMult);
		}
		else
		{
			modifyStat("0_PlayerAttackBaseDamageRatio 主角攻擊的基礎倍率", 1f);
		}
		if (isInjeryMult)
		{
			modifyStat("1_PlayerTakeDamageRatio 主角受傷倍率", injeryMult);
		}
		else
		{
			modifyStat("1_PlayerTakeDamageRatio 主角受傷倍率", 1f);
		}
	}

	private void modifyStat(string name, float value)
	{
		if (!((Object)(object)SingletonBehaviour<SaveManager>.Instance == (Object)null) && !((Object)(object)SingletonBehaviour<SaveManager>.Instance.allStatData == (Object)null))
		{
			SingletonBehaviour<SaveManager>.Instance.allStatData.GetStat(name).Stat.BaseValue = value;
		}
	}

	public void modifyBossSpeed(float speed)
	{
		//IL_001c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Invalid comparison between Unknown and I4
		//IL_002a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0030: Invalid comparison between Unknown and I4
		MonsterBase[] array = Object.FindObjectsOfType<MonsterBase>();
		foreach (MonsterBase val in array)
		{
			if (isBossSpeed)
			{
				if ((int)val.monsterStat.monsterLevel == 3 || (int)val.monsterStat.monsterLevel == 2)
				{
					((Actor)val).animator.speed = speed;
				}
			}
			else
			{
				((Actor)val).animator.speed = 1f;
			}
		}
	}

	private void KillAllEnemies()
	{
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Unknown result type (might be due to invalid IL or missing references)
		foreach (MonsterLevel value in Enum.GetValues(typeof(MonsterLevel)))
		{
			KillAllEnemies(value);
		}
	}

	private void KillAllEnemiesExcept(MonsterLevel killType)
	{
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_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_0028: Unknown result type (might be due to invalid IL or missing references)
		foreach (MonsterLevel value in Enum.GetValues(typeof(MonsterLevel)))
		{
			if (killType != value)
			{
				KillAllEnemies(value);
			}
		}
	}

	private void KillAllEnemies(MonsterLevel killType)
	{
		//IL_0047: 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)
		MonsterBase[] array = Object.FindObjectsOfType<MonsterBase>();
		foreach (MonsterBase val in array)
		{
			if ((Object)(object)val != (Object)null && val.IsAlive() && ((Behaviour)val).isActiveAndEnabled && ((Component)val).gameObject.activeInHierarchy && ((Component)val).gameObject.activeSelf && val.monsterStat.monsterLevel == killType && (Object)(object)val != (Object)null)
			{
				val.DieSelfDesctruction();
			}
		}
	}

	private void Update()
	{
		CheckScreenSize();
		ProcessShortCut();
		TickLogic();
	}

	private void PrintFlag(string key)
	{
		SingletonBehaviour<SaveManager>.Instance.allFlags.FlagDict.TryGetValue(key, out var value);
		((ScriptableDataBool)((value is ScriptableDataBool) ? value : null)).CurrentValue = true;
	}

	private void FullLight()
	{
		GameObject val = GameObject.Find("SceneCamera/AmplifyLightingSystem/FxCamera");
		if ((Object)(object)val != (Object)null)
		{
			if (val.activeSelf)
			{
				val.SetActive(false);
			}
			else
			{
				val.SetActive(true);
			}
			Debug.Log((object)"FxCamera GameObject deactivated.");
		}
		else
		{
			Debug.LogError((object)"FxCamera GameObject not found.");
		}
	}

	private void OnGUI()
	{
		//IL_0016: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Expected O, but got Unknown
		//IL_002b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: Expected O, but got Unknown
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Expected O, but got Unknown
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Expected O, but got Unknown
		//IL_006a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0074: Expected O, but got Unknown
		//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Expected O, but got Unknown
		//IL_0123: Unknown result type (might be due to invalid IL or missing references)
		//IL_012d: Expected O, but got Unknown
		//IL_0168: Unknown result type (might be due to invalid IL or missing references)
		//IL_0174: Unknown result type (might be due to invalid IL or missing references)
		//IL_0194: Expected O, but got Unknown
		//IL_018f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0194: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f8: Expected O, but got Unknown
		//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f8: 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_01bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d0: Expected O, but got Unknown
		//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
		if (!isInit)
		{
			titleStyle = new GUIStyle(GUI.skin.window);
			toggleStyle = new GUIStyle(GUI.skin.toggle);
			textFieldStyle = new GUIStyle(GUI.skin.textField);
			buttonStyle = new GUIStyle(GUI.skin.button);
			supportTextStyle = new GUIStyle(GUI.skin.label);
			float num = Mathf.Min((float)Screen.width / 1920f, (float)Screen.height / 1080f);
			int num2 = Mathf.RoundToInt(baseToggleSize * num);
			int num3 = Mathf.RoundToInt(baseButtonSize * num);
			int fontSize = Mathf.RoundToInt(baseTextFieldSize * num);
			int fontSize2 = Mathf.RoundToInt(baseTextFieldSize * num * 2f);
			toggleStyle.fontSize = num2;
			toggleStyle.padding = new RectOffset(num2 * 2, num2 * 2, num2 / 2, num2 / 2);
			textFieldStyle.fontSize = fontSize;
			buttonStyle.fontSize = num3;
			buttonStyle.padding = new RectOffset(num3 / 3, num3 / 3, num3 / 3, num3 / 3);
			titleStyle.fontSize = Mathf.RoundToInt(basetitleSize * num);
			supportTextStyle.fontSize = fontSize2;
			isInit = true;
		}
		if (showMenu)
		{
			windowRect = GUI.Window(156789, windowRect, new WindowFunction(DoMyWindow), localizationManager.GetString("title"), titleStyle);
		}
		if (showSupportWindow)
		{
			if (isShowSupportWindowNoBackGround)
			{
				supportRect = GUI.Window(1354564, supportRect, new WindowFunction(DrawWindow), "", GUIStyle.none);
			}
			else
			{
				supportRect = GUI.Window(1299856, supportRect, new WindowFunction(DrawWindow), "Predict to Attack");
			}
		}
	}

	private void DrawWindow(int windowID)
	{
		GUILayout.Label(SupportText, supportTextStyle, Array.Empty<GUILayoutOption>());
		GUI.DragWindow();
	}

	public void DoMyWindow(int windowID)
	{
		//IL_002c: 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_04c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0501: Unknown result type (might be due to invalid IL or missing references)
		//IL_0542: Unknown result type (might be due to invalid IL or missing references)
		//IL_059e: Unknown result type (might be due to invalid IL or missing references)
		//IL_05df: Unknown result type (might be due to invalid IL or missing references)
		//IL_0620: Unknown result type (might be due to invalid IL or missing references)
		//IL_0662: 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_06f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0734: Unknown result type (might be due to invalid IL or missing references)
		//IL_0775: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_082e: Unknown result type (might be due to invalid IL or missing references)
		//IL_089c: 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_0957: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a29: 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_0aea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bae: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.BeginArea(new Rect(10f, 20f, ((Rect)(ref windowRect)).width - 20f, ((Rect)(ref windowRect)).height - 30f));
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		isInvincible = GUILayout.Toggle(isInvincible, localizationManager.GetString("Invincible"), toggleStyle, Array.Empty<GUILayoutOption>());
		isOneHitKill = GUILayout.Toggle(isOneHitKill, localizationManager.GetString("OHK"), toggleStyle, Array.Empty<GUILayoutOption>());
		isFastLearnSkill = GUILayout.Toggle(isFastLearnSkill, localizationManager.GetString("FastLearnSkill"), toggleStyle, Array.Empty<GUILayoutOption>());
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		isAutoHeal = GUILayout.Toggle(isAutoHeal, localizationManager.GetString("AutoHeal"), toggleStyle, Array.Empty<GUILayoutOption>());
		isInfiniteChi = GUILayout.Toggle(isInfiniteChi, localizationManager.GetString("InfiniteChi"), toggleStyle, Array.Empty<GUILayoutOption>());
		isInfinitePotion = GUILayout.Toggle(isInfinitePotion, localizationManager.GetString("InfinitePotion"), toggleStyle, Array.Empty<GUILayoutOption>());
		isInfiniteAmmo = GUILayout.Toggle(isInfiniteAmmo, localizationManager.GetString("InfiniteAmmo"), toggleStyle, Array.Empty<GUILayoutOption>());
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		isFov = GUILayout.Toggle(isFov, localizationManager.GetString("FOV"), toggleStyle, Array.Empty<GUILayoutOption>());
		fov = GUILayout.HorizontalSlider(fov, 1f, 180f, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) });
		GUILayout.EndVertical();
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		isSpeed = GUILayout.Toggle(isSpeed, localizationManager.GetString("Timer"), toggleStyle, Array.Empty<GUILayoutOption>());
		speedInput = GUILayout.TextField(speedInput, textFieldStyle, Array.Empty<GUILayoutOption>());
		float.TryParse(speedInput, out speed);
		GUILayout.EndVertical();
		GUILayout.EndHorizontal();
		if (GUILayout.Button(localizationManager.GetString("FullBright"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			FullLight();
		}
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("English"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			Language.Value = "en-us";
			localizationManager.SetLanguage(Language.Value);
		}
		if (GUILayout.Button(localizationManager.GetString("繁體中文"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			Language.Value = "zh-tw";
			localizationManager.SetLanguage(Language.Value);
		}
		if (GUILayout.Button(localizationManager.GetString("简体中文"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			Language.Value = "zh-cn";
			localizationManager.SetLanguage(Language.Value);
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("GetAllMax"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			GetAllMax();
		}
		if (GUILayout.Button(localizationManager.GetString("GetAllMaxWithoutActiveSkill"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			GetAllMaxWithoutActiveSkill();
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		isGetAll = GUILayout.Toggle(isGetAll, localizationManager.GetString("AutoGetAllMax"), toggleStyle, Array.Empty<GUILayoutOption>());
		isGetAllWithoutActiveSkill = GUILayout.Toggle(isGetAllWithoutActiveSkill, localizationManager.GetString("AutoGetAllMaxWithoutActiveSkill"), toggleStyle, Array.Empty<GUILayoutOption>());
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("A2_S5_BossHorseman_Final"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A2_S5_BossHorseman_Final", new Vector3(-4790f, -2288f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A3_S5_BossGouMang_Final"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A3_S5_BossGouMang_Final", new Vector3(-4430f, -2288f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A4_S5_DaoTrapHouse_Final"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A4_S5_DaoTrapHouse_Final", new Vector3(1833f, -3744f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A5_S5_JieChuanHall"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A5_S5_JieChuanHall", new Vector3(-4784f, -2288f, 0f));
			ModifyFlag("c4a79371b6ba3ce47bbdda684236f7b5ItemData", 1);
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("A7_S5_Boss_ButterFly"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A7_S5_Boss_ButterFly", new Vector3(-2640f, -1104f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A9_S5_風氏"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A9_S5_風氏", new Vector3(-2370f, -1264f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A10_S5_Boss_Jee"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			Jee("A10_S5_Boss_Jee", new Vector3(-48f, -64f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A11_S0_Boss_YiGung_回蓬萊"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A11_S0_Boss_YiGung_回蓬萊", new Vector3(-2686f, -1104f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("A11_S0_Boss_YiGung"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A11_S0_Boss_YiGung", new Vector3(-2686f, -1104f, 0f));
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("赤虎-百長"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A1_S2_ConnectionToElevator_Final", new Vector3(1820f, -4432f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("赤虎-魁岩"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A6_S1_AbandonMine_Remake_4wei", new Vector3(5151f, -7488f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("赤虎-炎刃"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A2_S6_LogisticCenter_Final", new Vector3(5030f, -6768f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("赤虎-獵官"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			PerformActionsAfterTeleport("A0_S9_AltarReturned", new Vector3(-95f, -64f, 0f));
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("步衛-角端"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			List<string> flags = new List<string> { "574d3e20-47c5-4841-a21c-121d7806ed6e_c3c3f30fb046d9743aea48eb8f4833bcScriptableDataBool", "ff553e6df36c89644ae08124aaa2913eScriptableDataBool", "5d67c34b-0553-482f-8e4d-dd4c02d0c359_c3c3f30fb046d9743aea48eb8f4833bcScriptableDataBool" };
			PerformActionsAfterTeleport("A2_S2_ReactorRight_Final", new Vector3(-4690f, -1968f, 0f), flags);
			if ((Object)(object)Player.i != (Object)null)
			{
				Traverse.Create((object)Player.i).Method("SkipFooMiniGame", Array.Empty<object>()).GetValue();
			}
		}
		if (GUILayout.Button(localizationManager.GetString("步衛-武槍"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			PerformActionsAfterTeleport("A5_S4_CastleMid_Remake_5wei", new Vector3(4430f, -4224f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("影者-水鬼"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A3_S2_GreenHouse_Final", new Vector3(-4530f, -1216f, 0f));
			if ((Object)(object)Player.i != (Object)null)
			{
				Traverse.Create((object)Player.i).Method("UnlockChargedAttack", Array.Empty<object>()).GetValue();
			}
			ModifyFlag("a4657cbd-5219-45fb-9401-3780b41e8cbe_efdc8e91e5eb76347b87b832ac07330cScriptableDataBool", 1);
		}
		if (GUILayout.Button(localizationManager.GetString("影者-山鬼"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A1_S3_InnerHumanDisposal_Final", new Vector3(-5590f, -608f, 0f));
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("法使-鐵焰"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A4_S2_RouteToControlRoom_Final", new Vector3(-3950f, -3040f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("法使-幻仙"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A7_S2_SectionF_MiniBossFight", new Vector3(-4004f, -1888f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("機兵-天守"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A9_S1_Remake_4wei", new Vector3(-3330f, 352f, 0f));
			ModifyFlag("a2dba9e5-61cf-453a-8981-efb081fb0b11_4256ef2ec22f942dc9f70607bb00391fScriptableDataBool", 1);
		}
		if (GUILayout.Button(localizationManager.GetString("魂守-刺行"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A10_S4_HistoryTomb_Left", new Vector3(-690f, -368f, 0f));
			ModifyFlag("44bc69bd40a7f6d45a2b8784cc8ebbd1ScriptableDataBool", 1);
			ModifyFlag("118f725174ccdf5498af6386d4987482ScriptableDataBool", 1);
			ModifyFlag("d7a444315eab0b74fb0ed1e8144edf73ScriptableDataBool", 1);
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("侍衛-隱月"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A6_S3_Tutorial_And_SecretBoss_Remake", new Vector3(5457f, -6288f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("康回"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			Kanghui("A5_S2_Jail_Remake_Final", new Vector3(-464f, -4624f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("刑天"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A4_S3_ControlRoom_Final", new Vector3(-4155f, -5776f, 0f));
		}
		if (GUILayout.Button(localizationManager.GetString("無頭刑天"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			HandleTeleportButtonClick("A11_SG1_ShinTenRoom", new Vector3(-5827f, -464f, 0f));
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(localizationManager.GetString("SupportWindow"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			showSupportWindow = !showSupportWindow;
		}
		if (GUILayout.Button(localizationManager.GetString("ShowSupportWindowNoBackGround"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			isShowSupportWindowNoBackGround = !isShowSupportWindowNoBackGround;
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		isBossSpeed = GUILayout.Toggle(isBossSpeed, localizationManager.GetString("BossSpeed"), toggleStyle, Array.Empty<GUILayoutOption>());
		bossSpeedInput = GUILayout.TextField(bossSpeedInput, textFieldStyle, Array.Empty<GUILayoutOption>());
		float.TryParse(bossSpeedInput, out bossSpeed);
		GUILayout.EndVertical();
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		isAttackMult = GUILayout.Toggle(isAttackMult, localizationManager.GetString("Attack_Multiplier"), toggleStyle, Array.Empty<GUILayoutOption>());
		attackMultInput = GUILayout.TextField(attackMultInput, textFieldStyle, Array.Empty<GUILayoutOption>());
		float.TryParse(attackMultInput, out attackMult);
		GUILayout.EndVertical();
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		isInjeryMult = GUILayout.Toggle(isInjeryMult, localizationManager.GetString("Injury_Multiplier"), toggleStyle, Array.Empty<GUILayoutOption>());
		injeryMultInput = GUILayout.TextField(injeryMultInput, textFieldStyle, Array.Empty<GUILayoutOption>());
		float.TryParse(injeryMultInput, out injeryMult);
		GUILayout.EndVertical();
		GUILayout.EndHorizontal();
		if (GUILayout.Button(localizationManager.GetString("Skip"), buttonStyle, Array.Empty<GUILayoutOption>()))
		{
			SingletonBehaviour<SkippableManager>.Instance.TrySkip();
		}
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		GUILayout.EndHorizontal();
		GUILayout.EndArea();
		GUI.DragWindow();
	}

	private void GetAllMax()
	{
		((BaseUnityPlugin)this).Logger.LogInfo((object)"GetAllMax");
		SetAllMaxFlag();
		SkillTreeUI val = Object.FindObjectsOfType<SkillTreeUI>(true)[0];
		if ((Object)(object)val != (Object)null)
		{
			SkillNodeUIControlButton[] allSkillNodes = val.allSkillNodes;
			foreach (SkillNodeUIControlButton obj in allSkillNodes)
			{
				obj.pluginCore.SkillAcquired();
				((UIControlButton)obj).UpdateView();
				obj.pluginCore.UnlockChildrenCheck();
			}
		}
		Player i2 = Player.i;
		if ((Object)(object)i2 != (Object)null)
		{
			Traverse.Create((object)i2).Method("UnlockAll", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2).Method("SkipFooMiniGame", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2).Method("AddSkillPoint", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2).Method("AddMoney", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2).Method("GetAllJades", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2).Method("GetAllJadeSlots", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i2.mainAbilities.PlayerMaxJadePowerStat.Stat).Field("BaseValue").SetValue((object)500f);
			Traverse.Create((object)i2.potion.potionMaxCountData.Stat).Field("BaseValue").SetValue((object)8);
			Player.i.RestoreEverything();
		}
		NotAtSavePoint();
	}

	private void NotAtSavePoint()
	{
		GameObject val = GameObject.Find("GameCore(Clone)/RCG LifeCycle/UIManager/GameplayUICamera/UI-Canvas/[Tab] MenuTab/CursorProvider/Menu Vertical Layout/Panels/[Jade 玉] Multiple Collection Select Panel/[Condition] 在存檔點");
		GameObject val2 = GameObject.Find("GameCore(Clone)/RCG LifeCycle/UIManager/GameplayUICamera/UI-Canvas/[Tab] MenuTab/CursorProvider/Menu Vertical Layout/Panels/[經絡]SkillTreeUI Manager/[Condition] 不在存檔點不能點技能");
		if ((Object)(object)val != (Object)null)
		{
			val.SetActive(false);
		}
		if ((Object)(object)val2 != (Object)null)
		{
			val2.SetActive(false);
		}
	}

	private void GetAllMaxWithoutActiveSkill()
	{
		((BaseUnityPlugin)this).Logger.LogInfo((object)"GetAllMaxWithoutActiveSkill");
		SetAllMaxFlag();
		Player i = Player.i;
		if ((Object)(object)i != (Object)null)
		{
			Traverse.Create((object)i).Method("UnlockAll", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i).Method("SkipFooMiniGame", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i).Method("AddSkillPoint", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i).Method("AddMoney", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i).Method("GetAllJades", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i).Method("GetAllJadeSlots", Array.Empty<object>()).GetValue();
			Traverse.Create((object)i.mainAbilities.PlayerMaxJadePowerStat.Stat).Field("BaseValue").SetValue((object)500f);
			Traverse.Create((object)i.potion.potionMaxCountData.Stat).Field("BaseValue").SetValue((object)8);
			Player.i.RestoreEverything();
		}
		NotAtSavePoint();
	}

	private void SetAllMaxFlag()
	{
		ModifyFlag("d1e010f02b84fb14fa39a2b44f99a4beItemData", 1);
		ModifyFlag("a68fe303d0077264aa66218d3900f0edItemData", 1);
		ModifyFlag("b7a97935c391a324b803dc1fa542b769ItemData", 1);
		ModifyFlag("2efd376b4493d40fca29f9e3d49669e9PlayerWeaponData", 1);
		ModifyFlag("7837bd6bb550641d8a9f30492603c5eePlayerWeaponData", 1);
		ModifyFlag("2f7009a00edd57c4fa4332ffcd15396aPlayerWeaponData", 1);
		ModifyFlag("9dfa4667af28b6a4da8c443c9814e40dPlayerWeaponData", 1);
		ModifyFlag("ef8f7eb3bcd7b444f80d5da539f3b133PlayerWeaponData", 1);
		ModifyFlag("b4b36f48e6a6ec849a613f2fdeda1a2dPlayerWeaponData", 1);
		ModifyFlag("4b323612d5dc8bd49b3fd4508d7b485bPlayerWeaponData", 1);
		ModifyFlag("3949bc0edba197d459f5d2d7f15c72e0PlayerWeaponData", 1);
		ModifyFlag("11df21b39de54f9479514d7135be8d57PlayerWeaponData", 1);
		ModifyFlag("a9402e3a9e1e04f4488265f1c6d42641PlayerWeaponData", 1);
		ModifyFlag("eb5ef12f4ef9e46eeb09809070d21db4PlayerAbilityData", 1);
		ModifyFlag("4f3107713e9dd43fc9968aa6579207c9PlayerAbilityData", 1);
		ModifyFlag("072576f6cb93e4921b287b4c50140e22PlayerAbilityData", 1);
		ModifyFlag("4e9b068d7b812a84b9f1b52efee467acPlayerAbilityData", 1);
		ModifyFlag("b11ba30bd3a72eb49ae3d1746fb686b7PlayerAbilityData", 1);
		ModifyFlag("d0a9876111d725d4298833323bb082d0PlayerAbilityData", 1);
		ModifyFlag("1b8f6278e3ead824e8352349a8f7cb6dPlayerAbilityData", 1);
		ModifyFlag("aa396485060a82d4db9ab2a1fb02c429PlayerAbilityData", 1);
		ModifyFlag("a2f84651129789d468ad8fde13a54c4fPlayerAbilityData", 1);
		ModifyFlag("3c1022c896f9ca44e9c588b76797e3d0PlayerAbilityData", 1);
		ModifyFlag("aae70b5ca7663504eb9967182234dc6bPlayerAbilityData", 1);
		ModifyFlag("c3e9631e6805c704f8c3fb1d1d60d78fPlayerAbilityData", 1);
		ModifyFlag("960072fcea97cb8438297365d3db963cPlayerAbilityData", 1);
		ModifyFlag("cb11b23d6a0659f418937331d46de6fcPlayerAbilityData", 1);
		ModifyFlag("0c1ddf20ca0b26447895b50183aebae9PlayerAbilityData", 1);
		ModifyFlag("89f506003825f404eac747bbb19560ccPlayerAbilityData", 1);
		ModifyFlag("075eabd7421b58e43af25cc1c57e79e3PlayerAbilityData", 1);
		ModifyFlag("cf5080950d381d843b000c91175434bfPlayerAbilityData", 1);
		ModifyFlag("05b87ad6d7c226245b6e917ec21d3416PlayerAbilityData", 1);
	}

	private void ModifyFlag(string key, int value)
	{
		GameFlagBase value2 = null;
		if (key == null || !SingletonBehaviour<SaveManager>.Instance.allFlags.flagDict.TryGetValue(key, out value2))
		{
			return;
		}
		bool flag = Convert.ToBoolean(value);
		switch (((object)value2).GetType().Name)
		{
		case "ItemData":
		{
			ItemData val4 = (ItemData)(object)((value2 is ItemData) ? value2 : null);
			if (!((Object)(object)val4 == (Object)null) && flag)
			{
				((GameFlagDescriptable)val4).PlayerPicked();
			}
			break;
		}
		case "PlayerWeaponData":
		{
			PlayerWeaponData val3 = (PlayerWeaponData)(object)((value2 is PlayerWeaponData) ? value2 : null);
			if (!((Object)(object)val3 == (Object)null) && flag)
			{
				((GameFlagDescriptable)val3).PlayerPicked();
			}
			break;
		}
		case "PlayerAbilityData":
		{
			PlayerAbilityData val2 = (PlayerAbilityData)(object)((value2 is PlayerAbilityData) ? value2 : null);
			if (!((Object)(object)val2 == (Object)null) && flag)
			{
				((GameFlagDescriptable)val2).PlayerPicked();
			}
			break;
		}
		case "SkillNodeData":
			if (!((Object)(object)((value2 is SkillNodeData) ? value2 : null) == (Object)null))
			{
			}
			break;
		case "ScriptableDataBool":
		{
			ScriptableDataBool val = (ScriptableDataBool)(object)((value2 is ScriptableDataBool) ? value2 : null);
			((BaseUnityPlugin)this).Logger.LogInfo((object)val.CurrentValue);
			if (!((Object)(object)val == (Object)null))
			{
				if (flag)
				{
					val.CurrentValue = true;
				}
				else
				{
					val.CurrentValue = false;
				}
			}
			break;
		}
		}
	}

	private void PreocessGotoScene(string SceneName, TeleportPointData teleportPointData = null)
	{
		//IL_0065: Unknown result type (might be due to invalid IL or missing references)
		//IL_006b: Invalid comparison between Unknown and I4
		//IL_001d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: 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_004a: 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)
		if ((Object)(object)Player.i == (Object)null)
		{
			if ((Object)(object)SingletonBehaviour<StartMenuLogic>.Instance != (Object)null)
			{
				Scene activeScene = SceneManager.GetActiveScene();
				if (((Scene)(ref activeScene)).name == "TitleScreenMenu")
				{
					SingletonBehaviour<StartMenuLogic>.Instance.StartGame(SceneName);
					UniTaskVoid val = PrePrecoess(SceneName, teleportPointData);
					((UniTaskVoid)(ref val)).Forget();
				}
			}
		}
		else if ((Object)(object)SingletonBehaviour<GameCore>.Instance != (Object)null && (int)SingletonBehaviour<GameCore>.Instance.currentCoreState == 1)
		{
			if ((Object)(object)teleportPointData == (Object)null)
			{
				SingletonBehaviour<GameCore>.Instance.GoToScene(SceneName);
			}
			else
			{
				SingletonBehaviour<GameCore>.Instance.TeleportToSavePoint(teleportPointData, false);
			}
			SingletonBehaviour<GameCore>.Instance.DiscardUnsavedFlagsAndReset();
			checkMultiplier();
			CheckGetAll();
		}
	}

	private void CheckGetAll()
	{
		if (isGetAll)
		{
			GetAllMax();
		}
		else if (isGetAllWithoutActiveSkill)
		{
			GetAllMaxWithoutActiveSkill();
		}
	}

	private void HandleTeleportButtonClick(string sceneName, Vector3 teleportPosition)
	{
		//IL_0002: Unknown result type (might be due to invalid IL or missing references)
		TeleportPointData teleportPointData = CreateTeleportPointData(sceneName, teleportPosition);
		PreocessGotoScene(sceneName, teleportPointData);
	}

	private TeleportPointData CreateTeleportPointData(string sceneName, Vector3 position)
	{
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		TeleportPointData obj = ScriptableObject.CreateInstance<TeleportPointData>();
		obj.sceneName = sceneName;
		obj.TeleportPosition = position;
		return obj;
	}
}