using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyCompany("ValuableTracker")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ValuableTracker")]
[assembly: AssemblyTitle("ValuableTracker")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
namespace ValuableTracker
{
[BepInPlugin("ValuableTracker", "Valuable Tracker", "1.0.8")]
public class ValuableTracker : BaseUnityPlugin
{
public class ItemState
{
public ValuableObject itemRef;
public bool markedAsSold;
public bool isLost;
public bool isExtracted;
}
public static ValuableTracker Instance;
private static bool _hintShownInSession = false;
public static List<ItemState> TrackedItems = new List<ItemState>();
public static int TotalItemsRecorded = 0;
private void Awake()
{
Instance = this;
PluginConfig.Init(((BaseUnityPlugin)this).Config);
Harmony.CreateAndPatchAll(typeof(ValuableTracker), (string)null);
SceneManager.activeSceneChanged += OnSceneChanged;
}
private void OnSceneChanged(Scene oldScene, Scene newScene)
{
if ((Object)(object)RunManager.instance == (Object)null || !SemiFunc.RunIsLevel())
{
_hintShownInSession = false;
}
}
public static void RegisterItem(ValuableObject val)
{
if (!((Object)(object)val == (Object)null) && !TrackedItems.Any((ItemState x) => (Object)(object)x.itemRef == (Object)(object)val))
{
TrackedItems.Add(new ItemState
{
itemRef = val
});
TotalItemsRecorded++;
}
}
[HarmonyPatch(typeof(LevelGenerator), "GenerateDone")]
[HarmonyPostfix]
private static void OnLevelGenDone()
{
TrackedItems.Clear();
TotalItemsRecorded = 0;
ValuableObject[] array = Object.FindObjectsOfType<ValuableObject>();
foreach (ValuableObject val in array)
{
RegisterItem(val);
}
}
[HarmonyPatch(typeof(GameDirector), "Update")]
[HarmonyPostfix]
private static void GameDirectorUpdate_Patch()
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Invalid comparison between Unknown and I4
//IL_0035: 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_0069: Unknown result type (might be due to invalid IL or missing references)
if (!_hintShownInSession && SemiFunc.RunIsLevel() && (int)GameDirector.instance.currentState == 2)
{
_hintShownInSession = true;
string friendlyName = GetFriendlyName(PluginConfig.MenuKeybind.Value);
SemiFunc.UIFocusText("Press " + friendlyName + " to view Valuable Tracker Settings", Color.white, new Color(1f, 0.46f, 0f, 1f), 5f);
}
ValuableTrackerHUD.UpdateTick();
}
[HarmonyPatch(typeof(ValuableObject), "Start")]
[HarmonyPostfix]
private static void OnValuableStart(ValuableObject __instance)
{
if (SemiFunc.LevelGenDone())
{
RegisterItem(__instance);
}
}
[HarmonyPatch(typeof(RoundDirector), "HaulCheck")]
[HarmonyPostfix]
private static void OnHaulCheck()
{
List<GameObject> dollarHaulList = RoundDirector.instance.dollarHaulList;
foreach (ItemState trackedItem in TrackedItems)
{
if ((Object)(object)trackedItem.itemRef != (Object)null && dollarHaulList.Contains(((Component)trackedItem.itemRef).gameObject))
{
trackedItem.markedAsSold = true;
}
}
}
[HarmonyPatch(typeof(RunManager), "ChangeLevel")]
[HarmonyPostfix]
private static void OnChangeLevel()
{
ValuableTrackerHUD.Cleanup();
}
public static string GetFriendlyName(KeyCode k)
{
string text = ((object)(KeyCode)(ref k)).ToString();
if (text.StartsWith("Alpha"))
{
return text.Replace("Alpha", "");
}
if (text.StartsWith("Keypad"))
{
return text.Replace("Keypad", "Numpad ");
}
if (text == "Return")
{
return "Enter";
}
if (text == "Escape")
{
return "Esc";
}
if (text.Contains("Mouse0"))
{
return "Mouse Left";
}
if (text.Contains("Mouse1"))
{
return "Mouse Right";
}
if (text.Contains("Mouse2"))
{
return "Mouse Mid";
}
return Regex.Replace(text, "(\\B[A-Z])", " $1");
}
}
public static class PluginConfig
{
public enum Positions
{
Default,
TopLeft,
BottomRight,
Custom
}
public static ConfigEntry<Positions> UIPosition;
public static ConfigEntry<Vector2> CustomPositionCoords;
public static ConfigEntry<bool> ShowHUD;
public static ConfigEntry<bool> ShowCartCount;
public static ConfigEntry<bool> ShowLostCount;
public static ConfigEntry<KeyCode> MenuKeybind;
public static void Init(ConfigFile config)
{
//IL_0086: Unknown result type (might be due to invalid IL or missing references)
MenuKeybind = config.Bind<KeyCode>("Controls", "Menu Keybind", (KeyCode)285, "Key to open settings.");
ShowHUD = config.Bind<bool>("Features", "Enable HUD", true, "Show the tracker.");
ShowCartCount = config.Bind<bool>("Features", "Track Cart Items", true, "Count items in carts.");
UIPosition = config.Bind<Positions>("UI Layout", "Position Preset", Positions.Default, "Tracker position.");
CustomPositionCoords = config.Bind<Vector2>("UI Layout", "Custom Coords", new Vector2(0f, 0f), "Offset for custom position.");
ShowLostCount = config.Bind<bool>("Features", "Track Lost Items", true, "Show items lost or destroyed.");
}
}
public static class ValuableTrackerHUD
{
private class ResetHandler : MonoBehaviour
{
private TextMeshProUGUI text;
private RectTransform rect;
private bool isHovering;
private Vector2 originalPos;
public void Setup(TextMeshProUGUI t, RectTransform r)
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0020: Unknown result type (might be due to invalid IL or missing references)
text = t;
rect = r;
originalPos = ((TMP_Text)text).rectTransform.anchoredPosition;
}
private void Update()
{
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
if (!isMenuOpen)
{
return;
}
bool flag = IsMouseOver(rect);
if (flag)
{
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuHover();
}
if (!isHovering && (Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectHover(1f, -1f);
}
}
isHovering = flag;
((Graphic)text).color = (flag ? Color.white : Color.gray);
((TMP_Text)text).rectTransform.anchoredPosition = (Vector2)(flag ? new Vector2(originalPos.x + 2f, originalPos.y) : originalPos);
if (flag && Input.GetMouseButtonDown(0))
{
PluginConfig.ShowHUD.Value = true;
PluginConfig.ShowCartCount.Value = true;
PluginConfig.ShowLostCount.Value = true;
PluginConfig.MenuKeybind.Value = (KeyCode)285;
UpdateFooterText();
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)1, (MenuPage)null, -1f, -1f, true);
}
}
}
private bool IsMouseOver(RectTransform target)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)target == (Object)null || (Object)(object)MenuCursor.instance == (Object)null)
{
return false;
}
Vector3 val = ((Transform)target).InverseTransformPoint(((Component)MenuCursor.instance).transform.position);
Rect val2 = target.rect;
return ((Rect)(ref val2)).Contains(val);
}
}
private class KeybindHandler : MonoBehaviour
{
public static bool IsRebinding;
private Image border;
private Image btnBg;
private TextMeshProUGUI keyText;
private RectTransform btnRect;
private bool listening;
private bool isHovering;
private float invalidTimer = 0f;
private Vector2 originalTextPos;
public void Setup(Image b, Image bg, TextMeshProUGUI t, RectTransform rect)
{
//IL_002a: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
border = b;
btnBg = bg;
keyText = t;
btnRect = rect;
originalTextPos = ((TMP_Text)keyText).rectTransform.anchoredPosition;
}
private void OnDisable()
{
listening = false;
IsRebinding = false;
invalidTimer = 0f;
}
private void Update()
{
//IL_0031: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
//IL_0118: 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_0120: Unknown result type (might be due to invalid IL or missing references)
//IL_0333: Unknown result type (might be due to invalid IL or missing references)
//IL_032c: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_0138: Invalid comparison between Unknown and I4
//IL_013a: Unknown result type (might be due to invalid IL or missing references)
//IL_0141: Invalid comparison between Unknown and I4
//IL_0370: Unknown result type (might be due to invalid IL or missing references)
//IL_034d: Unknown result type (might be due to invalid IL or missing references)
//IL_0143: Unknown result type (might be due to invalid IL or missing references)
//IL_014a: Invalid comparison between Unknown and I4
//IL_01b1: Unknown result type (might be due to invalid IL or missing references)
//IL_01b5: Invalid comparison between Unknown and I4
//IL_016d: Unknown result type (might be due to invalid IL or missing references)
//IL_021e: Unknown result type (might be due to invalid IL or missing references)
//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_027b: Unknown result type (might be due to invalid IL or missing references)
//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
//IL_03c3: Unknown result type (might be due to invalid IL or missing references)
//IL_0425: Unknown result type (might be due to invalid IL or missing references)
//IL_043b: Unknown result type (might be due to invalid IL or missing references)
//IL_0456: Unknown result type (might be due to invalid IL or missing references)
if (!isMenuOpen)
{
if (listening)
{
listening = false;
IsRebinding = false;
((TMP_Text)keyText).text = ValuableTracker.GetFriendlyName(PluginConfig.MenuKeybind.Value);
((Graphic)btnBg).color = repoBlueActive;
}
return;
}
if (invalidTimer > 0f)
{
invalidTimer -= Time.deltaTime;
if (!(invalidTimer <= 0f))
{
return;
}
listening = true;
((TMP_Text)keyText).text = "[PRESS KEY]";
((Graphic)keyText).color = repoYellow;
((Graphic)btnBg).color = repoOrange;
}
if (listening)
{
if (!Input.anyKeyDown)
{
return;
}
{
foreach (KeyCode value in Enum.GetValues(typeof(KeyCode)))
{
if (!Input.GetKeyDown(value))
{
continue;
}
if ((int)value == 323 || (int)value == 324 || (int)value == 325)
{
((TMP_Text)keyText).text = "INVALID INPUT";
((Graphic)keyText).color = Color.red;
invalidTimer = 1.2f;
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)2, (MenuPage)null, -1f, -1f, true);
}
break;
}
if ((int)value == 27)
{
((TMP_Text)keyText).text = "INVALID INPUT";
((Graphic)keyText).color = Color.red;
invalidTimer = 1.2f;
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)2, (MenuPage)null, -1f, -1f, true);
}
break;
}
PluginConfig.MenuKeybind.Value = value;
listening = false;
IsRebinding = false;
UpdateFooterText();
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)1, (MenuPage)null, -1f, -1f, true);
}
((TMP_Text)keyText).text = ValuableTracker.GetFriendlyName(value);
((Graphic)btnBg).color = repoBlueActive;
break;
}
return;
}
}
bool flag = IsMouseOver(btnRect);
if (flag && (Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuHover();
}
if (flag && !isHovering && (Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectHover(1f, -1f);
}
isHovering = flag;
((Graphic)border).color = (flag ? Color.white : repoBlueBorder);
((TMP_Text)keyText).rectTransform.anchoredPosition = (Vector2)(flag ? new Vector2(originalTextPos.x + 2f, originalTextPos.y) : originalTextPos);
if (flag && Input.GetMouseButtonDown(0))
{
listening = true;
IsRebinding = true;
((Graphic)btnBg).color = repoOrange;
((TMP_Text)keyText).text = "[PRESS KEY]";
((Graphic)keyText).color = repoYellow;
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)0, (MenuPage)null, -1f, -1f, true);
}
}
if (!listening && invalidTimer <= 0f)
{
((TMP_Text)keyText).text = ValuableTracker.GetFriendlyName(PluginConfig.MenuKeybind.Value);
((Graphic)keyText).color = Color.white;
if (!flag)
{
((Graphic)btnBg).color = repoBlueActive;
}
}
}
private bool IsMouseOver(RectTransform target)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)target == (Object)null || (Object)(object)MenuCursor.instance == (Object)null)
{
return false;
}
Vector3 val = ((Transform)target).InverseTransformPoint(((Component)MenuCursor.instance).transform.position);
Rect rect = target.rect;
return ((Rect)(ref rect)).Contains(val);
}
}
private class RepoRowHandler : MonoBehaviour
{
private Image border;
private Image onHover;
private Image offHover;
private RectTransform activeGroup;
private RectTransform glow;
private RectTransform onRect;
private RectTransform offRect;
private TextMeshProUGUI onText;
private TextMeshProUGUI offText;
private Func<bool> getter;
private Action<bool> setter;
private bool isHoveringAny;
private bool isClickAnimActive;
private float flickerTimer;
private float popScale = 0f;
public void Setup(Image brd, RectTransform h, RectTransform g, TextMeshProUGUI on, TextMeshProUGUI off, Func<bool> get, Action<bool> set, Image hOn, Image hOff)
{
border = brd;
activeGroup = h;
glow = g;
onText = on;
offText = off;
getter = get;
setter = set;
onHover = hOn;
offHover = hOff;
}
public void SetOnTarget(RectTransform r)
{
onRect = r;
}
public void SetOffTarget(RectTransform r)
{
offRect = r;
}
private void Update()
{
//IL_0172: Unknown result type (might be due to invalid IL or missing references)
//IL_0186: Unknown result type (might be due to invalid IL or missing references)
//IL_017f: Unknown result type (might be due to invalid IL or missing references)
//IL_0196: Unknown result type (might be due to invalid IL or missing references)
//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
//IL_01e4: Unknown result type (might be due to invalid IL or missing references)
//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
//IL_020b: Unknown result type (might be due to invalid IL or missing references)
//IL_0210: Unknown result type (might be due to invalid IL or missing references)
//IL_0220: Unknown result type (might be due to invalid IL or missing references)
//IL_0231: Unknown result type (might be due to invalid IL or missing references)
//IL_0236: Unknown result type (might be due to invalid IL or missing references)
//IL_0272: Unknown result type (might be due to invalid IL or missing references)
//IL_027d: Unknown result type (might be due to invalid IL or missing references)
//IL_0372: Unknown result type (might be due to invalid IL or missing references)
//IL_0383: Unknown result type (might be due to invalid IL or missing references)
//IL_02f1: Unknown result type (might be due to invalid IL or missing references)
//IL_0301: Unknown result type (might be due to invalid IL or missing references)
//IL_0342: Unknown result type (might be due to invalid IL or missing references)
//IL_033b: Unknown result type (might be due to invalid IL or missing references)
//IL_035d: Unknown result type (might be due to invalid IL or missing references)
//IL_0356: Unknown result type (might be due to invalid IL or missing references)
if (!isMenuOpen)
{
return;
}
bool flag = getter();
bool flag2 = IsMouseOver(onRect);
bool flag3 = IsMouseOver(offRect);
if (Object.op_Implicit((Object)(object)onHover))
{
((Behaviour)onHover).enabled = flag2 && !flag;
}
if (Object.op_Implicit((Object)(object)offHover))
{
((Behaviour)offHover).enabled = flag3 && flag;
}
bool flag4 = flag2 || flag3;
if (flag4)
{
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuHover();
}
if (!isHoveringAny && (Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectHover(1f, -1f);
}
if (Input.GetMouseButtonDown(0))
{
bool flag5 = flag2 || (!flag3 && flag);
if (flag5 != flag)
{
setter(flag5);
flickerTimer = 0.25f;
isClickAnimActive = true;
popScale = 0f;
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectClick((MenuClickEffectType)4, (MenuPage)null, -1f, -1f, true);
}
}
}
}
isHoveringAny = flag4;
((Graphic)border).color = Color.Lerp(((Graphic)border).color, isHoveringAny ? Color.white : repoBlueBorder, Time.deltaTime * 10f);
Vector2 val = (flag ? new Vector2(-30f, 0f) : new Vector2(30f, 0f));
activeGroup.anchoredPosition = Vector2.Lerp(activeGroup.anchoredPosition, val, Time.deltaTime * 25f);
if (isClickAnimActive)
{
((Transform)glow).localScale = Vector3.Lerp(((Transform)glow).localScale, Vector3.zero, Time.deltaTime * 40f);
if (Vector2.Distance(activeGroup.anchoredPosition, val) < 1f)
{
popScale = Mathf.MoveTowards(popScale, 1.4f, Time.deltaTime * 12f);
((Transform)glow).localScale = Vector3.one * popScale;
if (popScale >= 1.4f)
{
isClickAnimActive = false;
}
}
}
else
{
((Transform)glow).localScale = Vector3.Lerp(((Transform)glow).localScale, new Vector3(((flag && flag2) || (!flag && flag3)) ? 1.15f : 1f, ((flag && flag2) || (!flag && flag3)) ? 1.15f : 1f, 1f), Time.deltaTime * 15f);
}
if (flickerTimer > 0f)
{
flickerTimer -= Time.deltaTime;
((Graphic)onText).color = (flag ? repoOrange : Color.white);
((Graphic)offText).color = ((!flag) ? repoOrange : Color.white);
}
else
{
((Graphic)onText).color = Color.white;
((Graphic)offText).color = Color.white;
}
}
private bool IsMouseOver(RectTransform target)
{
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0035: Unknown result type (might be due to invalid IL or missing references)
//IL_0037: Unknown result type (might be due to invalid IL or missing references)
//IL_003c: Unknown result type (might be due to invalid IL or missing references)
//IL_003f: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)target == (Object)null || (Object)(object)MenuCursor.instance == (Object)null)
{
return false;
}
Vector3 val = ((Transform)target).InverseTransformPoint(((Component)MenuCursor.instance).transform.position);
Rect rect = target.rect;
return ((Rect)(ref rect)).Contains(val);
}
}
private class RepoButton : MonoBehaviour
{
public bool targetValue;
}
private static GameObject UIObject;
private static TextMeshProUGUI UIText;
private static GameObject SettingsPanel;
private static MenuPage SettingsMenuPage;
private static GameObject DimmerPanel;
private static GameObject WindowContainer;
private static CanvasGroup SettingsCanvasGroup;
private static TextMeshProUGUI FooterHintText;
public static bool isMenuOpen = false;
private static float introLerp = 0f;
private static Color repoBlueActive = new Color(0.067f, 0.298f, 0.725f, 1f);
private static Color repoBlueBorder = new Color(0f, 0.5f, 1f, 1f);
private static Color repoOrange = new Color(1f, 0.46f, 0f, 1f);
private static Color repoYellow = new Color(1f, 0.8f, 0f, 1f);
private static Color repoHover = new Color(0f, 0.5f, 1f, 0.3f);
private static TMP_FontAsset nativeFont;
private static FieldInfo inputDisableTimerField = typeof(PlayerController).GetField("InputDisableTimer", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
private static FieldInfo itemsInCartListField = AccessTools.Field(typeof(PhysGrabCart), "itemsInCart");
private static FieldInfo menuManagerStateField = AccessTools.Field(typeof(MenuManager), "currentMenuState");
private static float _updateTimer = 0f;
private const float UPDATE_INTERVAL = 0.25f;
public static void Cleanup()
{
if ((Object)(object)SettingsMenuPage != (Object)null && (Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.PageRemove(SettingsMenuPage);
}
if ((Object)(object)SettingsPanel != (Object)null)
{
Object.Destroy((Object)(object)SettingsPanel);
}
if ((Object)(object)UIObject != (Object)null)
{
Object.Destroy((Object)(object)UIObject);
}
SettingsPanel = null;
SettingsMenuPage = null;
DimmerPanel = null;
WindowContainer = null;
UIObject = null;
SettingsCanvasGroup = null;
UIText = null;
FooterHintText = null;
isMenuOpen = false;
introLerp = 0f;
KeybindHandler.IsRebinding = false;
}
public static void UpdateTick()
{
//IL_007b: Unknown result type (might be due to invalid IL or missing references)
//IL_0257: Unknown result type (might be due to invalid IL or missing references)
//IL_0246: Unknown result type (might be due to invalid IL or missing references)
//IL_025c: Unknown result type (might be due to invalid IL or missing references)
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_026a: Unknown result type (might be due to invalid IL or missing references)
//IL_0274: Unknown result type (might be due to invalid IL or missing references)
int num = 1;
if ((Object)(object)MenuManager.instance != (Object)null && menuManagerStateField != null)
{
num = (int)menuManagerStateField.GetValue(MenuManager.instance);
}
if (isMenuOpen && num == 0)
{
isMenuOpen = false;
if ((Object)(object)MenuManager.instance != (Object)null)
{
MenuManager.instance.MenuEffectPopUpClose();
}
return;
}
if (!KeybindHandler.IsRebinding && Input.GetKeyDown(PluginConfig.MenuKeybind.Value) && (isMenuOpen || num != 0))
{
isMenuOpen = !isMenuOpen;
if (isMenuOpen && (Object)(object)SettingsPanel != (Object)null)
{
SettingsPanel.transform.SetAsLastSibling();
UpdateFooterText();
}
if ((Object)(object)MenuManager.instance != (Object)null)
{
if (isMenuOpen)
{
MenuManager.instance.MenuEffectPopUpOpen();
}
else
{
MenuManager.instance.MenuEffectPopUpClose();
}
MenuManager.instance.StateSet((MenuState)((!isMenuOpen) ? 1 : 0));
}
}
if (isMenuOpen)
{
if ((Object)(object)CursorManager.instance != (Object)null)
{
CursorManager.instance.Unlock(0.1f);
}
if ((Object)(object)PlayerController.instance != (Object)null && inputDisableTimerField != null)
{
inputDisableTimerField.SetValue(PlayerController.instance, 0.1f);
}
SemiFunc.UIHideAim();
SemiFunc.UIHideInventory();
SemiFunc.UIHideHaul();
SemiFunc.UIHideHealth();
SemiFunc.UIHideEnergy();
SemiFunc.CameraOverrideStopAim();
}
if ((Object)(object)SettingsPanel == (Object)null)
{
CreateSettingsMenu();
}
if ((Object)(object)SettingsPanel != (Object)null && (Object)(object)WindowContainer != (Object)null)
{
introLerp = Mathf.MoveTowards(introLerp, isMenuOpen ? 1f : 0f, Time.deltaTime * 5f);
Vector2 val = (isMenuOpen ? new Vector2(0f, 50f) : new Vector2(0f, -50f));
WindowContainer.GetComponent<RectTransform>().anchoredPosition = Vector2.Lerp(val, Vector2.zero, introLerp);
if ((Object)(object)SettingsCanvasGroup != (Object)null)
{
SettingsCanvasGroup.alpha = introLerp;
}
bool flag = isMenuOpen || introLerp > 0f;
if (SettingsPanel.activeSelf != flag)
{
SettingsPanel.SetActive(flag);
}
}
if (SemiFunc.RunIsLevel())
{
if ((Object)(object)UIObject == (Object)null)
{
CreateHUD();
}
if (!((Object)(object)UIObject != (Object)null))
{
return;
}
bool active = PluginConfig.ShowHUD.Value || PluginConfig.ShowCartCount.Value || PluginConfig.ShowLostCount.Value;
UIObject.SetActive(active);
if (UIObject.activeSelf)
{
_updateTimer += Time.deltaTime;
if (_updateTimer >= 0.25f)
{
_updateTimer = 0f;
UpdateDisplay();
}
}
}
else if ((Object)(object)UIObject != (Object)null)
{
UIObject.SetActive(false);
}
}
public static void UpdateFooterText()
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
if (!((Object)(object)FooterHintText == (Object)null))
{
string friendlyName = ValuableTracker.GetFriendlyName(PluginConfig.MenuKeybind.Value);
((TMP_Text)FooterHintText).text = (friendlyName.Contains("Mouse") ? (friendlyName + " to Close") : ("Press " + friendlyName + " to Close"));
}
}
private static void FetchNativeFont()
{
if (!((Object)(object)nativeFont != (Object)null))
{
GameObject val = GameObject.Find("Tax Haul");
if ((Object)(object)val != (Object)null)
{
nativeFont = ((TMP_Text)val.GetComponent<TextMeshProUGUI>()).font;
}
}
}
private static void CreateSettingsMenu()
{
//IL_004d: Unknown result type (might be due to invalid IL or missing references)
//IL_0057: Expected O, but got Unknown
//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00be: 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_0105: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: Expected O, but got Unknown
//IL_0136: Unknown result type (might be due to invalid IL or missing references)
//IL_0142: Unknown result type (might be due to invalid IL or missing references)
//IL_014e: Unknown result type (might be due to invalid IL or missing references)
//IL_015a: Unknown result type (might be due to invalid IL or missing references)
//IL_0185: Unknown result type (might be due to invalid IL or missing references)
//IL_019d: Unknown result type (might be due to invalid IL or missing references)
//IL_01a7: Expected O, but got Unknown
//IL_01da: Unknown result type (might be due to invalid IL or missing references)
//IL_01e7: Unknown result type (might be due to invalid IL or missing references)
//IL_0214: Unknown result type (might be due to invalid IL or missing references)
//IL_023e: Unknown result type (might be due to invalid IL or missing references)
//IL_024d: Unknown result type (might be due to invalid IL or missing references)
//IL_0261: Unknown result type (might be due to invalid IL or missing references)
//IL_0280: Unknown result type (might be due to invalid IL or missing references)
//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
//IL_0306: Unknown result type (might be due to invalid IL or missing references)
//IL_0368: Unknown result type (might be due to invalid IL or missing references)
//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0404: Unknown result type (might be due to invalid IL or missing references)
//IL_0418: Unknown result type (might be due to invalid IL or missing references)
object obj2;
if (!Object.op_Implicit((Object)(object)MenuHolder.instance))
{
GameObject obj = GameObject.Find("Game Hud");
obj2 = ((obj != null) ? obj.transform : null);
}
else
{
obj2 = ((Component)MenuHolder.instance).transform;
}
Transform val = (Transform)obj2;
if (!((Object)(object)val == (Object)null))
{
FetchNativeFont();
SettingsPanel = new GameObject("ValuableTracker_SettingsRoot");
SettingsPanel.transform.SetParent(val, false);
SettingsPanel.layer = ((Component)val).gameObject.layer;
SettingsMenuPage = SettingsPanel.AddComponent<MenuPage>();
((Behaviour)SettingsMenuPage).enabled = false;
RectTransform val2 = SettingsPanel.AddComponent<RectTransform>();
val2.anchorMin = Vector2.zero;
val2.anchorMax = Vector2.one;
val2.offsetMin = Vector2.zero;
val2.offsetMax = Vector2.zero;
SettingsCanvasGroup = SettingsPanel.AddComponent<CanvasGroup>();
SettingsCanvasGroup.blocksRaycasts = true;
SettingsCanvasGroup.alpha = 0f;
DimmerPanel = new GameObject("Dimmer");
DimmerPanel.transform.SetParent(SettingsPanel.transform, false);
RectTransform val3 = DimmerPanel.AddComponent<RectTransform>();
val3.anchorMin = Vector2.zero;
val3.anchorMax = Vector2.one;
val3.offsetMin = Vector2.zero;
val3.offsetMax = Vector2.zero;
Image val4 = DimmerPanel.AddComponent<Image>();
((Graphic)val4).color = new Color(0f, 0f, 0f, 0.7f);
((Graphic)val4).raycastTarget = true;
WindowContainer = new GameObject("WindowContainer");
WindowContainer.transform.SetParent(SettingsPanel.transform, false);
RectTransform val5 = WindowContainer.AddComponent<RectTransform>();
val5.sizeDelta = new Vector2(500f, 350f);
val5.anchoredPosition = Vector2.zero;
Image val6 = WindowContainer.AddComponent<Image>();
((Graphic)val6).color = new Color(0.02f, 0.02f, 0.02f, 0.4f);
((Graphic)val6).raycastTarget = true;
CreateTextElement("Title", "VALUABLE TRACKER SETTINGS", 36, new Vector2(0f, 130f), WindowContainer.transform, repoOrange, (TextAlignmentOptions)514, new Vector2(480f, 60f));
CreateResetButton("RESET TO DEFAULT SETTINGS", new Vector2(0f, 90f), WindowContainer.transform);
CreateSettingRow("TRACK VALUABLE ITEMS", new Vector2(0f, 45f), WindowContainer.transform, () => PluginConfig.ShowHUD.Value, delegate(bool v)
{
PluginConfig.ShowHUD.Value = v;
});
CreateSettingRow("TRACK ITEMS IN CART", new Vector2(0f, 0f), WindowContainer.transform, () => PluginConfig.ShowCartCount.Value, delegate(bool v)
{
PluginConfig.ShowCartCount.Value = v;
});
CreateSettingRow("TRACK LOST/DESTROYED", new Vector2(0f, -45f), WindowContainer.transform, () => PluginConfig.ShowLostCount.Value, delegate(bool v)
{
PluginConfig.ShowLostCount.Value = v;
});
CreateKeybindRow("MENU KEYBIND", new Vector2(0f, -90f), WindowContainer.transform);
FooterHintText = CreateTextElement("Hint", "Press F4 to Close", 18, new Vector2(0f, -140f), WindowContainer.transform, Color.white, (TextAlignmentOptions)514, new Vector2(300f, 40f));
UpdateFooterText();
SettingsPanel.SetActive(false);
}
}
private static void CreateResetButton(string label, Vector2 pos, Transform parent)
{
//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_0047: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0066: Unknown result type (might be due to invalid IL or missing references)
GameObject val = new GameObject("ResetBtn");
val.transform.SetParent(parent, false);
RectTransform val2 = val.AddComponent<RectTransform>();
val2.sizeDelta = new Vector2(380f, 25f);
val2.anchoredPosition = pos;
TextMeshProUGUI t = CreateTextElement("Label", label, 18, Vector2.zero, val.transform, Color.gray, (TextAlignmentOptions)514, new Vector2(380f, 25f));
ResetHandler resetHandler = val.AddComponent<ResetHandler>();
resetHandler.Setup(t, val2);
}
private static void CreateKeybindRow(string label, Vector2 pos, Transform parent)
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: 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_0050: Expected O, but got Unknown
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Expected O, but got Unknown
//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0110: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Expected O, but got Unknown
//IL_016a: 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_0197: Unknown result type (might be due to invalid IL or missing references)
//IL_01ac: Unknown result type (might be due to invalid IL or missing references)
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
GameObject val = new GameObject(label + "_Row");
val.transform.SetParent(parent, false);
RectTransform val2 = val.AddComponent<RectTransform>();
val2.sizeDelta = new Vector2(380f, 35f);
val2.anchoredPosition = pos;
GameObject val3 = new GameObject("Border");
val3.transform.SetParent(val.transform, false);
RectTransform val4 = val3.AddComponent<RectTransform>();
val4.sizeDelta = val2.sizeDelta;
Image val5 = val3.AddComponent<Image>();
((Graphic)val5).color = repoBlueBorder;
GameObject val6 = new GameObject("InnerHole");
val6.transform.SetParent(val3.transform, false);
RectTransform val7 = val6.AddComponent<RectTransform>();
val7.sizeDelta = new Vector2(376f, 31f);
((Graphic)val6.AddComponent<Image>()).color = new Color(0f, 0f, 0f, 0.95f);
CreateTextElement("Label", label, 20, new Vector2(-60f, 0f), val6.transform, Color.white, (TextAlignmentOptions)513, new Vector2(240f, 35f), -2f);
GameObject val8 = new GameObject("KeybindBtn");
val8.transform.SetParent(val6.transform, false);
RectTransform val9 = val8.AddComponent<RectTransform>();
val9.sizeDelta = new Vector2(120f, 31f);
val9.anchoredPosition = new Vector2(128f, 0f);
Image val10 = val8.AddComponent<Image>();
((Graphic)val10).color = repoBlueActive;
TextMeshProUGUI t = CreateTextElement("KeyText", ValuableTracker.GetFriendlyName(PluginConfig.MenuKeybind.Value), 20, Vector2.zero, val8.transform, Color.white, (TextAlignmentOptions)514, new Vector2(120f, 35f), -2f);
KeybindHandler keybindHandler = val.AddComponent<KeybindHandler>();
keybindHandler.Setup(val5, val10, t, val9);
}
private static void CreateSettingRow(string label, Vector2 pos, Transform parent, Func<bool> getter, Action<bool> setter)
{
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: 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_0050: Expected O, but got Unknown
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
//IL_0081: Unknown result type (might be due to invalid IL or missing references)
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Expected O, but got Unknown
//IL_00c1: Unknown result type (might be due to invalid IL or missing references)
//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_0110: Unknown result type (might be due to invalid IL or missing references)
//IL_0124: Unknown result type (might be due to invalid IL or missing references)
//IL_0139: Unknown result type (might be due to invalid IL or missing references)
//IL_0140: Expected O, but got Unknown
//IL_016a: 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_0191: Unknown result type (might be due to invalid IL or missing references)
//IL_0198: Expected O, but got Unknown
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_0205: 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_021c: Expected O, but got Unknown
//IL_023c: Unknown result type (might be due to invalid IL or missing references)
//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
//IL_0289: Unknown result type (might be due to invalid IL or missing references)
//IL_0299: Unknown result type (might be due to invalid IL or missing references)
//IL_02a0: Expected O, but got Unknown
//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
//IL_02da: Unknown result type (might be due to invalid IL or missing references)
//IL_02e1: Expected O, but got Unknown
//IL_030b: Unknown result type (might be due to invalid IL or missing references)
//IL_031d: Unknown result type (might be due to invalid IL or missing references)
//IL_032d: Unknown result type (might be due to invalid IL or missing references)
//IL_0334: Expected O, but got Unknown
//IL_035e: Unknown result type (might be due to invalid IL or missing references)
//IL_0370: Unknown result type (might be due to invalid IL or missing references)
//IL_0391: Unknown result type (might be due to invalid IL or missing references)
//IL_039d: Unknown result type (might be due to invalid IL or missing references)
//IL_03b1: Unknown result type (might be due to invalid IL or missing references)
//IL_03d8: Unknown result type (might be due to invalid IL or missing references)
//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
//IL_03f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0439: Unknown result type (might be due to invalid IL or missing references)
//IL_0448: Unknown result type (might be due to invalid IL or missing references)
//IL_046b: Unknown result type (might be due to invalid IL or missing references)
//IL_0485: Unknown result type (might be due to invalid IL or missing references)
//IL_0494: 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_0272: Unknown result type (might be due to invalid IL or missing references)
GameObject val = new GameObject(label + "_Row");
val.transform.SetParent(parent, false);
RectTransform val2 = val.AddComponent<RectTransform>();
val2.sizeDelta = new Vector2(380f, 35f);
val2.anchoredPosition = pos;
GameObject val3 = new GameObject("Border");
val3.transform.SetParent(val.transform, false);
RectTransform val4 = val3.AddComponent<RectTransform>();
val4.sizeDelta = val2.sizeDelta;
Image val5 = val3.AddComponent<Image>();
((Graphic)val5).color = repoBlueBorder;
GameObject val6 = new GameObject("InnerHole");
val6.transform.SetParent(val3.transform, false);
RectTransform val7 = val6.AddComponent<RectTransform>();
val7.sizeDelta = new Vector2(376f, 31f);
((Graphic)val6.AddComponent<Image>()).color = new Color(0f, 0f, 0f, 0.95f);
CreateTextElement("Label", label, 20, new Vector2(-60f, 0f), val6.transform, Color.white, (TextAlignmentOptions)513, new Vector2(240f, 35f), -2f);
GameObject val8 = new GameObject("ToggleBox");
val8.transform.SetParent(val6.transform, false);
RectTransform val9 = val8.AddComponent<RectTransform>();
val9.sizeDelta = new Vector2(120f, 31f);
val9.anchoredPosition = new Vector2(128f, 0f);
GameObject val10 = new GameObject("OnHover");
val10.transform.SetParent(val8.transform, false);
Image val11 = val10.AddComponent<Image>();
((Graphic)val11).color = repoHover;
((Behaviour)val11).enabled = false;
RectTransform component = val10.GetComponent<RectTransform>();
if (Object.op_Implicit((Object)(object)component))
{
component.sizeDelta = new Vector2(60f, 31f);
}
component.anchoredPosition = new Vector2(-30f, 0f);
GameObject val12 = new GameObject("OffHover");
val12.transform.SetParent(val8.transform, false);
Image val13 = val12.AddComponent<Image>();
((Graphic)val13).color = repoHover;
((Behaviour)val13).enabled = false;
RectTransform component2 = val12.GetComponent<RectTransform>();
if (Object.op_Implicit((Object)(object)component2))
{
component2.sizeDelta = new Vector2(60f, 31f);
}
component2.anchoredPosition = new Vector2(30f, 0f);
GameObject val14 = new GameObject("ActiveGroup");
val14.transform.SetParent(val8.transform, false);
RectTransform val15 = val14.AddComponent<RectTransform>();
val15.sizeDelta = new Vector2(60f, 31f);
GameObject val16 = new GameObject("OrangeGlow");
val16.transform.SetParent(val14.transform, false);
RectTransform val17 = val16.AddComponent<RectTransform>();
val17.sizeDelta = new Vector2(64f, 35f);
((Graphic)val16.AddComponent<Image>()).color = repoOrange;
GameObject val18 = new GameObject("BlueBody");
val18.transform.SetParent(val14.transform, false);
RectTransform val19 = val18.AddComponent<RectTransform>();
val19.sizeDelta = new Vector2(60f, 31f);
((Graphic)val18.AddComponent<Image>()).color = repoBlueActive;
TextMeshProUGUI on = CreateTextElement("ON", "ON", 18, new Vector2(-30f, 0f), val8.transform, Color.white, (TextAlignmentOptions)514, new Vector2(50f, 35f), -2f);
TextMeshProUGUI off = CreateTextElement("OFF", "OFF", 18, new Vector2(30f, 0f), val8.transform, Color.white, (TextAlignmentOptions)514, new Vector2(50f, 35f), -2f);
RepoRowHandler repoRowHandler = val.AddComponent<RepoRowHandler>();
repoRowHandler.Setup(val5, val15, val17, on, off, getter, setter, val11, val13);
CreateHitbox("Hit_ON", new Vector2(-30f, 0f), new Vector2(60f, 31f), val8.transform, val: true, repoRowHandler, new Color(0f, 1f, 0f, 0.01f));
CreateHitbox("Hit_OFF", new Vector2(30f, 0f), new Vector2(60f, 31f), val8.transform, val: false, repoRowHandler, new Color(1f, 0f, 0f, 0.01f));
}
private static void CreateHitbox(string name, Vector2 pos, Vector2 size, Transform parent, bool val, RepoRowHandler handler, Color debugColor)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_001e: 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_0035: Unknown result type (might be due to invalid IL or missing references)
GameObject val2 = new GameObject(name);
val2.transform.SetParent(parent, false);
RectTransform val3 = val2.AddComponent<RectTransform>();
val3.sizeDelta = size;
val3.anchoredPosition = pos;
Image val4 = val2.AddComponent<Image>();
((Graphic)val4).color = debugColor;
((Graphic)val4).raycastTarget = true;
RepoButton repoButton = val2.AddComponent<RepoButton>();
repoButton.targetValue = val;
if (val)
{
handler.SetOnTarget(val3);
}
else
{
handler.SetOffTarget(val3);
}
}
private static TextMeshProUGUI CreateTextElement(string name, string content, int size, Vector2 pos, Transform parent, Color color, TextAlignmentOptions align, Vector2 boxSize, float yOffset = 0f)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0008: Expected O, but got Unknown
//IL_004b: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: 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)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_0071: 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)
GameObject val = new GameObject(name);
val.transform.SetParent(parent, false);
TextMeshProUGUI val2 = val.AddComponent<TextMeshProUGUI>();
if ((Object)(object)nativeFont != (Object)null)
{
((TMP_Text)val2).font = nativeFont;
}
((TMP_Text)val2).text = content;
((TMP_Text)val2).fontSize = size;
((Graphic)val2).color = color;
((TMP_Text)val2).alignment = align;
((TMP_Text)val2).rectTransform.anchoredPosition = new Vector2(pos.x, pos.y + yOffset);
((TMP_Text)val2).rectTransform.sizeDelta = boxSize;
((Graphic)val2).raycastTarget = false;
return val2;
}
private static void CreateHUD()
{
//IL_0034: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Expected O, but got Unknown
GameObject val = GameObject.Find("Game Hud");
GameObject val2 = GameObject.Find("Tax Haul");
if ((Object)(object)val != (Object)null && (Object)(object)val2 != (Object)null)
{
UIObject = new GameObject("ValuableTracker_HUD");
UIObject.transform.SetParent(val.transform, false);
UIText = UIObject.AddComponent<TextMeshProUGUI>();
((TMP_Text)UIText).font = val2.GetComponent<TMP_Text>().font;
((TMP_Text)UIText).fontSize = 24f;
((TMP_Text)UIText).alignment = (TextAlignmentOptions)2052;
((TMP_Text)UIText).enableWordWrapping = false;
}
}
private static void UpdateDisplay()
{
//IL_029a: Unknown result type (might be due to invalid IL or missing references)
if ((Object)(object)UIObject == (Object)null)
{
return;
}
UpdatePosition();
int num = 0;
int num2 = 0;
List<GameObject> dollarHaulList = RoundDirector.instance.dollarHaulList;
foreach (ValuableTracker.ItemState trackedItem in ValuableTracker.TrackedItems)
{
if (trackedItem.isLost)
{
if (trackedItem.isExtracted)
{
num++;
}
else
{
num2++;
}
continue;
}
bool flag = false;
if ((Object)(object)trackedItem.itemRef != (Object)null)
{
if (dollarHaulList.Contains(((Component)trackedItem.itemRef).gameObject))
{
flag = true;
}
else if ((Object)(object)((Component)trackedItem.itemRef).transform.parent != (Object)null && dollarHaulList.Contains(((Component)((Component)trackedItem.itemRef).transform.parent).gameObject))
{
flag = true;
}
}
bool flag2 = false;
if ((Object)(object)trackedItem.itemRef != (Object)null && (!((Component)trackedItem.itemRef).gameObject.activeInHierarchy || !((Behaviour)trackedItem.itemRef).enabled))
{
flag2 = true;
}
if (trackedItem.markedAsSold || flag)
{
num++;
}
else if ((Object)(object)trackedItem.itemRef == (Object)null || flag2)
{
trackedItem.isLost = true;
num2++;
}
}
int num3 = 0;
if (PluginConfig.ShowCartCount.Value && itemsInCartListField != null)
{
PhysGrabCart[] array = Object.FindObjectsOfType<PhysGrabCart>();
foreach (PhysGrabCart obj in array)
{
if (!(itemsInCartListField.GetValue(obj) is IEnumerable enumerable))
{
continue;
}
foreach (object item in enumerable)
{
PhysGrabObject val = (PhysGrabObject)((item is PhysGrabObject) ? item : null);
if ((Object)(object)val != (Object)null && (Object)(object)((Component)val).GetComponent<ValuableObject>() != (Object)null)
{
num3++;
}
}
}
}
int num4 = ValuableTracker.TotalItemsRecorded - num2;
if (!((Object)(object)UIText != (Object)null))
{
return;
}
StringBuilder stringBuilder = new StringBuilder();
bool flag3 = false;
((Graphic)UIText).color = new Color(0.78f, 0.91f, 0.9f, 1f);
if (PluginConfig.ShowHUD.Value)
{
bool flag4 = num == num4 && num4 > 0;
if (flag4)
{
stringBuilder.Append("<color=green>");
}
stringBuilder.Append($"Items: {num} / {num4}");
if (flag4)
{
stringBuilder.Append("</color>");
}
flag3 = true;
}
if (PluginConfig.ShowCartCount.Value && num3 > 0)
{
if (flag3)
{
stringBuilder.Append("\n");
}
stringBuilder.Append($"In Cart: {num3}");
flag3 = true;
}
if (PluginConfig.ShowLostCount.Value && num2 > 0)
{
if (flag3)
{
stringBuilder.Append("\n");
}
stringBuilder.Append($"<color=#FF4444>Lost: {num2}</color>");
}
((TMP_Text)UIText).text = stringBuilder.ToString();
}
private static void UpdatePosition()
{
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
//IL_00ba: 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_00dc: Unknown result type (might be due to invalid IL or missing references)
//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
//IL_0100: Unknown result type (might be due to invalid IL or missing references)
//IL_010c: Unknown result type (might be due to invalid IL or missing references)
//IL_005a: Unknown result type (might be due to invalid IL or missing references)
//IL_006c: Unknown result type (might be due to invalid IL or missing references)
RectTransform component = UIObject.GetComponent<RectTransform>();
float num = 225f;
foreach (RectTransform item in UIObject.transform.parent)
{
RectTransform val = item;
if ((Object)(object)val == (Object)(object)component || !((Component)val).gameObject.activeSelf || !(val.anchoredPosition.y > 220f) || !(val.anchoredPosition.y < 230f))
{
continue;
}
num = 195f;
break;
}
component.pivot = new Vector2(1f, 1f);
component.anchorMin = Vector2.zero;
component.anchorMax = new Vector2(1f, 0f);
component.offsetMax = new Vector2(0f, num);
component.offsetMin = new Vector2(0f, num);
component.sizeDelta = Vector2.zero;
}
}
}