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