using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using Microsoft.CodeAnalysis; using Newtonsoft.Json; using On.RoR2; using On.RoR2.UI; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.Stats; using RoR2.UI; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; 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(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("MetaMarket")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("MetaMarket")] [assembly: AssemblyTitle("MetaMarket")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 MetaMarket { public class LoadoutUI : MonoBehaviour { private bool _isOpen = false; private string _currentSurvivorName = null; private string _currentSurvivorDisplay = null; private GameObject _root; private Text _indicatorText; private GameObject _lobbyIndicator; private Text _levelText; private RectTransform _xpBarFillRect; private Text _xpText; private Text _tokenText; private Text _survivorText; private Text _costText; private Transform _gridParent; private Transform _equipmentGridParent; private readonly List _cells = new List(); private readonly List _equipmentCells = new List(); private GameObject _equipmentHeader; private const int ICON_SIZE = 64; private const int ICON_PADDING = 6; private void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown BuildCanvas(); _root.SetActive(false); NetworkUser.onNetworkUserBodyPreferenceChanged += new NetworkUserGenericDelegate(OnBodyPreferenceChanged); SceneManager.activeSceneChanged += OnSceneChanged; } private void OnDestroy() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown NetworkUser.onNetworkUserBodyPreferenceChanged -= new NetworkUserGenericDelegate(OnBodyPreferenceChanged); SceneManager.activeSceneChanged -= OnSceneChanged; } private void OnSceneChanged(Scene prev, Scene next) { bool flag = ((Scene)(ref next)).name == "lobby"; if ((Object)(object)_lobbyIndicator != (Object)null) { _lobbyIndicator.SetActive(flag); } if (_isOpen && !flag) { Close(); } } private void Update() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) KeyboardShortcut value = Plugin.OpenMenuKey.Value; if (((KeyboardShortcut)(ref value)).IsDown()) { Toggle(); } } private void OnBodyPreferenceChanged(NetworkUser user) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); if (firstLocalUser != null && !((Object)(object)user != (Object)(object)firstLocalUser.currentNetworkUser)) { SetSurvivorFromBodyIndex(user.bodyIndexPreference); } } private void SetSurvivorFromBodyIndex(BodyIndex bodyIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) if ((int)bodyIndex != -1) { SurvivorDef survivorDef = SurvivorCatalog.GetSurvivorDef(SurvivorCatalog.GetSurvivorIndexFromBodyIndex(bodyIndex)); if ((Object)(object)survivorDef != (Object)null) { SetSurvivorFromDef(survivorDef); } } } internal void SetSurvivorFromDef(SurvivorDef def) { _currentSurvivorName = def.cachedName; _currentSurvivorDisplay = (Language.IsTokenInvalid(def.displayNameToken) ? def.cachedName : Language.GetString(def.displayNameToken)); Plugin.Logger.LogInfo((object)("[MetaMarket] Survivor: " + _currentSurvivorDisplay)); if (_isOpen) { _survivorText.text = "Survivor: " + _currentSurvivorDisplay; RefreshGrid(); } } private void TryReadSurvivorFromNetworkUser() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 //IL_0037: Unknown result type (might be due to invalid IL or missing references) LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); if (!((Object)(object)((firstLocalUser != null) ? firstLocalUser.currentNetworkUser : null) == (Object)null)) { BodyIndex bodyIndexPreference = firstLocalUser.currentNetworkUser.bodyIndexPreference; if ((int)bodyIndexPreference != -1) { SetSurvivorFromBodyIndex(bodyIndexPreference); } } } private void TryReadSurvivorFromRun() { LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); if (firstLocalUser == null) { return; } GameObject cachedMasterObject = firstLocalUser.cachedMasterObject; CharacterMaster val = ((cachedMasterObject != null) ? cachedMasterObject.GetComponent() : null); if (!((Object)(object)val == (Object)null)) { SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val.bodyPrefab); if ((Object)(object)val2 != (Object)null) { SetSurvivorFromDef(val2); } } } public void Toggle() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) if (_isOpen) { Close(); return; } Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "lobby") { Open(); } } public void Open() { _isOpen = true; RunHooks.SyncUnlockedItemsFromProfile(); if (_currentSurvivorName == null) { TryReadSurvivorFromNetworkUser(); } if (_currentSurvivorName == null) { TryReadSurvivorFromRun(); } Refresh(); _root.SetActive(true); } public void Close() { _isOpen = false; _root.SetActive(false); } public void Refresh() { //IL_0070: Unknown result type (might be due to invalid IL or missing references) if (_isOpen) { ProgressionSaveData data = ProgressionManager.Data; int level = data.Level; long num = ProgressionManager.CurrentLevelXP(); long num2 = ProgressionManager.XPForNextLevel(level); _levelText.text = $"Level {level}"; float num3 = ((num2 > 0) ? Mathf.Clamp01((float)num / (float)num2) : 1f); _xpBarFillRect.anchorMax = new Vector2(num3, 1f); _xpText.text = $"{num:N0} / {num2:N0} XP"; _tokenText.text = $"Total Tokens: {data.AvailableTokens}"; _survivorText.text = ((_currentSurvivorDisplay != null) ? ("Survivor: " + _currentSurvivorDisplay) : "Survivor: (open character select first)"); RefreshGrid(); } } private void RefreshGrid() { //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Invalid comparison between Unknown and I4 //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Invalid comparison between Unknown and I4 //IL_02a5: Unknown result type (might be due to invalid IL or missing references) foreach (ItemIconCell cell in _cells) { cell.Root.SetActive(false); } foreach (ItemIconCell equipmentCell in _equipmentCells) { equipmentCell.Root.SetActive(false); } if ((Object)(object)_equipmentHeader != (Object)null) { _equipmentHeader.SetActive(false); } _costText.text = ""; if (_currentSurvivorName == null) { return; } ProgressionSaveData data = ProgressionManager.Data; CharacterLoadout loadout = ProgressionManager.GetLoadout(_currentSurvivorName); int num = 0; List list = new List(data.UnlockedItems); list.Sort(delegate(string a, string b) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0009: 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_0011: Invalid comparison between Unknown and I4 //IL_0016: 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: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) ItemIndex val3 = ItemCatalog.FindItemIndex(a); ItemIndex val4 = ItemCatalog.FindItemIndex(b); ItemDef val5 = (((int)val3 != -1) ? ItemCatalog.GetItemDef(val3) : null); ItemDef val6 = (((int)val4 != -1) ? ItemCatalog.GetItemDef(val4) : null); int num3 = (((Object)(object)val5 != (Object)null) ? TierOrder(val5.tier) : 99); int value2 = (((Object)(object)val6 != (Object)null) ? TierOrder(val6.tier) : 99); return num3.CompareTo(value2); }); foreach (string item in list) { ItemIndex val = ItemCatalog.FindItemIndex(item); if ((int)val == -1) { continue; } ItemDef itemDef = ItemCatalog.GetItemDef(val); if ((Object)(object)itemDef == (Object)null) { continue; } int itemCost = ProgressionManager.GetItemCost(itemDef.tier); if (itemCost >= 0) { loadout.ItemCounts.TryGetValue(item, out var value); ItemIconCell itemIconCell; if (num < _cells.Count) { itemIconCell = _cells[num]; } else { itemIconCell = CreateIconCell(_gridParent); _cells.Add(itemIconCell); } itemIconCell.Configure(item, itemDef, itemCost, value, OnItemClicked); itemIconCell.Root.SetActive(true); num++; } } if (data.UnlockedEquipment.Count > 0) { _equipmentHeader.SetActive(true); List list2 = new List(data.UnlockedEquipment); list2.Sort(delegate(string a, string b) { //IL_0002: 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) EquipmentDef equipmentDef2 = EquipmentCatalog.GetEquipmentDef(EquipmentCatalog.FindEquipmentIndex(a)); EquipmentDef equipmentDef3 = EquipmentCatalog.GetEquipmentDef(EquipmentCatalog.FindEquipmentIndex(b)); return EqOrder(equipmentDef2).CompareTo(EqOrder(equipmentDef3)); }); int num2 = 0; foreach (string item2 in list2) { EquipmentIndex val2 = EquipmentCatalog.FindEquipmentIndex(item2); if ((int)val2 == -1) { continue; } EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(val2); if ((Object)(object)equipmentDef == (Object)null) { continue; } int equipmentCost = ProgressionManager.GetEquipmentCost(equipmentDef); if (equipmentCost >= 0) { bool selected = loadout.EquipmentName == item2; ItemIconCell itemIconCell2; if (num2 < _equipmentCells.Count) { itemIconCell2 = _equipmentCells[num2]; } else { itemIconCell2 = CreateIconCell(_equipmentGridParent); _equipmentCells.Add(itemIconCell2); } itemIconCell2.ConfigureEquipment(item2, equipmentDef, equipmentCost, selected, OnEquipmentClicked); itemIconCell2.Root.SetActive(true); num2++; } } } UpdateCostLabel(); static int EqOrder(EquipmentDef d) { if ((Object)(object)d == (Object)null) { return 99; } if (d.isLunar) { return 2; } if ((Object)(object)d.passiveBuffDef != (Object)null) { return 1; } return 0; } static int TierOrder(ItemTier t) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected I4, but got Unknown if (1 == 0) { } int result = (int)t switch { 0 => 0, 1 => 1, 2 => 2, 4 => 3, 3 => 4, 6 => 5, 7 => 6, 8 => 7, _ => 99, }; if (1 == 0) { } return result; } } private void OnItemClicked(string itemName, int delta) { //IL_005c: 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) if (_currentSurvivorName == null) { return; } CharacterLoadout loadout = ProgressionManager.GetLoadout(_currentSurvivorName); ProgressionSaveData data = ProgressionManager.Data; if (delta == 0) { ProgressionManager.ResetLoadout(_currentSurvivorName); } else { loadout.ItemCounts.TryGetValue(itemName, out var value); if (delta > 0) { ItemDef itemDef = ItemCatalog.GetItemDef(ItemCatalog.FindItemIndex(itemName)); int num = ((!((Object)(object)itemDef != (Object)null)) ? 1 : ProgressionManager.CostOfNextCopy(itemDef.tier, value)); int num2 = ProgressionManager.LoadoutCost(_currentSurvivorName); if (num2 + num > data.AvailableTokens) { Plugin.Logger.LogInfo((object)"[MetaMarket] Not enough tokens."); return; } loadout.ItemCounts[itemName] = value + 1; } else { if (value <= 0) { return; } if (value == 1) { loadout.ItemCounts.Remove(itemName); } else { loadout.ItemCounts[itemName] = value - 1; } } ProgressionManager.Save(); } RefreshGrid(); } private void OnEquipmentClicked(string eqName, int delta) { //IL_0052: 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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Invalid comparison between Unknown and I4 //IL_0061: Unknown result type (might be due to invalid IL or missing references) if (_currentSurvivorName == null || delta == 0) { return; } CharacterLoadout loadout = ProgressionManager.GetLoadout(_currentSurvivorName); ProgressionSaveData data = ProgressionManager.Data; if (loadout.EquipmentName == eqName) { loadout.EquipmentName = null; } else { EquipmentIndex val = EquipmentCatalog.FindEquipmentIndex(eqName); EquipmentDef def = (((int)val != -1) ? EquipmentCatalog.GetEquipmentDef(val) : null); int equipmentCost = ProgressionManager.GetEquipmentCost(def); string equipmentName = loadout.EquipmentName; loadout.EquipmentName = null; int num = ProgressionManager.LoadoutCost(_currentSurvivorName); loadout.EquipmentName = equipmentName; if (num + equipmentCost > data.AvailableTokens) { Plugin.Logger.LogInfo((object)"[MetaMarket] Not enough tokens for equipment."); return; } loadout.EquipmentName = eqName; } ProgressionManager.Save(); RefreshGrid(); } private void UpdateCostLabel() { //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) if (_currentSurvivorName == null) { _costText.text = ""; return; } int num = ProgressionManager.LoadoutCost(_currentSurvivorName); int availableTokens = ProgressionManager.Data.AvailableTokens; _costText.supportRichText = false; ((Graphic)_costText).color = (Color)((num > availableTokens) ? new Color(1f, 0.38f, 0.38f) : Color.white); _costText.text = ((num > availableTokens) ? $"Loadout: {num} / {availableTokens} tokens ! over budget" : $"Loadout: {num} / {availableTokens} tokens"); } private static ItemIconCell CreateIconCell(Transform parent) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Expected O, but got Unknown //IL_00f6: 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_011a: 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_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Expected O, but got Unknown //IL_0179: 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_0195: 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_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0254: 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_0287: 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_029e: Expected O, but got Unknown //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: 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_02df: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_0320: 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_0349: Expected O, but got Unknown //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Expected O, but got Unknown //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("IconCell"); val.transform.SetParent(parent, false); LayoutElement val2 = val.AddComponent(); val2.preferredWidth = 70f; val2.preferredHeight = 70f; GameObject val3 = new GameObject("Border"); val3.transform.SetParent(val.transform, false); RectTransform val4 = val3.AddComponent(); val4.anchorMin = Vector2.zero; val4.anchorMax = Vector2.one; val4.offsetMin = new Vector2(3f, 3f); val4.offsetMax = new Vector2(-3f, -3f); Image val5 = val3.AddComponent(); ((Graphic)val5).color = new Color(0.3f, 0.3f, 0.3f, 1f); GameObject val6 = new GameObject("Icon"); val6.transform.SetParent(val3.transform, false); RectTransform val7 = val6.AddComponent(); val7.anchorMin = Vector2.zero; val7.anchorMax = Vector2.one; val7.offsetMin = new Vector2(3f, 3f); val7.offsetMax = new Vector2(-3f, -3f); Image val8 = val6.AddComponent(); val8.preserveAspect = true; GameObject val9 = new GameObject("SelectedOverlay"); val9.transform.SetParent(val3.transform, false); RectTransform val10 = val9.AddComponent(); val10.anchorMin = Vector2.zero; val10.anchorMax = Vector2.one; Vector2 offsetMin = (val10.offsetMax = Vector2.zero); val10.offsetMin = offsetMin; ((Graphic)val9.AddComponent()).color = new Color(0.2f, 0.8f, 0.2f, 0.25f); val9.SetActive(false); GameObject val11 = new GameObject("CountBadge"); val11.transform.SetParent(val3.transform, false); RectTransform val12 = val11.AddComponent(); val12.anchorMin = new Vector2(0f, 1f); val12.anchorMax = new Vector2(0f, 1f); val12.pivot = new Vector2(0f, 1f); val12.sizeDelta = new Vector2(28f, 18f); val12.anchoredPosition = Vector2.zero; ((Graphic)val11.AddComponent()).color = new Color(0f, 0f, 0f, 0.75f); GameObject val13 = new GameObject("CountText"); val13.transform.SetParent(val11.transform, false); RectTransform val14 = val13.AddComponent(); val14.anchorMin = Vector2.zero; val14.anchorMax = Vector2.one; offsetMin = (val14.offsetMax = Vector2.zero); val14.offsetMin = offsetMin; Text val15 = val13.AddComponent(); val15.font = Resources.GetBuiltinResource("Arial.ttf"); val15.fontSize = 12; val15.fontStyle = (FontStyle)1; ((Graphic)val15).color = Color.white; val15.alignment = (TextAnchor)4; val11.SetActive(false); GameObject val16 = new GameObject("CostBadge"); val16.transform.SetParent(val3.transform, false); RectTransform val17 = val16.AddComponent(); val17.anchorMin = new Vector2(1f, 0f); val17.anchorMax = new Vector2(1f, 0f); val17.pivot = new Vector2(1f, 0f); val17.sizeDelta = new Vector2(22f, 16f); val17.anchoredPosition = Vector2.zero; ((Graphic)val16.AddComponent()).color = new Color(0f, 0f, 0f, 0.7f); GameObject val18 = new GameObject("CostText"); val18.transform.SetParent(val16.transform, false); RectTransform val19 = val18.AddComponent(); val19.anchorMin = Vector2.zero; val19.anchorMax = Vector2.one; offsetMin = (val19.offsetMax = Vector2.zero); val19.offsetMin = offsetMin; Text val20 = val18.AddComponent(); val20.font = Resources.GetBuiltinResource("Arial.ttf"); val20.fontSize = 11; val20.fontStyle = (FontStyle)1; ((Graphic)val20).color = new Color(1f, 0.85f, 0.2f); val20.alignment = (TextAnchor)4; ((Graphic)val.AddComponent()).color = Color.clear; TooltipProvider tooltip = val.AddComponent(); return new ItemIconCell(val, val5, val8, val9, val11, val15, val20, tooltip); } private void BuildCanvas() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0045: 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_0062: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Expected O, but got Unknown //IL_0140: 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_0164: 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_0191: 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_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Expected O, but got Unknown //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Expected O, but got Unknown //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0386: Unknown result type (might be due to invalid IL or missing references) //IL_0392: 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_042c: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Expected O, but got Unknown //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04c6: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0526: 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_055e: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0575: Expected O, but got Unknown //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05fb: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Unknown result type (might be due to invalid IL or missing references) //IL_06a3: Unknown result type (might be due to invalid IL or missing references) //IL_06b2: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07f0: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_080e: Unknown result type (might be due to invalid IL or missing references) //IL_083a: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Expected O, but got Unknown //IL_0885: Unknown result type (might be due to invalid IL or missing references) //IL_089c: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08ff: Unknown result type (might be due to invalid IL or missing references) //IL_0906: Expected O, but got Unknown //IL_0926: 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_0942: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_0950: 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_0991: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Expected O, but got Unknown //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_09d9: Unknown result type (might be due to invalid IL or missing references) //IL_09f0: Unknown result type (might be due to invalid IL or missing references) //IL_09ff: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a78: Unknown result type (might be due to invalid IL or missing references) //IL_0a7f: Expected O, but got Unknown //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0ae4: Expected O, but got Unknown //IL_0b26: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Expected O, but got Unknown //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b87: Unknown result type (might be due to invalid IL or missing references) //IL_0b8e: Expected O, but got Unknown //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_0bd2: Unknown result type (might be due to invalid IL or missing references) //IL_0bdf: Unknown result type (might be due to invalid IL or missing references) //IL_0c36: Unknown result type (might be due to invalid IL or missing references) //IL_0c64: Unknown result type (might be due to invalid IL or missing references) //IL_0c6b: Expected O, but got Unknown //IL_0c95: Unknown result type (might be due to invalid IL or missing references) //IL_0cac: Unknown result type (might be due to invalid IL or missing references) //IL_0cbd: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Expected O, but got Unknown //IL_0d50: Unknown result type (might be due to invalid IL or missing references) //IL_0d78: Unknown result type (might be due to invalid IL or missing references) //IL_0d87: Unknown result type (might be due to invalid IL or missing references) //IL_0d96: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("MetaMarketIndicator"); Object.DontDestroyOnLoad((Object)(object)val); Canvas val2 = val.AddComponent(); val2.renderMode = (RenderMode)0; val2.sortingOrder = 99; CanvasScaler val3 = val.AddComponent(); val3.uiScaleMode = (ScaleMode)1; val3.referenceResolution = new Vector2(1920f, 1080f); val.AddComponent(); GameObject val4 = new GameObject("LobbyIndicator"); val4.transform.SetParent(val.transform, false); RectTransform val5 = val4.AddComponent(); val5.anchorMin = new Vector2(0f, 0f); val5.anchorMax = new Vector2(0f, 0f); val5.pivot = new Vector2(0f, 0f); val5.sizeDelta = new Vector2(300f, 28f); val5.anchoredPosition = new Vector2(10f, 10f); ((Graphic)val4.AddComponent()).color = new Color(0f, 0f, 0f, 0.55f); GameObject val6 = new GameObject("Text"); val6.transform.SetParent(val4.transform, false); RectTransform val7 = val6.AddComponent(); val7.anchorMin = Vector2.zero; val7.anchorMax = Vector2.one; val7.offsetMin = new Vector2(8f, 0f); val7.offsetMax = Vector2.zero; Text val8 = val6.AddComponent(); KeyboardShortcut value = Plugin.OpenMenuKey.Value; val8.text = $"[{((KeyboardShortcut)(ref value)).MainKey}] Meta Progression"; val8.font = Resources.GetBuiltinResource("Arial.ttf"); val8.fontSize = 14; val8.fontStyle = (FontStyle)1; ((Graphic)val8).color = new Color(1f, 0.85f, 0.2f); val8.alignment = (TextAnchor)3; _indicatorText = val8; Plugin.OpenMenuKey.SettingChanged += delegate { //IL_0021: 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_0029: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_indicatorText != (Object)null) { Text indicatorText = _indicatorText; KeyboardShortcut value2 = Plugin.OpenMenuKey.Value; indicatorText.text = $"[{((KeyboardShortcut)(ref value2)).MainKey}] Meta Progression"; } }; _lobbyIndicator = val4; _lobbyIndicator.SetActive(false); _root = new GameObject("MetaMarketPanel"); Object.DontDestroyOnLoad((Object)(object)_root); Canvas val9 = _root.AddComponent(); val9.renderMode = (RenderMode)0; val9.sortingOrder = 100; CanvasScaler val10 = _root.AddComponent(); val10.uiScaleMode = (ScaleMode)1; val10.referenceResolution = new Vector2(1920f, 1080f); _root.AddComponent(); GameObject val11 = new GameObject("Panel"); val11.transform.SetParent(_root.transform, false); RectTransform val12 = val11.AddComponent(); Vector2 val13 = default(Vector2); ((Vector2)(ref val13))..ctor(0.5f, 0.5f); val12.anchorMax = val13; val12.anchorMin = val13; val12.sizeDelta = new Vector2(780f, 660f); val12.anchoredPosition = new Vector2(150f, 0f); ((Graphic)val11.AddComponent()).color = new Color(0.05f, 0.05f, 0.08f, 1f); float num = -15f; RectTransform val14 = MakeRect(val11.transform, "Header", new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(10f, num - 30f), new Vector2(-10f, num)); HorizontalLayoutGroup val15 = ((Component)val14).gameObject.AddComponent(); ((LayoutGroup)val15).childAlignment = (TextAnchor)3; ((HorizontalOrVerticalLayoutGroup)val15).childForceExpandHeight = false; ((HorizontalOrVerticalLayoutGroup)val15).childForceExpandWidth = false; ((HorizontalOrVerticalLayoutGroup)val15).childControlHeight = true; ((HorizontalOrVerticalLayoutGroup)val15).childControlWidth = false; ((HorizontalOrVerticalLayoutGroup)val15).spacing = 8f; MakeLabel(((Component)val14).transform, "META PROGRESSION", 20, (FontStyle)1, Color.white); MakeFlexSpacer(((Component)val14).transform); _levelText = MakeLabel(((Component)val14).transform, "Level 1", 18, (FontStyle)1, new Color(1f, 0.85f, 0.2f)); MakeFlexSpacer(((Component)val14).transform); MakeButton(((Component)val14).transform, "✕", 18, new UnityAction(Close)); num -= 38f; _xpText = MakeLabel(val11.transform, "0 / 50,000 XP", 13, (FontStyle)0, new Color(0.7f, 0.7f, 0.7f)); PlaceRect((Component)(object)_xpText, val11.transform, new Vector2(10f, num - 20f), new Vector2(-10f, num)); num -= 24f; RectTransform val16 = MakeRect(val11.transform, "XPBarBg", new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(10f, num - 14f), new Vector2(-10f, num)); ((Graphic)((Component)val16).gameObject.AddComponent()).color = new Color(0.15f, 0.15f, 0.15f, 1f); GameObject val17 = new GameObject("Fill"); val17.transform.SetParent((Transform)(object)val16, false); _xpBarFillRect = val17.AddComponent(); _xpBarFillRect.anchorMin = Vector2.zero; _xpBarFillRect.anchorMax = new Vector2(0f, 1f); val13 = (_xpBarFillRect.offsetMin = (_xpBarFillRect.offsetMax = Vector2.zero)); ((Graphic)val17.AddComponent()).color = new Color(0.25f, 0.75f, 0.25f, 1f); num -= 20f; _tokenText = MakeLabel(val11.transform, "Total Tokens: 0", 16, (FontStyle)1, new Color(1f, 0.85f, 0.2f)); PlaceRect((Component)(object)_tokenText, val11.transform, new Vector2(10f, num - 26f), new Vector2(-10f, num)); num -= 32f; RectTransform val19 = MakeRect(val11.transform, "InfoRow", new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(10f, num - 22f), new Vector2(-10f, num)); HorizontalLayoutGroup val20 = ((Component)val19).gameObject.AddComponent(); ((LayoutGroup)val20).childAlignment = (TextAnchor)3; ((HorizontalOrVerticalLayoutGroup)val20).childForceExpandHeight = false; ((HorizontalOrVerticalLayoutGroup)val20).childForceExpandWidth = false; ((HorizontalOrVerticalLayoutGroup)val20).childControlHeight = true; ((HorizontalOrVerticalLayoutGroup)val20).childControlWidth = false; _survivorText = MakeLabel(((Component)val19).transform, "Survivor: —", 14, (FontStyle)0, new Color(0.7f, 0.9f, 1f)); ((Component)_survivorText).gameObject.AddComponent().flexibleWidth = 1f; MakeFlexSpacer(((Component)val19).transform); _costText = MakeLabel(((Component)val19).transform, "", 13, (FontStyle)0, Color.white); _costText.supportRichText = false; ((Component)_costText).gameObject.AddComponent().preferredWidth = 320f; _costText.alignment = (TextAnchor)5; num -= 28f; RectTransform val21 = MakeRect(val11.transform, "Divider", new Vector2(0f, 1f), new Vector2(1f, 1f), new Vector2(10f, num - 2f), new Vector2(-10f, num)); ((Graphic)((Component)val21).gameObject.AddComponent()).color = new Color(0.3f, 0.3f, 0.4f, 1f); num -= 8f; GameObject val22 = new GameObject("ScrollView"); val22.transform.SetParent(val11.transform, false); RectTransform val23 = val22.AddComponent(); val23.anchorMin = new Vector2(0f, 0f); val23.anchorMax = new Vector2(1f, 1f); val23.offsetMin = new Vector2(5f, 28f); val23.offsetMax = new Vector2(-5f, num); ScrollRect val24 = val22.AddComponent(); val24.horizontal = false; val24.vertical = true; val24.scrollSensitivity = 40f; GameObject val25 = new GameObject("Viewport"); val25.transform.SetParent(val22.transform, false); RectTransform val26 = val25.AddComponent(); val26.anchorMin = Vector2.zero; val26.anchorMax = Vector2.one; val13 = (val26.offsetMin = (val26.offsetMax = Vector2.zero)); ((Graphic)val25.AddComponent()).color = new Color(0f, 0f, 0f, 0.01f); val25.AddComponent().showMaskGraphic = false; GameObject val28 = new GameObject("Content"); val28.transform.SetParent(val25.transform, false); RectTransform val29 = val28.AddComponent(); val29.anchorMin = new Vector2(0f, 1f); val29.anchorMax = new Vector2(1f, 1f); val29.pivot = new Vector2(0.5f, 1f); val13 = (val29.offsetMin = (val29.offsetMax = Vector2.zero)); VerticalLayoutGroup val31 = val28.AddComponent(); ((LayoutGroup)val31).childAlignment = (TextAnchor)0; ((HorizontalOrVerticalLayoutGroup)val31).childForceExpandWidth = true; ((HorizontalOrVerticalLayoutGroup)val31).childForceExpandHeight = false; ((HorizontalOrVerticalLayoutGroup)val31).childControlWidth = true; ((HorizontalOrVerticalLayoutGroup)val31).childControlHeight = true; ((HorizontalOrVerticalLayoutGroup)val31).spacing = 0f; ContentSizeFitter val32 = val28.AddComponent(); val32.verticalFit = (FitMode)2; val32.horizontalFit = (FitMode)0; GameObject val33 = new GameObject("ItemsGrid"); val33.transform.SetParent(val28.transform, false); RectTransform val34 = val33.AddComponent(); GridLayoutGroup val35 = val33.AddComponent(); val35.cellSize = new Vector2(70f, 70f); val35.spacing = new Vector2(4f, 4f); ((LayoutGroup)val35).padding = new RectOffset(8, 4, 8, 4); val35.constraint = (Constraint)1; val35.constraintCount = 10; val35.startCorner = (Corner)0; val35.startAxis = (Axis)0; ((LayoutGroup)val35).childAlignment = (TextAnchor)0; val33.AddComponent().verticalFit = (FitMode)2; GameObject val36 = new GameObject("EquipmentHeader"); val36.transform.SetParent(val28.transform, false); LayoutElement val37 = val36.AddComponent(); val37.preferredHeight = 28f; Image val38 = val36.AddComponent(); ((Graphic)val38).color = new Color(0.12f, 0.12f, 0.18f, 1f); GameObject val39 = new GameObject("Text"); val39.transform.SetParent(val36.transform, false); RectTransform val40 = val39.AddComponent(); val40.anchorMin = Vector2.zero; val40.anchorMax = Vector2.one; val40.offsetMin = new Vector2(10f, 0f); val40.offsetMax = Vector2.zero; Text val41 = val39.AddComponent(); val41.text = "Equipment (You can only pick 1)"; val41.font = Resources.GetBuiltinResource("Arial.ttf"); val41.fontSize = 12; val41.fontStyle = (FontStyle)1; ((Graphic)val41).color = new Color(0.7f, 0.7f, 0.7f); val41.alignment = (TextAnchor)3; _equipmentHeader = val36; _equipmentHeader.SetActive(false); GameObject val42 = new GameObject("EquipmentGrid"); val42.transform.SetParent(val28.transform, false); GridLayoutGroup val43 = val42.AddComponent(); val43.cellSize = new Vector2(70f, 70f); val43.spacing = new Vector2(4f, 4f); ((LayoutGroup)val43).padding = new RectOffset(8, 4, 4, 8); val43.constraint = (Constraint)1; val43.constraintCount = 10; val43.startCorner = (Corner)0; val43.startAxis = (Axis)0; ((LayoutGroup)val43).childAlignment = (TextAnchor)0; val42.AddComponent().verticalFit = (FitMode)2; val24.viewport = val26; val24.content = val29; _gridParent = val33.transform; _equipmentGridParent = val42.transform; Text val44 = MakeLabel(val11.transform, "Left-click to add · Right-click to remove · Middle-click to reset · Hover for details", 11, (FontStyle)0, new Color(0.45f, 0.45f, 0.45f)); val44.alignment = (TextAnchor)4; PlaceRect((Component)(object)val44, val11.transform, new Vector2(0f, 4f), new Vector2(0f, 22f), (Vector2?)new Vector2(0f, 0f), (Vector2?)new Vector2(1f, 0f)); } private static RectTransform MakeRect(Transform parent, string name, Vector2 anchMin, Vector2 anchMax, Vector2 offMin, Vector2 offMax) { //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_002e: 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) GameObject val = new GameObject(name); val.transform.SetParent(parent, false); RectTransform val2 = val.AddComponent(); val2.anchorMin = anchMin; val2.anchorMax = anchMax; val2.offsetMin = offMin; val2.offsetMax = offMax; return val2; } private static Text MakeLabel(Transform parent, string text, int size, FontStyle style, Color color) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Label"); val.transform.SetParent(parent, false); val.AddComponent(); Text val2 = val.AddComponent(); val2.text = text; val2.fontSize = size; val2.fontStyle = style; ((Graphic)val2).color = color; val2.font = Resources.GetBuiltinResource("Arial.ttf"); val2.supportRichText = false; return val2; } private static void PlaceRect(Component c, Transform parent, Vector2 offMin, Vector2 offMax, Vector2? anchMin = null, Vector2? anchMax = null) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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_0053: 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_0070: Unknown result type (might be due to invalid IL or missing references) RectTransform component = c.GetComponent(); ((Transform)component).SetParent(parent, false); component.anchorMin = (Vector2)(((??)anchMin) ?? new Vector2(0f, 1f)); component.anchorMax = (Vector2)(((??)anchMax) ?? new Vector2(1f, 1f)); component.offsetMin = offMin; component.offsetMax = offMax; } private static Button MakeButton(Transform parent, string label, int fontSize, UnityAction onClick) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0074: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: 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) GameObject val = new GameObject("Button"); val.transform.SetParent(parent, false); val.AddComponent(); ((Graphic)val.AddComponent()).color = new Color(0.3f, 0.1f, 0.1f, 0.9f); Button val2 = val.AddComponent