Decompiled source of Locater v1.3.1
Locater.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.UI; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyCompany("Locater")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Locater")] [assembly: AssemblyTitle("Locater")] [assembly: AssemblyVersion("1.0.0.0")] namespace Locater; [BepInPlugin("com.Hyru.Locater", "Locater", "1.3.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Locater : BaseUnityPlugin { private ConfigEntry<bool> showNewtAltar; private ConfigEntry<bool> showCombatShrine; private ConfigEntry<bool> showMountainShrine; private ConfigEntry<bool> showBloodShrine; private ConfigEntry<bool> showChanceShrine; private ConfigEntry<bool> showOrderShrine; private ConfigEntry<bool> showShapingShrine; private ConfigEntry<bool> showHalcyoniteShrine; private ConfigEntry<bool> showVoidCradle; private ConfigEntry<bool> showTeleporter; private ConfigEntry<bool> showScrapper; private ConfigEntry<bool> show3DPrinter; private ConfigEntry<bool> showCategoryChests; internal ConfigEntry<float> markerYOffset; private ConfigEntry<float> markerScale; private ConfigEntry<Color> newtAltarColor; private ConfigEntry<Color> combatShrineColor; private ConfigEntry<Color> mountainShrineColor; private ConfigEntry<Color> bloodShrineColor; private ConfigEntry<Color> chanceShrineColor; private ConfigEntry<Color> orderShrineColor; private ConfigEntry<Color> shapingShrineColor; private ConfigEntry<Color> halcyoniteShrineColor; private ConfigEntry<Color> voidCradleColor; private ConfigEntry<Color> teleporterColor; private ConfigEntry<Color> scrapperColor; private ConfigEntry<Color> threeDPrinterColor; private ConfigEntry<Color> whiteChestColor; private ConfigEntry<Color> greenChestColor; private ConfigEntry<Color> redChestColor; private ConfigEntry<Color> categoryChestColor; private ConfigEntry<Color> tripleShopColor; private ConfigEntry<Color> stealthChestColor; private ConfigEntry<Color> equipmentBarrelColor; private ConfigEntry<Color> lunarChestColor; private ConfigEntry<Color> lockboxColor; private ConfigEntry<Color> casinoChestColor; internal Dictionary<GameObject, GameObject> shrineIndicators = new Dictionary<GameObject, GameObject>(); public bool markersHidden; private Harmony _harmony; private void Awake() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown ((BaseUnityPlugin)this).Logger.LogInfo((object)"Locater loaded!"); InitializeConfig(); SetupRiskOfOptions(); Stage.onStageStartGlobal += OnStageStart; RoR2Application.onUpdate += OnUpdate; _harmony = new Harmony("com.Hyru.Locater"); _harmony.PatchAll(); } private void InitializeConfig() { //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: 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_028b: 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_02df: Unknown result type (might be due to invalid IL or missing references) //IL_0309: 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_035d: Unknown result type (might be due to invalid IL or missing references) //IL_0387: 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_03db: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_0459: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) showNewtAltar = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Newt Altar", true, "Whether to show indicators for Newt Altars"); showCombatShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of Combat", true, "Whether to show indicators for Shrines of Combat"); showMountainShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of the Mountain", true, "Whether to show indicators for Shrines of the Mountain"); showBloodShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of Blood", true, "Whether to show indicators for Shrines of Blood"); showChanceShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of Chance", true, "Whether to show indicators for Shrines of Chance"); showOrderShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of Order", true, "Whether to show indicators for Shrines of Order"); showShapingShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Shrine of Shaping", true, "Whether to show indicators for Shrines of Shaping"); showHalcyoniteShrine = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Halcyonite Shrine", true, "Whether to show indicators for Halcyonite Shrines"); showVoidCradle = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Void Cradles", true, "Whether to show indicators for Void Cradles"); showTeleporter = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Teleporters", true, "Whether to show indicators for Teleporters"); showCategoryChests = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Chests", true, "Whether to show indicators for Chests"); showScrapper = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show Scrappers", true, "Whether to show indicators for Scrappers"); show3DPrinter = ((BaseUnityPlugin)this).Config.Bind<bool>("Interactables", "Show 3D Printers", true, "Whether to show indicators for 3D Printers"); markerYOffset = ((BaseUnityPlugin)this).Config.Bind<float>("Positioning", "Marker Y Offset", 0f, "Y-axis offset for markers (-100 to 100). Default: 0)"); markerScale = ((BaseUnityPlugin)this).Config.Bind<float>("Positioning", "Marker Scale", -3f, "Scale for markers (-10 to 10). Default: -3"); newtAltarColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Newt Altar Color", HexToColor("7A92C7"), "Color for Newt Altar marker. Default: #7A92C7"); combatShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Combat Shrine Color", HexToColor("F980EE"), "Color for Combat Shrine marker. Default: #F980EE"); mountainShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Mountain Shrine Color", HexToColor("47DBF7"), "Color for Mountain Shrine marker. Default: #47DBF7"); bloodShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Blood Shrine Color", HexToColor("FF7274"), "Color for Blood Shrine marker. Default: #FF7274"); chanceShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Chance Shrine Color", HexToColor("E0E69B"), "Color for Chance Shrine marker. Default: #E0E69B"); orderShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Order Shrine Color", HexToColor("EACCE8"), "Color for Order Shrine marker. Default: #EACCE8"); shapingShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Shaping Shrine Color", HexToColor("C8C7B2"), "Color for Shaping Shrine marker. Default: #C8C7B2"); halcyoniteShrineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Halcyonite Shrine Color", HexToColor("44C668"), "Color for Halcyonite Shrine marker. Default: #44C668"); voidCradleColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Void Cradle Color", HexToColor("E709D2"), "Color for Void Cradle marker. Default: #E709D2"); teleporterColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Teleporter Color", HexToColor("FDFF00"), "Color for Teleporter marker. Default: #FDFF00"); whiteChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "White Chest Color", HexToColor("FFFFFF"), "Color for White Chest marker. Default: #FFFFFF"); greenChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Green Chest Color", HexToColor("00FF00"), "Color for Green Chest marker. Default: #00FF00"); redChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Red Chest Color", HexToColor("FF0000"), "Color for Red Chest marker. Default: #FF0000"); categoryChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Category Chest Color", HexToColor("A020F0"), "Color for Category Chest marker. Default: #A020F0"); tripleShopColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Triple Shop Color", HexToColor("FFFFFF"), "Color for Triple Shop marker. Default: #FFFFFF"); stealthChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Stealth Chest Color", HexToColor("960006"), "Color for Stealth Chest marker. Default: #960006"); equipmentBarrelColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Equipment Barrel Color", HexToColor("FFA500"), "Color for Equipment Barrel marker. Default: #FFA500"); lockboxColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Lockbox Color", HexToColor("FEF90A"), "Color for Key Lockbox marker. Default: #FEF90A"); casinoChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Casino Chest Color", HexToColor("FFFFFF"), "Color for Casino Chest marker. Default: #FFFFFF"); lunarChestColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Lunar Pod Color", HexToColor("0000FF"), "Color for Lunar Pod marker. Default: #0000FF"); scrapperColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "Scrapper Color", HexToColor("009900"), "Color for Scrapper marker. Default: #009900"); threeDPrinterColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Colors", "3D Printer Color", HexToColor("964B00"), "Color for 3D Printer marker. Default: #964B00"); showNewtAltar.SettingChanged += OnConfigChanged; showCombatShrine.SettingChanged += OnConfigChanged; showMountainShrine.SettingChanged += OnConfigChanged; showBloodShrine.SettingChanged += OnConfigChanged; showChanceShrine.SettingChanged += OnConfigChanged; showOrderShrine.SettingChanged += OnConfigChanged; showShapingShrine.SettingChanged += OnConfigChanged; showHalcyoniteShrine.SettingChanged += OnConfigChanged; showVoidCradle.SettingChanged += OnConfigChanged; showTeleporter.SettingChanged += OnConfigChanged; showScrapper.SettingChanged += OnConfigChanged; showCategoryChests.SettingChanged += OnConfigChanged; show3DPrinter.SettingChanged += OnConfigChanged; markerYOffset.SettingChanged += OnPositioningChanged; markerScale.SettingChanged += OnPositioningChanged; newtAltarColor.SettingChanged += OnColorChanged; combatShrineColor.SettingChanged += OnColorChanged; mountainShrineColor.SettingChanged += OnColorChanged; bloodShrineColor.SettingChanged += OnColorChanged; chanceShrineColor.SettingChanged += OnColorChanged; orderShrineColor.SettingChanged += OnColorChanged; shapingShrineColor.SettingChanged += OnColorChanged; halcyoniteShrineColor.SettingChanged += OnColorChanged; voidCradleColor.SettingChanged += OnColorChanged; teleporterColor.SettingChanged += OnColorChanged; whiteChestColor.SettingChanged += OnColorChanged; greenChestColor.SettingChanged += OnColorChanged; redChestColor.SettingChanged += OnColorChanged; categoryChestColor.SettingChanged += OnColorChanged; tripleShopColor.SettingChanged += OnColorChanged; stealthChestColor.SettingChanged += OnColorChanged; equipmentBarrelColor.SettingChanged += OnColorChanged; lockboxColor.SettingChanged += OnColorChanged; casinoChestColor.SettingChanged += OnColorChanged; lunarChestColor.SettingChanged += OnColorChanged; scrapperColor.SettingChanged += OnColorChanged; threeDPrinterColor.SettingChanged += OnColorChanged; } private void SetupRiskOfOptions() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Expected O, but got Unknown //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Expected O, but got Unknown //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Expected O, but got Unknown //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Expected O, but got Unknown //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Expected O, but got Unknown //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Expected O, but got Unknown //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Expected O, but got Unknown //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Expected O, but got Unknown //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Expected O, but got Unknown //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Expected O, but got Unknown //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Expected O, but got Unknown //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Expected O, but got Unknown //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Expected O, but got Unknown //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Expected O, but got Unknown //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Expected O, but got Unknown //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Expected O, but got Unknown //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Expected O, but got Unknown //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Expected O, but got Unknown //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Expected O, but got Unknown //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Expected O, but got Unknown //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Expected O, but got Unknown //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Expected O, but got Unknown //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Expected O, but got Unknown //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Expected O, but got Unknown //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Expected O, but got Unknown //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Expected O, but got Unknown ModSettingsManager.SetModDescription("Locater adds globally visible indicators to most interactables in the game. Use these options to customize those indicators."); string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "iconmm.png"); Sprite val = LoadCustomSprite(filePath); if ((Object)(object)val != (Object)null) { ModSettingsManager.SetModIcon(val); } ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showNewtAltar)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showCombatShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showMountainShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showBloodShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showChanceShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showOrderShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showShapingShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showHalcyoniteShrine)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showVoidCradle)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showTeleporter)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showCategoryChests)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(showScrapper)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(show3DPrinter)); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(markerYOffset, new StepSliderConfig { min = -100f, max = 100f, increment = 1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(markerScale, new StepSliderConfig { min = -10f, max = 10f, increment = 0.1f })); ModSettingsManager.AddOption((BaseOption)new ColorOption(newtAltarColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(combatShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(mountainShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(bloodShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(chanceShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(orderShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(shapingShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(halcyoniteShrineColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(voidCradleColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(teleporterColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(whiteChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(greenChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(redChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(categoryChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(tripleShopColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(stealthChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(equipmentBarrelColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(lockboxColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(casinoChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(lunarChestColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(scrapperColor)); ModSettingsManager.AddOption((BaseOption)new ColorOption(threeDPrinterColor)); } private void OnUpdate() { if ((Input.GetKey((KeyCode)306) || Input.GetKey((KeyCode)305)) && Input.GetKeyDown((KeyCode)104)) { markersHidden = !markersHidden; ToggleAllMarkers(markersHidden); ((BaseUnityPlugin)this).Logger.LogInfo((object)("Markers " + (markersHidden ? "hidden" : "shown"))); } } private void ToggleAllMarkers(bool hidden) { markersHidden = hidden; foreach (GameObject value in shrineIndicators.Values) { if ((Object)(object)value != (Object)null) { value.SetActive(!hidden); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)("Markers " + (hidden ? "hidden" : "shown"))); } private void OnStageStart(Stage stage) { //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: 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_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0631: Unknown result type (might be due to invalid IL or missing references) //IL_0647: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Unknown result type (might be due to invalid IL or missing references) //IL_0734: Unknown result type (might be due to invalid IL or missing references) //IL_0739: Unknown result type (might be due to invalid IL or missing references) //IL_074f: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0f3f: Unknown result type (might be due to invalid IL or missing references) //IL_0f6b: Unknown result type (might be due to invalid IL or missing references) //IL_0f70: Unknown result type (might be due to invalid IL or missing references) //IL_0f86: Unknown result type (might be due to invalid IL or missing references) //IL_0f8b: Unknown result type (might be due to invalid IL or missing references) //IL_1039: Unknown result type (might be due to invalid IL or missing references) //IL_1065: Unknown result type (might be due to invalid IL or missing references) //IL_106a: Unknown result type (might be due to invalid IL or missing references) //IL_1080: Unknown result type (might be due to invalid IL or missing references) //IL_1085: Unknown result type (might be due to invalid IL or missing references) //IL_0bf0: Unknown result type (might be due to invalid IL or missing references) //IL_0bf5: Unknown result type (might be due to invalid IL or missing references) //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c10: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c47: Unknown result type (might be due to invalid IL or missing references) //IL_0c4c: Unknown result type (might be due to invalid IL or missing references) //IL_1148: Unknown result type (might be due to invalid IL or missing references) //IL_1174: Unknown result type (might be due to invalid IL or missing references) //IL_1179: Unknown result type (might be due to invalid IL or missing references) //IL_118f: Unknown result type (might be due to invalid IL or missing references) //IL_1194: Unknown result type (might be due to invalid IL or missing references) //IL_0df9: Unknown result type (might be due to invalid IL or missing references) //IL_0e25: Unknown result type (might be due to invalid IL or missing references) //IL_0e2a: Unknown result type (might be due to invalid IL or missing references) //IL_0e40: Unknown result type (might be due to invalid IL or missing references) //IL_0e45: Unknown result type (might be due to invalid IL or missing references) //IL_1276: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: Unknown result type (might be due to invalid IL or missing references) //IL_12a7: Unknown result type (might be due to invalid IL or missing references) //IL_12bd: Unknown result type (might be due to invalid IL or missing references) //IL_12c2: Unknown result type (might be due to invalid IL or missing references) //IL_0b0c: Unknown result type (might be due to invalid IL or missing references) //IL_0b38: Unknown result type (might be due to invalid IL or missing references) //IL_0b3d: Unknown result type (might be due to invalid IL or missing references) //IL_0b53: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_13be: Unknown result type (might be due to invalid IL or missing references) //IL_13c3: Unknown result type (might be due to invalid IL or missing references) //IL_13d9: Unknown result type (might be due to invalid IL or missing references) //IL_13de: Unknown result type (might be due to invalid IL or missing references) SceneDef sceneDef = stage.sceneDef; string text = ((sceneDef != null) ? sceneDef.cachedName : null) ?? "Unknown"; ((BaseUnityPlugin)this).Logger.LogInfo((object)("Stage started: " + text)); if (text.ToLower().Contains("bazaar")) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Bazaar stage detected, skipping Newt altar indicator."); return; } RoR2Application.onNextUpdate += delegate { ((MonoBehaviour)this).StartCoroutine(DelayedInteractableScan()); }; shrineIndicators.Clear(); List<PurchaseInteraction> instancesList = InstanceTracker.GetInstancesList<PurchaseInteraction>(); ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found {instancesList.Count} interactables with PurchaseInteraction in scene"); if (showNewtAltar.Value) { int num = 0; PortalStatueBehavior[] array = Object.FindObjectsOfType<PortalStatueBehavior>(); int num2 = 0; if (num2 < array.Length) { GameObject gameObject = ((Component)array[num2]).gameObject; num++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Newt altar #{num}: {((Object)gameObject).name} at {gameObject.transform.position} (ID: {((Object)gameObject).GetInstanceID()})"); CreateAltarIndicator(gameObject.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject); } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Newt altars found: {num}"); } if (showCombatShrine.Value) { int num3 = 0; foreach (PurchaseInteraction item in instancesList) { GameObject gameObject2 = ((Component)item).gameObject; if ((Object)(object)gameObject2.GetComponent<ShrineCombatBehavior>() != (Object)null) { num3++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Combat Shrine #{num3}: {((Object)gameObject2).name} at {gameObject2.transform.position} (ID: {((Object)gameObject2).GetInstanceID()})"); CreateCombatShrineIndicator(gameObject2.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject2); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Combat Shrines found: {num3}"); } if (showMountainShrine.Value) { int num4 = 0; foreach (PurchaseInteraction item2 in instancesList) { GameObject gameObject3 = ((Component)item2).gameObject; if ((Object)(object)gameObject3.GetComponent<ShrineBossBehavior>() != (Object)null) { num4++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Mountain Shrine #{num4}: {((Object)gameObject3).name} at {gameObject3.transform.position} (ID: {((Object)gameObject3).GetInstanceID()})"); CreateMountainShrineIndicator(gameObject3.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject3); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Mountain Shrines found: {num4}"); } if (showBloodShrine.Value) { int num5 = 0; foreach (PurchaseInteraction item3 in instancesList) { GameObject gameObject4 = ((Component)item3).gameObject; if (((Object)gameObject4).name.Contains("ShrineBlood")) { num5++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Blood Shrine #{num5}: {((Object)gameObject4).name} at {gameObject4.transform.position} (ID: {((Object)gameObject4).GetInstanceID()})"); CreateBloodShrineIndicator(gameObject4.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject4); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Blood Shrines found: {num5}"); } if (showChanceShrine.Value) { int num6 = 0; foreach (PurchaseInteraction item4 in instancesList) { GameObject gameObject5 = ((Component)item4).gameObject; if (((Object)gameObject5).name.StartsWith("ShrineChance") && (Object)(object)gameObject5.GetComponent<ShrineChanceBehavior>() != (Object)null) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Shrine of Chance: {((Object)gameObject5).name} at {gameObject5.transform.position} (ID: {((Object)gameObject5).GetInstanceID()})"); CreateChanceShrineIndicator(gameObject5.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject5); num6++; } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Chance Shrines found: {num6}"); } if (showOrderShrine.Value) { int num7 = 0; foreach (PurchaseInteraction item5 in instancesList) { GameObject gameObject6 = ((Component)item5).gameObject; if (((Object)gameObject6).name.Contains("ShrineRestack")) { num7++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Order Shrine #{num7}: {((Object)gameObject6).name} at {gameObject6.transform.position} (ID: {((Object)gameObject6).GetInstanceID()})"); CreateOrderShrineIndicator(gameObject6.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject6); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Order Shrines found: {num7}"); } if (showShapingShrine.Value) { int num8 = 0; foreach (PurchaseInteraction item6 in instancesList) { GameObject gameObject7 = ((Component)item6).gameObject; if (((Object)gameObject7).name.Contains("ShrineColossusAccess")) { num8++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Shaping Shrine #{num8}: {((Object)gameObject7).name} at {gameObject7.transform.position} (ID: {((Object)gameObject7).GetInstanceID()})"); CreateShapingShrineIndicator(gameObject7.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject7); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Shaping Shrines found: {num8}"); } if (showHalcyoniteShrine.Value) { int num9 = 0; foreach (PurchaseInteraction item7 in instancesList) { GameObject gameObject8 = ((Component)item7).gameObject; if (((Object)gameObject8).name.Contains("ShrineHalcyonite")) { num9++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Halcyonite Shrine #{num9}: {((Object)gameObject8).name} at {gameObject8.transform.position} (ID: {((Object)gameObject8).GetInstanceID()})"); CreateHalcyoniteShrineIndicator(gameObject8.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject8); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Halcyonite Shrines found: {num9}"); } if (showCategoryChests.Value) { int num10 = 0; foreach (PurchaseInteraction item8 in instancesList) { GameObject gameObject9 = ((Component)item8).gameObject; ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Checking object: " + ((Object)gameObject9).name + " for chest detection")); bool flag = false; string text2 = "Unknown"; bool flag2 = ((Object)gameObject9).name.Contains("VoidChest") || ((Object)gameObject9).name.Contains("VoidCradle") || (Object)(object)gameObject9.GetComponent("OptionChestBehavior") != (Object)null; if (((Object)gameObject9).name.Contains("Chest1") && !((Object)gameObject9).name.Contains("StealthedVariant")) { flag = true; text2 = "Chest1"; } else if (((Object)gameObject9).name.Contains("Chest2") && !((Object)gameObject9).name.Contains("Category")) { flag = true; text2 = "Chest2"; } else if (((Object)gameObject9).name.Contains("GoldChest")) { flag = true; text2 = "GoldChest"; } else if (((Object)gameObject9).name.StartsWith("CategoryChest")) { flag = true; text2 = "CategoryChest"; } else if (((Object)gameObject9).name.Contains("LunarChest")) { flag = true; text2 = "LunarChest"; } else if (((Object)gameObject9).name.Contains("EquipmentBarrel")) { flag = true; text2 = "EquipmentBarrel"; } else if (((Object)gameObject9).name.Contains("Chest1StealthedVariant")) { flag = true; text2 = "StealthChest"; } else if (((Object)gameObject9).name.StartsWith("CasinoChest")) { flag = true; text2 = "CasinoChest"; } if (flag && !flag2 && ((Object)(object)gameObject9.GetComponent<ChestBehavior>() != (Object)null || (Object)(object)gameObject9.GetComponent<MultiShopController>() != (Object)null || (Object)(object)gameObject9.GetComponent("RoR2.RouletteChestController") != (Object)null)) { if (shrineIndicators.ContainsKey(gameObject9)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Skipping duplicate indicator for chest " + ((Object)gameObject9).name + " - already exists")); continue; } num10++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found {text2} Chest #{num10}: {((Object)gameObject9).name} at {gameObject9.transform.position} (ID: {((Object)gameObject9).GetInstanceID()})"); CreateChestIndicator(gameObject9.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject9, text2); } else if (flag) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Found " + text2 + " Chest object but no ChestBehavior: " + ((Object)gameObject9).name)); } } MultiShopController[] array2 = Object.FindObjectsOfType<MultiShopController>(); for (int num2 = 0; num2 < array2.Length; num2++) { GameObject gameObject10 = ((Component)array2[num2]).gameObject; if (!shrineIndicators.ContainsKey(gameObject10)) { num10++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: Creating TripleShop marker at {gameObject10.transform.position + Vector3.up * (markerYOffset.Value + 9f)}"); CreateChestIndicator(gameObject10.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject10, "TripleShop"); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Chests found: {num10}"); } if (showVoidCradle.Value) { int num11 = 0; foreach (PurchaseInteraction item9 in instancesList) { GameObject gameObject11 = ((Component)item9).gameObject; ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Checking object: " + ((Object)gameObject11).name + " for void cradle detection")); bool flag3 = ((Object)gameObject11).name.Contains("Chest1") || ((Object)gameObject11).name.Contains("Chest2") || ((Object)gameObject11).name.Contains("Chest1StealthedVariant") || ((Object)gameObject11).name.StartsWith("CategoryChest") || ((Object)gameObject11).name.Contains("EquipmentBarrel") || ((Object)gameObject11).name.Contains("LunarChest") || ((Object)gameObject11).name.Contains("GoldChest") || ((Object)gameObject11).name.Contains("Lockbox"); if ((Object)(object)gameObject11.GetComponent<ChestBehavior>() != (Object)null && !flag3) { if (shrineIndicators.ContainsKey(gameObject11)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Skipping duplicate indicator for void cradle " + ((Object)gameObject11).name + " - already exists")); continue; } num11++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Void Cradle #{num11}: {((Object)gameObject11).name} at {gameObject11.transform.position} (ID: {((Object)gameObject11).GetInstanceID()})"); CreateVoidCradleIndicator(gameObject11.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject11); } else if ((Object)(object)gameObject11.GetComponent<ChestBehavior>() != (Object)null && flag3) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Found Chest object but skipping in Void Cradle detection: " + ((Object)gameObject11).name)); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Void Cradles found: {num11}"); } if (showTeleporter.Value) { int num12 = 0; GameObject[] array3 = Object.FindObjectsOfType<GameObject>(); foreach (GameObject val in array3) { if (((Object)val).name.Contains("Teleporter1") || ((Object)val).name.Contains("Teleporter2")) { num12++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Teleporter #{num12}: {((Object)val).name} at {val.transform.position} (ID: {((Object)val).GetInstanceID()})"); CreateTeleporterIndicator(val.transform.position + Vector3.up * (markerYOffset.Value + 9f), val); break; } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Teleporters found: {num12}"); } if (showScrapper.Value) { int num13 = 0; GameObject[] array3 = Object.FindObjectsOfType<GameObject>(); foreach (GameObject val2 in array3) { if (((Object)val2).name.Contains("mdlScrapper")) { num13++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Scrapper #{num13}: {((Object)val2).name} at {val2.transform.position} (ID: {((Object)val2).GetInstanceID()})"); CreateScrapperIndicator(val2.transform.position + Vector3.up * (markerYOffset.Value + 9f), val2); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Scrappers found: {num13}"); } if (show3DPrinter.Value) { int num14 = 0; foreach (PurchaseInteraction item10 in instancesList) { GameObject gameObject12 = ((Component)item10).gameObject; if ((Object)(object)gameObject12.GetComponent<ShopTerminalBehavior>() != (Object)null && ((Object)gameObject12).name.StartsWith("Duplicator")) { num14++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found 3D Printer #{num14}: {((Object)gameObject12).name} at {gameObject12.transform.position} (ID: {((Object)gameObject12).GetInstanceID()})"); Create3DPrinterIndicator(gameObject12.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject12); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total 3D Printers found: {num14}"); } int num15 = 0; foreach (PurchaseInteraction item11 in instancesList) { GameObject gameObject13 = ((Component)item11).gameObject; if (((Object)gameObject13).name.Contains("Lockbox") && !((Object)gameObject13).name.Contains("LockboxVoid") && (Object)(object)gameObject13.GetComponent<ChestBehavior>() != (Object)null && !shrineIndicators.ContainsKey(gameObject13)) { num15++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found Key Lockbox #{num15}: {((Object)gameObject13).name} at {gameObject13.transform.position} (ID: {((Object)gameObject13).GetInstanceID()})"); CreateLockboxIndicator(gameObject13.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject13); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total Key Lockboxes found: {num15}"); int num16 = 0; foreach (PurchaseInteraction item12 in instancesList) { GameObject gameObject14 = ((Component)item12).gameObject; if (((Object)gameObject14).name.Contains("LockboxVoid") && (Object)(object)gameObject14.GetComponent("OptionChestBehavior") != (Object)null && !shrineIndicators.ContainsKey(gameObject14)) { num16++; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found LockboxVoid #{num16}: {((Object)gameObject14).name} at {gameObject14.transform.position} (ID: {((Object)gameObject14).GetInstanceID()})"); CreateLockboxIndicator(gameObject14.transform.position + Vector3.up * (markerYOffset.Value + 9f), gameObject14); } } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total LockboxVoids found: {num16}"); ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Total markers created: {shrineIndicators.Count}"); } private void CreateAltarIndicator(Vector3 position, GameObject shrine) { //IL_003a: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) if (shrineIndicators.ContainsKey(shrine)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Skipping duplicate indicator for shrine " + ((Object)shrine).name + " - already exists")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Creating Newt Altar indicator at position {position} for shrine {((Object)shrine).name}"); PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = newtAltarColor.Value; component2.spriteFlashColor = newtAltarColor.Value; component2.spriteChargedColor = newtAltarColor.Value; component2.spriteChargingColor = newtAltarColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "coin.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Stored indicator for shrine {((Object)shrine).name} with ID {((Object)shrine).GetInstanceID()}"); SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private Sprite LoadCustomSprite(string filePath) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0061: 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) if (!File.Exists(filePath)) { ((BaseUnityPlugin)this).Logger.LogError((object)("PNG file not found: " + filePath)); return null; } byte[] array = File.ReadAllBytes(filePath); Texture2D val = new Texture2D(2, 2, (TextureFormat)5, false); if (ImageConversion.LoadImage(val, array)) { ((Texture)val).filterMode = (FilterMode)1; ((Texture)val).wrapMode = (TextureWrapMode)1; return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f); } ((BaseUnityPlugin)this).Logger.LogError((object)"Failed to load PNG into texture"); return null; } private void SetupShrineActivationListener(GameObject shrine, GameObject indicator) { ((MonoBehaviour)this).StartCoroutine(CheckShrineActivation(shrine, indicator)); } private IEnumerator CheckShrineActivation(GameObject shrine, GameObject indicator) { PurchaseInteraction purchase = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<PurchaseInteraction>() : null); ShrineBossBehavior bossBehavior = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<ShrineBossBehavior>() : null); ShrineCombatBehavior combatBehavior = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<ShrineCombatBehavior>() : null); ChestBehavior chestBehavior = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<ChestBehavior>() : null); ShrineChanceBehavior chanceBehavior = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<ShrineChanceBehavior>() : null); ShrineBloodBehavior bloodBehavior = (((Object)(object)shrine != (Object)null) ? shrine.GetComponent<ShrineBloodBehavior>() : null); while ((Object)(object)shrine != (Object)null && (Object)(object)indicator != (Object)null) { if ((Object)(object)purchase != (Object)null && !purchase.available && (Object)(object)chanceBehavior == (Object)null && (Object)(object)bloodBehavior == (Object)null) { RemoveIndicator(shrine, indicator); break; } if ((Object)(object)bossBehavior != (Object)null) { FieldInfo field = ((object)bossBehavior).GetType().GetField("purchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo field2 = ((object)bossBehavior).GetType().GetField("maxPurchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null && field2 != null) { int num = (int)field.GetValue(bossBehavior); int num2 = (int)field2.GetValue(bossBehavior); if (num >= num2) { RemoveIndicator(shrine, indicator); break; } } } if ((Object)(object)combatBehavior != (Object)null) { FieldInfo field3 = ((object)combatBehavior).GetType().GetField("purchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo field4 = ((object)combatBehavior).GetType().GetField("maxPurchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field3 != null && field4 != null) { int num3 = (int)field3.GetValue(combatBehavior); int num4 = (int)field4.GetValue(combatBehavior); if (num3 >= num4) { RemoveIndicator(shrine, indicator); break; } } } if ((Object)(object)chestBehavior != (Object)null) { FieldInfo field5 = ((object)chestBehavior).GetType().GetField("isChestOpened", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field5 != null && (bool)field5.GetValue(chestBehavior)) { RemoveIndicator(shrine, indicator); break; } } if ((Object)(object)shrine != (Object)null && ((Object)shrine).name.StartsWith("TripleShop")) { MultiShopController component = shrine.GetComponent<MultiShopController>(); if ((Object)(object)component != (Object)null) { FieldInfo field6 = ((object)component).GetType().GetField("available", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field6 != null && !(bool)field6.GetValue(component)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: MultiShopController unavailable for " + ((Object)shrine).name + ", removing marker.")); RemoveIndicator(shrine, indicator); break; } } } if ((Object)(object)bloodBehavior != (Object)null) { FieldInfo field7 = ((object)bloodBehavior).GetType().GetField("purchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo field8 = ((object)bloodBehavior).GetType().GetField("maxPurchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field7 != null && field8 != null) { int num5 = (int)field7.GetValue(bloodBehavior); int num6 = (int)field8.GetValue(bloodBehavior); ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: Blood Shrine purchaseCount={num5}, maxPurchaseCount={num6}"); if (num5 >= num6) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: Blood Shrine exhausted (purchaseCount {num5} >= max {num6}), removing marker."); RemoveIndicator(shrine, indicator); break; } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"DEBUG: Could not find purchaseCount or maxPurchaseCount field via reflection for Blood Shrine!"); } } if ((Object)(object)chanceBehavior != (Object)null) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: Entered ShrineChanceBehavior check for {((Object)shrine).name} (ID: {((Object)shrine).GetInstanceID()})"); FieldInfo field9 = ((object)chanceBehavior).GetType().GetField("successfulPurchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); FieldInfo field10 = ((object)chanceBehavior).GetType().GetField("maxPurchaseCount", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field9 != null && field10 != null) { int num7 = (int)field9.GetValue(chanceBehavior); int num8 = (int)field10.GetValue(chanceBehavior); ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: ShrineChanceBehavior successfulPurchaseCount={num7}, maxPurchaseCount={num8}"); if (num7 >= num8) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"DEBUG: Shrine of Chance exhausted (success {num7} >= max {num8}), removing marker."); RemoveIndicator(shrine, indicator); break; } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)"DEBUG: Could not find successfulPurchaseCount or maxPurchaseCount field via reflection!"); } } if ((Object)(object)shrine != (Object)null && ((Object)shrine).name.StartsWith("FreeChestMultiShop")) { MultiShopController component2 = shrine.GetComponent<MultiShopController>(); if ((Object)(object)component2 != (Object)null) { FieldInfo field11 = ((object)component2).GetType().GetField("available", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field11 != null && !(bool)field11.GetValue(component2)) { RemoveIndicator(shrine, indicator); break; } } } if ((Object)(object)shrine == (Object)null || !shrine.activeInHierarchy) { RemoveIndicator(shrine, indicator); break; } yield return (object)new WaitForSeconds(0.5f); } } private void RemoveIndicator(GameObject shrine, GameObject indicator) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: RemoveIndicator called for " + ((shrine != null) ? ((Object)shrine).name : null) + " (indicator: " + ((indicator != null) ? ((Object)indicator).name : null) + ")")); if ((Object)(object)indicator != (Object)null) { Object.Destroy((Object)(object)indicator); } if ((Object)(object)shrine != (Object)null && shrineIndicators.ContainsKey(shrine)) { shrineIndicators.Remove(shrine); } } private void CreateCombatShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = combatShrineColor.Value; component2.spriteFlashColor = combatShrineColor.Value; component2.spriteChargedColor = combatShrineColor.Value; component2.spriteChargingColor = combatShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "combat.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateMountainShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = mountainShrineColor.Value; component2.spriteFlashColor = mountainShrineColor.Value; component2.spriteChargedColor = mountainShrineColor.Value; component2.spriteChargingColor = mountainShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "mountain.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateBloodShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = bloodShrineColor.Value; component2.spriteFlashColor = bloodShrineColor.Value; component2.spriteChargedColor = bloodShrineColor.Value; component2.spriteChargingColor = bloodShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "blood.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateChanceShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = chanceShrineColor.Value; component2.spriteFlashColor = chanceShrineColor.Value; component2.spriteChargedColor = chanceShrineColor.Value; component2.spriteChargingColor = chanceShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "chance.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateOrderShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = orderShrineColor.Value; component2.spriteFlashColor = orderShrineColor.Value; component2.spriteChargedColor = orderShrineColor.Value; component2.spriteChargingColor = orderShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "order.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateShapingShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = shapingShrineColor.Value; component2.spriteFlashColor = shapingShrineColor.Value; component2.spriteChargedColor = shapingShrineColor.Value; component2.spriteChargingColor = shapingShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "shaping.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateHalcyoniteShrineIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = halcyoniteShrineColor.Value; component2.spriteFlashColor = halcyoniteShrineColor.Value; component2.spriteChargedColor = halcyoniteShrineColor.Value; component2.spriteChargingColor = halcyoniteShrineColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "halcyon.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateVoidCradleIndicator(Vector3 position, GameObject shrine) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "voidchest.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } component2.spriteBaseColor = voidCradleColor.Value; component2.spriteFlashColor = voidCradleColor.Value; component2.spriteChargedColor = voidCradleColor.Value; component2.spriteChargingColor = voidCradleColor.Value; shrineIndicators[shrine] = ((Component)component).gameObject; SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateTeleporterIndicator(Vector3 position, GameObject shrine) { //IL_003a: 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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: 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_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0200: 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) if (shrineIndicators.ContainsKey(shrine)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Skipping duplicate indicator for shrine " + ((Object)shrine).name + " - already exists")); return; } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Creating Teleporter indicator at position {position} for shrine {((Object)shrine).name}"); PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "tp.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } component2.spriteBaseColor = teleporterColor.Value; component2.spriteFlashColor = teleporterColor.Value; component2.spriteChargedColor = teleporterColor.Value; component2.spriteChargingColor = teleporterColor.Value; shrineIndicators[shrine] = ((Component)component).gameObject; ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Stored indicator for shrine {((Object)shrine).name} with ID {((Object)shrine).GetInstanceID()}"); SetupShrineActivationListener(shrine, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void CreateScrapperIndicator(Vector3 position, GameObject scrapper) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } component2.spriteBaseColor = scrapperColor.Value; component2.spriteFlashColor = scrapperColor.Value; component2.spriteChargedColor = scrapperColor.Value; component2.spriteChargingColor = scrapperColor.Value; string filePath = Path.Combine(Paths.PluginPath, "Hyru-Locater", "scrapper.png"); Sprite val3 = LoadCustomSprite(filePath); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; } } } shrineIndicators[scrapper] = ((Component)component).gameObject; SetupShrineActivationListener(scrapper, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } internal void CreateChestIndicator(Vector3 position, GameObject chest, string chestType) { //IL_000a: 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) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0115: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0134: 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_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_023b: 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_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_018c: 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_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_021b: 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) PositionIndicator component = Object.Instantiate<GameObject>(Resources.Load<GameObject>("Prefabs/PositionIndicators/TeleporterChargingPositionIndicator"), position, Quaternion.identity).GetComponent<PositionIndicator>(); ChargeIndicatorController component2 = ((Component)component).GetComponent<ChargeIndicatorController>(); ((Component)component).transform.localScale = Vector3.one * (0.375f + markerScale.Value * 0.0375f); Canvas component3 = ((Component)component).GetComponent<Canvas>(); if ((Object)(object)component3 != (Object)null) { component3.renderMode = (RenderMode)2; component3.worldCamera = Camera.main; } FieldInfo field = ((object)component2).GetType().GetField("backgroundSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { object? value = field.GetValue(component2); SpriteRenderer val = (SpriteRenderer)((value is SpriteRenderer) ? value : null); if ((Object)(object)val != (Object)null) { ((Renderer)val).enabled = false; } } FieldInfo field2 = ((object)component2).GetType().GetField("pulseSprite", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (field2 != null) { object? value2 = field2.GetValue(component2); SpriteRenderer val2 = (SpriteRenderer)((value2 is SpriteRenderer) ? value2 : null); if ((Object)(object)val2 != (Object)null) { ((Renderer)val2).enabled = false; } } if ((Object)(object)component2.chargingText != (Object)null) { ((Component)component2.chargingText.transform).gameObject.SetActive(false); } Color value3 = categoryChestColor.Value; switch (chestType) { case "Chest1": value3 = whiteChestColor.Value; break; case "Chest2": value3 = greenChestColor.Value; break; case "GoldChest": value3 = redChestColor.Value; break; case "CategoryChest": value3 = categoryChestColor.Value; break; case "StealthChest": value3 = stealthChestColor.Value; break; case "EquipmentBarrel": value3 = equipmentBarrelColor.Value; break; case "LunarChest": value3 = lunarChestColor.Value; break; case "TripleShop": value3 = tripleShopColor.Value; break; case "CasinoChest": value3 = casinoChestColor.Value; break; } component2.spriteBaseColor = value3; component2.spriteFlashColor = value3; component2.spriteChargedColor = value3; component2.spriteChargingColor = value3; string text = Path.Combine(Paths.PluginPath, "Hyru-Locater", (chestType == "TripleShop") ? "triplechest.png" : ((chestType == "CasinoChest") ? "casino.png" : "chest.png")); ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Loading sprite for " + chestType + " from " + text)); Sprite val3 = LoadCustomSprite(text); if ((Object)(object)val3 != (Object)null && component2.iconSprites != null) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Successfully loaded sprite for " + chestType)); SpriteRenderer[] iconSprites = component2.iconSprites; foreach (SpriteRenderer val4 in iconSprites) { if ((Object)(object)val4 != (Object)null) { val4.sprite = val3; ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Applied sprite to SpriteRenderer " + ((Object)((Component)val4).gameObject).name)); } } } else { ((BaseUnityPlugin)this).Logger.LogInfo((object)("DEBUG: Failed to load or apply sprite for " + chestType)); } shrineIndicators[chest] = ((Component)component).gameObject; SetupShrineActivationListener(chest, ((Component)component).gameObject); ((Component)component).gameObject.SetActive(true); ((Component)component).gameObject.AddComponent<KeepUpright>(); RemoveEdgeComponents(((Component)component).gameObject); } private void OnConfigChanged(object sender, EventArgs e) { RefreshAllMarkers(); } private void OnPositioningChanged(object sender, EventArgs e) { ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Positioning changed - Y Offset: {markerYOffset.Value}, Scale: {markerScale.Value}"); RefreshAllMarkers(); } private void RefreshAllMarkers() { foreach (GameObject value in shrineIndicators.Values) { if ((Object)(object)value != (Object)null) { Object.Destroy((Object)(object)value); } } shrineIndicators.Clear(); Stage instance = Stage.instance; if ((Object)(object)instance != (Object)null) { OnStageStart(instance); } } private void UpdateMarkerPositionsAndScale() { ((BaseUnityPlugin)this).Logger.LogInfo((object)"UpdateMarkerPositionsAndScale called - redirecting to RefreshAllMarkers"); RefreshAllMarkers(); } private void RemoveEdgeComponents(GameObject indicator) { Transform val = indicator.transform.Find("OutsideFrameArrow"); if ((Object)(object)val != (Object)null) { Object.Destroy((Object)(object)((Compo