Decompiled source of DOPAMIN Therapy v1.0.1

ClassLibrary7.dll

Decompiled 3 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ClassLibrary7")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ClassLibrary7")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4ee0ce42-511a-4b37-8cec-421415119138")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Foddy.UltimateChaosOS;

[BepInPlugin("com.user.goi.ultimatechaos", "\ud83d\udea8 GOI: BENNOS ULTRAPLEX DESKTOP ENVIRONMENT \ud83d\udea8", "11.0.0")]
[BepInProcess("GettingOverIt.exe")]
public class UltimateChaosMod : BaseUnityPlugin
{
	[CompilerGenerated]
	private sealed class <ClearMemorySelectionBuffer>d__99 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateChaosMod <>4__this;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <ClearMemorySelectionBuffer>d__99(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(0.7f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				<>4__this.firstSelectedCardIndex = -1;
				<>4__this.secondSelectedCardIndex = -1;
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <SearchUnityHierarchyPipeline>d__76 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateChaosMod <>4__this;

		private Rigidbody2D[] <bodies>5__1;

		private GameObject <pingObj>5__2;

		private Rigidbody2D[] <>s__3;

		private int <>s__4;

		private Rigidbody2D <body>5__5;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <SearchUnityHierarchyPipeline>d__76(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<bodies>5__1 = null;
			<pingObj>5__2 = null;
			<>s__3 = null;
			<body>5__5 = null;
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Expected O, but got Unknown
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Expected O, but got Unknown
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>2__current = (object)new WaitForSeconds(1f);
				<>1__state = 1;
				return true;
			case 1:
				<>1__state = -1;
				if ((Object)(object)<>4__this.discordPingSource == (Object)null)
				{
					<pingObj>5__2 = new GameObject("DiscordPingSystem");
					<>4__this.discordPingSource = <pingObj>5__2.AddComponent<AudioSource>();
					<>4__this.discordPingSource.clip = <>4__this.CreateDiscordPingClip();
					Object.DontDestroyOnLoad((Object)(object)<pingObj>5__2);
					<pingObj>5__2 = null;
				}
				<bodies>5__1 = Object.FindObjectsOfType<Rigidbody2D>();
				<>s__3 = <bodies>5__1;
				for (<>s__4 = 0; <>s__4 < <>s__3.Length; <>s__4++)
				{
					<body>5__5 = <>s__3[<>s__4];
					if ((Object)(object)<body>5__5 != (Object)null && (int)<body>5__5.bodyType == 0 && <body>5__5.mass > 1f)
					{
						<>4__this.playerPhysics = <body>5__5;
						<>4__this.originalPlayerScale = ((Component)<body>5__5).transform.localScale;
						break;
					}
					<body>5__5 = null;
				}
				<>s__3 = null;
				if ((Object)(object)<>4__this.playerPhysics != (Object)null)
				{
					<>4__this.isSystemReady = true;
				}
				return false;
			}
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	[CompilerGenerated]
	private sealed class <SpinSlots>d__101 : IEnumerator<object>, IDisposable, IEnumerator
	{
		private int <>1__state;

		private object <>2__current;

		public UltimateChaosMod <>4__this;

		private int <spins>5__1;

		object IEnumerator<object>.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		object IEnumerator.Current
		{
			[DebuggerHidden]
			get
			{
				return <>2__current;
			}
		}

		[DebuggerHidden]
		public <SpinSlots>d__101(int <>1__state)
		{
			this.<>1__state = <>1__state;
		}

		[DebuggerHidden]
		void IDisposable.Dispose()
		{
			<>1__state = -2;
		}

		private bool MoveNext()
		{
			//IL_00c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Expected O, but got Unknown
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			switch (<>1__state)
			{
			default:
				return false;
			case 0:
				<>1__state = -1;
				<>4__this.isSpinning = true;
				<spins>5__1 = 0;
				break;
			case 1:
				<>1__state = -1;
				<spins>5__1++;
				break;
			}
			if (<spins>5__1 < 18)
			{
				<>4__this.currentSlots[0] = <>4__this.slotSymbols[Random.Range(0, <>4__this.slotSymbols.Length)];
				<>4__this.currentSlots[1] = <>4__this.slotSymbols[Random.Range(0, <>4__this.slotSymbols.Length)];
				<>4__this.currentSlots[2] = <>4__this.slotSymbols[Random.Range(0, <>4__this.slotSymbols.Length)];
				<>2__current = (object)new WaitForSeconds(0.07f);
				<>1__state = 1;
				return true;
			}
			if (<>4__this.currentSlots[0] == <>4__this.currentSlots[1] && <>4__this.currentSlots[1] == <>4__this.currentSlots[2])
			{
				<>4__this.casinoCredits += 650;
				if ((Object)(object)<>4__this.playerPhysics != (Object)null)
				{
					<>4__this.playerPhysics.AddForce(Vector2.up * 1400f, (ForceMode2D)1);
				}
			}
			<>4__this.isSpinning = false;
			return false;
		}

		bool IEnumerator.MoveNext()
		{
			//ILSpy generated this explicit interface implementation from .override directive in MoveNext
			return this.MoveNext();
		}

		[DebuggerHidden]
		void IEnumerator.Reset()
		{
			throw new NotSupportedException();
		}
	}

	private Rigidbody2D playerPhysics;

	private AudioSource discordPingSource;

	private bool isSystemReady = false;

	private Rect explorerWindowRect = new Rect(400f, 200f, 680f, 460f);

	private Rect arcadeHubWindowRect = new Rect(50f, 80f, 600f, 600f);

	private Rect scriptTerminalWindowRect = new Rect(560f, 60f, 520f, 380f);

	private Rect settingsControlPanelRect = new Rect(80f, 150f, 440f, 420f);

	private Rect notepadRegistryRect = new Rect(300f, 300f, 400f, 350f);

	private Rect installGuideRect = new Rect(200f, 100f, 600f, 500f);

	private bool isExplorerOpen = true;

	private bool isArcadeHubOpen = true;

	private bool isTerminalOpen = false;

	private bool isControlPanelOpen = false;

	private bool isNotepadOpen = false;

	private bool isStartMenuOpen = false;

	private bool isInstallGuideOpen = false;

	private int selectedArcadeGameIndex = 0;

	private float siPlayerX = 200f;

	private List<Vector2> siInvaders = new List<Vector2>();

	private List<Vector2> siProjectiles = new List<Vector2>();

	private int siScore = 0;

	private string siStatus = "OPERATIONAL";

	private List<Vector2> snakeBody = new List<Vector2>();

	private Vector2 snakeDirection = Vector2.right;

	private Vector2 foodPosition = Vector2.zero;

	private float snakeMoveTimer = 0f;

	private float snakeMoveInterval = 0.2f;

	private bool isSnakeGameOver = false;

	private int snakeScore = 0;

	private int gridWidth = 15;

	private int gridHeight = 15;

	private string[] tttBoard = new string[9] { "", "", "", "", "", "", "", "", "" };

	private bool isXTurn = true;

	private string tttStatus = "PLAYER X TURN";

	private double digitalDopaminePoints = 0.0;

	private double boredomLevel = 0.0;

	private double dopaminePerClick = 1.0;

	private int[] memoryGrid = new int[16];

	private bool[] memoryRevealed = new bool[16];

	private int firstSelectedCardIndex = -1;

	private int secondSelectedCardIndex = -1;

	private int memoryMatchScore = 0;

	private int casinoCredits = 750;

	private string[] slotSymbols = new string[7] { "\ud83c\udf52", "\ud83d\udef8", "\ud83d\udc8e", "\ud83d\udd14", "⭐", "7\ufe0f\u20e3", "\ud83d\udcb0" };

	private string[] currentSlots = new string[3] { "?", "?", "?" };

	private bool isSpinning = false;

	private float coffeeBoostTimer = 0f;

	private float continuousScrambleIntensity = 0f;

	private float discordPingFrequency = 4f;

	private float internalClockTimer = 0f;

	private bool isPlayerDancing = false;

	private float danceTimer = 0f;

	private bool isPlayerEnlarged = false;

	private Vector3 originalPlayerScale = Vector3.one;

	private float enlargedTimer = 0f;

	private string activeDirectoryPath = "C:\\BennOS";

	private string selectedItemName = "";

	private string statusMessageText = "BennOS Subshell Initialized";

	private string terminalInputText = "help";

	private List<string> terminalLogLines = new List<string>();

	private string notepadBufferText = "// BennOS Registry Override Log";

	private Dictionary<string, List<string>> virtualFolderStructure = new Dictionary<string, List<string>>();

	private Dictionary<string, List<string>> virtualFileStructure = new Dictionary<string, List<string>>();

	private bool isMasterUIOpen = true;

	private GUIStyle redButtonStyle;

	private GUIStyle panelStyle;

	private GUIStyle arenaStyle;

	private GUIStyle winLabelBold;

	private GUIStyle taskbarStyle;

	private GUIStyle startButtonStyle;

	private GUIStyle startMenuStyle;

	private GUIStyle fileSystemHeaderStyle;

	private GUIStyle terminalOutputStyle;

	private GUIStyle arcadeMatrixStyle;

	private List<string> terminalCommandsRegistry = new List<string>();

	private void Awake()
	{
		SceneManager.sceneLoaded += OnSceneLoaded;
		GenerateMassiveFileDatabase();
		RegisterExtendedTerminalCommands();
	}

	private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
	{
		isSystemReady = false;
		playerPhysics = null;
		isStartMenuOpen = false;
		ResetAllGames();
		terminalLogLines.Clear();
		terminalLogLines.Add("BennOS Kernel V11.0 Active.");
		((MonoBehaviour)this).StartCoroutine(SearchUnityHierarchyPipeline());
	}

	[IteratorStateMachine(typeof(<SearchUnityHierarchyPipeline>d__76))]
	private IEnumerator SearchUnityHierarchyPipeline()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <SearchUnityHierarchyPipeline>d__76(0)
		{
			<>4__this = this
		};
	}

	private void Update()
	{
		//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_020b: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0308: Unknown result type (might be due to invalid IL or missing references)
		//IL_030d: Unknown result type (might be due to invalid IL or missing references)
		//IL_033b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0340: Unknown result type (might be due to invalid IL or missing references)
		//IL_031e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0323: Unknown result type (might be due to invalid IL or missing references)
		//IL_036e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0373: Unknown result type (might be due to invalid IL or missing references)
		//IL_0351: Unknown result type (might be due to invalid IL or missing references)
		//IL_0356: Unknown result type (might be due to invalid IL or missing references)
		//IL_0406: Unknown result type (might be due to invalid IL or missing references)
		//IL_0417: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0384: Unknown result type (might be due to invalid IL or missing references)
		//IL_0389: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
		Cursor.visible = true;
		Cursor.lockState = (CursorLockMode)0;
		if (!isSystemReady)
		{
			return;
		}
		if (Input.GetKeyDown((KeyCode)282))
		{
			isMasterUIOpen = !isMasterUIOpen;
		}
		if (isMasterUIOpen)
		{
			Cursor.visible = true;
			Cursor.lockState = (CursorLockMode)0;
		}
		internalClockTimer += Time.deltaTime;
		if (internalClockTimer >= discordPingFrequency)
		{
			internalClockTimer = 0f;
			if ((Object)(object)discordPingSource != (Object)null)
			{
				discordPingSource.Play();
			}
		}
		if (coffeeBoostTimer > 0f)
		{
			coffeeBoostTimer -= Time.deltaTime;
		}
		if (isArcadeHubOpen && selectedArcadeGameIndex == 3)
		{
			boredomLevel += Time.deltaTime * 0.5f;
			if (boredomLevel > 100.0)
			{
				boredomLevel = 100.0;
			}
		}
		if (isPlayerDancing && (Object)(object)playerPhysics != (Object)null)
		{
			danceTimer += Time.deltaTime * 15f;
			playerPhysics.angularVelocity = Mathf.Sin(danceTimer) * 1000f;
			playerPhysics.AddForce(new Vector2(Mathf.Cos(danceTimer) * 50f, Mathf.Abs(Mathf.Sin(danceTimer)) * 60f));
		}
		if (isPlayerEnlarged && (Object)(object)playerPhysics != (Object)null)
		{
			enlargedTimer -= Time.deltaTime;
			if (enlargedTimer <= 0f)
			{
				((Component)playerPhysics).transform.localScale = originalPlayerScale;
				isPlayerEnlarged = false;
			}
		}
		if (isArcadeHubOpen && selectedArcadeGameIndex == 0)
		{
			if (Input.GetKey((KeyCode)276))
			{
				siPlayerX = Mathf.Clamp(siPlayerX - 7f, 10f, 390f);
			}
			if (Input.GetKey((KeyCode)275))
			{
				siPlayerX = Mathf.Clamp(siPlayerX + 7f, 10f, 390f);
			}
			if (Input.GetKeyDown((KeyCode)32))
			{
				siProjectiles.Add(new Vector2(siPlayerX + 12f, 210f));
			}
		}
		if (isArcadeHubOpen && selectedArcadeGameIndex == 2 && !isSnakeGameOver)
		{
			if (Input.GetKeyDown((KeyCode)273) && snakeDirection != Vector2.up)
			{
				snakeDirection = Vector2.down;
			}
			if (Input.GetKeyDown((KeyCode)274) && snakeDirection != Vector2.down)
			{
				snakeDirection = Vector2.up;
			}
			if (Input.GetKeyDown((KeyCode)276) && snakeDirection != Vector2.right)
			{
				snakeDirection = Vector2.left;
			}
			if (Input.GetKeyDown((KeyCode)275) && snakeDirection != Vector2.left)
			{
				snakeDirection = Vector2.right;
			}
		}
		if (continuousScrambleIntensity > 0f && (Object)(object)playerPhysics != (Object)null && Random.value < continuousScrambleIntensity * 0.11f)
		{
			playerPhysics.AddForce(Random.insideUnitCircle * (continuousScrambleIntensity * 52f), (ForceMode2D)1);
		}
		if (isArcadeHubOpen)
		{
			if (selectedArcadeGameIndex == 0)
			{
				UpdateSpaceInvadersEngine();
			}
			if (selectedArcadeGameIndex == 2)
			{
				UpdateSnakeEngine();
			}
		}
	}

	private void OnGUI()
	{
		//IL_0046: Unknown result type (might be due to invalid IL or missing references)
		//IL_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_0061: Expected O, but got Unknown
		//IL_005c: 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_0076: 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_0091: Expected O, but got Unknown
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0091: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Expected O, but got Unknown
		//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Expected O, but got Unknown
		//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0106: Unknown result type (might be due to invalid IL or missing references)
		//IL_0112: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Expected O, but got Unknown
		//IL_011c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_0177: Unknown result type (might be due to invalid IL or missing references)
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		//IL_0136: Unknown result type (might be due to invalid IL or missing references)
		//IL_0142: Unknown result type (might be due to invalid IL or missing references)
		//IL_0151: Expected O, but got Unknown
		//IL_014c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0151: Unknown result type (might be due to invalid IL or missing references)
		if (isSystemReady && isMasterUIOpen)
		{
			Cursor.visible = true;
			Cursor.lockState = (CursorLockMode)0;
			SetupAdvancedThemeStyles();
			if (isExplorerOpen)
			{
				explorerWindowRect = GUI.Window(101, explorerWindowRect, new WindowFunction(DrawFileExplorer), " \ud83d\udcc1 BennOS File System ");
			}
			if (isArcadeHubOpen)
			{
				arcadeHubWindowRect = GUI.Window(102, arcadeHubWindowRect, new WindowFunction(DrawArcadeGameHubWindow), " \ud83d\udc7e BennOS Arcade Matrix ");
			}
			if (isTerminalOpen)
			{
				scriptTerminalWindowRect = GUI.Window(103, scriptTerminalWindowRect, new WindowFunction(DrawScriptTerminalWindow), " \ud83d\udda5\ufe0f Core Terminal ");
			}
			if (isControlPanelOpen)
			{
				settingsControlPanelRect = GUI.Window(104, settingsControlPanelRect, new WindowFunction(DrawControlPanelWindow), " ⚙\ufe0f Control Panel ");
			}
			if (isNotepadOpen)
			{
				notepadRegistryRect = GUI.Window(105, notepadRegistryRect, new WindowFunction(DrawNotepadRegistryWindow), " \ud83d\udcdd Notepad.exe ");
			}
			if (isInstallGuideOpen)
			{
				installGuideRect = GUI.Window(106, installGuideRect, new WindowFunction(DrawInstallGuideWindow), " \ud83d\udcd6 How To Install ");
			}
			float num = 42f;
			Rect val = default(Rect);
			((Rect)(ref val))..ctor(0f, (float)Screen.height - num, (float)Screen.width, num);
			GUI.Box(val, "", taskbarStyle);
			GUILayout.BeginArea(val);
			GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
			if (GUILayout.Button(" \ud83c\udfc1 BennOS ", startButtonStyle, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(130f),
				GUILayout.Height(38f)
			}))
			{
				isStartMenuOpen = !isStartMenuOpen;
			}
			isExplorerOpen = GUILayout.Toggle(isExplorerOpen, " Explorer", GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(110f),
				GUILayout.Height(38f)
			});
			isArcadeHubOpen = GUILayout.Toggle(isArcadeHubOpen, " Arcade", GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(100f),
				GUILayout.Height(38f)
			});
			isTerminalOpen = GUILayout.Toggle(isTerminalOpen, " Terminal", GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(110f),
				GUILayout.Height(38f)
			});
			isControlPanelOpen = GUILayout.Toggle(isControlPanelOpen, " Control", GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(100f),
				GUILayout.Height(38f)
			});
			isNotepadOpen = GUILayout.Toggle(isNotepadOpen, " Notepad", GUI.skin.button, (GUILayoutOption[])(object)new GUILayoutOption[2]
			{
				GUILayout.Width(100f),
				GUILayout.Height(38f)
			});
			GUILayout.FlexibleSpace();
			GUILayout.Label("BennOS v11.0 | " + DateTime.Now.ToShortTimeString(), winLabelBold, Array.Empty<GUILayoutOption>());
			GUILayout.EndHorizontal();
			GUILayout.EndArea();
			if (isStartMenuOpen)
			{
				DrawStartMenu();
			}
		}
	}

	private void DrawStartMenu()
	{
		//IL_0026: 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)
		Rect val = default(Rect);
		((Rect)(ref val))..ctor(10f, (float)(Screen.height - 42 - 380), 260f, 380f);
		GUI.Box(val, "", startMenuStyle);
		GUILayout.BeginArea(val);
		GUILayout.BeginVertical(Array.Empty<GUILayoutOption>());
		GUILayout.Label(" == Mainframe Applications == ", winLabelBold, Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(" \ud83d\udcc1 File Explorer ", Array.Empty<GUILayoutOption>()))
		{
			isExplorerOpen = true;
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udc7e Arcade Hub ", Array.Empty<GUILayoutOption>()))
		{
			isArcadeHubOpen = true;
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udda5\ufe0f Terminal ", Array.Empty<GUILayoutOption>()))
		{
			isTerminalOpen = true;
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" ⚙\ufe0f Control Panel ", Array.Empty<GUILayoutOption>()))
		{
			isControlPanelOpen = true;
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udcdd Notepad ", Array.Empty<GUILayoutOption>()))
		{
			isNotepadOpen = true;
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udcd6 Install Guide ", Array.Empty<GUILayoutOption>()))
		{
			isInstallGuideOpen = true;
			isStartMenuOpen = false;
		}
		GUILayout.Box("", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(8f) });
		if (GUILayout.Button(" ☕ Emergency Coffee ", Array.Empty<GUILayoutOption>()))
		{
			ActivateCoffeeBoost();
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udd25 Full System Recalibration ", Array.Empty<GUILayoutOption>()))
		{
			EmergencyFullRestore();
			isStartMenuOpen = false;
		}
		GUILayout.Box("", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(4f) });
		if (GUILayout.Button(" \ud83d\udc83 Make Player Dance ", Array.Empty<GUILayoutOption>()))
		{
			ToggleDance();
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" \ud83d\udc18 Enlarge Player (10s) ", Array.Empty<GUILayoutOption>()))
		{
			EnlargePlayer();
			isStartMenuOpen = false;
		}
		if (GUILayout.Button(" ❌ Terminate BennOS ", Array.Empty<GUILayoutOption>()))
		{
			isSystemReady = false;
		}
		GUILayout.EndVertical();
		GUILayout.EndArea();
	}

	private void DrawInstallGuideWindow(int windowID)
	{
		//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.Label("=== HOW TO INSTALL MODS ===", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Space(10f);
		GUILayout.Label("STEP 1: DOWNLOAD BEPINEX", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Label("Go to: github.com/BepInEx/BepInEx/releases", Array.Empty<GUILayoutOption>());
		GUILayout.Label("Download: BepInEx_UnityMono_x64_[VERSION].zip", Array.Empty<GUILayoutOption>());
		GUILayout.Space(5f);
		GUILayout.Label("STEP 2: EXTRACT", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Label("Drag 'BepInEx' folder and 'winhttp.dll'", Array.Empty<GUILayoutOption>());
		GUILayout.Label("Into your 'GettingOverIt' game folder.", Array.Empty<GUILayoutOption>());
		GUILayout.Space(5f);
		GUILayout.Label("STEP 3: RUN GAME", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Label("Run game once to generate plugins folder.", Array.Empty<GUILayoutOption>());
		GUILayout.Label("Put this .dll in BepInEx/plugins.", Array.Empty<GUILayoutOption>());
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void DrawFileExplorer(int windowID)
	{
		//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.BeginHorizontal(GUI.skin.box, Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(" Root (C:)", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(110f) }))
		{
			activeDirectoryPath = "C:\\BennOS";
			selectedItemName = "";
		}
		GUILayout.Label(" Path:", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(40f) });
		GUILayout.TextField(activeDirectoryPath, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
		if (GUILayout.Button(" Execute ", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f) }))
		{
			ExecuteSystemFile(selectedItemName);
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandHeight(true) });
		GUILayout.BeginVertical(GUI.skin.box, (GUILayoutOption[])(object)new GUILayoutOption[2]
		{
			GUILayout.Width(190f),
			GUILayout.ExpandHeight(true)
		});
		GUILayout.Label(" Quick Access ", fileSystemHeaderStyle, Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(" \ud83c\udfe0 BennOS System Drive ", Array.Empty<GUILayoutOption>()))
		{
			activeDirectoryPath = "C:\\BennOS";
		}
		if (GUILayout.Button(" \ud83c\udfae Games ", Array.Empty<GUILayoutOption>()))
		{
			activeDirectoryPath = "C:\\BennOS\\Programs\\Games";
		}
		GUILayout.EndVertical();
		GUILayout.BeginVertical(GUI.skin.box, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandHeight(true) });
		if (virtualFolderStructure.ContainsKey(activeDirectoryPath))
		{
			foreach (string item in virtualFolderStructure[activeDirectoryPath])
			{
				if (!item.Contains(".."))
				{
					GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
					GUILayout.Label(" [DIR] " + item, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(280f) });
					if (GUILayout.Button(" Open ", Array.Empty<GUILayoutOption>()))
					{
						activeDirectoryPath = activeDirectoryPath + "\\" + item;
						selectedItemName = "";
					}
					GUILayout.EndHorizontal();
				}
			}
		}
		if (virtualFileStructure.ContainsKey(activeDirectoryPath))
		{
			foreach (string item2 in virtualFileStructure[activeDirectoryPath])
			{
				bool flag = item2 == selectedItemName;
				GUILayout.BeginHorizontal(flag ? GUI.skin.box : GUI.skin.label, Array.Empty<GUILayoutOption>());
				GUILayout.Label(" [APP] " + item2, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(280f) });
				if (GUILayout.Button(flag ? "SELECTED" : "Select", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(80f) }))
				{
					selectedItemName = item2;
				}
				GUILayout.EndHorizontal();
			}
		}
		GUILayout.EndVertical();
		GUILayout.EndHorizontal();
		GUILayout.Box(" Status: " + statusMessageText, (GUILayoutOption[])(object)new GUILayoutOption[2]
		{
			GUILayout.ExpandWidth(true),
			GUILayout.Height(28f)
		});
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void ExecuteSystemFile(string name)
	{
		if (!string.IsNullOrEmpty(name))
		{
			if (name.Contains("SpaceInvaders"))
			{
				isArcadeHubOpen = true;
				selectedArcadeGameIndex = 0;
				ResetSpaceInvadersEngine();
			}
			else if (name.Contains("Snake"))
			{
				isArcadeHubOpen = true;
				selectedArcadeGameIndex = 2;
				ResetSnakeEngine();
			}
			else if (name.Contains("Clicker"))
			{
				isArcadeHubOpen = true;
				selectedArcadeGameIndex = 3;
			}
			else if (name.Contains("Memory"))
			{
				isArcadeHubOpen = true;
				selectedArcadeGameIndex = 4;
				ResetMemoryEngine();
			}
			else if (name.Contains("Coffee"))
			{
				ActivateCoffeeBoost();
			}
			statusMessageText = "Executed: " + name;
		}
	}

	private void DrawArcadeGameHubWindow(int windowID)
	{
		//IL_0259: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.BeginHorizontal(GUI.skin.box, Array.Empty<GUILayoutOption>());
		if (GUILayout.Toggle(selectedArcadeGameIndex == 0, "Invaders", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 0;
		}
		if (GUILayout.Toggle(selectedArcadeGameIndex == 1, "TicTac", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 1;
		}
		if (GUILayout.Toggle(selectedArcadeGameIndex == 2, "Snake", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 2;
		}
		if (GUILayout.Toggle(selectedArcadeGameIndex == 3, "Clicker", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 3;
		}
		if (GUILayout.Toggle(selectedArcadeGameIndex == 4, "Memory", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 4;
		}
		if (GUILayout.Toggle(selectedArcadeGameIndex == 5, "Casino", GUI.skin.button, Array.Empty<GUILayoutOption>()))
		{
			selectedArcadeGameIndex = 5;
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button("\ud83d\udc83 Dance Toggle", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }))
		{
			ToggleDance();
		}
		if (GUILayout.Button("\ud83d\udc18 Enlarge Player", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }))
		{
			EnlargePlayer();
		}
		if (GUILayout.Button("☕ Coffee Boost", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }))
		{
			ActivateCoffeeBoost();
		}
		GUILayout.EndHorizontal();
		GUILayout.BeginVertical(GUI.skin.box, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandHeight(true) });
		switch (selectedArcadeGameIndex)
		{
		case 0:
			DrawSpaceInvadersCore();
			break;
		case 1:
			DrawTicTacToeCore();
			break;
		case 2:
			DrawSnakeCore();
			break;
		case 3:
			DrawClickerCore();
			break;
		case 4:
			DrawMemoryMatchCore();
			break;
		case 5:
			DrawCasinoCore();
			break;
		}
		GUILayout.EndVertical();
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void DrawSpaceInvadersCore()
	{
		//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_0052: Unknown result type (might be due to invalid IL or missing references)
		//IL_0089: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b5: 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_00cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0122: Unknown result type (might be due to invalid IL or missing references)
		//IL_012b: Unknown result type (might be due to invalid IL or missing references)
		//IL_013a: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.BeginVertical(GUI.skin.box, Array.Empty<GUILayoutOption>());
		GUILayout.Label($" MATCH SCORE: {siScore}   ||   MATRIX STATE: {siStatus}", winLabelBold, Array.Empty<GUILayoutOption>());
		Rect rect = GUILayoutUtility.GetRect(440f, 260f);
		GUI.Box(rect, "--- ARCADE EMULATOR PANEL RECALIBRATED ---", arenaStyle);
		GUI.Label(new Rect(((Rect)(ref rect)).x + siPlayerX, ((Rect)(ref rect)).y + 230f, 50f, 20f), "[\ud83d\udef8]", arcadeMatrixStyle);
		foreach (Vector2 siInvader in siInvaders)
		{
			GUI.Label(new Rect(((Rect)(ref rect)).x + siInvader.x, ((Rect)(ref rect)).y + siInvader.y, 40f, 20f), "[\ud83d\udc7e]", arcadeMatrixStyle);
		}
		foreach (Vector2 siProjectile in siProjectiles)
		{
			GUI.Label(new Rect(((Rect)(ref rect)).x + siProjectile.x, ((Rect)(ref rect)).y + siProjectile.y, 20f, 20f), " | ", arcadeMatrixStyle);
		}
		GUILayout.FlexibleSpace();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.RepeatButton("<- MOVE LEFT", Array.Empty<GUILayoutOption>()))
		{
			siPlayerX = Mathf.Clamp(siPlayerX - 7f, 10f, 390f);
		}
		if (GUILayout.Button(" FIRING PULSE BEAM ", Array.Empty<GUILayoutOption>()))
		{
			siProjectiles.Add(new Vector2(siPlayerX + 12f, 210f));
		}
		if (GUILayout.RepeatButton("MOVE RIGHT ->", Array.Empty<GUILayoutOption>()))
		{
			siPlayerX = Mathf.Clamp(siPlayerX + 7f, 10f, 390f);
		}
		GUILayout.EndHorizontal();
		if (GUILayout.Button(" REBOOT APP SIMULATOR STAGE ", Array.Empty<GUILayoutOption>()))
		{
			ResetSpaceInvadersEngine();
		}
		GUILayout.EndVertical();
	}

	private void ResetSpaceInvadersEngine()
	{
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		siScore = 0;
		siPlayerX = 200f;
		siStatus = "SIMULATING";
		siInvaders.Clear();
		siProjectiles.Clear();
		for (int i = 0; i < 3; i++)
		{
			for (int j = 0; j < 6; j++)
			{
				siInvaders.Add(new Vector2((float)(30 + j * 65), (float)(30 + i * 35)));
			}
		}
	}

	private void UpdateSpaceInvadersEngine()
	{
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_0034: Unknown result type (might be due to invalid IL or missing references)
		//IL_0044: Unknown result type (might be due to invalid IL or missing references)
		//IL_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: 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_00ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0109: Unknown result type (might be due to invalid IL or missing references)
		for (int num = siProjectiles.Count - 1; num >= 0; num--)
		{
			siProjectiles[num] = new Vector2(siProjectiles[num].x, siProjectiles[num].y - 9f);
			if (siProjectiles[num].y < 0f)
			{
				siProjectiles.RemoveAt(num);
			}
			else
			{
				for (int num2 = siInvaders.Count - 1; num2 >= 0; num2--)
				{
					if (Vector2.Distance(siProjectiles[num], siInvaders[num2]) < 24f)
					{
						siInvaders.RemoveAt(num2);
						siProjectiles.RemoveAt(num);
						siScore += 150;
						if ((Object)(object)playerPhysics != (Object)null)
						{
							playerPhysics.AddForce(Random.insideUnitCircle * 200f, (ForceMode2D)1);
						}
						break;
					}
				}
			}
		}
		if (siInvaders.Count == 0)
		{
			siStatus = "VICTORY STAGE CLEAR";
		}
	}

	private void DrawSnakeCore()
	{
		//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_0060: Unknown result type (might be due to invalid IL or missing references)
		//IL_017c: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
		//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_01d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f7: 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_0106: Unknown result type (might be due to invalid IL or missing references)
		//IL_0117: Unknown result type (might be due to invalid IL or missing references)
		//IL_0123: Unknown result type (might be due to invalid IL or missing references)
		//IL_022b: 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_0209: Unknown result type (might be due to invalid IL or missing references)
		//IL_020e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0263: Unknown result type (might be due to invalid IL or missing references)
		//IL_0268: Unknown result type (might be due to invalid IL or missing references)
		//IL_0241: Unknown result type (might be due to invalid IL or missing references)
		//IL_0246: Unknown result type (might be due to invalid IL or missing references)
		//IL_0279: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.BeginVertical(GUI.skin.box, Array.Empty<GUILayoutOption>());
		GUILayout.Label(string.Format(" CORE POINTS METRIC: {0}  |  STATUS: {1}", snakeScore, isSnakeGameOver ? "CORE CRASHED" : "RUNNING"), winLabelBold, Array.Empty<GUILayoutOption>());
		Rect rect = GUILayoutUtility.GetRect(300f, 300f);
		GUI.Box(rect, "", arenaStyle);
		float num = ((Rect)(ref rect)).width / (float)gridWidth;
		float num2 = ((Rect)(ref rect)).height / (float)gridHeight;
		if (!isSnakeGameOver)
		{
			GUI.Label(new Rect(((Rect)(ref rect)).x + foodPosition.x * num, ((Rect)(ref rect)).y + foodPosition.y * num2, num, num2), "[*]", arcadeMatrixStyle);
			foreach (Vector2 item in snakeBody)
			{
				GUI.Label(new Rect(((Rect)(ref rect)).x + item.x * num, ((Rect)(ref rect)).y + item.y * num2, num, num2), "[#]", arcadeMatrixStyle);
			}
		}
		else
		{
			GUI.Label(new Rect(((Rect)(ref rect)).x + 40f, ((Rect)(ref rect)).y + 130f, 240f, 30f), "!!! GAME OVER: HARDWARE CRASHED !!!", winLabelBold);
		}
		GUILayout.FlexibleSpace();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button(" ^ UP ", Array.Empty<GUILayoutOption>()) && snakeDirection != Vector2.up)
		{
			snakeDirection = Vector2.down;
		}
		if (GUILayout.Button(" v DOWN ", Array.Empty<GUILayoutOption>()) && snakeDirection != Vector2.down)
		{
			snakeDirection = Vector2.up;
		}
		if (GUILayout.Button(" < LEFT ", Array.Empty<GUILayoutOption>()) && snakeDirection != Vector2.right)
		{
			snakeDirection = Vector2.left;
		}
		if (GUILayout.Button(" RIGHT > ", Array.Empty<GUILayoutOption>()) && snakeDirection != Vector2.left)
		{
			snakeDirection = Vector2.right;
		}
		GUILayout.EndHorizontal();
		if (GUILayout.Button(" CONFIGURE INTERFACES RESET ", Array.Empty<GUILayoutOption>()))
		{
			ResetSnakeEngine();
		}
		GUILayout.EndVertical();
	}

	private void ResetSnakeEngine()
	{
		//IL_0010: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: 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_0051: Unknown result type (might be due to invalid IL or missing references)
		snakeScore = 0;
		isSnakeGameOver = false;
		snakeDirection = Vector2.right;
		snakeBody.Clear();
		snakeBody.Add(new Vector2(5f, 5f));
		snakeBody.Add(new Vector2(4f, 5f));
		SpawnFoodNode();
	}

	private void SpawnFoodNode()
	{
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		//IL_0025: Unknown result type (might be due to invalid IL or missing references)
		foodPosition = new Vector2((float)Random.Range(1, gridWidth - 1), (float)Random.Range(1, gridHeight - 1));
	}

	private void UpdateSnakeEngine()
	{
		//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_0058: 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_005e: 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_007a: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		//IL_0105: Unknown result type (might be due to invalid IL or missing references)
		if (isSnakeGameOver)
		{
			return;
		}
		snakeMoveTimer += Time.deltaTime;
		if (!(snakeMoveTimer >= snakeMoveInterval))
		{
			return;
		}
		snakeMoveTimer = 0f;
		Vector2 val = snakeBody[0] + snakeDirection;
		if (val.x < 0f || val.x >= (float)gridWidth || val.y < 0f || val.y >= (float)gridHeight)
		{
			isSnakeGameOver = true;
			return;
		}
		for (int i = 0; i < snakeBody.Count; i++)
		{
			if (snakeBody[i] == val)
			{
				isSnakeGameOver = true;
				return;
			}
		}
		snakeBody.Insert(0, val);
		if (val == foodPosition)
		{
			snakeScore += 250;
			SpawnFoodNode();
			if ((Object)(object)playerPhysics != (Object)null)
			{
				playerPhysics.AddTorque(45f, (ForceMode2D)1);
			}
		}
		else
		{
			snakeBody.RemoveAt(snakeBody.Count - 1);
		}
	}

	private void DrawClickerCore()
	{
		//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_007a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0161: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.Label("=== DOPAMINE FACTORY ===", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Box($"Dopamine: {digitalDopaminePoints:F0}", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(60f) });
		GUILayout.Label($"Boredom Level: {boredomLevel:F1}%", Array.Empty<GUILayoutOption>());
		if (boredomLevel > 50.0)
		{
			GUI.color = Color.red;
		}
		GUILayout.HorizontalSlider((float)boredomLevel, 0f, 100f, Array.Empty<GUILayoutOption>());
		GUI.color = Color.white;
		if (GUILayout.Button("\ud83d\udca5 BIG DOPAMINE BUTTON \ud83d\udca5", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(80f) }))
		{
			double val = dopaminePerClick * (100.0 - boredomLevel) / 100.0;
			digitalDopaminePoints += Math.Max(1.0, val);
			boredomLevel -= 5.0;
			if (boredomLevel < 0.0)
			{
				boredomLevel = 0.0;
			}
			if ((Object)(object)playerPhysics != (Object)null)
			{
				playerPhysics.AddForce(Vector2.up * 300f, (ForceMode2D)1);
			}
		}
		if (GUILayout.Button($"Upgrade (+1 Power) - Cost: {100.0 + dopaminePerClick * 10.0:F0} pts", Array.Empty<GUILayoutOption>()))
		{
			double num = 100.0 + dopaminePerClick * 10.0;
			if (digitalDopaminePoints >= num)
			{
				digitalDopaminePoints -= num;
				dopaminePerClick += 1.0;
			}
		}
		if (GUILayout.Button("☕ Coffee (Reduces Boredom)", Array.Empty<GUILayoutOption>()))
		{
			ActivateCoffeeBoost();
			boredomLevel = 0.0;
		}
	}

	private void DrawTicTacToeCore()
	{
		GUILayout.Label(tttStatus, winLabelBold, Array.Empty<GUILayoutOption>());
		for (int i = 0; i < 3; i++)
		{
			GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
			for (int j = 0; j < 3; j++)
			{
				int num = i * 3 + j;
				if (GUILayout.Button((tttBoard[num] == "") ? " " : tttBoard[num], (GUILayoutOption[])(object)new GUILayoutOption[2]
				{
					GUILayout.Width(90f),
					GUILayout.Height(70f)
				}))
				{
					HandleTicTacToeMove(num);
				}
			}
			GUILayout.EndHorizontal();
		}
		if (GUILayout.Button("Reset TicTacToe", Array.Empty<GUILayoutOption>()))
		{
			ResetTicTacToeEngine();
		}
	}

	private void ResetTicTacToeEngine()
	{
		for (int i = 0; i < 9; i++)
		{
			tttBoard[i] = "";
		}
		isXTurn = true;
		tttStatus = "PLAYER X TURN";
	}

	private void HandleTicTacToeMove(int index)
	{
		if (string.IsNullOrEmpty(tttBoard[index]) && !tttStatus.Contains("WIN"))
		{
			tttBoard[index] = (isXTurn ? "X" : "O");
			if (CheckTicTacToeWin())
			{
				tttStatus = (isXTurn ? "X" : "O") + " WINS!";
				return;
			}
			isXTurn = !isXTurn;
			tttStatus = "PLAYER " + (isXTurn ? "X" : "O") + " TURN";
		}
	}

	private bool CheckTicTacToeWin()
	{
		int[,] array = new int[8, 3]
		{
			{ 0, 1, 2 },
			{ 3, 4, 5 },
			{ 6, 7, 8 },
			{ 0, 3, 6 },
			{ 1, 4, 7 },
			{ 2, 5, 8 },
			{ 0, 4, 8 },
			{ 2, 4, 6 }
		};
		for (int i = 0; i < 8; i++)
		{
			if (tttBoard[array[i, 0]] != "" && tttBoard[array[i, 0]] == tttBoard[array[i, 1]] && tttBoard[array[i, 0]] == tttBoard[array[i, 2]])
			{
				return true;
			}
		}
		return false;
	}

	private void DrawMemoryMatchCore()
	{
		GUILayout.Label($"Memory Matches: {memoryMatchScore}/8", winLabelBold, Array.Empty<GUILayoutOption>());
		for (int i = 0; i < 4; i++)
		{
			GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
			for (int j = 0; j < 4; j++)
			{
				int num = i * 4 + j;
				string text = ((memoryRevealed[num] || num == firstSelectedCardIndex || num == secondSelectedCardIndex) ? memoryGrid[num].ToString() : "?");
				if (GUILayout.Button(text, (GUILayoutOption[])(object)new GUILayoutOption[2]
				{
					GUILayout.Width(65f),
					GUILayout.Height(55f)
				}))
				{
					HandleMemorySelectionIndex(num);
				}
			}
			GUILayout.EndHorizontal();
		}
		if (GUILayout.Button("New Game", Array.Empty<GUILayoutOption>()))
		{
			ResetMemoryEngine();
		}
	}

	private void ResetMemoryEngine()
	{
		memoryMatchScore = 0;
		firstSelectedCardIndex = -1;
		secondSelectedCardIndex = -1;
		List<int> list = new List<int>
		{
			1, 1, 2, 2, 3, 3, 4, 4, 5, 5,
			6, 6, 7, 7, 8, 8
		};
		for (int i = 0; i < 16; i++)
		{
			int index = Random.Range(0, list.Count);
			memoryGrid[i] = list[index];
			list.RemoveAt(index);
			memoryRevealed[i] = false;
		}
	}

	private void HandleMemorySelectionIndex(int idx)
	{
		if (memoryRevealed[idx] || idx == firstSelectedCardIndex || idx == secondSelectedCardIndex)
		{
			return;
		}
		if (firstSelectedCardIndex == -1)
		{
			firstSelectedCardIndex = idx;
			return;
		}
		secondSelectedCardIndex = idx;
		if (memoryGrid[firstSelectedCardIndex] == memoryGrid[secondSelectedCardIndex])
		{
			memoryRevealed[firstSelectedCardIndex] = true;
			memoryRevealed[secondSelectedCardIndex] = true;
			memoryMatchScore++;
			firstSelectedCardIndex = -1;
			secondSelectedCardIndex = -1;
		}
		else
		{
			((MonoBehaviour)this).StartCoroutine(ClearMemorySelectionBuffer());
		}
	}

	[IteratorStateMachine(typeof(<ClearMemorySelectionBuffer>d__99))]
	private IEnumerator ClearMemorySelectionBuffer()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <ClearMemorySelectionBuffer>d__99(0)
		{
			<>4__this = this
		};
	}

	private void DrawCasinoCore()
	{
		GUILayout.Label($"CASINO CREDITS: {casinoCredits}", winLabelBold, Array.Empty<GUILayoutOption>());
		GUILayout.Label(currentSlots[0] + " " + currentSlots[1] + " " + currentSlots[2], arcadeMatrixStyle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(90f) });
		if (GUILayout.Button("SPIN -50 Credits", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(55f) }) && casinoCredits >= 50 && !isSpinning)
		{
			casinoCredits -= 50;
			((MonoBehaviour)this).StartCoroutine(SpinSlots());
		}
		if (GUILayout.Button("☕ Free Coffee Spin", Array.Empty<GUILayoutOption>()))
		{
			ActivateCoffeeBoost();
		}
	}

	[IteratorStateMachine(typeof(<SpinSlots>d__101))]
	private IEnumerator SpinSlots()
	{
		//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
		return new <SpinSlots>d__101(0)
		{
			<>4__this = this
		};
	}

	private void ToggleDance()
	{
		isPlayerDancing = !isPlayerDancing;
		if (!isPlayerDancing && (Object)(object)playerPhysics != (Object)null)
		{
			playerPhysics.angularVelocity = 0f;
		}
		statusMessageText = (isPlayerDancing ? "\ud83d\udc83 Dance Mode Activated!" : "Dance Mode Disabled.");
	}

	private void EnlargePlayer()
	{
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_003a: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)playerPhysics != (Object)null)
		{
			isPlayerEnlarged = true;
			enlargedTimer = 10f;
			((Component)playerPhysics).transform.localScale = originalPlayerScale * 3f;
			statusMessageText = "\ud83d\udc18 PLAYER ENLARGED FOR 10 SECONDS!";
		}
	}

	private void RegisterExtendedTerminalCommands()
	{
		terminalCommandsRegistry.Add("help - Show commands");
		terminalCommandsRegistry.Add("cls - Clear terminal");
		terminalCommandsRegistry.Add("coffee - Fix boredom");
		terminalCommandsRegistry.Add("yeet - Launch player");
		terminalCommandsRegistry.Add("dance - Toggle dance");
		terminalCommandsRegistry.Add("big - Enlarge player");
	}

	private void DrawScriptTerminalWindow(int windowID)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001a: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
		Vector2 val = GUILayout.BeginScrollView(Vector2.zero, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandHeight(true) });
		foreach (string terminalLogLine in terminalLogLines)
		{
			GUILayout.Label(terminalLogLine, terminalOutputStyle, Array.Empty<GUILayoutOption>());
		}
		GUILayout.EndScrollView();
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		terminalInputText = GUILayout.TextField(terminalInputText, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) });
		if (GUILayout.Button("EXECUTE", (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f) }))
		{
			ProcessConsoleCommandString(terminalInputText);
			terminalInputText = "";
		}
		GUILayout.EndHorizontal();
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void ProcessConsoleCommandString(string cmd)
	{
		//IL_0113: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Unknown result type (might be due to invalid IL or missing references)
		terminalLogLines.Add("> " + cmd);
		switch (cmd.ToLower().Trim())
		{
		case "help":
		{
			foreach (string item in terminalCommandsRegistry)
			{
				terminalLogLines.Add(item);
			}
			return;
		}
		case "cls":
			terminalLogLines.Clear();
			return;
		case "coffee":
			ActivateCoffeeBoost();
			return;
		case "dance":
			ToggleDance();
			return;
		case "big":
			EnlargePlayer();
			return;
		case "yeet":
			if ((Object)(object)playerPhysics != (Object)null)
			{
				playerPhysics.AddForce(Vector2.up * 1800f, (ForceMode2D)1);
				return;
			}
			break;
		}
		terminalLogLines.Add("Unknown command. Type 'help'.");
	}

	private void DrawControlPanelWindow(int windowID)
	{
		//IL_0112: Unknown result type (might be due to invalid IL or missing references)
		GUILayout.Label("=== BennOS Control Panel ===", fileSystemHeaderStyle, Array.Empty<GUILayoutOption>());
		GUILayout.Label($"Chaos Intensity: {continuousScrambleIntensity:F1}", Array.Empty<GUILayoutOption>());
		continuousScrambleIntensity = GUILayout.HorizontalSlider(continuousScrambleIntensity, 0f, 10f, Array.Empty<GUILayoutOption>());
		GUILayout.Label($"Ping Frequency: {discordPingFrequency:F1}s", Array.Empty<GUILayoutOption>());
		discordPingFrequency = GUILayout.HorizontalSlider(discordPingFrequency, 0.5f, 15f, Array.Empty<GUILayoutOption>());
		GUILayout.Space(20f);
		if (GUILayout.Button("☕ ACTIVATE COFFEE", redButtonStyle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(40f) }))
		{
			ActivateCoffeeBoost();
		}
		if (GUILayout.Button("EMERGENCY RESTORE", redButtonStyle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(40f) }))
		{
			EmergencyFullRestore();
		}
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void DrawNotepadRegistryWindow(int windowID)
	{
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		notepadBufferText = GUILayout.TextArea(notepadBufferText, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandHeight(true) });
		GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>());
		if (GUILayout.Button("Save", Array.Empty<GUILayoutOption>()))
		{
			statusMessageText = "File saved.";
		}
		if (GUILayout.Button("Clear", Array.Empty<GUILayoutOption>()))
		{
			notepadBufferText = "";
		}
		GUILayout.EndHorizontal();
		GUI.DragWindow(new Rect(0f, 0f, 10000f, 24f));
	}

	private void ActivateCoffeeBoost()
	{
		//IL_0022: 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)
		coffeeBoostTimer = 10f;
		if ((Object)(object)playerPhysics != (Object)null)
		{
			playerPhysics.AddForce(Vector2.up * 950f, (ForceMode2D)1);
		}
		statusMessageText = "☕ COFFEE BOOST ACTIVATED!";
	}

	private void EmergencyFullRestore()
	{
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)playerPhysics != (Object)null)
		{
			playerPhysics.mass = 1f;
			playerPhysics.velocity = Vector2.zero;
			((Component)playerPhysics).transform.localScale = originalPlayerScale;
			isPlayerEnlarged = false;
			isPlayerDancing = false;
			playerPhysics.angularVelocity = 0f;
		}
		Physics2D.gravity = new Vector2(0f, -9.81f);
		Time.timeScale = 1f;
		continuousScrambleIntensity = 0f;
		coffeeBoostTimer = 0f;
		ResetAllGames();
		statusMessageText = "Full system restore completed.";
	}

	private void ResetAllGames()
	{
		ResetSpaceInvadersEngine();
		ResetSnakeEngine();
		ResetTicTacToeEngine();
		ResetMemoryEngine();
	}

	private void SetupAdvancedThemeStyles()
	{
		//IL_0016: 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_0056: Unknown result type (might be due to invalid IL or missing references)
		//IL_0076: Unknown result type (might be due to invalid IL or missing references)
		//IL_0096: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ad: 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_00bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dd: Expected O, but got Unknown
		//IL_00de: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f0: 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_0103: Expected O, but got Unknown
		//IL_0109: Expected O, but got Unknown
		//IL_0114: Unknown result type (might be due to invalid IL or missing references)
		//IL_0119: Unknown result type (might be due to invalid IL or missing references)
		//IL_0127: Unknown result type (might be due to invalid IL or missing references)
		//IL_0134: Expected O, but got Unknown
		//IL_013f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0144: Unknown result type (might be due to invalid IL or missing references)
		//IL_014c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0152: Unknown result type (might be due to invalid IL or missing references)
		//IL_015d: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Expected O, but got Unknown
		//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)
		//IL_0183: Expected O, but got Unknown
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0193: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_01be: Expected O, but got Unknown
		//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e0: Expected O, but got Unknown
		//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f0: 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_01fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_020e: Expected O, but got Unknown
		//IL_0219: Unknown result type (might be due to invalid IL or missing references)
		//IL_021e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0224: Unknown result type (might be due to invalid IL or missing references)
		//IL_0234: Expected O, but got Unknown
		//IL_023f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0244: Unknown result type (might be due to invalid IL or missing references)
		//IL_024c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0252: Unknown result type (might be due to invalid IL or missing references)
		//IL_025d: Unknown result type (might be due to invalid IL or missing references)
		//IL_026b: Expected O, but got Unknown
		Texture2D background = CreateFlatTexture(new Color(0.82f, 0.04f, 0.04f, 1f));
		Texture2D background2 = CreateFlatTexture(new Color(0.08f, 0.09f, 0.11f, 0.98f));
		Texture2D background3 = CreateFlatTexture(new Color(0.15f, 0.16f, 0.18f, 1f));
		Texture2D background4 = CreateFlatTexture(new Color(0.05f, 0.3f, 0.75f, 1f));
		Texture2D background5 = CreateFlatTexture(new Color(0.02f, 0.03f, 0.04f, 1f));
		GUIStyle val = new GUIStyle(GUI.skin.button);
		val.normal.background = background;
		val.normal.textColor = Color.white;
		val.fontStyle = (FontStyle)1;
		redButtonStyle = val;
		GUIStyle val2 = new GUIStyle();
		val2.normal.background = background2;
		val2.padding = new RectOffset(10, 10, 10, 10);
		panelStyle = val2;
		GUIStyle val3 = new GUIStyle(GUI.skin.box);
		val3.normal.background = background5;
		val3.alignment = (TextAnchor)4;
		arenaStyle = val3;
		GUIStyle val4 = new GUIStyle(GUI.skin.label)
		{
			fontStyle = (FontStyle)1
		};
		val4.normal.textColor = Color.cyan;
		val4.fontSize = 18;
		winLabelBold = val4;
		GUIStyle val5 = new GUIStyle();
		val5.normal.background = background3;
		taskbarStyle = val5;
		GUIStyle val6 = new GUIStyle(GUI.skin.button);
		val6.normal.background = background4;
		val6.normal.textColor = Color.white;
		val6.fontStyle = (FontStyle)1;
		startButtonStyle = val6;
		GUIStyle val7 = new GUIStyle(GUI.skin.box);
		val7.normal.background = background2;
		startMenuStyle = val7;
		GUIStyle val8 = new GUIStyle(GUI.skin.label)
		{
			fontStyle = (FontStyle)1
		};
		val8.normal.textColor = Color.yellow;
		fileSystemHeaderStyle = val8;
		GUIStyle val9 = new GUIStyle(GUI.skin.label);
		val9.normal.textColor = Color.green;
		terminalOutputStyle = val9;
		GUIStyle val10 = new GUIStyle(GUI.skin.label)
		{
			fontStyle = (FontStyle)1
		};
		val10.normal.textColor = Color.white;
		val10.fontSize = 22;
		arcadeMatrixStyle = val10;
	}

	private AudioClip CreateDiscordPingClip()
	{
		int num = 44100;
		float num2 = 0.22f;
		int num3 = (int)((float)num * num2);
		float[] array = new float[num3];
		for (int i = 0; i < num3; i++)
		{
			float num4 = (float)i / (float)num;
			float num5 = ((num4 < 0.07f) ? 659f : 880f);
			array[i] = Mathf.Sin((float)Math.PI * 2f * num5 * num4) * 0.4f;
		}
		AudioClip val = AudioClip.Create("Ping", num3, 1, num, false);
		val.SetData(array, 0);
		return val;
	}

	private Texture2D CreateFlatTexture(Color color)
	{
		//IL_0003: Unknown result type (might be due to invalid IL or missing references)
		//IL_0009: Expected O, but got Unknown
		//IL_000c: Unknown result type (might be due to invalid IL or missing references)
		Texture2D val = new Texture2D(1, 1);
		val.SetPixel(0, 0, color);
		val.Apply();
		return val;
	}

	private void GenerateMassiveFileDatabase()
	{
		virtualFolderStructure["C:\\BennOS"] = new List<string> { "Programs", "System32", "Logs" };
		virtualFileStructure["C:\\BennOS\\Programs\\Games"] = new List<string> { "SpaceInvaders.exe", "SnakeGame.exe", "CyberClicker.exe", "MemoryMatch.exe", "Coffee.sys" };
	}
}