Decompiled source of HotDogCheat v1.0.4
HotDogCheat.dll
Decompiled 4 days ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Threading.Tasks; using ArcadeCar.Logic; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using HotDogCheat.Actions; using HotDogCheat.Core; using HotDogCheat.ESP; using HotDogCheat.Features; using HotDogCheat.UI; using HotDogCheat.UI.Tabs; using HotDogCheat.Utils; using Lightbug.CharacterControllerPro.Core; using Lightbug.CharacterControllerPro.Demo; using Lightbug.CharacterControllerPro.Implementation; using RootMotion.Dynamics; using Unity.Collections; using Unity.Netcode; using UnityEngine; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("HotDogCheat")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("HotDogCheat")] [assembly: AssemblyCopyright("Copyright 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ed33da8a-0adc-46ad-9cfe-4d88d43867a5")] [assembly: AssemblyFileVersion("1.0.4.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.4.0")] namespace HotDogCheat.Utils { public static class GameRunner { private class HostBehaviour : MonoBehaviour { } private static GameObject _hostGo; private static HostBehaviour _host; [RuntimeInitializeOnLoadMethod(/*Could not decode attribute arguments.*/)] private static void Bootstrap() { try { EnsureInitialized(); } catch (Exception ex) { Debug.LogWarning((object)("[HotDogCheat.GameRunner] Bootstrap failed: " + ex.Message + "; falling back to lazy init.")); } } public static void RunAfterFixedUpdates(int count, Action action) { EnsureInitialized(); ((MonoBehaviour)_host).StartCoroutine(RunAfterFixedUpdatesRoutine(count, action)); } public static void RunAfterSeconds(float seconds, Action action) { EnsureInitialized(); ((MonoBehaviour)_host).StartCoroutine(RunAfterSecondsRoutine(seconds, action)); } private static void EnsureInitialized() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown if (!((Object)(object)_host != (Object)null)) { _hostGo = new GameObject("HotDogCheat.GameRunner"); Object.DontDestroyOnLoad((Object)(object)_hostGo); ((Object)_hostGo).hideFlags = (HideFlags)1; _host = _hostGo.AddComponent<HostBehaviour>(); } } private static IEnumerator RunAfterFixedUpdatesRoutine(int count, Action action) { for (int i = 0; i < count; i++) { yield return (object)new WaitForFixedUpdate(); } action?.Invoke(); } private static IEnumerator RunAfterSecondsRoutine(float seconds, Action action) { yield return (object)new WaitForSeconds(seconds); action?.Invoke(); } } public static class PlayerHelper { private static Dictionary<PlayerNetworking, string> playerNames = new Dictionary<PlayerNetworking, string>(); private static PlayerNetworking cachedLocalPlayer; private static float lastLocalPlayerRefresh; public static PlayerNetworking GetLocalPlayer() { if (Time.unscaledTime - lastLocalPlayerRefresh < 1f) { return cachedLocalPlayer; } cachedLocalPlayer = ((IEnumerable<PlayerNetworking>)GetAllPlayers()).FirstOrDefault((Func<PlayerNetworking, bool>)((PlayerNetworking p) => ((NetworkBehaviour)p).IsLocalPlayer)); lastLocalPlayerRefresh = Time.unscaledTime; return cachedLocalPlayer; } public static List<PlayerNetworking> GetAllPlayers() { return new List<PlayerNetworking>(Object.FindObjectsByType<PlayerNetworking>((FindObjectsSortMode)0)); } public static string GetPlayerName(PlayerNetworking player) { if (playerNames.ContainsKey(player)) { return playerNames[player]; } string text = "Loading..."; if ((Object)(object)player.SteamPlayer != (Object)null) { string text2 = default(string); if (player.SteamPlayer.TryGetName(ref text2)) { text = text2; playerNames[player] = text; } else { LoadPlayerNameAsync(player); } } return text; } private static async void LoadPlayerNameAsync(PlayerNetworking player) { try { string text = await player.SteamPlayer.WaitForName(); playerNames[player] = text; HotDogCheatMod.Log("Loaded player name: " + text); } catch (Exception ex) { HotDogCheatMod.LogError("Failed to load player name: " + ex.Message); } } public static StatusEffectHandler GetStatusEffects(PlayerNetworking player) { if ((Object)(object)player == (Object)null) { return null; } StatusEffectHandler val = null; try { val = player.StatusEffects; } catch { } if ((Object)(object)val == (Object)null) { val = ((Component)player).GetComponentInChildren<StatusEffectHandler>(); } return val; } public static List<RCCar> GetAllRCCars() { return new List<RCCar>(Object.FindObjectsByType<RCCar>((FindObjectsSortMode)0)); } } } namespace HotDogCheat.UI { public class MenuManager { private Rect menuRect = UiLayout.MenuRect; private UiProfileKind activeProfile = UiLayout.CurrentKind; private int currentTab; private readonly string[] tabNames = new string[9] { "Spawner", "Self", "Teleport", "Online", "NPCs", "FreeCam", "Visuals", "Game", "Keybinds" }; private readonly string[] tabHints = new string[9] { "Items+Objects", "Local", "Movement", "Friends", "World AI", "Camera", "ESP", "Maps", "Controls" }; private readonly FeatureManager features; private readonly ESPRenderer espRenderer; private readonly SpawnerTab spawnerTab; private readonly PlayerTab playerTab; private readonly TeleportTab teleportTab; private readonly OnlineTab onlineTab; private readonly NPCsTab npcsTab; private readonly FreeCamTab freeCamTab; private readonly ESPTab espTab; private readonly GameTab gameTab; private readonly KeybindsTab keybindsTab; private bool cursorSaved; private CursorLockMode savedLockMode; private bool savedCursorVisible; public bool IsVisible { get; private set; } public MenuManager(FeatureManager features, ESPRenderer espRenderer) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) this.features = features; this.espRenderer = espRenderer; spawnerTab = new SpawnerTab(); playerTab = new PlayerTab(features); teleportTab = new TeleportTab(); onlineTab = new OnlineTab(features); npcsTab = new NPCsTab(features); freeCamTab = new FreeCamTab(features); espTab = new ESPTab(espRenderer.Settings); gameTab = new GameTab(features); keybindsTab = new KeybindsTab(features); } public void ToggleMenu() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) IsVisible = !IsVisible; if (IsVisible) { savedLockMode = Cursor.lockState; savedCursorVisible = Cursor.visible; cursorSaved = true; Cursor.visible = true; Cursor.lockState = (CursorLockMode)0; PlayerNetworking localPlayer = PlayerHelper.GetLocalPlayer(); if ((Object)(object)localPlayer != (Object)null) { PlayerController component = ((Component)localPlayer).GetComponent<PlayerController>(); if ((Object)(object)component != (Object)null && (Object)(object)component.Camera != (Object)null) { component.Camera.active = false; } } return; } PlayerNetworking localPlayer2 = PlayerHelper.GetLocalPlayer(); if ((Object)(object)localPlayer2 != (Object)null) { PlayerController component2 = ((Component)localPlayer2).GetComponent<PlayerController>(); bool flag = (Object)(object)component2 != (Object)null && component2.UIOpen; if (flag) { Cursor.visible = true; Cursor.lockState = (CursorLockMode)0; } else { Cursor.visible = false; Cursor.lockState = (CursorLockMode)1; } if ((Object)(object)component2 != (Object)null && (Object)(object)component2.Camera != (Object)null && !flag) { component2.Camera.active = true; } } else if (cursorSaved) { Cursor.visible = savedCursorVisible; Cursor.lockState = savedLockMode; } cursorSaved = false; } public void Draw() { //IL_001f: 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_0038: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown //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) //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) Styles.Init(); SyncLayoutProfile(); GUI.backgroundColor = new Color(0f, 0f, 0f, 0f); menuRect = GUI.Window(0, menuRect, new WindowFunction(DrawWindow), "", Styles.Background); menuRect = ClampToScreen(menuRect); } private void SyncLayoutProfile() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) UiProfileKind currentKind = UiLayout.CurrentKind; if (activeProfile != currentKind) { activeProfile = currentKind; menuRect = UiLayout.MenuRect; } } private static Rect ClampToScreen(Rect rect) { //IL_009e: Unknown result type (might be due to invalid IL or missing references) ((Rect)(ref rect)).width = Mathf.Min(((Rect)(ref rect)).width, (float)Screen.width - 8f); ((Rect)(ref rect)).height = Mathf.Min(((Rect)(ref rect)).height, (float)Screen.height - 8f); ((Rect)(ref rect)).x = Mathf.Clamp(((Rect)(ref rect)).x, 0f, Mathf.Max(0f, (float)Screen.width - ((Rect)(ref rect)).width)); ((Rect)(ref rect)).y = Mathf.Clamp(((Rect)(ref rect)).y, 0f, Mathf.Max(0f, (float)Screen.height - ((Rect)(ref rect)).height)); return rect; } private void DrawWindow(int id) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) GUI.DrawTexture(new Rect(0f, 0f, ((Rect)(ref menuRect)).width, ((Rect)(ref menuRect)).height), (Texture)(object)Styles.TexDark); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); DrawSidebar(); DrawContent(); GUILayout.EndHorizontal(); GUI.DragWindow(); } private void DrawSidebar() { //IL_00df: 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) //IL_00eb: 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_0105: Expected O, but got Unknown GUILayout.BeginVertical(Styles.Sidebar, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.Width(UiLayout.SidebarWidth), GUILayout.ExpandHeight(true) }); GUILayout.Label("HOTDOG\nMENU", Styles.Title, Array.Empty<GUILayoutOption>()); GUILayout.Label("public build", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); GUILayout.Space(UiLayout.Space(8f)); for (int i = 0; i < tabNames.Length; i++) { if (GUILayout.Button($"{tabNames[i]}\n<size={UiLayout.MutedFont}>{tabHints[i]}</size>", (currentTab == i) ? Styles.SideTabActive : Styles.SideTab, Array.Empty<GUILayoutOption>())) { currentTab = i; } } GUILayout.FlexibleSpace(); GUILayout.Label("F10 keybinds", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); GUIStyle val = new GUIStyle(Styles.MutedLabel) { fontStyle = (FontStyle)1 }; val.normal.textColor = Color.white; GUILayout.Label("1.0.4 by: Catfishgod420", val, Array.Empty<GUILayoutOption>()); GUILayout.EndVertical(); } private void DrawContent() { GUILayout.BeginVertical(Styles.ContentPanel, (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); GUILayout.Label(tabNames[currentTab].ToUpperInvariant(), Styles.PageTitle, Array.Empty<GUILayoutOption>()); switch (currentTab) { case 0: spawnerTab.Draw(); break; case 1: playerTab.Draw(); break; case 2: teleportTab.Draw(); break; case 3: onlineTab.Draw(); break; case 4: npcsTab.Draw(); break; case 5: freeCamTab.Draw(); break; case 6: espTab.Draw(); break; case 7: gameTab.Draw(); break; case 8: keybindsTab.Draw(); break; } GUILayout.EndVertical(); } } public class Overlay { private GUIStyle bulletTimeStyle; public void Draw() { KeybindManager.Instance?.DrawOverlayList(); DrawBulletTimeIndicator(); } private void DrawBulletTimeIndicator() { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown FeatureManager featureManager = HotDogCheatMod.Instance?.FeatureManager; if (featureManager != null && featureManager.BulletTime != null && featureManager.BulletTime.Enabled) { float num = 0.5f + 0.5f * Mathf.Sin(Time.unscaledTime * 6f); Color textColor = Color.Lerp(new Color(1f, 0.85f, 0.2f, 0.85f), new Color(1f, 1f, 1f, 1f), num); if (bulletTimeStyle == null) { bulletTimeStyle = new GUIStyle(GUI.skin.label) { fontSize = 18, fontStyle = (FontStyle)1, alignment = (TextAnchor)4 }; } bulletTimeStyle.normal.textColor = textColor; string text = "● BULLET TIME ●"; GUI.Label(new Rect(0f, 60f, (float)Screen.width, 28f), text, bulletTimeStyle); } } } public static class Styles { private static UiProfileKind initializedProfile; public static GUIStyle Background; public static GUIStyle Title; public static GUIStyle Sidebar; public static GUIStyle ContentPanel; public static GUIStyle PageTitle; public static GUIStyle SideTab; public static GUIStyle SideTabActive; public static GUIStyle MutedLabel; public static GUIStyle Section; public static GUIStyle SectionTitle; public static GUIStyle Tab; public static GUIStyle TabActive; public static GUIStyle Button; public static GUIStyle ButtonActive; public static GUIStyle Toggle; public static GUIStyle Selector; public static GUIStyle Box; public static GUIStyle Label; public static GUIStyle Slider; public static GUIStyle SliderThumb; public static GUIStyle TextField; private static Texture2D texDark; private static Texture2D texPanel; private static Texture2D texSection; private static Texture2D texMid; private static Texture2D texLight; private static Texture2D texAccent; private static Texture2D texAccentHover; private static Texture2D texMustard; private static Texture2D texToggleOn; private static Texture2D texToggleOff; private static Texture2D texToggleHover; public static bool Initialized { get; private set; } public static Texture2D TexDark => texDark; public static void Init() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_011f: 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_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Expected O, but got Unknown //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Expected O, but got Unknown //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Expected O, but got Unknown //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Expected O, but got Unknown //IL_0285: Expected O, but got Unknown //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Expected O, but got Unknown //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031c: 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_033b: Expected O, but got Unknown //IL_0354: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Expected O, but got Unknown //IL_03a5: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: 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) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Expected O, but got Unknown //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Expected O, but got Unknown //IL_0456: Expected O, but got Unknown //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Expected O, but got Unknown //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Expected O, but got Unknown //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05c2: Expected O, but got Unknown //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_0608: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Expected O, but got Unknown //IL_0650: Expected O, but got Unknown //IL_067d: Unknown result type (might be due to invalid IL or missing references) //IL_06a5: Unknown result type (might be due to invalid IL or missing references) //IL_06cd: Unknown result type (might be due to invalid IL or missing references) //IL_06dc: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Expected O, but got Unknown //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Unknown result type (might be due to invalid IL or missing references) //IL_074d: Unknown result type (might be due to invalid IL or missing references) //IL_0760: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Expected O, but got Unknown //IL_0774: Expected O, but got Unknown //IL_07a1: Unknown result type (might be due to invalid IL or missing references) //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_082d: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Expected O, but got Unknown //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: 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_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08ed: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Unknown result type (might be due to invalid IL or missing references) //IL_0906: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0931: Expected O, but got Unknown //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_0968: Unknown result type (might be due to invalid IL or missing references) //IL_096d: Unknown result type (might be due to invalid IL or missing references) //IL_0978: Unknown result type (might be due to invalid IL or missing references) //IL_0990: Expected O, but got Unknown //IL_09a9: Unknown result type (might be due to invalid IL or missing references) //IL_09bd: Unknown result type (might be due to invalid IL or missing references) //IL_09c7: Expected O, but got Unknown //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Expected O, but got Unknown //IL_0a51: Unknown result type (might be due to invalid IL or missing references) //IL_0a56: Unknown result type (might be due to invalid IL or missing references) //IL_0a61: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Expected O, but got Unknown //IL_0aa6: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0af6: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) UiProfileKind currentKind = UiLayout.CurrentKind; if (!Initialized || initializedProfile != currentKind) { texDark = MakeTex(new Color(0.07f, 0.07f, 0.1f, 0.96f)); texPanel = MakeTex(new Color(0.1f, 0.1f, 0.15f, 0.98f)); texSection = MakeTex(new Color(0.12f, 0.12f, 0.18f, 1f)); texMid = MakeTex(new Color(0.15f, 0.15f, 0.21f, 1f)); texLight = MakeTex(new Color(0.22f, 0.22f, 0.3f, 1f)); texAccent = MakeTex(new Color(0.74f, 0.12f, 0.16f, 1f)); texAccentHover = MakeTex(new Color(0.9f, 0.2f, 0.22f, 1f)); texMustard = MakeTex(new Color(0.95f, 0.68f, 0.12f, 1f)); texToggleOn = texAccent; texToggleOff = MakeTex(new Color(0.28f, 0.11f, 0.14f, 1f)); texToggleHover = MakeTex(new Color(0.38f, 0.14f, 0.18f, 1f)); Background = new GUIStyle { padding = UiLayout.Offset(12, 12, 12, 12, 8, 8, 8, 8) }; Background.normal.background = texDark; Title = new GUIStyle { fontSize = UiLayout.TitleFont, fontStyle = (FontStyle)1, alignment = (TextAnchor)4, margin = UiLayout.Offset(0, 0, 4, 8, 0, 0, 3, 5) }; Title.normal.textColor = new Color(1f, 0.86f, 0.38f); Sidebar = new GUIStyle { padding = UiLayout.Offset(10, 10, 10, 10, 7, 7, 7, 7), margin = UiLayout.Offset(0, 10, 0, 0, 0, 7, 0, 0) }; Sidebar.normal.background = texPanel; ContentPanel = new GUIStyle { padding = UiLayout.Offset(12, 12, 10, 12, 8, 8, 7, 8), margin = new RectOffset(0, 0, 0, 0) }; ContentPanel.normal.background = texPanel; PageTitle = new GUIStyle { fontSize = UiLayout.PageTitleFont, fontStyle = (FontStyle)1, alignment = (TextAnchor)3, padding = UiLayout.Offset(6, 6, 4, 8, 4, 4, 3, 5), margin = UiLayout.Offset(0, 0, 0, 8, 0, 0, 0, 5) }; PageTitle.normal.textColor = new Color(1f, 0.86f, 0.38f); MutedLabel = new GUIStyle { fontSize = UiLayout.MutedFont, alignment = (TextAnchor)4, wordWrap = true, padding = UiLayout.Offset(4, 4, 2, 6, 3, 3, 1, 4) }; MutedLabel.normal.textColor = new Color(0.62f, 0.62f, 0.7f); Section = new GUIStyle { padding = UiLayout.Offset(10, 10, 8, 10, 7, 7, 5, 7), margin = UiLayout.Offset(0, 0, 0, 8, 0, 0, 0, 5) }; Section.normal.background = texSection; SectionTitle = new GUIStyle { fontSize = UiLayout.SectionTitleFont, fontStyle = (FontStyle)1, alignment = (TextAnchor)3, padding = UiLayout.Offset(4, 4, 0, 6, 3, 3, 0, 4), margin = UiLayout.Offset(0, 0, 0, 4, 0, 0, 0, 2) }; SectionTitle.normal.textColor = new Color(1f, 0.82f, 0.28f); Tab = new GUIStyle { fontSize = UiLayout.ControlFont, fontStyle = (FontStyle)1, alignment = (TextAnchor)4, padding = UiLayout.Offset(8, 8, 6, 6, 6, 6, 4, 4), margin = new RectOffset(2, 2, 0, 0) }; Tab.normal.background = texMid; Tab.normal.textColor = new Color(0.7f, 0.7f, 0.75f); Tab.hover.background = texLight; Tab.hover.textColor = Color.white; TabActive = new GUIStyle(Tab); TabActive.normal.background = texAccent; TabActive.normal.textColor = Color.white; TabActive.hover.background = texAccentHover; SideTab = new GUIStyle(Tab) { alignment = (TextAnchor)3, richText = true, padding = UiLayout.Offset(12, 8, 8, 8, 8, 6, 5, 5), margin = UiLayout.Offset(0, 0, 3, 3, 0, 0, 2, 2), fixedHeight = UiLayout.Height(34f) }; SideTab.normal.background = texMid; SideTab.normal.textColor = new Color(0.78f, 0.78f, 0.84f); SideTab.hover.background = texLight; SideTab.hover.textColor = Color.white; SideTabActive = new GUIStyle(SideTab); SideTabActive.normal.background = texAccent; SideTabActive.normal.textColor = Color.white; SideTabActive.hover.background = texAccentHover; SideTabActive.hover.textColor = Color.white; Button = new GUIStyle { fontSize = UiLayout.ControlFont, alignment = (TextAnchor)4, padding = UiLayout.Offset(8, 8, 6, 6, 6, 6, 4, 4), margin = new RectOffset(2, 2, 2, 2) }; Button.normal.background = texMid; Button.normal.textColor = new Color(0.85f, 0.85f, 0.9f); Button.hover.background = texLight; Button.hover.textColor = Color.white; Button.active.background = texAccent; Button.active.textColor = Color.white; ButtonActive = new GUIStyle(Button); ButtonActive.normal.background = texAccent; ButtonActive.normal.textColor = Color.white; ButtonActive.hover.background = texAccentHover; ButtonActive.hover.textColor = Color.white; Toggle = new GUIStyle { fontSize = UiLayout.ControlFont, alignment = (TextAnchor)4, padding = UiLayout.Offset(8, 8, 6, 6, 6, 6, 4, 4), margin = new RectOffset(2, 2, 2, 2) }; Toggle.normal.background = texToggleOff; Toggle.normal.textColor = new Color(0.86f, 0.72f, 0.75f); Toggle.onNormal.background = texToggleOn; Toggle.onNormal.textColor = Color.white; Toggle.hover.background = texToggleHover; Toggle.hover.textColor = Color.white; Toggle.onHover.background = texToggleOn; Toggle.onHover.textColor = Color.white; Selector = new GUIStyle(Toggle) { fontStyle = (FontStyle)1 }; Selector.normal.background = texMid; Selector.normal.textColor = new Color(0.85f, 0.85f, 0.9f); Selector.hover.background = texLight; Selector.hover.textColor = Color.white; Selector.onNormal.background = texAccent; Selector.onNormal.textColor = Color.white; Selector.onHover.background = texAccentHover; Selector.onHover.textColor = Color.white; Box = new GUIStyle { fontSize = UiLayout.BoxFont, fontStyle = (FontStyle)1, alignment = (TextAnchor)4, padding = UiLayout.Offset(6, 6, 4, 4, 4, 4, 3, 3), margin = UiLayout.Offset(0, 0, 4, 4, 0, 0, 3, 3) }; Box.normal.background = texMid; Box.normal.textColor = new Color(1f, 0.82f, 0.28f); Label = new GUIStyle { fontSize = UiLayout.ControlFont, padding = UiLayout.Offset(4, 4, 2, 2, 3, 3, 1, 1) }; Label.normal.textColor = new Color(0.8f, 0.8f, 0.85f); Slider = new GUIStyle(GUI.skin.horizontalSlider); Slider.normal.background = texMid; Slider.fixedHeight = UiLayout.Height(8f); SliderThumb = new GUIStyle(GUI.skin.horizontalSliderThumb); SliderThumb.normal.background = texMustard; SliderThumb.fixedWidth = (UiLayout.IsCompact ? 12 : 14); SliderThumb.fixedHeight = (UiLayout.IsCompact ? 12 : 14); TextField = new GUIStyle(GUI.skin.textField) { fontSize = UiLayout.ControlFont, padding = UiLayout.Offset(6, 6, 4, 4, 4, 4, 3, 3) }; TextField.normal.background = texMid; TextField.normal.textColor = new Color(0.9f, 0.9f, 0.95f); TextField.active.background = texLight; TextField.active.textColor = Color.white; TextField.focused.background = texLight; TextField.focused.textColor = Color.white; TextField.hover.background = texLight; TextField.hover.textColor = Color.white; initializedProfile = currentKind; Initialized = true; UiLayout.NoteStylesRebuilt(); } } public static void BeginSection(string title) { GUILayout.BeginVertical(Section, Array.Empty<GUILayoutOption>()); GUILayout.Label(title, SectionTitle, Array.Empty<GUILayoutOption>()); } public static string FilterNumeric(string input) { if (string.IsNullOrEmpty(input)) { return ""; } string text = ""; bool flag = false; for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c >= '0' && c <= '9') { text += c; } else if (c == '.' && !flag) { text += c; flag = true; } } return text; } public static string FilterInteger(string input) { if (string.IsNullOrEmpty(input)) { return ""; } string text = ""; for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c >= '0' && c <= '9') { text += c; } } return text; } public static void EndSection() { GUILayout.EndVertical(); } private static Texture2D MakeTex(Color col) { //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_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown Texture2D val = new Texture2D(1, 1); val.SetPixel(0, 0, col); val.Apply(); return val; } } public enum UiProfileKind { Default, Compact1080 } public static class UiLayout { public static UiProfileKind CurrentKind { get { if (Screen.width != 1920 || Screen.height != 1080) { return UiProfileKind.Default; } return UiProfileKind.Compact1080; } } public static bool IsCompact => CurrentKind == UiProfileKind.Compact1080; public static Rect MenuRect { get { //IL_0035: 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) if (!IsCompact) { return new Rect(20f, 20f, 840f, 700f); } return new Rect(14f, 14f, 720f, 610f); } } public static Rect KeybindPickerRect { get { //IL_0035: 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) if (!IsCompact) { return new Rect(870f, 20f, 520f, 560f); } return new Rect(746f, 14f, 440f, 500f); } } public static Rect KeybindCaptureRect { get { //IL_0035: 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) if (!IsCompact) { return new Rect(0f, 0f, 340f, 150f); } return new Rect(0f, 0f, 300f, 128f); } } public static int StyleVersion { get; private set; } public static float SidebarWidth { get { if (!IsCompact) { return 150f; } return 122f; } } public static float OverlayKeybindWidth { get { if (!IsCompact) { return 260f; } return 230f; } } public static float OverlayKeybindHeaderHeight { get { if (!IsCompact) { return 24f; } return 20f; } } public static float OverlayKeybindRowHeight { get { if (!IsCompact) { return 18f; } return 16f; } } public static float OverlayKeybindMargin { get { if (!IsCompact) { return 15f; } return 10f; } } public static float OverlayKeybindY { get { if (!IsCompact) { return 38f; } return 32f; } } public static int TitleFont { get { if (!IsCompact) { return 18; } return 15; } } public static int PageTitleFont { get { if (!IsCompact) { return 15; } return 13; } } public static int MutedFont { get { if (!IsCompact) { return 11; } return 10; } } public static int SectionTitleFont { get { if (!IsCompact) { return 12; } return 11; } } public static int ControlFont { get { if (!IsCompact) { return 12; } return 11; } } public static int BoxFont { get { if (!IsCompact) { return 13; } return 12; } } public static void NoteStylesRebuilt() { StyleVersion++; } public static float Space(float normal) { if (!IsCompact) { return normal; } if (normal >= 12f) { return 8f; } if (normal >= 10f) { return 7f; } if (normal >= 8f) { return 6f; } if (normal >= 6f) { return 4f; } if (normal >= 4f) { return 3f; } return normal; } public static GUILayoutOption H(float normal) { return GUILayout.Height(Height(normal)); } public static GUILayoutOption W(float normal) { return GUILayout.Width(Width(normal)); } public static GUILayoutOption MinH(float normal) { return GUILayout.MinHeight(Height(normal)); } public static float Height(float normal) { if (!IsCompact) { return normal; } if (normal >= 420f) { return 300f; } if (normal >= 400f) { return 290f; } if (normal >= 260f) { return 190f; } if (normal >= 245f) { return 185f; } if (normal >= 150f) { return 110f; } if (normal >= 105f) { return 78f; } if (normal >= 40f) { return 34f; } if (normal >= 35f) { return 30f; } if (normal >= 32f) { return 28f; } if (normal >= 30f) { return 26f; } if (normal >= 28f) { return 24f; } if (normal >= 26f) { return 23f; } if (normal >= 24f) { return 21f; } return normal; } public static float Width(float normal) { if (!IsCompact) { return normal; } if (normal >= 330f) { return 270f; } if (normal >= 285f) { return 230f; } if (normal >= 260f) { return 210f; } if (normal >= 220f) { return 178f; } if (normal >= 160f) { return 130f; } if (normal >= 146f) { return 118f; } if (normal >= 145f) { return 118f; } if (normal >= 140f) { return 112f; } if (normal >= 130f) { return 106f; } if (normal >= 120f) { return 98f; } if (normal >= 112f) { return 92f; } if (normal >= 110f) { return 90f; } if (normal >= 105f) { return 86f; } if (normal >= 100f) { return 82f; } if (normal >= 95f) { return 78f; } if (normal >= 92f) { return 76f; } if (normal >= 90f) { return 74f; } if (normal >= 82f) { return 68f; } if (normal >= 80f) { return 66f; } if (normal >= 78f) { return 64f; } if (normal >= 70f) { return 58f; } if (normal >= 65f) { return 54f; } if (normal >= 55f) { return 48f; } if (normal >= 50f) { return 44f; } if (normal >= 45f) { return 40f; } if (normal >= 42f) { return 38f; } if (normal >= 40f) { return 36f; } if (normal >= 34f) { return 30f; } if (normal >= 32f) { return 28f; } if (normal >= 22f) { return 20f; } return normal; } public static RectOffset Offset(int l, int r, int t, int b, int cl, int cr, int ct, int cb) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Expected O, but got Unknown //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown if (IsCompact) { return new RectOffset(cl, cr, ct, cb); } return new RectOffset(l, r, t, b); } } } namespace HotDogCheat.UI.Tabs { public class ESPTab { private readonly ESPSettings s; private int subTab; private int settingsSubTab; private Vector2 regularColorsScroll; private Vector2 tasksColorsScroll; public ESPTab(ESPSettings settings) { s = settings; } public void Draw() { if (subTab > 1) { subTab = 0; } GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("ESP", (subTab == 0) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { subTab = 0; } if (GUILayout.Button("Settings", (subTab == 1) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { subTab = 1; } GUILayout.EndHorizontal(); GUILayout.Space(10f); switch (subTab) { case 0: DrawESP(); break; case 1: DrawSettings(); break; } } private void DrawESP() { if (!string.IsNullOrEmpty(s.ItemFilter)) { s.ItemFilter = ""; } GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); Styles.BeginSection("Player ESP"); s.PlayerEnabled = GUILayout.Toggle(s.PlayerEnabled, "Enable Player ESP", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(28f) }); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.PlayerBoxes = GUILayout.Toggle(s.PlayerBoxes, "Boxes", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.PlayerNames = GUILayout.Toggle(s.PlayerNames, "Names", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.PlayerHealth = GUILayout.Toggle(s.PlayerHealth, "Health", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.PlayerDistance = GUILayout.Toggle(s.PlayerDistance, "Distance", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.PlayerTracers = GUILayout.Toggle(s.PlayerTracers, "Tracers", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); s.PlayerSkeleton = GUILayout.Toggle(s.PlayerSkeleton, "Skeleton", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); Styles.EndSection(); Styles.BeginSection("NPC ESP"); s.NpcEnabled = GUILayout.Toggle(s.NpcEnabled, "Enable NPC ESP", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(28f) }); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcBob = GUILayout.Toggle(s.NpcBob, "Bob", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcBoxes = GUILayout.Toggle(s.NpcBoxes, "Boxes", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.NpcNames = GUILayout.Toggle(s.NpcNames, "Names", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.NpcDistance = GUILayout.Toggle(s.NpcDistance, "Distance", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.NpcTracers = GUILayout.Toggle(s.NpcTracers, "Tracers", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); s.NpcSkeleton = GUILayout.Toggle(s.NpcSkeleton, "Skeleton (Human)", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); Styles.EndSection(); Styles.BeginSection("Enemy AI"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcHuman = GUILayout.Toggle(s.NpcHuman, "Human", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcSpider = GUILayout.Toggle(s.NpcSpider, "Spider", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcCat = GUILayout.Toggle(s.NpcCat, "Cat", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcMole = GUILayout.Toggle(s.NpcMole, "Mole", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcVacuum = GUILayout.Toggle(s.NpcVacuum, "Vacuum", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcRedcap = GUILayout.Toggle(s.NpcRedcap, "Redcap", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcRat = GUILayout.Toggle(s.NpcRat, "Rat", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcRoach = GUILayout.Toggle(s.NpcRoach, "Roach", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcBoar = GUILayout.Toggle(s.NpcBoar, "Boar", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcDog = GUILayout.Toggle(s.NpcDog, "Dog", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcBibi = GUILayout.Toggle(s.NpcBibi, "Bibi", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcBeehive = GUILayout.Toggle(s.NpcBeehive, "Beehive", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcFairy = GUILayout.Toggle(s.NpcFairy, "Fairy", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.NpcJonathan = GUILayout.Toggle(s.NpcJonathan, "Jonathan", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); s.NpcSealman = GUILayout.Toggle(s.NpcSealman, "Sealman", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(25f) }); GUILayout.EndHorizontal(); Styles.EndSection(); GUILayout.EndVertical(); GUILayout.Space(12f); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); Styles.BeginSection("Item ESP"); s.ItemEnabled = GUILayout.Toggle(s.ItemEnabled, "Enable Item ESP", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(28f) }); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.ItemNames = GUILayout.Toggle(s.ItemNames, "Names", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.ItemDistance = GUILayout.Toggle(s.ItemDistance, "Distance", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.ItemTracers = GUILayout.Toggle(s.ItemTracers, "Tracers", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.ItemFilterWeaponsOnly = GUILayout.Toggle(s.ItemFilterWeaponsOnly, "Weapons Only", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Smart Tasks"); s.TaskEnabled = GUILayout.Toggle(s.TaskEnabled, "Enable Smart Tasks ESP", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(28f) }); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); s.TaskNames = GUILayout.Toggle(s.TaskNames, "Names", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.TaskDistance = GUILayout.Toggle(s.TaskDistance, "Distance", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); s.TaskTracers = GUILayout.Toggle(s.TaskTracers, "Tracers", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Keybinds UI"); s.ShowKeybindsUi = GUILayout.Toggle(s.ShowKeybindsUi, "Show Keybinds UI", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(28f) }); s.KeybindsUiRightSide = GUILayout.Toggle(s.KeybindsUiRightSide, s.KeybindsUiRightSide ? "Top Right" : "Top Left", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(26f) }); Styles.EndSection(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); } private void DrawSettings() { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("General", (settingsSubTab == 0) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { settingsSubTab = 0; } if (GUILayout.Button("ESP Colors", (settingsSubTab == 1) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { settingsSubTab = 1; } if (GUILayout.Button("Tasks Colors", (settingsSubTab == 2) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { settingsSubTab = 2; } GUILayout.EndHorizontal(); GUILayout.Space(10f); switch (settingsSubTab) { case 0: DrawSettingsGeneral(); break; case 1: DrawRegularColors(); break; case 2: DrawTasksColors(); break; } } private void DrawSettingsGeneral() { Styles.BeginSection("Distance"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Max Distance: {s.MaxDistance:F0}m", Styles.Label, Array.Empty<GUILayoutOption>()); s.MaxDistance = GUILayout.HorizontalSlider(s.MaxDistance, 10f, 500f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(200f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Scan Intervals"); GUILayout.Label("Scan Intervals:", Styles.Label, Array.Empty<GUILayoutOption>()); IntervalSlider("Players", ref s.IntervalPlayers, 0.05f, 0.5f, "F2"); IntervalSlider("NPCs/AI", ref s.IntervalNpcs, 0.1f, 0.5f, "F2"); IntervalSlider("Items", ref s.IntervalItems, 1f, 10f, "F1"); IntervalSlider("Cabinets", ref s.IntervalCabinets, 2f, 15f, "F1"); IntervalSlider("World", ref s.IntervalWorld, 2f, 15f, "F1"); IntervalSlider("Tasks", ref s.IntervalTasks, 0.1f, 1f, "F2"); Styles.EndSection(); Styles.BeginSection("Config"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Save Config", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(35f) })) { HotDogCheatMod.Instance?.SaveAllConfig(); } if (GUILayout.Button("Reset to Default", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(35f) })) { ResetToDefault(); HotDogCheatMod.Instance?.SaveAllConfig(); HotDogCheatMod.Log("ESP settings reset to default (saved)"); } GUILayout.EndHorizontal(); Styles.EndSection(); } private void DrawRegularColors() { //IL_0002: 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) regularColorsScroll = GUILayout.BeginScrollView(regularColorsScroll, Array.Empty<GUILayoutOption>()); Styles.BeginSection("Player ESP"); ColorRow("Other Players", ref s.ColorPlayerOther); ColorRow("Local [YOU]", ref s.ColorPlayerLocal); Styles.EndSection(); Styles.BeginSection("NPC ESP"); ColorRow("Bob", ref s.ColorBob); Styles.EndSection(); Styles.BeginSection("Enemy AI"); ColorRow("Human", ref s.ColorHuman); ColorRow("Spider", ref s.ColorSpider); ColorRow("Cat", ref s.ColorCat); ColorRow("Mole", ref s.ColorMole); ColorRow("Vacuum", ref s.ColorVacuum); ColorRow("Redcap", ref s.ColorRedcap); ColorRow("Rat", ref s.ColorRat); ColorRow("Roach", ref s.ColorRoach); ColorRow("Boar", ref s.ColorBoar); ColorRow("Dog", ref s.ColorDog); ColorRow("Bibi", ref s.ColorBibi); ColorRow("Beehive", ref s.ColorBeehive); ColorRow("Fairy", ref s.ColorFairy); ColorRow("Jonathan", ref s.ColorJonathan); ColorRow("Sealman", ref s.ColorSealman); Styles.EndSection(); Styles.BeginSection("Item ESP"); ColorRow("Items", ref s.ColorItem); ColorRow("Weapons", ref s.ColorWeapon); Styles.EndSection(); Styles.BeginSection("World"); ColorRow("Doors", ref s.ColorDoor); ColorRow("Hatches", ref s.ColorHatch); Styles.EndSection(); GUILayout.EndScrollView(); } private void DrawTasksColors() { //IL_0002: 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) tasksColorsScroll = GUILayout.BeginScrollView(tasksColorsScroll, Array.Empty<GUILayoutOption>()); Styles.BeginSection("Task Slot Colors"); ColorRow("Task #1", ref s.ColorTask1); ColorRow("Task #2", ref s.ColorTask2); ColorRow("Task #3", ref s.ColorTask3); ColorRow("Task #4", ref s.ColorTask4); ColorRow("Task #5", ref s.ColorTask5); Styles.EndSection(); Styles.BeginSection("Other"); ColorRow("Generic Task", ref s.ColorTask); ColorRow("Weapons (in tasks)", ref s.ColorWeapon); Styles.EndSection(); GUILayout.EndScrollView(); } private void IntervalSlider(string label, ref float val, float min, float max, string fmt) { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(label + ": " + val.ToString(fmt) + "s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(120f) }); val = GUILayout.HorizontalSlider(val, min, max, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(100f) }); GUILayout.EndHorizontal(); } private void ColorRow(string label, ref Color c) { //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: 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_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label(label, Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(90f) }); GUILayout.Label("R", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(12f) }); float num = GUILayout.HorizontalSlider(c.r, 0f, 1f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(50f) }); GUILayout.Label("G", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(12f) }); float num2 = GUILayout.HorizontalSlider(c.g, 0f, 1f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(50f) }); GUILayout.Label("B", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(12f) }); float num3 = GUILayout.HorizontalSlider(c.b, 0f, 1f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(50f) }); c = new Color(num, num2, num3, 1f); Color backgroundColor = GUI.backgroundColor; GUI.backgroundColor = c; GUILayout.Box("", (GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.Width(22f), GUILayout.Height(18f) }); GUI.backgroundColor = backgroundColor; GUILayout.EndHorizontal(); } private void ResetToDefault() { s.ResetToDefaults(); } } public class FreeCamTab { private readonly FeatureManager features; private Vector2 scrollPos; public FreeCamTab(FeatureManager features) { this.features = features; } public void Draw() { //IL_0002: 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) scrollPos = GUILayout.BeginScrollView(scrollPos, Array.Empty<GUILayoutOption>()); Styles.BeginSection("FreeCam"); if (GUILayout.Button(features.FreeCam.Enabled ? "[ACTIVE] Toggle FreeCam" : "Toggle FreeCam", features.FreeCam.Enabled ? Styles.ButtonActive : Styles.Button, Array.Empty<GUILayoutOption>())) { features.FreeCam.Toggle(); } if (features.FreeCam.Enabled) { GUILayout.Label($"Mode: {features.FreeCam.CurrentMode}", Styles.Label, Array.Empty<GUILayoutOption>()); GUILayout.Label("Mouse wheel changes mode while FreeCam is active", Styles.Label, Array.Empty<GUILayoutOption>()); } Styles.EndSection(); Styles.BeginSection("Base Settings"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Move Speed: {features.FreeCam.MoveSpeed:F0}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.MoveSpeed = GUILayout.HorizontalSlider(features.FreeCam.MoveSpeed, 5f, 150f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Camera Sens: {features.FreeCam.LookSensitivity:F2}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.LookSensitivity = GUILayout.HorizontalSlider(features.FreeCam.LookSensitivity, 0.02f, 1.5f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Black Hole"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Strength: {features.FreeCam.BlackHoleStrength:F0}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.BlackHoleStrength = GUILayout.HorizontalSlider(features.FreeCam.BlackHoleStrength, 5f, 300f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Radius: {features.FreeCam.BlackHoleRadius:F0}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.BlackHoleRadius = GUILayout.HorizontalSlider(features.FreeCam.BlackHoleRadius, 2f, 80f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Interact Grab"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Strength: {features.FreeCam.InteractGrabStrength:F1}x", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.InteractGrabStrength = GUILayout.HorizontalSlider(features.FreeCam.InteractGrabStrength, 1f, 5f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Knife Throw"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Throw Rate: {features.FreeCam.KnifeThrowRate:F0}/s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.KnifeThrowRate = GUILayout.HorizontalSlider(features.FreeCam.KnifeThrowRate, 1f, 30f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Throw Power: {features.FreeCam.KnifeThrowPower:F0}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.KnifeThrowPower = GUILayout.HorizontalSlider(features.FreeCam.KnifeThrowPower, 10f, 200f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Despawn: {features.FreeCam.KnifeDespawnTime:F0}s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.KnifeDespawnTime = GUILayout.HorizontalSlider(features.FreeCam.KnifeDespawnTime, 1f, 60f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); Styles.EndSection(); Styles.BeginSection("Gun"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Cooldown: {features.FreeCam.GunCooldownTime:F2}s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.GunCooldownTime = GUILayout.HorizontalSlider(features.FreeCam.GunCooldownTime, 0.01f, 2f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); features.FreeCam.GunRapidFire = GUILayout.Toggle(features.FreeCam.GunRapidFire, "Rapid Fire (Hold Left Click)", Styles.Toggle, Array.Empty<GUILayoutOption>()); if (features.FreeCam.GunRapidFire) { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Fire Rate: {features.FreeCam.GunRapidFireRate:F0}/s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.GunRapidFireRate = GUILayout.HorizontalSlider(features.FreeCam.GunRapidFireRate, 1f, 30f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); } Styles.EndSection(); Styles.BeginSection("RPG"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Cooldown: {features.FreeCam.RpgCooldownTime:F2}s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.RpgCooldownTime = GUILayout.HorizontalSlider(features.FreeCam.RpgCooldownTime, 0.01f, 2f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); features.FreeCam.RpgRapidFire = GUILayout.Toggle(features.FreeCam.RpgRapidFire, "Rapid Fire (Hold Left Click)", Styles.Toggle, Array.Empty<GUILayoutOption>()); if (features.FreeCam.RpgRapidFire) { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Fire Rate: {features.FreeCam.RpgRapidFireRate:F0}/s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.RpgRapidFireRate = GUILayout.HorizontalSlider(features.FreeCam.RpgRapidFireRate, 1f, 30f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Speed: {features.FreeCam.RpgProjectileSpeed:F0}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.RpgProjectileSpeed = GUILayout.HorizontalSlider(features.FreeCam.RpgProjectileSpeed, 10f, 200f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); features.FreeCam.RpgAccurate = GUILayout.Toggle(features.FreeCam.RpgAccurate, "Dead Straight (No Gravity/Drift)", Styles.Toggle, Array.Empty<GUILayoutOption>()); Styles.EndSection(); Styles.BeginSection("Shotgun"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Cooldown: {features.FreeCam.ShotgunCooldownTime:F2}s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.ShotgunCooldownTime = GUILayout.HorizontalSlider(features.FreeCam.ShotgunCooldownTime, 0.01f, 2f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); features.FreeCam.ShotgunRapidFire = GUILayout.Toggle(features.FreeCam.ShotgunRapidFire, "Rapid Fire (Hold Left Click)", Styles.Toggle, Array.Empty<GUILayoutOption>()); if (features.FreeCam.ShotgunRapidFire) { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Fire Rate: {features.FreeCam.ShotgunRapidFireRate:F0}/s", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(160f) }); features.FreeCam.ShotgunRapidFireRate = GUILayout.HorizontalSlider(features.FreeCam.ShotgunRapidFireRate, 1f, 30f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Width(260f) }); GUILayout.EndHorizontal(); } Styles.EndSection(); Styles.BeginSection("Config"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Save FreeCam Settings", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(35f) })) { HotDogCheatMod.Instance?.SaveAllConfig(); HotDogCheatMod.Log("FreeCam settings saved"); } if (GUILayout.Button("Reset FreeCam", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(35f) })) { features.FreeCam.MoveSpeed = 20f; features.FreeCam.LookSensitivity = 0.15f; features.FreeCam.BlackHoleStrength = 45f; features.FreeCam.BlackHoleRadius = 14f; features.FreeCam.InteractGrabStrength = 1f; features.FreeCam.GunCooldownTime = 0.4f; features.FreeCam.GunRapidFire = false; features.FreeCam.GunRapidFireRate = 8f; features.FreeCam.RpgCooldownTime = 1f; features.FreeCam.RpgRapidFire = false; features.FreeCam.RpgRapidFireRate = 4f; features.FreeCam.RpgProjectileSpeed = 40f; features.FreeCam.RpgAccurate = true; features.FreeCam.ShotgunCooldownTime = 0.8f; features.FreeCam.ShotgunRapidFire = false; features.FreeCam.ShotgunRapidFireRate = 6f; features.FreeCam.KnifeThrowRate = 4f; features.FreeCam.KnifeThrowPower = 30f; features.FreeCam.KnifeDespawnTime = 7f; } GUILayout.EndHorizontal(); Styles.EndSection(); GUILayout.EndScrollView(); } } public class GameTab { private readonly FeatureManager features; private int subTab; private Vector2 scrollPos; private int selectedTaskIndex = -1; private Vector2 taskScrollPos; private PlayerTaskManager cachedTaskManager; private int selectedCarIndex; private bool speedSliderAll; private Vector2 carScrollPos; private static GUIStyle gameSection; private static GUIStyle gameTitle; private static int gameStyleVersion = -1; private string timeMinutesInput = "5"; private float timeMinutes = 5f; private string respawnsPerRoundInput = "3"; private int respawnsPerRound = 3; private string singlePlayerRespawnsInput = "1"; private int singlePlayerRespawns = 1; private static FieldInfo _fCurrentGameTime; private static FieldInfo _fLandMineGrenade; private static MethodInfo _mMicrowaveExplode; private static FieldInfo _fMaxRespawnsPerRound; private static FieldInfo _fMaxRespawnsPerRoundSinglePlayer; private const float MAX_GAME_MINUTES = 15f; public GameTab(FeatureManager features) { this.features = features; } public void Draw() { GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Game", (subTab == 0) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { subTab = 0; } if (GUILayout.Button("World", (subTab == 1) ? Styles.TabActive : Styles.Tab, Array.Empty<GUILayoutOption>())) { subTab = 1; } GUILayout.EndHorizontal(); GUILayout.Space(UiLayout.Space(10f)); switch (subTab) { case 0: DrawGame(); break; case 1: DrawWorld(); break; } } private void DrawGame() { //IL_0007: 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_0016: Unknown result type (might be due to invalid IL or missing references) EnsureGameStyles(); scrollPos = GUILayout.BeginScrollView(scrollPos, Array.Empty<GUILayoutOption>()); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); DrawMapManager(); GUILayout.Space(UiLayout.Space(10f)); DrawTasks(); GUILayout.EndHorizontal(); DrawRCCars(); GUILayout.EndScrollView(); } private void DrawMapManager() { MapManagerFeature mapManager = features.MapManager; IReadOnlyList<LevelInstance> maps = mapManager.GetMaps(); BeginGameSection("Map Manager"); GUILayout.Label("Next: " + mapManager.GetCurrentNextMapName(), Styles.Box, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) }); GUILayout.Label(mapManager.GetDisplayedOptionsText(), Styles.MutedLabel, Array.Empty<GUILayoutOption>()); if (maps.Count == 0) { GUILayout.Label("No maps found yet. This usually needs the lobby/game progression to be loaded.", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Refresh Maps", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { mapManager.GetMaps(); } EndGameSection(); return; } for (int i = 0; i < maps.Count; i++) { string mapLabel = MapManagerFeature.GetMapLabel(maps[i], i); if (GUILayout.Toggle(mapManager.SelectedMapIndex == i, mapLabel, Styles.Selector, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { mapManager.SelectedMapIndex = i; } } GUILayout.Space(UiLayout.Space(3f)); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Set Next", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { mapManager.SetNextMap(mapManager.SelectedMapIndex); } if (GUILayout.Button("Refresh", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.H(28f), UiLayout.W(92f) })) { mapManager.GetMaps(); } GUILayout.EndHorizontal(); EndGameSection(); } private void DrawTasks() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0199: 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_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_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) BeginGameSection("Tasks"); PlayerNetworking localPlayer = PlayerHelper.GetLocalPlayer(); if ((Object)(object)localPlayer == (Object)null) { GUILayout.Label("Local player not found.", Styles.Label, Array.Empty<GUILayoutOption>()); EndGameSection(); return; } PlayerTaskManager val = FindTaskManager(localPlayer); if ((Object)(object)val == (Object)null || val.AllTasks == null || val.AllTasks.Count == 0) { GUILayout.Label("No tasks loaded yet.", Styles.Label, Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Refresh", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RefreshTaskCache(localPlayer); } EndGameSection(); return; } ReadOnly<TaskInstance> currentTasks = val.CurrentTasks; if (currentTasks.Length == 0) { GUILayout.Label("No active tasks.", Styles.Label, Array.Empty<GUILayoutOption>()); EndGameSection(); return; } GUILayout.Label($"Active: {currentTasks.Length}", Styles.Label, Array.Empty<GUILayoutOption>()); taskScrollPos = GUILayout.BeginScrollView(taskScrollPos, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.Height(Mathf.Min(UiLayout.Height(150f), (float)currentTasks.Length * UiLayout.Height(28f))) }); for (int i = 0; i < currentTasks.Length; i++) { TaskInstance val2 = currentTasks[i]; string text = "Unknown Task"; if (val2.taskIndex >= 0 && val2.taskIndex < val.AllTasks.Count && (Object)(object)val.AllTasks[val2.taskIndex] != (Object)null) { text = ((Object)val.AllTasks[val2.taskIndex]).name; } string text2 = ((!val2.wasCompleted) ? $" [{val2.currentCompletionCount}/{val2.maxCompletionCount}]" : " ✓ DONE"); string text3 = text + text2; if (GUILayout.Toggle(selectedTaskIndex == i, text3, Styles.Selector, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { selectedTaskIndex = i; } } GUILayout.EndScrollView(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); bool flag = selectedTaskIndex >= 0 && selectedTaskIndex < currentTasks.Length && !currentTasks[selectedTaskIndex].wasCompleted; if (GUILayout.Button("Complete", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) }) && flag) { ForceCompleteTask(val, selectedTaskIndex); } if (GUILayout.Button("Refresh", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RefreshTaskCache(localPlayer); } int num = CountIncomplete(currentTasks); if (num > 0 && GUILayout.Button($"All ({num})", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { ForceCompleteAllTasks(val, currentTasks); } GUILayout.EndHorizontal(); EndGameSection(); } private int CountIncomplete(ReadOnly<TaskInstance> current) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) int num = 0; for (int i = 0; i < current.Length; i++) { if (!current[i].wasCompleted) { num++; } } return num; } private void ForceCompleteAllTasks(PlayerTaskManager tm, ReadOnly<TaskInstance> current) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) int num = 0; for (int i = 0; i < current.Length; i++) { if (!current[i].wasCompleted) { ForceCompleteTask(tm, i); num++; } } HotDogCheatMod.Log($"Completed {num} tasks"); } private void ForceCompleteTask(PlayerTaskManager tm, int index) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) try { MethodInfo method = typeof(PlayerTaskManager).GetMethod("DebugCompleteTask", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (method != null) { method.Invoke(tm, new object[1] { index }); TaskInstance val = tm.CurrentTasks[index]; string name = ((Object)tm.AllTasks[val.taskIndex]).name; HotDogCheatMod.Log("Force-completed task: " + name); } else { HotDogCheatMod.LogError("DebugCompleteTask method not found"); } } catch (Exception ex) { HotDogCheatMod.LogError("Failed to complete task: " + ex.Message); } } private PlayerTaskManager FindTaskManager(PlayerNetworking local) { if ((Object)(object)cachedTaskManager != (Object)null && (Object)(object)((Component)cachedTaskManager).gameObject != (Object)null) { return cachedTaskManager; } cachedTaskManager = ((Component)local).GetComponent<PlayerTaskManager>() ?? ((Component)local).GetComponentInChildren<PlayerTaskManager>(true) ?? ((Component)local).GetComponentInParent<PlayerTaskManager>() ?? Object.FindFirstObjectByType<PlayerTaskManager>(); return cachedTaskManager; } private void RefreshTaskCache(PlayerNetworking local) { cachedTaskManager = null; selectedTaskIndex = -1; FindTaskManager(local); } private static void EnsureGameStyles() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown //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_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_0075: Expected O, but got Unknown //IL_007a: Expected O, but got Unknown if (gameSection == null || gameStyleVersion != UiLayout.StyleVersion) { gameSection = new GUIStyle(Styles.Section) { padding = UiLayout.Offset(7, 7, 5, 6, 5, 5, 4, 5), margin = UiLayout.Offset(0, 0, 0, 6, 0, 0, 0, 4) }; gameTitle = new GUIStyle(Styles.SectionTitle) { padding = UiLayout.Offset(4, 4, 0, 2, 3, 3, 0, 1), margin = new RectOffset(0, 0, 0, 1) }; gameStyleVersion = UiLayout.StyleVersion; } } private static void BeginGameSection(string title) { EnsureGameStyles(); GUILayout.BeginVertical(gameSection, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.Label(title, gameTitle, Array.Empty<GUILayoutOption>()); } private static void EndGameSection() { GUILayout.EndVertical(); } private void DrawRCCars() { //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) List<RCCar> allRCCars = PlayerHelper.GetAllRCCars(); if (selectedCarIndex >= allRCCars.Count) { selectedCarIndex = Mathf.Max(0, allRCCars.Count - 1); } GUILayout.BeginHorizontal((GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.MinH(245f), GUILayout.ExpandHeight(true) }); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(285f), GUILayout.ExpandHeight(true) }); BeginGameSection("RC Cars"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Total: {allRCCars.Count}", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (GUILayout.Button("Spawn", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(78f), UiLayout.H(26f) })) { SpawnRCCar(); } GUILayout.EndHorizontal(); if (allRCCars.Count == 0) { GUILayout.Label("No RC Cars in scene", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); } else { carScrollPos = GUILayout.BeginScrollView(carScrollPos, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.MinH(105f), GUILayout.ExpandHeight(true) }); for (int i = 0; i < allRCCars.Count; i++) { string arg = (((Object)(object)((PlayerSittable)allRCCars[i]).CurrentSitter != (Object)null) ? (" - " + PlayerHelper.GetPlayerName(((PlayerSittable)allRCCars[i]).CurrentSitter)) : " - Empty"); if (GUILayout.Toggle(selectedCarIndex == i, $"#{i + 1}{arg}", Styles.Selector, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { selectedCarIndex = i; } } GUILayout.EndScrollView(); } EndGameSection(); BeginGameSection("Mass"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("TP to Me", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { TeleportAllCarsToMe(allRCCars); } if (GUILayout.Button("Flip All", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { FlipAllCars(allRCCars); } GUILayout.EndHorizontal(); speedSliderAll = GUILayout.Toggle(speedSliderAll, "speed-slider-all", Styles.Toggle, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) }); if (GUILayout.Button("Delete All", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.DeleteAll(); } EndGameSection(); GUILayout.EndVertical(); GUILayout.Space(UiLayout.Space(10f)); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[2] { GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true) }); if (selectedCarIndex < allRCCars.Count) { RCCar val = allRCCars[selectedCarIndex]; BeginGameSection($"Selected: RC Car #{selectedCarIndex + 1}"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("TP to Me", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.TeleportToMe(val); } if (GUILayout.Button("TP to Car", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.TeleportMeTo(val); } GUILayout.EndHorizontal(); if (GUILayout.Button("Flip", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.Flip(val); } GUILayout.Space(UiLayout.Space(3f)); float speedMultiplier = RCCarActions.GetSpeedMultiplier(val); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Speed: {speedMultiplier:F1}x", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(95f) }); float num = GUILayout.HorizontalSlider(speedMultiplier, 1f, 10f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); if (GUILayout.Button("1x", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(42f), UiLayout.H(26f) })) { num = 1f; } GUILayout.EndHorizontal(); if (!Mathf.Approximately(num, speedMultiplier)) { if (speedSliderAll) { SetSpeedMultiplierForAll(allRCCars, num); } else { RCCarActions.SetSpeedMultiplier(val, num); } } GUILayout.Space(UiLayout.Space(3f)); if ((Object)(object)((PlayerSittable)val).CurrentSitter != (Object)null) { if (GUILayout.Button("Eject Driver", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.EjectDriver(val); } else { GUILayout.Label("Driver: Empty", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); } } if (GUILayout.Button("Delete Car", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { RCCarActions.Delete(val); } EndGameSection(); } else { BeginGameSection("Selected"); GUILayout.Label("Spawn or select an RC car.", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); EndGameSection(); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); } private void SpawnRCCar() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) try { PlayerNetworking localPlayer = PlayerHelper.GetLocalPlayer(); if ((Object)(object)localPlayer == (Object)null) { return; } GameObject val = null; RCCar[] array = Resources.FindObjectsOfTypeAll<RCCar>(); foreach (RCCar val2 in array) { if ((Object)(object)val2 != (Object)null) { val = ((Component)val2).gameObject; break; } } if ((Object)(object)val == (Object)null) { HotDogCheatMod.LogError("No RC Car prefab found"); return; } Vector3 val3 = ((GameEntityBase)localPlayer).Position + ((Component)localPlayer).transform.forward * 3f; NetworkObject componentInChildren = Object.Instantiate<GameObject>(val, val3, Quaternion.identity).GetComponentInChildren<NetworkObject>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.Spawn(false); } HotDogCheatMod.Log("Spawned RC Car"); } catch (Exception ex) { HotDogCheatMod.LogError("RC Spawn failed: " + ex.Message); } } private static void TeleportAllCarsToMe(List<RCCar> cars) { foreach (RCCar car in cars) { RCCarActions.TeleportToMe(car); } } private static void FlipAllCars(List<RCCar> cars) { foreach (RCCar car in cars) { RCCarActions.Flip(car); } } private static void SetSpeedMultiplierForAll(List<RCCar> cars, float multiplier) { foreach (RCCar car in cars) { RCCarActions.SetSpeedMultiplier(car, multiplier); } } private void DrawWorld() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) EnsureGameStyles(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); BeginGameSection("Doors & Explosives"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Open Doors", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num = 0; HashSet<Type> hashSet = new HashSet<Type> { (Type)30, (Type)31, (Type)26, (Type)27, (Type)28 }; OpenableInteractable[] array = Object.FindObjectsByType<OpenableInteractable>((FindObjectsSortMode)0); foreach (OpenableInteractable val in array) { if (!((Object)(object)val == (Object)null) && !val.Unhinged && !hashSet.Contains(((InteractableObject)val).InteractType) && (int)val.State != 0) { try { val.OpenRpc(); num++; } catch { } } } GarageDoor[] array2 = Object.FindObjectsByType<GarageDoor>((FindObjectsSortMode)0); foreach (GarageDoor val2 in array2) { if (!((Object)(object)val2 == (Object)null)) { try { val2.Open(); num++; } catch { } } } HotDogCheatMod.Log($"Opened {num} doors/windows"); } if (GUILayout.Button("Close Doors", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num2 = 0; HashSet<Type> hashSet2 = new HashSet<Type> { (Type)30, (Type)31, (Type)26, (Type)27, (Type)28 }; OpenableInteractable[] array = Object.FindObjectsByType<OpenableInteractable>((FindObjectsSortMode)0); foreach (OpenableInteractable val3 in array) { if (!((Object)(object)val3 == (Object)null) && !val3.Unhinged && !hashSet2.Contains(((InteractableObject)val3).InteractType) && (int)val3.State == 0) { try { val3.ToggleRpc(); num2++; } catch { } } } HotDogCheatMod.Log($"Closed {num2} doors/windows"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Explode Grenades", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num3 = 0; Grenade[] array3 = Object.FindObjectsByType<Grenade>((FindObjectsSortMode)0); foreach (Grenade val4 in array3) { if (!((Object)(object)val4 == (Object)null)) { try { val4.InstantExplodeRpc(); num3++; } catch { } } } HotDogCheatMod.Log($"Exploded {num3} grenades"); } if (GUILayout.Button("Explode Landmines", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num4 = 0; if (_fLandMineGrenade == null) { _fLandMineGrenade = typeof(LandMineTrigger).GetField("grenade", BindingFlags.Instance | BindingFlags.NonPublic); } LandMineTrigger[] array4 = Object.FindObjectsByType<LandMineTrigger>((FindObjectsSortMode)0); foreach (LandMineTrigger val5 in array4) { if ((Object)(object)val5 == (Object)null) { continue; } try { object? obj5 = _fLandMineGrenade?.GetValue(val5); Grenade val6 = (Grenade)((obj5 is Grenade) ? obj5 : null); if ((Object)(object)val6 != (Object)null) { val6.InstantExplodeRpc(); num4++; } } catch { } } HotDogCheatMod.Log($"Exploded {num4} landmines"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("Explode Microwaves", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num5 = 0; if (_mMicrowaveExplode == null) { _mMicrowaveExplode = typeof(Microwave).GetMethod("Explode", BindingFlags.Instance | BindingFlags.NonPublic); } Microwave[] array5 = Object.FindObjectsByType<Microwave>((FindObjectsSortMode)0); foreach (Microwave val7 in array5) { if (!((Object)(object)val7 == (Object)null)) { try { _mMicrowaveExplode?.Invoke(val7, null); num5++; } catch { } } } HotDogCheatMod.Log($"Exploded {num5} microwaves"); } if (GUILayout.Button("Explode All 3", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(28f) })) { int num6 = 0; int num7 = 0; int num8 = 0; Grenade[] array3 = Object.FindObjectsByType<Grenade>((FindObjectsSortMode)0); foreach (Grenade val8 in array3) { if (!((Object)(object)val8 == (Object)null)) { try { val8.InstantExplodeRpc(); num6++; } catch { } } } if (_fLandMineGrenade == null) { _fLandMineGrenade = typeof(LandMineTrigger).GetField("grenade", BindingFlags.Instance | BindingFlags.NonPublic); } LandMineTrigger[] array4 = Object.FindObjectsByType<LandMineTrigger>((FindObjectsSortMode)0); foreach (LandMineTrigger val9 in array4) { if ((Object)(object)val9 == (Object)null) { continue; } try { object? obj9 = _fLandMineGrenade?.GetValue(val9); Grenade val10 = (Grenade)((obj9 is Grenade) ? obj9 : null); if ((Object)(object)val10 != (Object)null) { val10.InstantExplodeRpc(); num7++; } } catch { } } if (_mMicrowaveExplode == null) { _mMicrowaveExplode = typeof(Microwave).GetMethod("Explode", BindingFlags.Instance | BindingFlags.NonPublic); } Microwave[] array5 = Object.FindObjectsByType<Microwave>((FindObjectsSortMode)0); foreach (Microwave val11 in array5) { if (!((Object)(object)val11 == (Object)null)) { try { _mMicrowaveExplode?.Invoke(val11, null); num8++; } catch { } } } HotDogCheatMod.Log($"Exploded All 3 -> {num6} grenades + {num7} landmines + {num8} microwaves"); } GUILayout.EndHorizontal(); EndGameSection(); BeginGameSection("Game Timer"); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label("Remaining (1-15 min):", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(140f) }); string text = GUILayout.TextField(timeMinutesInput, Styles.TextField, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(45f) }); if (text != timeMinutesInput) { timeMinutesInput = Styles.FilterNumeric(text); if (float.TryParse(timeMinutesInput, out var result) && result > 0f) { timeMinutes = Mathf.Clamp(result, 1f, 15f); } } if (GUILayout.Button("Set", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(40f), UiLayout.H(28f) })) { SetGameTimer(timeMinutes); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); if (GUILayout.Button("1m", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { SetGameTimer(1f); } if (GUILayout.Button("5m", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { SetGameTimer(5f); } if (GUILayout.Button("10m", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { SetGameTimer(10f); } if (GUILayout.Button("15m", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.H(26f) })) { SetGameTimer(15f); } GUILayout.EndHorizontal(); EndGameSection(); GUILayout.EndVertical(); GUILayout.Space(UiLayout.Space(10f)); GUILayout.BeginVertical((GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); BeginGameSection("Gnomeium"); GUILayout.Label("Multiplies gnomeium earned from tasks at round end.", Styles.Label, Array.Empty<GUILayoutOption>()); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label($"Multiplier: {features.GnomeiumMultiplier:F1}x", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(100f) }); features.GnomeiumMultiplier = GUILayout.HorizontalSlider(features.GnomeiumMultiplier, 1f, 20f, Styles.Slider, Styles.SliderThumb, (GUILayoutOption[])(object)new GUILayoutOption[1] { GUILayout.ExpandWidth(true) }); GUILayout.EndHorizontal(); if (!Mathf.Approximately(features.GnomeiumMultiplier, 1f)) { GUILayout.Label($"Active: {features.GnomeiumMultiplier:F0}x more gnomeium per task", Styles.MutedLabel, Array.Empty<GUILayoutOption>()); } EndGameSection(); BeginGameSection("Respawns"); GUILayout.Label("Set respawn limits per round.", Styles.Label, Array.Empty<GUILayoutOption>()); GUILayout.Space(UiLayout.Space(3f)); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label("Per Round:", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(80f) }); string text2 = GUILayout.TextField(respawnsPerRoundInput, Styles.TextField, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(40f) }); if (text2 != respawnsPerRoundInput) { respawnsPerRoundInput = Styles.FilterNumeric(text2); if (int.TryParse(respawnsPerRoundInput, out var result2) && result2 >= 1 && result2 <= 99) { respawnsPerRound = result2; } } if (GUILayout.Button("Set", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(40f), UiLayout.H(26f) })) { SetRespawnsPerRound(respawnsPerRound); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(Array.Empty<GUILayoutOption>()); GUILayout.Label("Solo:", Styles.Label, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(80f) }); string text3 = GUILayout.TextField(singlePlayerRespawnsInput, Styles.TextField, (GUILayoutOption[])(object)new GUILayoutOption[1] { UiLayout.W(40f) }); if (text3 != singlePlayerRespawnsInput) { singlePlayerRespawnsInput = Styles.FilterNumeric(text3); if (int.TryParse(singlePlayerRespawnsInput, out var result3) && result3 >= 1 && result3 <= 99) { singlePlayerRespawns = result3; } } if (GUILayout.Button("Set", Styles.Button, (GUILayoutOption[])(object)new GUILayoutOption[2] { UiLayout.W(40f), UiLayout.H(26f) })) { SetSinglePlayerRespawns(singlePlayerRespawns); } GUILayout.EndHorizontal(); EndGameSection(); BeginGameSection("Karma"); GameProgressionManager instance = GameProgressionManager.Instance; bool flag = (Object)(object)NetworkManager.Singleton != (Object)null && NetworkManager.Singleton.IsServer; bool flag2 = flag && (Object)(object)instance != (Object)null; float num9 = (((Object)(object)instance != (Object)null) ? instance.Karma : 0f); float num10 = Mathf.Round(num9 * 100f) / 100f; GUILayout.Label($"Current: {num9:F2} / 1.00", Styles.Label, Array.Empty<GUILayoutOption>()); GUI.