Decompiled source of audiopackforfriends16 v1.0.16
Emblem.dll
Decompiled 3 months 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.Concurrent; 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.Text; using System.Text.RegularExpressions; using System.Threading; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using Emblem; using Emblem.Components; using Emblem.Managers; using HarmonyLib; using LobbyCompatibility.Enums; using LobbyCompatibility.Features; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.InputSystem; using UnityEngine.Rendering; using UnityEngine.Rendering.HighDefinition; using UnityEngine.SceneManagement; using UnityEngine.UI; using UnityEngine.Video; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("Emblem")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Emblem")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e4927ee1-3a47-4f93-8784-804356949316")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] public class DynamicColorManager : MonoBehaviour { private static DynamicColorManager _instance; public static DynamicColorManager Instance { get { //IL_0012: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_instance == (Object)null) { _instance = new GameObject("DynamicColorManager").AddComponent<DynamicColorManager>(); } return _instance; } } public SubMenuColor SubMenuColors { get; set; } private void Awake() { if ((Object)(object)_instance != (Object)null && (Object)(object)_instance != (Object)(object)this) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } _instance = this; Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject); } public void SetupDynamicColorChange(string parentPath) { AttachObserver(parentPath, SubMenuColors); } public void AttachObserver(string parentPath, SubMenuColor subMenuColors) { Transform val = PathFinder.Probe(parentPath); if ((Object)(object)val == (Object)null) { LogWarden.LogError("[DynamicColorManager] Parent path not found: " + parentPath); } else { (((Component)val).gameObject.GetComponent<UIObserver>() ?? ((Component)val).gameObject.AddComponent<UIObserver>()).SetColors(subMenuColors); } } } public class UIObserver : MonoBehaviour { private Dictionary<GameObject, bool> _coloredObjects = new Dictionary<GameObject, bool>(); private SubMenuColor _subMenuColors; public void SetColors(SubMenuColor subMenuColors) { _subMenuColors = subMenuColors; } private void OnTransformChildrenChanged() { ProcessChildren(); } private void ProcessChildren() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) foreach (Transform item in ((Component)this).transform) { Transform child = item; if ((Object)(object)child == (Object)null) { LogWarden.LogError("[UIObserver] Child transform is null in " + ((Object)((Component)this).transform).name); } else if (!(((Object)child).name == "ListHeader (1)") && (((Object)child).name.Contains("LobbyListItem(Clone)") || ((Object)child).name.Contains("LobbyListItemChallenge(Clone)") || ((Object)child).name.Contains("ChallengeLeaderboardSlotItem(Clone)"))) { bool flag = ((Object)child).name.Contains("LobbyListItemChallenge(Clone)") || ((Object)child).name.Contains("ChallengeLeaderboardSlotItem(Clone)"); Color color = (flag ? _subMenuColors.Background7 : _subMenuColors.Background5); ApplyColorToChild(child, color); if (((Object)child).name.Contains("LobbyListItem(Clone)") || ((Object)child).name.Contains("LobbyListItemChallenge(Clone)")) { ApplyChildColors(child, flag); HandleJoinButtonClones(child); } else if (((Object)child).name.Contains("ChallengeLeaderboardSlotItem(Clone)")) { ApplyChallengeColors(child); } DelayHelper.StartDelayedAction(0.01f, delegate { SetupButton(child); }); } } } private void ApplyChildColors(Transform child, bool isChallenge) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) ApplyColors(new List<(string, Color)> { ("Outline", _subMenuColors.BorderColor), ("ServerName", _subMenuColors.TextFontColor), ("NumPlayers", _subMenuColors.SubTextColor), (isChallenge ? "NumPlayers (1)" : null, _subMenuColors.SubTextColor) }, child); } private void ApplyChallengeColors(Transform child) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) ApplyColors(new List<(string, Color)> { ("Outline", _subMenuColors.BorderColor), ("ServerName", _subMenuColors.TextFontColor), ("Collected", _subMenuColors.SubTextColor), ("RankNum", _subMenuColors.TextFontColor) }, child); } private void ApplyColors(List<(string, Color)> colors, Transform parent) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) foreach (var (text, color) in colors) { if (text != null) { CheckAndApplyColor(parent, text, color); } } } private void HandleJoinButtonClones(Transform parent) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown Transform val = parent.Find("NumPlayers"); if (!((Object)(object)val != (Object)null)) { return; } foreach (Transform item in val) { Transform val2 = item; if ((Object)(object)val2 != (Object)null && ((Object)val2).name.Contains("JoinButton(Clone)") && (Object)(object)((Component)val2).GetComponent<Button>() != (Object)null) { SetupJoinButton(val2); } } } private void SetupJoinButton(Transform buttonTransform) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) RectTransform component = ((Component)buttonTransform).GetComponent<RectTransform>(); if ((Object)(object)component != (Object)null) { component.pivot = new Vector2(component.pivot.x, 1f); } Transform val = buttonTransform.Find("SelectionHighlight"); if ((Object)(object)val != (Object)null) { ((Component)val).gameObject.SetActive(true); } } private void SetupButton(Transform child) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_00eb: 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) if ((Object)(object)child == (Object)null) { return; } foreach (Transform item in child) { Transform val = item; if ((Object)(object)val == (Object)null || !((Object)val).name.Contains("JoinButton")) { continue; } Button component = ((Component)val).GetComponent<Button>(); if ((Object)(object)component != (Object)null) { Image component2 = ((Component)val).GetComponent<Image>(); Transform obj = val.Find("Text (TMP)"); TMP_Text val2 = ((obj != null) ? ((Component)obj).GetComponent<TMP_Text>() : null); if ((Object)(object)component2 != (Object)null && (Object)(object)val2 != (Object)null) { HoverButtonDirect(val, _subMenuColors.ButtonRegText, _subMenuColors.ButtonHoverText, _subMenuColors.Darken, _subMenuColors.ButtonHoverBG); SetupEventTriggers(component, component2, val2, _subMenuColors.Darken, _subMenuColors.ButtonHoverBG, _subMenuColors.ButtonRegText, _subMenuColors.ButtonHoverText); ((Graphic)component2).color = _subMenuColors.Darken; } } } } private void HoverButtonDirect(Transform buttonTransform, Color regularFontColor, Color highlightFontColor, Color regularBGColor, Color highlightBGColor) { //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: 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_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Expected O, but got Unknown Button component = ((Component)buttonTransform).GetComponent<Button>(); Animator component2 = ((Component)buttonTransform).GetComponent<Animator>(); Image backgroundImage = ((Component)buttonTransform).GetComponent<Image>(); Transform obj = buttonTransform.Find("Text (TMP)"); TMP_Text textComponent = ((obj != null) ? ((Component)obj).GetComponent<TMP_Text>() : null); if ((Object)(object)component != (Object)null && (Object)(object)textComponent != (Object)null && (Object)(object)backgroundImage != (Object)null) { if ((Object)(object)component2 != (Object)null) { ((Behaviour)component2).enabled = false; } ((Selectable)component).transition = (Transition)0; textComponent.overrideColorTags = true; Color initialTextColor = ((Graphic)textComponent).color; Color initialBGColor = ((Graphic)backgroundImage).color; ((Graphic)textComponent).color = regularFontColor; ((Behaviour)backgroundImage).enabled = true; backgroundImage.pixelsPerUnitMultiplier = 4f; ((Graphic)backgroundImage).color = regularBGColor; RectTransform component3 = ((Component)component).GetComponent<RectTransform>(); component3.anchorMin = new Vector2(component3.anchorMin.x, 0.5f); component3.anchorMax = new Vector2(component3.anchorMax.x, 0.5f); component3.pivot = new Vector2(component3.pivot.x, 0.5f); component3.offsetMax = new Vector2(component3.offsetMax.x, 13f); component3.offsetMin = new Vector2(component3.offsetMin.x, -13f); Transform obj2 = buttonTransform.Find("SelectionHighlight"); if (obj2 != null) { ((Component)obj2).gameObject.SetActive(false); } ((UnityEventBase)component.onClick).RemoveAllListeners(); ((UnityEvent)component.onClick).AddListener((UnityAction)delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = initialBGColor; ((Graphic)textComponent).color = initialTextColor; }); } else { LogWarden.LogError("[HoverButtonDirect] Required components not found on button at '" + ((Object)buttonTransform).name + "'."); } } private void SetupEventTriggers(Button button, Image backgroundImage, TMP_Text textComponent, Color regularBGColor, Color highlightBGColor, Color regularFontColor, Color highlightFontColor) { //IL_000e: 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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) EventTrigger obj = ((Component)button).GetComponent<EventTrigger>() ?? ((Component)button).gameObject.AddComponent<EventTrigger>(); obj.triggers.Clear(); Color initialBGColor = ((Graphic)backgroundImage).color; Color initialTextColor = ((Graphic)textComponent).color; AddEventTrigger(obj, (EventTriggerType)0, delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = highlightBGColor; ((Graphic)textComponent).color = highlightFontColor; }); AddEventTrigger(obj, (EventTriggerType)1, delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = initialBGColor; ((Graphic)textComponent).color = initialTextColor; }); } private static void AddEventTrigger(EventTrigger trigger, EventTriggerType type, UnityAction<BaseEventData> action) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown Entry val = new Entry { eventID = type }; ((UnityEvent<BaseEventData>)(object)val.callback).AddListener(action); trigger.triggers.Add(val); } private void CheckAndApplyColor(Transform parent, string childName, Color color) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) Transform val = parent.Find(childName); if ((Object)(object)val != (Object)null && (!_coloredObjects.TryGetValue(((Component)val).gameObject, out var value) || !value)) { ApplyColorToChild(val, color); } } private void ApplyColorToChild(Transform child, Color color) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)child == (Object)null)) { Graphic component = ((Component)child).GetComponent<Graphic>(); if ((Object)(object)component != (Object)null) { component.color = color; _coloredObjects[((Component)child).gameObject] = true; } else { LogWarden.LogError("[UIObserver] Graphic component not found on " + ((Object)child).name); } } } } public class HoverEffectHandler : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler { public Image backgroundImage; public TMP_Text textComponent; public Color regularBGColor; public Color highlightBGColor; public Color regularFontColor; public Color highlightFontColor; public void OnPointerEnter(PointerEventData eventData) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = highlightBGColor; ((Graphic)textComponent).color = highlightFontColor; } public void OnPointerExit(PointerEventData eventData) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = regularBGColor; ((Graphic)textComponent).color = regularFontColor; } } public class SubMenuColor { public struct UIPath { public string Path; public Type ComponentType; public int Index; public UIPath(string path, Type componentType, int index = 0) { Path = path; ComponentType = componentType; Index = index; } } private static readonly UIPath HOST_BUTTON = new UIPath("Canvas/MenuContainer/MainButtons/HostButton/", typeof(Button)); private static readonly UIPath HOST_BG = new UIPath("MenuContainer/LobbyHostSettings/Image", typeof(Image)); private static readonly UIPath HOST_PANEL_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer", typeof(Image)); private static readonly UIPath HOST_BORDER = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/Image", typeof(Image)); private static readonly UIPath HOST_LAN_TITLE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/LANOptions/Header", typeof(TMP_Text)); private static readonly UIPath HOST_ONLINE_TITLE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/EnterAName", typeof(TMP_Text)); private static readonly UIPath HOST_ONLINE_INPUT_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/ServerNameField", typeof(Image)); private static readonly UIPath HOST_ONLINE_PUBLIC = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/Public", typeof(Button)); private static readonly UIPath HOST_ONLINE_PUBLIC_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/Public", typeof(Image)); private static readonly UIPath HOST_ONLINE_PRIVATE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/Private", typeof(Button)); private static readonly UIPath HOST_ONLINE_PRIVATE_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/Private", typeof(Image)); private static readonly UIPath HOST_LAN_REMOTE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/LANOptions/AllowRemote", typeof(Button)); private static readonly UIPath HOST_LAN_REMOTE_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/LANOptions/AllowRemote", typeof(Image)); private static readonly UIPath HOST_LAN_LOCAL = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/LANOptions/Local", typeof(Button)); private static readonly UIPath HOST_LAN_LOCAL_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/LANOptions/Local", typeof(Image)); private static readonly UIPath HOST_ONLINE_TAG_BORDER = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/ServerTagInputField", typeof(Image)); private static readonly UIPath HOST_ONLINE_TAG_PLACE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/ServerTagInputField/Text Area/Placeholder", typeof(TMP_Text)); private static readonly UIPath HOST_ONLINE_TAG_TEXT = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/ServerTagInputField/Text Area/Text", typeof(TMP_Text)); private static readonly UIPath HOST_CONFIRM = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/Confirm", typeof(Button)); private static readonly UIPath HOST_BACK = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/Back", typeof(Button)); private static readonly UIPath HOST_DESC = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/PrivatePublicDescription", typeof(TMP_Text)); private static readonly UIPath CREWCOUNT_TITLE = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/CrewCountField(Clone)/Text (TMP)", typeof(TMP_Text)); private static readonly UIPath CREWCOUNT_INPUT_BG = new UIPath("MenuContainer/LobbyHostSettings/HostSettingsContainer/LobbyHostOptions/OptionsNormal/CrewCountField(Clone)", typeof(Image)); private static readonly UIPath COSMO_BUTTON = new UIPath("TestOverlay(Clone)/Canvas/GlobalScale/ActivateButton", typeof(Image)); private static readonly UIPath FILE_PANEL_BG = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel", typeof(Image)); private static readonly UIPath FILE_BORDER = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel/Outline", typeof(Image)); private static readonly UIPath FILE_TITLE = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel/EnterAName", typeof(TMP_Text)); private static readonly UIPath FILE_TIP = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel/ChallengeMoonButton/TipText", typeof(TMP_Text)); private static readonly UIPath FILE_DARK = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel/Darken", typeof(Image)); private static readonly UIPath FILES_BUTTON = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel", typeof(TMP_Text)); private static readonly UIPath FILES_IMAGES = new UIPath("MenuContainer/LobbyHostSettings/FilesPanel", typeof(Image)); private static readonly UIPath LEAD_BORDER = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel", typeof(Image)); private static readonly UIPath LEAD_TITLE = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/ListHeader", typeof(TMP_Text)); private static readonly UIPath LEAD_REFRESH = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/RefreshButton", typeof(Button)); private static readonly UIPath LEAD_BACK = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/Back", typeof(Button)); private static readonly UIPath LEAD_REMOVE = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/RemoveScore", typeof(Button)); private static readonly UIPath LEAD_PLAY = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Retry", typeof(Button)); private static readonly UIPath LEAD_SCROLL_BAR = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Scroll View/Scrollbar Vertical", typeof(Image)); private static readonly UIPath LEAD_SCROLL_HANDLE = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Scroll View/Scrollbar Vertical", typeof(Scrollbar)); private static readonly UIPath LEAD_DROP = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown", typeof(TMP_Dropdown)); private static readonly UIPath LEAD_DROP_TEXT = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Label", typeof(TMP_Text)); private static readonly UIPath LEAD_DROP_ARROW = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Arrow", typeof(Image)); private static readonly UIPath LEAD_DROP_BG = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Template", typeof(Image)); private static readonly UIPath LEAD_DROP_ITEM_BG = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Background", typeof(Image)); private static readonly UIPath LEAD_DROP_ITEM_CHECK = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Checkmark", typeof(Image)); private static readonly UIPath LEAD_DROP_ITEM_TEXT = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Label", typeof(Image)); private static readonly UIPath LEAD_DROP_ITEM_TOGGLE = new UIPath("MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Dropdown/Template/Viewport/Content/Item", typeof(Toggle)); private static readonly UIPath LOBBY_BG = new UIPath("MenuContainer/LobbyList/LobbyBackground", typeof(Image)); private static readonly UIPath LOBBY_TITLE = new UIPath("MenuContainer/LobbyList/ListPanel/ListHeader", typeof(TMP_Text)); private static readonly UIPath LOBBY_PANEL_BG = new UIPath("MenuContainer/LobbyList/ListPanel/Scroll View", typeof(Image)); private static readonly UIPath LOBBY_BORDER = new UIPath("MenuContainer/LobbyList/ListPanel", typeof(Image)); private static readonly UIPath LOBBY_REFRESH = new UIPath("MenuContainer/LobbyList/ListPanel/RefreshButton", typeof(Button)); private static readonly UIPath LOBBYCOMPAT_REFRESH = new UIPath("MenuContainer/LobbyList/ListPanel/RefreshButton/SelectionHighlight(Clone)", typeof(Image)); private static readonly UIPath LOBBYCOMPAT_REFRESH_HOVER = new UIPath("MenuContainer/LobbyList/ListPanel/RefreshButton/SelectionHighlight", typeof(Image)); private static readonly UIPath LOBBY_BACK = new UIPath("MenuContainer/LobbyList/BackToMenu", typeof(Button)); private static readonly UIPath LOBBY_SCROLL_BAR = new UIPath("MenuContainer/LobbyList/ListPanel/Scroll View/Scrollbar Vertical", typeof(Image)); private static readonly UIPath LOBBY_SCROLL_HANDLE = new UIPath("MenuContainer/LobbyList/ListPanel/Scroll View/Scrollbar Vertical", typeof(Scrollbar)); private static readonly UIPath LOBBY_LIST_STATUS = new UIPath("MenuContainer/LobbyList/ListPanel/Scroll View/Viewport/Content/ListHeader (1)", typeof(TMP_Text)); private static readonly UIPath LOBBY_TAG_BORDER = new UIPath("MenuContainer/LobbyList/ListPanel/ServerTagInputField", typeof(Image)); private static readonly UIPath LOBBY_TAG_TEXT = new UIPath("MenuContainer/LobbyList/ListPanel/ServerTagInputField/Text Area/Text", typeof(TMP_Text)); private static readonly UIPath LOBBY_TAG_PLACEHOLDER = new UIPath("MenuContainer/LobbyList/ListPanel/ServerTagInputField/Text Area/Placeholder", typeof(TMP_Text)); private static readonly UIPath LOBBY_SORT_CHAL_BORDER = new UIPath("MenuContainer/LobbyList/ListPanel/ToggleChallengeSort", typeof(Image)); private static readonly UIPath LOBBY_SORT_CHAL_TEXT = new UIPath("MenuContainer/LobbyList/ListPanel/ToggleChallengeSort/Text (TMP)", typeof(TMP_Text)); private static readonly UIPath LOBBY_SORT_CHAL_BOX = new UIPath("MenuContainer/LobbyList/ListPanel/ToggleChallengeSort/Arrow", typeof(Image)); private static readonly UIPath LOBBY_SORT_CHAL_BOX_CHECK = new UIPath("MenuContainer/LobbyList/ListPanel/ToggleChallengeSort/Arrow (1)", typeof(Image)); private static readonly UIPath LOBBY_DROP = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown", typeof(TMP_Dropdown)); private static readonly UIPath LOBBY_DROP_TEXT = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Label", typeof(TMP_Text)); private static readonly UIPath LOBBY_DROP_ARROW = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Arrow", typeof(Image)); private static readonly UIPath LOBBY_DROP_BG = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Template", typeof(Image)); private static readonly UIPath LOBBY_DROP_ITEM_BG = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Background", typeof(Image)); private static readonly UIPath LOBBY_DROP_ITEM_CHECK = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Checkmark", typeof(Image)); private static readonly UIPath LOBBY_DROP_ITEM_TEXT = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Template/Viewport/Content/Item/Item Label", typeof(Image)); private static readonly UIPath LOBBY_DROP_ITEM_TOGGLE = new UIPath("MenuContainer/LobbyList/ListPanel/Dropdown/Template/Viewport/Content/Item", typeof(Toggle)); private static readonly UIPath LANWARN_BG = new UIPath("MenuContainer/LANWarning/Image", typeof(Image)); private static readonly UIPath LANWARN_PANEL_BG = new UIPath("MenuContainer/LANWarning/Panel", typeof(Image)); private static readonly UIPath LANWARN_BORDER = new UIPath("MenuContainer/LANWarning/Panel/Image", typeof(Image)); private static readonly UIPath LANWARN_TEXT = new UIPath("MenuContainer/LANWarning/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath LANWARN_CONFIRM = new UIPath("MenuContainer/LANWarning/Panel/Confirm", typeof(Button)); private static readonly UIPath NOTIFY_BG = new UIPath("MenuContainer/MenuNotification/Image", typeof(Image)); private static readonly UIPath NOTIFY_PANEL_BG = new UIPath("MenuContainer/MenuNotification/Panel", typeof(Image)); private static readonly UIPath NOTIFY_BORDER = new UIPath("MenuContainer/MenuNotification/Panel/Image", typeof(Image)); private static readonly UIPath NOTIFY_TEXT = new UIPath("MenuContainer/MenuNotification/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath NOTIFY_BACK = new UIPath("MenuContainer/MenuNotification/Panel/ResponseButton", typeof(Button)); private static readonly UIPath DELETE_BG = new UIPath("MenuContainer/DeleteFileConfirmation/Image", typeof(Image)); private static readonly UIPath DELETE_PANEL_BG = new UIPath("MenuContainer/DeleteFileConfirmation/Panel", typeof(Image)); private static readonly UIPath DELETE_BORDER = new UIPath("MenuContainer/DeleteFileConfirmation/Panel/Image", typeof(Image)); private static readonly UIPath DELETE_TEXT = new UIPath("MenuContainer/DeleteFileConfirmation/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath DELETE_CONFIRM = new UIPath("MenuContainer/DeleteFileConfirmation/Panel/Delete", typeof(Button)); private static readonly UIPath DELETE_BACK = new UIPath("MenuContainer/DeleteFileConfirmation/Panel/Back", typeof(Button)); private static readonly UIPath CREDITS_BG = new UIPath("MenuContainer/CreditsPanel/Image", typeof(Image)); private static readonly UIPath CREDITS_PANEL_BG = new UIPath("MenuContainer/CreditsPanel/Panel", typeof(Image)); private static readonly UIPath CREDITS_BORDER = new UIPath("MenuContainer/CreditsPanel/Panel/Image", typeof(Image), 1); private static readonly UIPath CREDITS_TITLE = new UIPath("MenuContainer/CreditsPanel/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath CREDITS_TITLE_BG = new UIPath("MenuContainer/CreditsPanel/Panel/Image", typeof(Image)); private static readonly UIPath CREDITS_TEXT = new UIPath("MenuContainer/CreditsPanel/Panel/Scroll View/Viewport/Content/CreditsText", typeof(TMP_Text)); private static readonly UIPath CREDITS_TEXT_BG = new UIPath("MenuContainer/CreditsPanel/Panel/Scroll View", typeof(Image)); private static readonly UIPath CREDITS_BACK = new UIPath("MenuContainer/CreditsPanel/Panel/BackButton", typeof(Button)); private static readonly UIPath CREDITS_SCROLL_BAR = new UIPath("MenuContainer/CreditsPanel/Panel/Scroll View/Scrollbar Vertical", typeof(Image)); private static readonly UIPath CREDITS_SCROLL_HANDLE = new UIPath("MenuContainer/CreditsPanel/Panel/Scroll View/Scrollbar Vertical/Sliding Area/Handle", typeof(Image)); private static readonly UIPath NEWS_BG = new UIPath("MenuContainer/NewsPanel/Image", typeof(Image)); private static readonly UIPath NEWS_PANEL_BG = new UIPath("MenuContainer/NewsPanel/Panel", typeof(Image)); private static readonly UIPath NEWS_BORDER = new UIPath("MenuContainer/NewsPanel/Panel/Image", typeof(Image), 1); private static readonly UIPath NEWS_TITLE = new UIPath("MenuContainer/NewsPanel/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath NEWS_TEXT = new UIPath("MenuContainer/NewsPanel/Panel/DemoText", typeof(TMP_Text)); private static readonly UIPath NEWS_CONFIRM = new UIPath("MenuContainer/NewsPanel/Panel/ResponseButton", typeof(Button)); private static readonly UIPath NEWS_BOX_1 = new UIPath("MenuContainer/NewsPanel/Panel/Image", typeof(Image)); private static readonly UIPath NEWS_BOX_2 = new UIPath("MenuContainer/NewsPanel/Panel/Image (1)", typeof(Image)); private static readonly UIPath NEWS_BOX_3 = new UIPath("MenuContainer/NewsPanel/Panel/Image (2)", typeof(Image)); private static readonly UIPath NEWS_BOX_4 = new UIPath("MenuContainer/NewsPanel/Panel/Image (3)", typeof(Image)); private static readonly UIPath NEWS_BOX_5 = new UIPath("MenuContainer/NewsPanel/Panel/Image (4)", typeof(Image)); private static readonly UIPath NEWS_BOX_6 = new UIPath("MenuContainer/NewsPanel/Panel/Image (5)", typeof(Image)); private static readonly UIPath SETTINGS_CONFIRM = new UIPath("MenuContainer/SettingsPanel/Confirm", typeof(Button)); private static readonly UIPath SETTINGS_BACK = new UIPath("MenuContainer/SettingsPanel/BackButton", typeof(Button)); private static readonly UIPath SETTINGS_DEFAULT = new UIPath("MenuContainer/SettingsPanel/SetToDefault", typeof(Button)); private static readonly UIPath SETTINGS_KEYBINDINGS = new UIPath("MenuContainer/SettingsPanel/KeybindingsButton", typeof(Button)); private static readonly UIPath SETTINGS_KEYS_TITLE = new UIPath("MenuContainer/SettingsPanel/KeybindsPanel/Controls (1)", typeof(TMP_Text)); private static readonly UIPath KEYS_SCROLL_BAR = new UIPath("MenuContainer/SettingsPanel/KeybindsPanel/Scroll View/Scrollbar Vertical", typeof(Image)); private static readonly UIPath KEYS_SCROLL_HANDLE = new UIPath("MenuContainer/SettingsPanel/KeybindsPanel/Scroll View/Scrollbar Vertical/Sliding Area/Handle", typeof(Image)); private static readonly UIPath SETTINGS_KEYS_REBIND_TEXT = new UIPath("MenuContainer/SettingsPanel/KeybindsPanel/Scroll View/Viewport/Content/RemapKeysContainer/KeybindsSectionText(Clone)", typeof(TMP_Text)); private static readonly UIPath SETTINGS_KEYS_BACK = new UIPath("MenuContainer/SettingsPanel/KeybindsPanel/Back", typeof(Button)); private static readonly UIPath SETTINGS_KEYS_DEFAULT = new UIPath("MenuContainer/SettingsPanel/SetDefault", typeof(Button)); private static readonly UIPath CUSTOM_BG = new UIPath("MenuContainer/CustomMenuPanel/Image", typeof(Image)); private static readonly UIPath CUSTOM_PANEL_BG = new UIPath("MenuContainer/CustomMenuPanel/Panel", typeof(Image)); private static readonly UIPath CUSTOM_BORDER = new UIPath("MenuContainer/CustomMenuPanel/Panel/Image", typeof(Image), 1); private static readonly UIPath CUSTOM_TITLE = new UIPath("MenuContainer/CustomMenuPanel/Panel/NotificationText", typeof(TMP_Text)); private static readonly UIPath CUSTOM_TITLE_BG = new UIPath("MenuContainer/CustomMenuPanel/Panel/Image", typeof(Image)); private static readonly UIPath CUSTOM_TEXT = new UIPath("MenuContainer/CustomMenuPanel/Panel/Scroll View/Viewport/Content/CreditsText", typeof(TMP_Text)); private static readonly UIPath CUSTOM_TEXT_BG = new UIPath("MenuContainer/CustomMenuPanel/Panel/Scroll View", typeof(Image)); private static readonly UIPath CUSTOM_BACK = new UIPath("MenuContainer/CustomMenuPanel/Panel/BackButton", typeof(Button)); private static readonly UIPath CUSTOM_SCROLL_BAR = new UIPath("MenuContainer/CustomMenuPanel/Panel/Scroll View/Scrollbar Vertical", typeof(Image)); private static readonly UIPath CUSTOM_SCROLL_HANDLE = new UIPath("MenuContainer/CustomMenuPanel/Panel/Scroll View/Scrollbar Vertical/Sliding Area/Handle", typeof(Image)); private Configurator ConfigManager => Configurator.Instance; public Color ThemeColor { get; set; } public Color Background1 { get; set; } public Color Background2 { get; set; } public Color Background3 { get; set; } public Color Background4 { get; set; } public Color Background5 { get; set; } public Color Background6 { get; set; } public Color Background7 { get; set; } public Color Background8 { get; set; } public Color BorderColor { get; set; } public Color Highlight { get; set; } public Color TextFontColor { get; set; } public Color SubTextColor { get; set; } public Color DarkTextColor { get; set; } public Color ScrollBarColor { get; set; } public Color Darken { get; set; } public Color ButtonRegText { get; set; } public Color ButtonHoverText { get; set; } public Color ButtonHoverBG { get; set; } public void RecolorSubMenus() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) if (ConfigManager.enableSubMenuColor.Value) { ThemeColor = ColorParser.RGBA(ConfigManager.subMenuColor.Value); InitializeThemeColors(); ApplyColors(); SetupDynamicRecoloring(); } } private void InitializeThemeColors() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_0073: 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_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0162: 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_018b: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: 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) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) Background1 = AdjustColor(ThemeColor, 0f, 0.7882f); Background2 = AdjustColor(ThemeColor, 1f, 0.4902f); Background3 = AdjustColor(ThemeColor, 0.3396f, 0.7f); Background4 = AdjustColor(ThemeColor, 1f, 0.0353f); Background5 = AdjustColor(ThemeColor, 0.35f, 0.9f); Background6 = AdjustColor(ThemeColor, 0.4f, 0.5f); Background7 = AdjustColor(ThemeColor, 0.5f, 0.8f); Background8 = AdjustColor(ThemeColor, 0f, 0.95f); BorderColor = AdjustColor(ThemeColor, 0.6698f, 1f); Highlight = AdjustColor(ThemeColor, 1f, 0.9451f); TextFontColor = AdjustColor(ThemeColor, 0.9529f, 1f); SubTextColor = AdjustColor(ThemeColor, 1f, 0.4471f); DarkTextColor = AdjustColor(ThemeColor, 0.2f, 0.9f); ScrollBarColor = AdjustColor(ThemeColor, 0.5f, 0.3f); Darken = AdjustColor(ThemeColor, 0f, 0.2f); if (ConfigManager.enableUseMenuColors.Value) { ButtonRegText = ColorParser.RGBA(ConfigManager.menuFontColor.Value); ButtonHoverText = ColorParser.RGBA(ConfigManager.menuRolloverFontColor.Value); ButtonHoverBG = ColorParser.RGBA(ConfigManager.menuRolloverBGColor.Value); } else { ButtonRegText = Highlight; ButtonHoverText = Color.black; ButtonHoverBG = Highlight; } } private Color AdjustColor(Color baseColor, float factor, float alpha) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) return new Color(Mathf.Clamp(baseColor.r * factor, 0f, 1f), Mathf.Clamp(baseColor.g * factor, 0f, 1f), Mathf.Clamp(baseColor.b * factor, 0f, 1f), alpha); } public void ApplyColors() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0066: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: 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_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: 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_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_024a: 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_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_026b: 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_027c: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0313: 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_033e: Unknown result type (might be due to invalid IL or missing references) //IL_034e: 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_036e: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_045c: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_0542: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_0584: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_060c: 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_0618: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_064a: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_067a: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_0699: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06df: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06eb: Unknown result type (might be due to invalid IL or missing references) //IL_06fb: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_071b: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0751: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) //IL_075d: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_078d: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07ad: Unknown result type (might be due to invalid IL or missing references) //IL_07bd: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07ef: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0811: Unknown result type (might be due to invalid IL or missing references) //IL_0817: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_083f: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Unknown result type (might be due to invalid IL or missing references) //IL_0865: Unknown result type (might be due to invalid IL or missing references) //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_088b: Unknown result type (might be due to invalid IL or missing references) //IL_089b: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08ad: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08c3: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08f4: Unknown result type (might be due to invalid IL or missing references) //IL_0904: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0963: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_0983: Unknown result type (might be due to invalid IL or missing references) //IL_0989: Unknown result type (might be due to invalid IL or missing references) //IL_098f: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) SetColor(HOST_BG, Background8); SetColor(HOST_PANEL_BG, Background3); SetColor(HOST_BORDER, BorderColor); SetColor(HOST_LAN_TITLE, TextFontColor); SetColor(HOST_ONLINE_TITLE, TextFontColor); SetColor(HOST_ONLINE_INPUT_BG, Background2); SetColor(HOST_ONLINE_TAG_BORDER, BorderColor); SetColor(HOST_ONLINE_PUBLIC_BG, Background4); SetColor(HOST_ONLINE_PRIVATE_BG, Background4); SetColor(HOST_LAN_LOCAL_BG, Background4); SetColor(HOST_LAN_REMOTE_BG, Background4); SetColor(HOST_ONLINE_TAG_PLACE, TextFontColor); SetColor(HOST_ONLINE_TAG_TEXT, TextFontColor); SetColor(HOST_DESC, Highlight); SetColor(HOST_ONLINE_TAG_TEXT, TextFontColor); HandleToggleButtons(HOST_ONLINE_PUBLIC, HOST_ONLINE_PRIVATE); HandleToggleButtons(HOST_LAN_REMOTE, HOST_LAN_LOCAL); HoverButton(HOST_CONFIRM, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); HoverButton(HOST_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); if (PluginFinder.MoreCompany) { SetColor(CREWCOUNT_TITLE, Highlight); SetColor(CREWCOUNT_INPUT_BG, Background2); SetColor(COSMO_BUTTON, Highlight); } SetColor(FILE_PANEL_BG, Background3); SetColor(FILE_BORDER, BorderColor); SetColor(FILE_TITLE, TextFontColor); SetColor(FILE_TIP, Highlight); SetColor(FILE_DARK, Darken); if (!PluginFinder.BetterSaves) { RecolorChildObjects(FILES_IMAGES, "File", "DeleteButton", TextFontColor); SetupHostButton(); } SetColor(LEAD_BORDER, BorderColor); SetColor(LEAD_TITLE, TextFontColor); HoverButton(LEAD_REFRESH, ButtonRegText, ButtonHoverText, Color.clear, ButtonHoverBG); HoverButton(LEAD_BACK, ButtonRegText, ButtonHoverText, Color.clear, ButtonHoverBG); HoverButton(LEAD_REMOVE, ButtonRegText, ButtonHoverText, Color.clear, ButtonHoverBG); HoverButton(LEAD_PLAY, ButtonRegText, ButtonHoverText, Color.clear, ButtonHoverBG); SetColor(LEAD_SCROLL_BAR, ScrollBarColor); UpdateScrollbarColors(LEAD_SCROLL_HANDLE); UpdateDropdownColors(LEAD_DROP); SetColor(LEAD_DROP_TEXT, TextFontColor); SetColor(LEAD_DROP_ARROW, Highlight); SetColor(LEAD_DROP_BG, Background5); SetColor(LEAD_DROP_ITEM_BG, Background2); SetColor(LEAD_DROP_ITEM_CHECK, Background7); SetColor(LEAD_DROP_ITEM_TEXT, SubTextColor); UpdateToggleColors(LEAD_DROP_ITEM_TOGGLE); SetColor(LOBBY_BG, Background1); SetColor(LOBBY_PANEL_BG, Background3); SetColor(LOBBY_BORDER, BorderColor); SetColor(LOBBY_TITLE, SubTextColor); if (PluginFinder.LobbyCompat) { DelayHelper.StartDelayedAction(0.3f, delegate { //IL_0006: Unknown result type (might be due to invalid IL or missing references) SetColor(LOBBYCOMPAT_REFRESH, ButtonRegText); }); SetColor(LOBBYCOMPAT_REFRESH_HOVER, ButtonHoverBG); } else { HoverButton(LOBBY_REFRESH, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); } HoverButton(LOBBY_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(LOBBY_SCROLL_BAR, ScrollBarColor); UpdateScrollbarColors(LOBBY_SCROLL_HANDLE); SetColor(LOBBY_LIST_STATUS, Highlight); SetColor(LOBBY_TAG_BORDER, BorderColor); SetColor(LOBBY_TAG_TEXT, TextFontColor); SetColor(LOBBY_TAG_PLACEHOLDER, TextFontColor); SetColor(LOBBY_SORT_CHAL_BORDER, BorderColor); SetColor(LOBBY_SORT_CHAL_TEXT, TextFontColor); SetColor(LOBBY_SORT_CHAL_BOX, BorderColor); SetColor(LOBBY_SORT_CHAL_BOX_CHECK, BorderColor); UpdateDropdownColors(LOBBY_DROP); SetColor(LOBBY_DROP_TEXT, TextFontColor); SetColor(LOBBY_DROP_ARROW, Highlight); SetColor(LOBBY_DROP_BG, Background5); SetColor(LOBBY_DROP_ITEM_BG, Background2); SetColor(LOBBY_DROP_ITEM_CHECK, Background7); SetColor(LOBBY_DROP_ITEM_TEXT, SubTextColor); UpdateToggleColors(LOBBY_DROP_ITEM_TOGGLE); SetColor(LANWARN_BG, Background1); SetColor(LANWARN_PANEL_BG, Background3); SetColor(LANWARN_BORDER, BorderColor); SetColor(LANWARN_TEXT, SubTextColor); HoverButton(LANWARN_CONFIRM, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(NOTIFY_BG, Background1); SetColor(NOTIFY_PANEL_BG, Background3); SetColor(NOTIFY_BORDER, BorderColor); SetColor(NOTIFY_TEXT, SubTextColor); HoverButton(NOTIFY_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(DELETE_BG, Background1); SetColor(DELETE_PANEL_BG, Background3); SetColor(DELETE_BORDER, BorderColor); SetColor(DELETE_TEXT, SubTextColor); HoverButton(DELETE_CONFIRM, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); HoverButton(DELETE_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(CREDITS_BG, Background1); SetColor(CREDITS_PANEL_BG, Background3); SetColor(CREDITS_BORDER, BorderColor); SetColor(CREDITS_TITLE, TextFontColor); SetColor(CREDITS_TITLE_BG, Color.clear); SetColor(CREDITS_TEXT, TextFontColor); SetColor(CREDITS_TEXT_BG, Background3); SetColor(CREDITS_SCROLL_BAR, ScrollBarColor); SetColor(CREDITS_SCROLL_HANDLE, BorderColor); HoverButton(CREDITS_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(NEWS_BG, Background1); SetColor(NEWS_PANEL_BG, Background5); SetColor(NEWS_BORDER, BorderColor); SetColor(NEWS_TITLE, Highlight); SetColor(NEWS_TEXT, SubTextColor); HoverButton(NEWS_CONFIRM, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); SetColor(NEWS_BOX_1, Background6); SetColor(NEWS_BOX_2, Background6); SetColor(NEWS_BOX_3, Background6); SetColor(NEWS_BOX_4, Background6); SetColor(NEWS_BOX_5, Background6); SetColor(NEWS_BOX_6, Background6); HoverButton(SETTINGS_KEYBINDINGS, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); HoverButton(SETTINGS_CONFIRM, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); HoverButton(SETTINGS_BACK, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); HoverButton(SETTINGS_DEFAULT, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); SetColor(SETTINGS_KEYS_TITLE, Highlight); SetColor(KEYS_SCROLL_BAR, ScrollBarColor); SetColor(KEYS_SCROLL_HANDLE, Highlight); SetColorOnButtonClick(SETTINGS_KEYS_REBIND_TEXT, SETTINGS_KEYBINDINGS, TextFontColor); HoverButton(SETTINGS_KEYS_BACK, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); HoverButton(SETTINGS_KEYS_DEFAULT, ButtonRegText, ButtonHoverText, Background1, ButtonHoverBG); if (ConfigManager.enableCustomMenuItem.Value) { SetColor(CUSTOM_BG, Background1); SetColor(CUSTOM_PANEL_BG, Background3); SetColor(CUSTOM_BORDER, BorderColor); SetColor(CUSTOM_TITLE, TextFontColor); SetColor(CUSTOM_TITLE_BG, Color.clear); SetColor(CUSTOM_TEXT, TextFontColor); SetColor(CUSTOM_TEXT_BG, Background3); SetColor(CUSTOM_SCROLL_BAR, ScrollBarColor); SetColor(CUSTOM_SCROLL_HANDLE, BorderColor); HoverButton(CUSTOM_BACK, ButtonRegText, ButtonHoverText, Darken, ButtonHoverBG); } } public void SetupDynamicRecoloring() { if ((Object)(object)DynamicColorManager.Instance == (Object)null) { LogWarden.LogError("DynamicColorManager instance not found."); return; } DynamicColorManager.Instance.SubMenuColors = this; string parentPath = "MenuContainer/LobbyList/ListPanel/Scroll View/Viewport/Content"; DynamicColorManager.Instance.AttachObserver(parentPath, this); string parentPath2 = "MenuContainer/LobbyHostSettings/ChallengeLeaderboard/LobbyList (1)/ListPanel/Scroll View/Viewport/Content/"; DynamicColorManager.Instance.AttachObserver(parentPath2, this); } public void UpdateScrollbarColors(UIPath uiPath) { //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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(uiPath.Path); if ((Object)(object)val == (Object)null) { LogWarden.LogError("[DynamicColorManager] Scrollbar path not found: " + uiPath.Path); return; } Component component = ((Component)val).GetComponent(uiPath.ComponentType); if ((Object)(object)component == (Object)null || !(component is Scrollbar)) { LogWarden.LogError("[DynamicColorManager] No " + uiPath.ComponentType.Name + " component found at path: " + uiPath.Path); return; } Component obj = ((component is Scrollbar) ? component : null); ColorBlock colors = ((Selectable)obj).colors; ((ColorBlock)(ref colors)).normalColor = Background2; ((ColorBlock)(ref colors)).highlightedColor = BorderColor; ((ColorBlock)(ref colors)).pressedColor = BorderColor; ((Selectable)obj).colors = colors; } public void UpdateDropdownColors(UIPath uiPath) { //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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(uiPath.Path); if ((Object)(object)val == (Object)null) { LogWarden.LogError("[DynamicColorManager] Dropdown path not found: " + uiPath.Path); return; } Component component = ((Component)val).GetComponent(uiPath.ComponentType); if ((Object)(object)component == (Object)null || !(component is TMP_Dropdown)) { LogWarden.LogError("[DynamicColorManager] No " + uiPath.ComponentType.Name + " component found at path: " + uiPath.Path); return; } Component obj = ((component is TMP_Dropdown) ? component : null); ColorBlock colors = ((Selectable)obj).colors; ((ColorBlock)(ref colors)).normalColor = Background2; ((ColorBlock)(ref colors)).highlightedColor = Highlight; ((ColorBlock)(ref colors)).pressedColor = Highlight; ((Selectable)obj).colors = colors; } public void UpdateToggleColors(UIPath uiPath) { //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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(uiPath.Path); if ((Object)(object)val == (Object)null) { LogWarden.LogError("[DynamicColorManager] Toggle path not found: " + uiPath.Path); return; } Component component = ((Component)val).GetComponent(uiPath.ComponentType); if ((Object)(object)component == (Object)null || !(component is Toggle)) { LogWarden.LogError("[DynamicColorManager] No " + uiPath.ComponentType.Name + " component found at path: " + uiPath.Path); return; } Component obj = ((component is Toggle) ? component : null); ColorBlock colors = ((Selectable)obj).colors; ((ColorBlock)(ref colors)).normalColor = Background6; ((ColorBlock)(ref colors)).highlightedColor = Background7; ((ColorBlock)(ref colors)).pressedColor = Background7; ((ColorBlock)(ref colors)).selectedColor = Background7; ((ColorBlock)(ref colors)).disabledColor = Darken; ((Selectable)obj).colors = colors; } public static void SetColor(UIPath uiPath, Color color) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) Transform[] array = PathFinder.ProbeAll(uiPath.Path); if (array != null && array.Length > uiPath.Index) { Transform val = array[uiPath.Index]; if ((Object)(object)val != (Object)null) { TMP_Text component = ((Component)val).GetComponent<TMP_Text>(); if ((Object)(object)component != (Object)null) { component.overrideColorTags = true; ((Graphic)component).color = color; return; } Graphic component2 = ((Component)val).GetComponent<Graphic>(); if ((Object)(object)component2 != (Object)null) { component2.color = color; } else { LogWarden.LogError($"[SetColor] {uiPath.ComponentType.Name} component not found on object at '{uiPath.Path}' with index {uiPath.Index}."); } } else { LogWarden.LogError($"[SetColor] Object at index {uiPath.Index} not found at '{uiPath.Path}'."); } } else { LogWarden.LogError($"[SetColor] Not enough objects found at '{uiPath.Path}'. Expected at least {uiPath.Index + 1}, found {array.Length}."); } } private void RecolorChildObjects(UIPath parentUIPath, string parentNamePrefix, string childName, Color color) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(parentUIPath.Path); if ((Object)(object)val != (Object)null) { foreach (Transform item in val) { Transform val2 = item; if (((Object)val2).name.StartsWith(parentNamePrefix)) { Transform val3 = val2.Find(childName); if (Object.op_Implicit((Object)(object)val3)) { Component component = ((Component)val3).GetComponent(parentUIPath.ComponentType); Graphic val4 = (Graphic)(object)((component is Graphic) ? component : null); if (Object.op_Implicit((Object)(object)val4)) { val4.color = color; } else { LogWarden.LogError("[SubMenuColor] " + parentUIPath.ComponentType.Name + " component not found on child '" + childName + "' in parent '" + ((Object)val2).name + "'."); } } else { LogWarden.LogError("[SubMenuColor] Child '" + childName + "' not found in parent '" + ((Object)val2).name + "'."); } } } return; } LogWarden.LogError("[SubMenuColor] Parent path '" + parentUIPath.Path + "' not found."); } public static void HoverButton(UIPath uiPath, Color regularFontColor, Color highlightFontColor, Color regularBGColor, Color highlightBGColor) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Expected O, but got Unknown Transform val = PathFinder.Probe(uiPath.Path); if ((Object)(object)val != (Object)null) { Button component = ((Component)val).GetComponent<Button>(); Animator component2 = ((Component)val).GetComponent<Animator>(); Image backgroundImage = ((Component)val).GetComponent<Image>(); Transform obj = val.Find("Text (TMP)"); TMP_Text textComponent = ((obj != null) ? ((Component)obj).GetComponent<TMP_Text>() : null); if ((Object)(object)component != (Object)null && (Object)(object)textComponent != (Object)null && (Object)(object)backgroundImage != (Object)null) { if ((Object)(object)component2 != (Object)null) { ((Behaviour)component2).enabled = false; } ((Selectable)component).transition = (Transition)0; textComponent.overrideColorTags = true; ((Graphic)textComponent).color = regularFontColor; ((Behaviour)backgroundImage).enabled = true; backgroundImage.pixelsPerUnitMultiplier = 4f; ((Graphic)backgroundImage).color = regularBGColor; RectTransform component3 = ((Component)backgroundImage).GetComponent<RectTransform>(); if (component3 != null) { component3.SetSizeWithCurrentAnchors((Axis)1, 22f); } ((UnityEventBase)component.onClick).RemoveAllListeners(); ((UnityEvent)component.onClick).AddListener((UnityAction)delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = regularBGColor; ((Graphic)textComponent).color = regularFontColor; }); EventTrigger component4 = ((Component)component).GetComponent<EventTrigger>(); if ((Object)(object)component4 != (Object)null) { Object.Destroy((Object)(object)component4); } EventTrigger trigger = ((Component)component).gameObject.AddComponent<EventTrigger>(); AddEventTrigger(trigger, (EventTriggerType)0, delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = highlightBGColor; ((Graphic)textComponent).color = highlightFontColor; }); AddEventTrigger(trigger, (EventTriggerType)1, delegate { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = regularBGColor; ((Graphic)textComponent).color = regularFontColor; }); Transform obj2 = val.Find("SelectionHighlight"); CanvasRenderer val2 = ((obj2 != null) ? ((Component)obj2).GetComponent<CanvasRenderer>() : null); if ((Object)(object)val2 != (Object)null) { val2.cull = true; } } else { LogWarden.LogError("[HoverButton] Required components not found at '" + uiPath.Path + "'."); } } else { LogWarden.LogError("[HoverButton] Failed to find path '" + uiPath.Path + "'."); } } private static void AddEventTrigger(EventTrigger trigger, EventTriggerType type, UnityAction<BaseEventData> action) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown Entry val = new Entry { eventID = type }; ((UnityEvent<BaseEventData>)(object)val.callback).AddListener(action); trigger.triggers.Add(val); } private void HandleToggleButtons(UIPath buttonPath1, UIPath buttonPath2) { ToggleButton(buttonPath1, highlighted: false); ToggleButton(buttonPath2, highlighted: true); AttachToggleHandler(buttonPath1, buttonPath2); AttachToggleHandler(buttonPath2, buttonPath1); } private void AttachToggleHandler(UIPath buttonPath, UIPath otherButtonPath) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown Transform obj = PathFinder.Probe(buttonPath.Path); Button val = ((obj != null) ? ((Component)obj).GetComponent<Button>() : null); if ((Object)(object)val != (Object)null) { ((UnityEvent)val.onClick).AddListener((UnityAction)delegate { ToggleButton(buttonPath, highlighted: true); }); ((UnityEvent)val.onClick).AddListener((UnityAction)delegate { ToggleButton(otherButtonPath, highlighted: false); }); } else { LogWarden.LogError("[SubMenuColor] Button component not found at '" + buttonPath.Path + "'."); } } private void ToggleButton(UIPath buttonPath, bool highlighted) { //IL_0060: 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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(buttonPath.Path); Image val2 = ((val != null) ? ((Component)val).GetComponent<Image>() : null); Animator val3 = ((val != null) ? ((Component)val).GetComponent<Animator>() : null); if ((Object)(object)val3 != (Object)null) { ((Behaviour)val3).enabled = false; } if ((Object)(object)val2 != (Object)null) { ((Behaviour)val2).enabled = true; val2.pixelsPerUnitMultiplier = 4f; ((Graphic)val2).color = (highlighted ? ButtonHoverBG : Color.clear); Transform val4 = val.Find("SelectionHighlight"); if ((Object)(object)val4 != (Object)null) { Image component = ((Component)val4).GetComponent<Image>(); if ((Object)(object)component != (Object)null) { ((Behaviour)component).enabled = false; } } TMP_Text componentInChildren = ((Component)val).GetComponentInChildren<TMP_Text>(); if ((Object)(object)componentInChildren != (Object)null) { componentInChildren.overrideColorTags = true; ((Graphic)componentInChildren).color = (highlighted ? ButtonHoverText : ButtonRegText); componentInChildren.extraPadding = true; componentInChildren.fontSizeMax = 13f; componentInChildren.fontStyle = (FontStyles)16; RectTransform rectTransform = componentInChildren.rectTransform; Vector3 localScale = ((Transform)rectTransform).localScale; ((Transform)rectTransform).localScale = new Vector3(localScale.x, 1.1f, localScale.z); } { foreach (Transform item in val) { TMP_Text[] componentsInChildren = ((Component)item).GetComponentsInChildren<TMP_Text>(); foreach (TMP_Text val5 in componentsInChildren) { if (((Object)((Component)val5).gameObject).name == "StatsText") { val5.overrideColorTags = true; ((Graphic)val5).color = (highlighted ? ButtonHoverText : ButtonRegText); } } } return; } } LogWarden.LogError("[SubMenuColor] Image component for highlight not found at '" + buttonPath.Path + "'."); } private void SetupHostButton() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown Transform val = PathFinder.Probe(HOST_BUTTON.Path); if ((Object)(object)val != (Object)null) { Button component = ((Component)val).GetComponent<Button>(); if ((Object)(object)component != (Object)null) { ((UnityEvent)component.onClick).RemoveListener(new UnityAction(HandleSaveButtons)); ((UnityEvent)component.onClick).AddListener(new UnityAction(HandleSaveButtons)); LogWarden.LogInfo("Listener added to host button to handle save buttons."); } else { LogWarden.LogError("Host button component not found."); } } else { LogWarden.LogError("Host button path not found."); } } private void HandleSaveButtons() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(FILES_BUTTON.Path); if ((Object)(object)val == (Object)null) { LogWarden.LogError("[SubMenuColor] Parent path '" + FILES_BUTTON.Path + "' not found."); return; } List<Button> list = new List<Button>(); foreach (Transform item in val) { Button component = ((Component)item).GetComponent<Button>(); if ((Object)(object)component != (Object)null) { list.Add(component); } } foreach (Button item2 in list) { if (EmblemPlugin.SaveFileStrings.TryGetValue(((Component)item2).gameObject, out var value)) { bool highlighted = GameNetworkManager.Instance.currentSaveFileName == value; UIPath buttonPath = new UIPath(((Object)item2).name, typeof(Button)); ToggleButton(buttonPath, highlighted); } } AttachToggleHandlerToAll(list.ToArray()); } private void AttachToggleHandlerToAll(Button[] allButtons) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown Button[] array = allButtons; foreach (Button button in array) { ((UnityEventBase)button.onClick).RemoveAllListeners(); ((UnityEvent)button.onClick).AddListener((UnityAction)delegate { Button[] array2 = allButtons; foreach (Button val in array2) { bool highlighted = (Object)(object)val == (Object)(object)button; UIPath buttonPath = new UIPath(((Object)val).name, typeof(Button)); ToggleButton(buttonPath, highlighted); } }); } } private void SetColorOnButtonClick(UIPath targetUIPath, UIPath triggerUIPath, Color color) { //IL_0039: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.ProbeAll(triggerUIPath.Path)?.ElementAtOrDefault(triggerUIPath.Index); if ((Object)(object)val != (Object)null) { ((Component)val).gameObject.AddComponent<ColorSetter>().SetupColorChangeDeferred(targetUIPath, triggerUIPath.ComponentType, color); } else { LogWarden.LogError("[SetColorOnButtonClick] Trigger object not found."); } } public void RecolorCosmoButton() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) if (PluginFinder.MoreCompany) { InitializeThemeColors(); SetColor(COSMO_BUTTON, Highlight); } } } [BepInPlugin("Darkbrewery.Emblem", "Emblem", "1.5.3")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class EmblemPlugin : BaseUnityPlugin { public static Dictionary<GameObject, string> SaveFileStrings = new Dictionary<GameObject, string>(); private UIComponent uiComponent; private HeaderReplacement headerReplacement; private Boardwalk boardwalk; private BackgroundManager backgroundManager; private LoadingText loadingText; private MenuMoodSetter menuMoodSetter; private Harmony harmony; private CustomMediaManager customMediaManager; private SceneManagerHelper sceneManagerHelper; private InterfaceDecorator interfaceDecorator; private VersionStyler versionStyler; private Slideshow slideshow; private SubMenuColor subMenuColor; private void Awake() { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Expected O, but got Unknown if (PluginFinder.LobbyCompat) { LobbyCCheck.Init(); } LogWarden.Initialize(((BaseUnityPlugin)this).Logger); LogWarden.LogInfo(" --------------------------------------------------------------------- "); LogWarden.LogInfo(" %% EEEEE M M BBBBB L EEEEE M M %% "); LogWarden.LogInfo("# * == E MM MM B B L E MM MM == * #"); LogWarden.LogInfo(" * * EEEE M M M M BBBBB L EEEE M M M M * * "); LogWarden.LogInfo("# * == E M M M B B L E M M M == * #"); LogWarden.LogInfo(" %% EEEEE M M BBBBB LLLLL EEEEE M M %% "); LogWarden.LogInfo(" ------------------------- BY DARKBREWERY ---------------------------- "); LogWarden.LogInfo("Stirring from darkness..."); try { harmony = new Harmony("com.darkbrewery.emblem.harmony"); Configurator.InitializeInstance(((BaseUnityPlugin)this).Config); customMediaManager = new CustomMediaManager(); uiComponent = new UIComponent(); backgroundManager = new BackgroundManager(); headerReplacement = new HeaderReplacement(); boardwalk = new Boardwalk(); loadingText = new LoadingText(); menuMoodSetter = new MenuMoodSetter(); versionStyler = new VersionStyler(); slideshow = new Slideshow(((Component)this).transform); subMenuColor = new SubMenuColor(); interfaceDecorator = new InterfaceDecorator(uiComponent, backgroundManager, headerReplacement, boardwalk, loadingText, menuMoodSetter, versionStyler, slideshow, subMenuColor); sceneManagerHelper = new SceneManagerHelper(interfaceDecorator); harmony.PatchAll(); LogWarden.LogInfo("Successfully deployed, its intent shrouded"); } catch (Exception arg) { LogWarden.LogError($"Error initializing Emblem plugin: {arg}"); } } } public class ColorSetter : MonoBehaviour { private SubMenuColor.UIPath targetUIPath; private Color newColor; private Type triggerComponentType; private Button button; private void OnDestroy() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown if ((Object)(object)button != (Object)null) { ((UnityEvent)button.onClick).RemoveListener(new UnityAction(OnButtonClick)); } } public void SetupColorChangeDeferred(SubMenuColor.UIPath targetPath, Type triggerCompType, Color color) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown targetUIPath = targetPath; newColor = color; triggerComponentType = triggerCompType; ref Button reference = ref button; Component component = ((Component)this).GetComponent(triggerComponentType); reference = (Button)(object)((component is Button) ? component : null); if ((Object)(object)button != (Object)null) { ((UnityEvent)button.onClick).RemoveListener(new UnityAction(OnButtonClick)); ((UnityEvent)button.onClick).AddListener(new UnityAction(OnButtonClick)); } else { LogWarden.LogError("[ColorSetter] Trigger component not found on this gameObject."); } } private void OnButtonClick() { ((MonoBehaviour)this).StartCoroutine(WaitForTargetAndApplyColor()); } private IEnumerator WaitForTargetAndApplyColor() { Transform targetTransform = null; while ((Object)(object)targetTransform == (Object)null) { targetTransform = PathFinder.ProbeAll(targetUIPath.Path)?.ElementAtOrDefault(targetUIPath.Index); if ((Object)(object)targetTransform == (Object)null) { yield return (object)new WaitForSeconds(0.5f); } } Component component = ((Component)targetTransform).GetComponent(targetUIPath.ComponentType); Graphic val = (Graphic)(object)((component is Graphic) ? component : null); if ((Object)(object)val != (Object)null) { val.color = newColor; } else { LogWarden.LogError("[ColorSetter] " + targetUIPath.ComponentType.Name + " component not found on target object."); } } } public class DelayHelper : MonoBehaviour { private static DelayHelper instance; private Dictionary<string, Coroutine> coroutineDictionary = new Dictionary<string, Coroutine>(); private Dictionary<TextMeshProUGUI, Coroutine> typingCoroutines = new Dictionary<TextMeshProUGUI, Coroutine>(); private static DelayHelper GetInstance() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown if ((Object)(object)instance == (Object)null) { GameObject val = new GameObject("GlobalDelayHelper"); instance = val.AddComponent<DelayHelper>(); Object.DontDestroyOnLoad((Object)val); } return instance; } public static void StopAll() { foreach (Coroutine value in GetInstance().coroutineDictionary.Values) { ((MonoBehaviour)GetInstance()).StopCoroutine(value); } GetInstance().coroutineDictionary.Clear(); } public static void StartDelayedAction(float delayInSeconds, Action action) { GetInstance().DelayedAction(delayInSeconds, action); } private void DelayedAction(float delayInSeconds, Action action) { ((MonoBehaviour)this).StartCoroutine(DelayCoroutine(delayInSeconds, action)); } private IEnumerator DelayCoroutine(float delayInSeconds, Action action) { yield return (object)new WaitForSeconds(delayInSeconds); action?.Invoke(); } public static void StartRepeatingAction(string name, float intervalInSeconds, Action action) { StopRepeatingAction(name); Coroutine value = ((MonoBehaviour)GetInstance()).StartCoroutine(GetInstance().RepeatingActionCoroutine(intervalInSeconds, action)); GetInstance().coroutineDictionary[name] = value; } public static void StopRepeatingAction(string name) { if ((Object)(object)instance != (Object)null && instance.coroutineDictionary.TryGetValue(name, out var value)) { ((MonoBehaviour)instance).StopCoroutine(value); instance.coroutineDictionary.Remove(name); } } private IEnumerator RepeatingActionCoroutine(float intervalInSeconds, Action action) { while (true) { yield return (object)new WaitForSeconds(intervalInSeconds); action?.Invoke(); } } public static void StartFadeAction(Image image, float duration, Action onComplete = null) { GetInstance().FadeImageCoroutine(image, duration, onComplete); } private void FadeImageCoroutine(Image image, float duration, Action onComplete) { ((MonoBehaviour)this).StartCoroutine(FadeImage(image, duration, onComplete)); } private IEnumerator FadeImage(Image image, float duration, Action onComplete) { float currentTime = 0f; Color startColor = ((Graphic)image).color; Color endColor = new Color(startColor.r, startColor.g, startColor.b, 0f); while (currentTime < duration) { currentTime += Time.deltaTime; ((Graphic)image).color = Color.Lerp(startColor, endColor, currentTime / duration); yield return null; } ((Graphic)image).color = endColor; onComplete?.Invoke(); } public static void StartTypingText(TextMeshProUGUI textComponent, string text, float typingSpeed, float flashDuration = 0.3f, int flashCount = 2) { GetInstance().TypingTextCoroutine(textComponent, text, typingSpeed, flashDuration, flashCount); } private void TypingTextCoroutine(TextMeshProUGUI textComponent, string text, float typingSpeed, float flashDuration, int flashCount) { if (typingCoroutines.TryGetValue(textComponent, out var value)) { ((MonoBehaviour)this).StopCoroutine(value); typingCoroutines.Remove(textComponent); } Coroutine value2 = ((MonoBehaviour)this).StartCoroutine(TypeTextWithCursorFlash(textComponent, text, typingSpeed, flashDuration, flashCount)); typingCoroutines[textComponent] = value2; } private IEnumerator TypeTextWithCursorFlash(TextMeshProUGUI textComponent, string text, float typingSpeed, float flashDuration, int flashCount) { StringBuilder stringBuilder = new StringBuilder(); for (int j = 0; j < flashCount; j++) { ((TMP_Text)textComponent).text = "_"; yield return (object)new WaitForSeconds(flashDuration); ((TMP_Text)textComponent).text = ""; yield return (object)new WaitForSeconds(flashDuration); } foreach (char value in text) { stringBuilder.Append(value); ((TMP_Text)textComponent).text = stringBuilder.ToString() + "_"; yield return (object)new WaitForSeconds(typingSpeed); ((TMP_Text)textComponent).text = stringBuilder.ToString(); } } } public class EmblemFolder { private readonly string basePluginsPath; private readonly Dictionary<string, string> fullPathCache = new Dictionary<string, string>(); private readonly Dictionary<string, IEnumerable<string>> validPathsCache = new Dictionary<string, IEnumerable<string>>(); private readonly Lazy<IEnumerable<string>> emblemDirectories; public EmblemFolder() { basePluginsPath = Path.Combine(Paths.BepInExRootPath, "plugins"); emblemDirectories = new Lazy<IEnumerable<string>>(() => FindEmblemDirectories()); } private IEnumerable<string> FindEmblemDirectories() { try { return (from dir in Directory.GetDirectories(basePluginsPath, "*", SearchOption.AllDirectories) where Path.GetFileName(dir).Equals("Emblem", StringComparison.OrdinalIgnoreCase) select dir).ToList(); } catch (Exception ex) { LogWarden.LogError("[EmblemFolder] Error finding Emblem directories: " + ex.Message); return new List<string>(); } } public string FindFullPath(string inputPath) { if (fullPathCache.TryGetValue(inputPath, out var value)) { return value; } string path = ExtractRelativePathFromEmblem(inputPath); string[] directories = Directory.GetDirectories(basePluginsPath, "*", SearchOption.AllDirectories); foreach (string text in directories) { if (text.EndsWith("Emblem", StringComparison.OrdinalIgnoreCase)) { string text2 = Path.Combine(text, path); if (File.Exists(text2) || Directory.Exists(text2)) { fullPathCache[inputPath] = text2; return text2; } } } LogWarden.LogError("[EmblemFolder] Could not find a valid path for: " + inputPath); return null; } public IEnumerable<string> FindAllValidPaths(string inputPathPattern) { if (validPathsCache.TryGetValue(inputPathPattern, out var value)) { return value; } string path = ExtractRelativePathFromEmblem(inputPathPattern); string[] directories = Directory.GetDirectories(basePluginsPath, "*", SearchOption.AllDirectories); List<string> list = new List<string>(); string[] array = directories; foreach (string text in array) { if (text.EndsWith("Emblem", StringComparison.OrdinalIgnoreCase)) { string searchPattern = Path.Combine(text, path); list.AddRange(Directory.GetFiles(text, searchPattern, SearchOption.AllDirectories)); } } validPathsCache[inputPathPattern] = list; return list; } private string ExtractRelativePathFromEmblem(string path) { string[] array = path.Split(new char[2] { Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar }, StringSplitOptions.RemoveEmptyEntries); int num = Array.FindIndex(array, (string segment) => segment.Equals("Emblem", StringComparison.OrdinalIgnoreCase)); if (num != -1 && num < array.Length - 1) { return Path.Combine(array.Skip(num + 1).ToArray()); } return path; } } public class ImageFilters { private readonly Configurator configManager; public ImageFilters(Configurator configManager) { this.configManager = configManager; } public void Blend(string targetImagePath, Color vignetteColor) { //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) Transform val = PathFinder.Probe(targetImagePath); if ((Object)(object)val == (Object)null) { LogWarden.LogError("ImageFilters.Blend: Image with path '" + targetImagePath + "' not found."); return; } GameObject gameObject = ((Component)val).gameObject; Transform val2 = gameObject.transform.Find("VignetteOverlay"); if (!configManager.enableRadiantTaper.Value) { if ((Object)(object)val2 != (Object)null) { Object.Destroy((Object)(object)((Component)val2).gameObject); LogWarden.LogInfo("ImageFilters.Blend: Vignette effect removed from '" + targetImagePath + "'."); } return; } GameObject val3; if ((Object)(object)val2 != (Object)null) { val3 = ((Component)val2).gameObject; } else { val3 = new GameObject("VignetteOverlay"); RectTransform obj = val3.AddComponent<RectTransform>(); ((Transform)obj).SetParent(gameObject.transform, false); ((Transform)obj).SetAsLastSibling(); Rect rect = gameObject.GetComponent<RectTransform>().rect; float width = ((Rect)(ref rect)).width; rect = gameObject.GetComponent<RectTransform>().rect; obj.sizeDelta = new Vector2(width, ((Rect)(ref rect)).height); } Image obj2 = val3.GetComponent<Image>() ?? val3.AddComponent<Image>(); Texture2D val4 = CreateVignetteTexture(((Texture)gameObject.GetComponent<Image>().sprite.texture).width, ((Texture)gameObject.GetComponent<Image>().sprite.texture).height, vignetteColor); obj2.sprite = Sprite.Create(val4, new Rect(0f, 0f, (float)((Texture)val4).width, (float)((Texture)val4).height), new Vector2(0.5f, 0.5f)); ((Graphic)obj2).raycastTarget = false; } private Texture2D CreateVignetteTexture(int width, int height, Color vignetteColor) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) Texture2D val = new Texture2D(width, height, (TextureFormat)4, false); Color val2 = default(Color); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { float distance2 = j; float distance3 = width - j; float distance4 = height - i; float distance5 = i; float num = Mathf.Max(CalculateExponentialBlend(distance2, width), CalculateExponentialBlend(distance3, width)); float num2 = Mathf.Max(CalculateExponentialBlend(distance4, height), CalculateExponentialBlend(distance5, height)); float num3 = Mathf.Max(num, num2); ((Color)(ref val2))..ctor(vignetteColor.r, vignetteColor.g, vignetteColor.b, num3); val.SetPixel(j, i, val2); } } val.Apply(); return val; static float CalculateExponentialBlend(floa
BetterScanVision.dll
Decompiled 3 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using CSync.Extensions; using CSync.Lib; using GameNetcodeStuff; using HarmonyLib; using LethalConfig; using LethalConfig.ConfigItems; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("LethalConfig")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: AssemblyCompany("BetterScanVision")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Light your way through the darkness with every scan. Highly configurable.")] [assembly: AssemblyFileVersion("0.0.6.0")] [assembly: AssemblyInformationalVersion("0.0.6")] [assembly: AssemblyProduct("BetterScanVision")] [assembly: AssemblyTitle("BetterScanVision")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.6.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace BetterScanVision { [BepInPlugin("DBJ.BetterScanVision", "BetterScanVision", "0.0.6")] [BepInDependency("com.sigurd.csync", "5.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class BetterScanVisionBase : BaseUnityPlugin { internal const string modGUID = "DBJ.BetterScanVision"; internal const string modName = "BetterScanVision"; internal const string internalmodVersion = "0.0.6"; internal static readonly Harmony harmony = new Harmony("DBJ.BetterScanVision"); internal static readonly ManualLogSource mls = Logger.CreateLogSource("DBJ.BetterScanVision"); internal static ConfigFile configFile; internal static SyncedConfigValues configValues; internal static readonly AnimationCurve scanTimeCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, 0f), new Keyframe(0.43f, 1f), new Keyframe(0.72f, 1f), new Keyframe(1f, 0f) }); private void LocalConfigUpdate_visionColor(object sender = null, EventArgs e = null) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) ConfigEntry<string> entry = configValues.visionColor.Entry; entry.SettingChanged -= LocalConfigUpdate_visionColor; Color val = default(Color); if (!ColorUtility.TryParseHtmlString("#" + entry.Value, ref val)) { ColorUtility.TryParseHtmlString("#0E154C", ref val); mls.LogWarning((object)("[Local] Night Vision Color \"" + entry.Value + "\" could not be parsed; it will be replaced with the default value \"0E154C\"!")); } val.a = 1f; entry.Value = ColorUtility.ToHtmlStringRGB(val); entry.SettingChanged += LocalConfigUpdate_visionColor; } private void Awake() { mls.LogInfo((object)"[Awake Log 1 / 3] Initializing BetterScanVision..."); configFile = ((BaseUnityPlugin)this).Config; configValues = new SyncedConfigValues(configFile); LocalConfigUpdate_visionColor(); if (LethalConfigCompat.IsAvailable) { LethalConfigCompat.AddConfigItem(configValues.visionRangeMaxScalar.Entry); LethalConfigCompat.AddConfigItem(configValues.visionIntensityMaxScalar.Entry); LethalConfigCompat.AddConfigItem(configValues.visionDuration.Entry); LethalConfigCompat.AddConfigItem(configValues.visionColor.Entry); LethalConfigCompat.AddConfigItem(configValues.outdoorsVisionRangeScalar.Entry); LethalConfigCompat.AddConfigItem(configValues.outdoorsVisionIntensityScalar.Entry); } mls.LogInfo((object)"[Awake Log 2 / 3] Config initialized..."); harmony.PatchAll(); mls.LogInfo((object)"[Awake Log 3 / 3] Patched PlayerControllerB methods!"); } } internal class SyncedConfigValues : SyncedConfig2<SyncedConfigValues> { [SyncedEntryField] internal SyncedEntry<float> visionRangeMaxScalar = null; [SyncedEntryField] internal SyncedEntry<float> visionIntensityMaxScalar = null; [SyncedEntryField] internal SyncedEntry<float> visionDuration = null; [SyncedEntryField] internal SyncedEntry<string> visionColor = null; [SyncedEntryField] internal SyncedEntry<float> outdoorsVisionRangeScalar = null; [SyncedEntryField] internal SyncedEntry<float> outdoorsVisionIntensityScalar = null; internal const float scanDuration = 1.3f; internal const float visionDurationDefault = 0.49f; internal const string visionColorDefault = "0E154C"; internal Color visionColorParsed; private void ConfigUpdate_visionColor(object sender = null, EventArgs e = null) { //IL_009e: Unknown result type (might be due to invalid IL or missing references) visionColor.Changed -= ConfigUpdate_visionColor; if (!ColorUtility.TryParseHtmlString("#" + visionColor.Value, ref visionColorParsed)) { ColorUtility.TryParseHtmlString("#0E154C", ref visionColorParsed); BetterScanVisionBase.mls.LogWarning((object)("[Synced] Night Vision Color \"" + visionColor.Value + "\" could not be parsed; it will be replaced with the default value \"0E154C\"!")); } visionColorParsed.a = 1f; if ((Object)(object)PlayerControllerBPatches.nightVision != (Object)null) { PlayerControllerBPatches.nightVision.color = visionColorParsed; } visionColor.Changed += ConfigUpdate_visionColor; } internal SyncedConfigValues(ConfigFile configFile) : base("DBJ.BetterScanVision") { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Expected O, but got Unknown //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Expected O, but got Unknown //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Expected O, but got Unknown //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Expected O, but got Unknown //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Expected O, but got Unknown //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Expected O, but got Unknown //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown visionRangeMaxScalar = SyncedBindingExtensions.BindSyncedEntry<float>(configFile, "Night Vision Parameters", "Night Vision Range Maximum Scalar", 2.8f, new ConfigDescription("Scales the night vision's maximum range in relation to the vanilla night vision's range. A higher number means an extended night vision range at the scan's peak | a lower number means a decreased night vision range.\n\n1 = unchanged | 0 = disabled", (AcceptableValueBase)new AcceptableValueRange<float>(0f, 1000f), Array.Empty<object>())); visionIntensityMaxScalar = SyncedBindingExtensions.BindSyncedEntry<float>(configFile, "Night Vision Parameters", "Night Vision Intensity Maximum Scalar", 10f, new ConfigDescription("Scales the night vision's maximum intensity in relation to the vanilla night vision's intensity. A higher number means an extended night vision intensity at the scan's peak | a lower number means a decreased night vision range.\n\n1 = unchanged | 0 = disabled", (AcceptableValueBase)new AcceptableValueRange<float>(0f, 1000f), Array.Empty<object>())); visionDuration = SyncedBindingExtensions.BindSyncedEntry<float>(configFile, "Night Vision Parameters", "Night Vision Duration", 0.49f, new ConfigDescription("Sets the night vision's duration in seconds. A higher number means an extended night vision duration | a lower number means a decreased night vision duration.", (AcceptableValueBase)new AcceptableValueRange<float>(0.001f, 1.3f), Array.Empty<object>())); visionColor = SyncedBindingExtensions.BindSyncedEntry<string>(configFile, "Night Vision Parameters", "Night Vision Color", "0E154C", "Sets the night vision's color in the form of a hex color code (\"RRGGBB\"). Alpha values will be discarded."); outdoorsVisionRangeScalar = SyncedBindingExtensions.BindSyncedEntry<float>(configFile, "Outdoors Night Vision Parameters", "Outdoors Night Vision Range Scalar", 150f, new ConfigDescription("Scales the night vision's range while outdoors. A higher number means an extended night vision range while outdoors | a lower number means a decreased night vision range.\n\n1 = unchanged | 0 = disabled", (AcceptableValueBase)new AcceptableValueRange<float>(0f, 1000f), Array.Empty<object>())); outdoorsVisionIntensityScalar = SyncedBindingExtensions.BindSyncedEntry<float>(configFile, "Outdoors Night Vision Parameters", "Outdoors Night Vision Intensity Scalar", 12f, new ConfigDescription("Scales the night vision's intensity while outdoors. A higher number means an extended night vision intensity while outdoors | a lower number means a decreased night vision intensity.\n\n1 = unchanged | 0 = disabled", (AcceptableValueBase)new AcceptableValueRange<float>(0f, 1000f), Array.Empty<object>())); ConfigUpdate_visionColor(); ConfigManager.Register<SyncedConfigValues>((SyncedConfig2<SyncedConfigValues>)this); } } [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerBPatches { internal const float base_intensity = 366.9317f; internal const float base_range = 12f; internal static Light nightVision; [HarmonyPatch("LateUpdate")] [HarmonyPostfix] public static void LateUpdatePostfix(PlayerControllerB __instance) { //IL_01f8: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance != (Object)(object)StartOfRound.Instance?.localPlayerController) { return; } if ((Object)(object)nightVision == (Object)null || !((Behaviour)nightVision).isActiveAndEnabled || (Object)(object)((Component)nightVision).transform.parent != (Object)(object)((Component)__instance).transform) { Light component = __instance.nightVision; if ((Object)(object)component == (Object)null) { BetterScanVisionBase.mls.LogError((object)"[PlayerControllerB.LateUpdate() Postfix] Could not find PlayerControllerB.nightVision (another mod has tampered with it). Attempting to find any equivalent in the scene (another error will be thrown if this attempt fails; even if it succeeds, the results may not look correct)"); GameObject val = GameObject.Find("NightVision"); if ((Object)(object)val == (Object)null || (Object)(object)val.GetComponent<Light>() == (Object)null) { BetterScanVisionBase.mls.LogError((object)"[PlayerControllerB.LateUpdate() Postfix] Could not find a PlayerControllerB.nightVision equivalent! Unpatching and aborting!"); Harmony.UnpatchAll(); return; } component = val.GetComponent<Light>(); } nightVision = Object.Instantiate<Light>(component, ((Component)__instance).transform); nightVision.type = (LightType)2; nightVision.shape = (LightShape)0; nightVision.spotAngle = 30f; nightVision.innerSpotAngle = 21.80208f; nightVision.colorTemperature = 11762f; nightVision.useColorTemperature = true; nightVision.bounceIntensity = 0f; nightVision.useBoundingSphereOverride = false; nightVision.useViewFrustumForShadowCasterCull = true; nightVision.shadowCustomResolution = -1; nightVision.shadowBias = 0.05f; nightVision.shadowNormalBias = 0.4f; nightVision.shadowNearPlane = 0.2f; nightVision.useShadowMatrixOverride = false; nightVision.cullingMask = -1; nightVision.renderingLayerMask = 1; nightVision.lightShadowCasterMode = (LightShadowCasterMode)2; nightVision.shadows = (LightShadows)0; nightVision.renderMode = (LightRenderMode)0; nightVision.color = BetterScanVisionBase.configValues.visionColorParsed; } float num = 0.3f - (HUDManager.Instance?.playerPingingScan ?? (-1f)); float num2 = Mathf.Clamp(num / BetterScanVisionBase.configValues.visionDuration.Value, 0f, 1f); float num3 = BetterScanVisionBase.scanTimeCurve.Evaluate(num2); float num4 = BetterScanVisionBase.configValues.visionIntensityMaxScalar.Value; float num5 = BetterScanVisionBase.configValues.visionRangeMaxScalar.Value; if (!__instance.isInsideFactory && !__instance.isInHangarShipRoom) { num4 *= BetterScanVisionBase.configValues.outdoorsVisionIntensityScalar.Value; num5 *= BetterScanVisionBase.configValues.outdoorsVisionRangeScalar.Value; } nightVision.intensity = Mathf.Lerp(0f, 366.9317f * num4, num3); nightVision.range = Mathf.Lerp(0f, 12f * num5, num3); ((Behaviour)nightVision).enabled = true; } } internal static class LethalConfigCompat { private const string GUID = "ainavt.lc.lethalconfig"; internal static bool IsAvailable => Chainloader.PluginInfos.ContainsKey("ainavt.lc.lethalconfig"); [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void AddConfigItem(ConfigEntry<int> entry, bool isSlider = true, bool restartRequired = false) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown if (IsAvailable) { if (isSlider) { LethalConfigManager.AddConfigItem((BaseConfigItem)new IntSliderConfigItem(entry, restartRequired)); } else { LethalConfigManager.AddConfigItem((BaseConfigItem)new IntInputFieldConfigItem(entry, restartRequired)); } } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void AddConfigItem(ConfigEntry<float> entry, bool isSlider = true, bool restartRequired = false) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown if (IsAvailable) { if (isSlider) { LethalConfigManager.AddConfigItem((BaseConfigItem)new FloatSliderConfigItem(entry, restartRequired)); } else { LethalConfigManager.AddConfigItem((BaseConfigItem)new FloatInputFieldConfigItem(entry, restartRequired)); } } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void AddConfigItem(ConfigEntry<bool> entry, bool restartRequired = false) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown if (IsAvailable) { LethalConfigManager.AddConfigItem((BaseConfigItem)new BoolCheckBoxConfigItem(entry, restartRequired)); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void AddConfigItem(ConfigEntry<string> entry, bool isDropdown = false, bool restartRequired = false) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown if (IsAvailable) { if (isDropdown) { LethalConfigManager.AddConfigItem((BaseConfigItem)new TextDropDownConfigItem(entry, restartRequired)); } else { LethalConfigManager.AddConfigItem((BaseConfigItem)new TextInputFieldConfigItem(entry, restartRequired)); } } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] internal static void AddConfigItem(ConfigEntry<Enum> entry, bool restartRequired = false) { if (IsAvailable) { LethalConfigManager.AddConfigItem((BaseConfigItem)(object)new EnumDropDownConfigItem<Enum>(entry, restartRequired)); } } } public static class PluginInfo { public const string PLUGIN_GUID = "BetterScanVision"; public const string PLUGIN_NAME = "BetterScanVision"; public const string PLUGIN_VERSION = "0.0.6"; } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }