Decompiled source of SilksongMinimapWithCocoonCompass v0.8.0
SkongMinimap.dll
Decompiled 3 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.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GlobalEnums; using HarmonyLib; using SkongMinimap.MonoBehaviours; using SkongMinimap.Properties; using SkongMinimap.Utils; using TeamCherry.Localization; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("a4c3d649-767e-4f96-a728-b07682e6c00f")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: AssemblyVersion("0.0.0.0")] namespace SkongMinimap { [BepInPlugin("com.Wagyu.SkongMinimap", "SkongMinimap", "0.8.0")] public class SkongMinimapPlugin : BaseUnityPlugin { public static bool IsInCutscene = false; public static bool IsInConversation = false; public static NPCControlBase CurrentConversingNPC; private const string MyGUID = "com.Wagyu.SkongMinimap"; private const string PluginName = "SkongMinimap"; private const string VersionString = "0.8.0"; public static string ActiveKey = "Is Minimap Active"; public static string ToggleMinimapButtonKey = "Toggle Minimap Button"; public static string ReloadConfigButtonKey = "Reload Config Button"; public static string AreaNameFontSizeKey = "Minimap Font Size"; public static string MinimapPositionXKey = "Minimap X Position"; public static string MinimapPositionYKey = "Minimap Y Position"; public static string MinimapOffsetXKey = "Area Name X Offset"; public static string MinimapOffsetYKey = "Area Name Y Offset"; public static string AreaNameDefaultColorKey = "Area Name Default Color"; public static string MinimapOutlineColorKey = "Minimap Outline Color"; public static string MinimapBackgroundColorKey = "Minimap Background Color"; public static string UseFallbackFontKey = "Use Fallback Font"; public static string AlwaysVisibleKey = "Always Visible"; public static string MinimapFormatKey = "Minimap Format"; public static string MinimapZoomKey = "Minimap Zoom"; public static string MinimapOpacityKey = "Minimap Opacity"; public static string MinimapShowBGKey = "Minimap Show Background"; public static string MinimapUseOutlineKey = "Minimap Use Outline"; public static string MinimapOutlineTypeKey = "Minimap Outline Type"; public static string MinimapFillShapeKey = "Minimap Shape"; public static string DebugShowPosKey = "Debug Show Pos"; public static string MinimapFrameTypeKey = "Minimap Frame Type"; public static string MinimapScaleKey = "Minimap Scale"; public static string CocoonCompassOffsetXKey = "Cocoon Compass X Offset"; public static string CocoonCompassOffsetYKey = "Cocoon Compass Y Offset"; public static string CocoonCompassScaleKey = "Cocoon Compass Scale"; public static string CocoonCompassOpacityKey = "Cocoon Compass Opacity"; public static string ZoomInButtonKey = "Zoom In Button"; public static string ZoomOutButtonKey = "Zoom Out Button"; public static string ZoomSpeedKey = "Zoom Speed"; public static string IsCustomMarkersEnabledKey = "Enable Custom Markers"; public static string IsCocoonCompassEnabledKey = "Enable Cocoon Compass"; public static ConfigEntry<bool> Active; public static ConfigEntry<KeyCode> ToggleMinimapButton; public static ConfigEntry<KeyCode> ReloadConfigButton; public static ConfigEntry<int> AreaNameFontSize; public static ConfigEntry<float> MinimapPositionX; public static ConfigEntry<float> MinimapPositionY; public static ConfigEntry<float> AreaNameOffsetX; public static ConfigEntry<float> AreaNameOffsetY; public static ConfigEntry<Color> AreaNameDefaultColor; public static ConfigEntry<Color> MinimapOutlineColor; public static ConfigEntry<Color> MinimapBackgroundColor; public static ConfigEntry<bool> UseFallbackFont; public static ConfigEntry<bool> AlwaysVisible; public static ConfigEntry<float> MinimapZoom; public static ConfigEntry<float> MinimapOpacity; public static ConfigEntry<bool> MinimapShowBG; public static ConfigEntry<bool> MinimapUseOutline; public static ConfigEntry<MinimapShape> MinimapFillShape; public static ConfigEntry<MinimapOutline> MinimapOutlineType; public static ConfigEntry<bool> DebugShowPos; public static ConfigEntry<MinimapFrame> MinimapFrameType; public static ConfigEntry<float> MinimapScale; public static ConfigEntry<float> CocoonCompassOffsetX; public static ConfigEntry<float> CocoonCompassOffsetY; public static ConfigEntry<float> CocoonCompassScale; public static ConfigEntry<float> CocoonCompassOpacity; public static ConfigEntry<KeyCode> ZoomInButton; public static ConfigEntry<KeyCode> ZoomOutButton; public static ConfigEntry<float> ZoomSpeed; public static ConfigEntry<bool> IsCustomMarkersEnabled; public static ConfigEntry<bool> IsCocoonCompassEnabled; private static readonly Harmony Harmony = new Harmony("com.Wagyu.SkongMinimap"); public static ManualLogSource Log = new ManualLogSource("SkongMinimap"); private static Text areaNameDisplay; private static bool isPaused = false; public static Font silksongFont; public static Font fallbackFont; public static MapTextureBank textureBank; public static string location; public static string directoryName; private static Canvas canvas; private static RectTransform backgroundRect; private static Image backgroundImage; public static RectTransform areaNameRect; public static MinimapViewportComponent minimapViewport; private static RadarManagerComponent radar; private static CanvasGroup compassCG; private static RectTransform compassRotatorRect; public static GameObject compassScalerObject; public static RectTransform compassScalerRect; private static Image compassImage; private static RectTransform compassRect; private static RectTransform cocoonRect; private static Sprite compassBGSprite; private static Sprite compassCocoonSprite; private const float COMPASS_Y_OFFSET = 13f; public static bool isTrackingCocoon = false; private static CocoonCompassComponent compassComponent; public static bool IsInGame = false; public static void UpdateCustomMarkers() { if ((Object)(object)minimapViewport != (Object)null) { minimapViewport.UpdateMarkers(); } } private void Awake() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Expected O, but got Unknown //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0165: 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_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Expected O, but got Unknown //IL_01f4: 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_020e: Expected O, but got Unknown //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Expected O, but got Unknown //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Expected O, but got Unknown //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Expected O, but got Unknown //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Expected O, but got Unknown //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Expected O, but got Unknown //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Expected O, but got Unknown //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Expected O, but got Unknown //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Expected O, but got Unknown //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Expected O, but got Unknown //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Expected O, but got Unknown //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Expected O, but got Unknown //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Expected O, but got Unknown //IL_04fd: Unknown result type (might be due to invalid IL or missing references) //IL_0507: Expected O, but got Unknown //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Expected O, but got Unknown //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Expected O, but got Unknown //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05be: Expected O, but got Unknown //IL_05e0: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Expected O, but got Unknown //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Expected O, but got Unknown //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Expected O, but got Unknown //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Expected O, but got Unknown location = Assembly.GetExecutingAssembly().Location; directoryName = Path.GetDirectoryName(location); Log = ((BaseUnityPlugin)this).Logger; textureBank = new MapTextureBank(); Active = ((BaseUnityPlugin)this).Config.Bind<bool>("1.Core", ActiveKey, true, new ConfigDescription("Minimap UI active state", (AcceptableValueBase)null, Array.Empty<object>())); ReloadConfigButton = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Key Bindings", ReloadConfigButtonKey, (KeyCode)286, new ConfigDescription("Button to reload config file from disk", (AcceptableValueBase)null, Array.Empty<object>())); ToggleMinimapButton = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Key Bindings", ToggleMinimapButtonKey, (KeyCode)98, new ConfigDescription("Button to toggle the Minimap UI visibility", (AcceptableValueBase)null, Array.Empty<object>())); AreaNameFontSize = ((BaseUnityPlugin)this).Config.Bind<int>("Area Name Font", AreaNameFontSizeKey, 22, new ConfigDescription("Area Name Font Size", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 128), Array.Empty<object>())); MinimapPositionX = ((BaseUnityPlugin)this).Config.Bind<float>("Minimap Position", MinimapPositionXKey, 0.82f, new ConfigDescription("Minimap X Position", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); MinimapPositionY = ((BaseUnityPlugin)this).Config.Bind<float>("Minimap Position", MinimapPositionYKey, 0.7f, new ConfigDescription("Minimap Y Position", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); AreaNameOffsetX = ((BaseUnityPlugin)this).Config.Bind<float>("Area Name Offset", MinimapOffsetXKey, 0f, new ConfigDescription("Area Name X Offset", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-300f, 300f), Array.Empty<object>())); AreaNameOffsetY = ((BaseUnityPlugin)this).Config.Bind<float>("Area Name Offset", MinimapOffsetYKey, -155f, new ConfigDescription("Area Name Y Offset", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-300f, 300f), Array.Empty<object>())); AreaNameDefaultColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Area Name Color", AreaNameDefaultColorKey, Color.white, new ConfigDescription("Area Name Default Color", (AcceptableValueBase)null, Array.Empty<object>())); Color val = default(Color); ColorUtility.TryParseHtmlString("#FFFFFFFF", ref val); MinimapOutlineColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Minimap Color", MinimapOutlineColorKey, val, new ConfigDescription("Minimap Outline Color", (AcceptableValueBase)null, Array.Empty<object>())); Color val2 = default(Color); ColorUtility.TryParseHtmlString("#00000040", ref val2); MinimapBackgroundColor = ((BaseUnityPlugin)this).Config.Bind<Color>("Minimap Color", MinimapBackgroundColorKey, val2, new ConfigDescription("Minimap Background Color", (AcceptableValueBase)null, Array.Empty<object>())); UseFallbackFont = ((BaseUnityPlugin)this).Config.Bind<bool>("Minimap Font", UseFallbackFontKey, false, new ConfigDescription("Use fallback font (Arial)", (AcceptableValueBase)null, Array.Empty<object>())); AlwaysVisible = ((BaseUnityPlugin)this).Config.Bind<bool>("1.Core", AlwaysVisibleKey, false, new ConfigDescription("Always show timer even on the Main Menu", (AcceptableValueBase)null, Array.Empty<object>())); MinimapZoom = ((BaseUnityPlugin)this).Config.Bind<float>("Zooming", MinimapZoomKey, 1f, new ConfigDescription("Minimap Zoom", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 1f), Array.Empty<object>())); MinimapOpacity = ((BaseUnityPlugin)this).Config.Bind<float>("Minimap Opacity", MinimapOpacityKey, 0.95f, new ConfigDescription("Minimap Opacity", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); MinimapShowBG = ((BaseUnityPlugin)this).Config.Bind<bool>("Minimap", MinimapShowBGKey, true, new ConfigDescription("Show Minimap Background", (AcceptableValueBase)null, Array.Empty<object>())); MinimapUseOutline = ((BaseUnityPlugin)this).Config.Bind<bool>("Style", MinimapUseOutlineKey, false, new ConfigDescription("Show minimap outline", (AcceptableValueBase)null, Array.Empty<object>())); MinimapFillShape = ((BaseUnityPlugin)this).Config.Bind<MinimapShape>("Style", MinimapFillShapeKey, MinimapShape.Square, new ConfigDescription("Choose minimap shape", (AcceptableValueBase)null, Array.Empty<object>())); DebugShowPos = ((BaseUnityPlugin)this).Config.Bind<bool>("Debug", DebugShowPosKey, false, new ConfigDescription("Show player position coords (Square map only)", (AcceptableValueBase)null, Array.Empty<object>())); MinimapOutlineType = ((BaseUnityPlugin)this).Config.Bind<MinimapOutline>("Style", MinimapOutlineTypeKey, MinimapOutline.Line, new ConfigDescription("Choose minimap outline type", (AcceptableValueBase)null, Array.Empty<object>())); MinimapFrameType = ((BaseUnityPlugin)this).Config.Bind<MinimapFrame>("Style", MinimapFrameTypeKey, MinimapFrame.Default, new ConfigDescription("Choose minimap frame type (Square map only)", (AcceptableValueBase)null, Array.Empty<object>())); MinimapScale = ((BaseUnityPlugin)this).Config.Bind<float>("Minimap Scale", MinimapScaleKey, 1f, new ConfigDescription("Minimap Scale", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 2f), Array.Empty<object>())); CocoonCompassOffsetX = ((BaseUnityPlugin)this).Config.Bind<float>("Cocoon Compass", CocoonCompassOffsetXKey, 150f, new ConfigDescription("Cocoon Compass X", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-300f, 300f), Array.Empty<object>())); CocoonCompassOffsetY = ((BaseUnityPlugin)this).Config.Bind<float>("Cocoon Compass", CocoonCompassOffsetYKey, -32f, new ConfigDescription("Cocoon Compass Y Offset", (AcceptableValueBase)(object)new AcceptableValueRange<float>(-300f, 300f), Array.Empty<object>())); CocoonCompassScale = ((BaseUnityPlugin)this).Config.Bind<float>("Cocoon Compass", CocoonCompassScaleKey, 1f, new ConfigDescription("Cocoon Compass Scale", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 3f), Array.Empty<object>())); CocoonCompassOpacity = ((BaseUnityPlugin)this).Config.Bind<float>("Cocoon Compass", CocoonCompassOpacityKey, 0.8f, new ConfigDescription("Cocoon Compass Opacity", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>())); ZoomSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Zooming", ZoomSpeedKey, 1f, new ConfigDescription("Minimap Zoom Speed", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 3f), Array.Empty<object>())); ZoomInButton = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Key Bindings", ZoomInButtonKey, (KeyCode)99, new ConfigDescription("Minimap zoom in button", (AcceptableValueBase)null, Array.Empty<object>())); ZoomOutButton = ((BaseUnityPlugin)this).Config.Bind<KeyCode>("Key Bindings", ZoomOutButtonKey, (KeyCode)120, new ConfigDescription("Minimap zoom out button", (AcceptableValueBase)null, Array.Empty<object>())); IsCustomMarkersEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("1.Core", IsCustomMarkersEnabledKey, true, new ConfigDescription("Enable Custom Markers (Map Pins placed by the player)", (AcceptableValueBase)null, Array.Empty<object>())); IsCocoonCompassEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("1.Core", IsCocoonCompassEnabledKey, true, new ConfigDescription("Enable Cocoon Compass (Points to the player's last death position)", (AcceptableValueBase)null, Array.Empty<object>())); Active.SettingChanged += ConfigSettingChanged; ((BaseUnityPlugin)this).Config.ConfigReloaded += Config_ConfigReloaded; AreaNameFontSize.SettingChanged += ConfigSettingChanged; MinimapPositionX.SettingChanged += ConfigSettingChanged; MinimapPositionY.SettingChanged += ConfigSettingChanged; AreaNameOffsetX.SettingChanged += ConfigSettingChanged; AreaNameOffsetY.SettingChanged += ConfigSettingChanged; AreaNameDefaultColor.SettingChanged += ConfigSettingChanged; MinimapOutlineColor.SettingChanged += ConfigSettingChanged; MinimapBackgroundColor.SettingChanged += ConfigSettingChanged; UseFallbackFont.SettingChanged += ConfigSettingChanged; AlwaysVisible.SettingChanged += ConfigSettingChanged; MinimapOutlineColor.SettingChanged += ConfigSettingChanged; MinimapZoom.SettingChanged += ConfigSettingChanged; MinimapOpacity.SettingChanged += ConfigSettingChanged; MinimapShowBG.SettingChanged += ConfigSettingChanged; MinimapUseOutline.SettingChanged += ConfigSettingChanged; MinimapFillShape.SettingChanged += ConfigSettingChanged; MinimapOutlineType.SettingChanged += ConfigSettingChanged; DebugShowPos.SettingChanged += ConfigSettingChanged; MinimapFrameType.SettingChanged += ConfigSettingChanged; MinimapScale.SettingChanged += ConfigSettingChanged; CocoonCompassOffsetX.SettingChanged += ConfigSettingChanged; CocoonCompassOffsetY.SettingChanged += ConfigSettingChanged; CocoonCompassScale.SettingChanged += ConfigSettingChanged; CocoonCompassOpacity.SettingChanged += ConfigSettingChanged; IsCustomMarkersEnabled.SettingChanged += ConfigSettingChanged; IsCocoonCompassEnabled.SettingChanged += ConfigSettingChanged; ((BaseUnityPlugin)this).Logger.LogInfo((object)"SkongMinimap 0.8.0 is loading..."); Harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"SkongMinimap 0.8.0 is loaded."); InitCanvas(); } private void InitCanvas() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Skong Minimap Canvas"); Object.DontDestroyOnLoad((Object)(object)val); canvas = val.AddComponent<Canvas>(); CanvasScaler val2 = val.AddComponent<CanvasScaler>(); val2.referenceResolution = new Vector2((float)Screen.width, (float)Screen.height); canvas.renderMode = (RenderMode)0; val2.uiScaleMode = (ScaleMode)1; canvas.sortingOrder = 1000; } public static void UpdateEnemyList() { radar.UpdateSceneEnemyList(); } public static void InitMinimap() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown //IL_0143: 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_0177: 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_01a7: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Minimap Background"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(((Component)canvas).transform); backgroundImage = val.AddComponent<Image>(); backgroundRect = ((Graphic)backgroundImage).rectTransform; backgroundRect.anchorMin = new Vector2(0f, 0f); backgroundRect.anchorMax = new Vector2(0f, 0f); backgroundRect.pivot = new Vector2(0f, 0f); backgroundRect.sizeDelta = new Vector2(256f, 256f); SetBackgroundColor(MinimapBackgroundColor.Value); radar = val.AddComponent<RadarManagerComponent>(); minimapViewport = val.AddComponent<MinimapViewportComponent>(); minimapViewport.ChangeZoom(MinimapZoom.Value); GameObject val2 = new GameObject("Minimap"); Object.DontDestroyOnLoad((Object)(object)val2); val2.transform.SetParent(((Component)backgroundRect).transform); areaNameDisplay = val2.AddComponent<Text>(); ((MaskableGraphic)areaNameDisplay).maskable = false; areaNameRect = ((Graphic)areaNameDisplay).rectTransform; areaNameRect.anchorMin = new Vector2(0f, 0f); areaNameRect.anchorMax = new Vector2(1f, 1f); areaNameRect.pivot = new Vector2(0.5f, 0.5f); areaNameRect.pivot = new Vector2(0.5f, 0.5f); UpdateAreaNameOffset(); SetAreaNameColor(AreaNameDefaultColor.Value); silksongFont = ((IEnumerable<Font>)Resources.FindObjectsOfTypeAll<Font>()).FirstOrDefault((Func<Font, bool>)((Font f) => ((Object)f).name == "TrajanPro-Bold")); fallbackFont = Resources.GetBuiltinResource<Font>("Arial.ttf"); UpdateFont(); areaNameDisplay.fontStyle = (FontStyle)1; areaNameDisplay.alignment = (TextAnchor)4; areaNameDisplay.horizontalOverflow = (HorizontalWrapMode)1; areaNameDisplay.verticalOverflow = (VerticalWrapMode)1; Outline val3 = val2.AddComponent<Outline>(); UpdateMinimapPosition(); InitCocoonCompass(); UpdateAreaNameFontSize(updateText: true); UpdateModVisible(); SetMinimapVisible(value: false); } private static void InitCocoonCompass() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Expected O, but got Unknown //IL_01d4: 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_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0348: 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) compassScalerObject = new GameObject("Cocoon Compass Scaler"); Object.DontDestroyOnLoad((Object)(object)compassScalerObject); compassScalerObject.transform.SetParent(((Component)backgroundRect).transform); compassScalerRect = compassScalerObject.AddComponent<RectTransform>(); compassScalerRect.anchorMin = new Vector2(0.5f, 0.5f); compassScalerRect.anchorMax = new Vector2(0.5f, 0.5f); compassScalerRect.pivot = new Vector2(0.5f, 0.5f); compassScalerRect.pivot = new Vector2(0.5f, 0.5f); compassScalerRect.sizeDelta = new Vector2(128f, 128f); GameObject val = new GameObject("Cocoon Compass Rotator"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(compassScalerObject.transform); compassRotatorRect = val.AddComponent<RectTransform>(); compassRotatorRect.anchorMin = new Vector2(0.5f, 0.5f); compassRotatorRect.anchorMax = new Vector2(0.5f, 0.5f); compassRotatorRect.pivot = new Vector2(0.5f, 0.5f); compassRotatorRect.pivot = new Vector2(0.5f, 0.5f); compassRotatorRect.sizeDelta = new Vector2(128f, 128f); GameObject val2 = new GameObject("Cocoon Compass BG"); Object.DontDestroyOnLoad((Object)(object)val2); val2.transform.SetParent(val.transform); compassImage = val2.AddComponent<Image>(); ((MaskableGraphic)compassImage).maskable = false; compassRect = ((Graphic)compassImage).rectTransform; compassRect.anchorMin = new Vector2(0.5f, 0.5f); compassRect.anchorMax = new Vector2(0.5f, 0.5f); compassRect.pivot = new Vector2(0.5f, 0.5f); compassRect.pivot = new Vector2(0.5f, 0.5f); compassRect.sizeDelta = new Vector2(128f, 128f); compassRect.anchoredPosition = new Vector2(0f, 13f); compassBGSprite = IMG2Sprite.LoadSprite("compass-bg"); compassImage.sprite = compassBGSprite; compassCocoonSprite = IMG2Sprite.LoadSprite("compass-cocoon"); GameObject val3 = new GameObject("Cocoon Icon"); Object.DontDestroyOnLoad((Object)(object)val3); val3.transform.SetParent(compassScalerObject.transform); Image val4 = val3.AddComponent<Image>(); ((MaskableGraphic)val4).maskable = false; cocoonRect = ((Graphic)val4).rectTransform; cocoonRect.anchorMin = new Vector2(0.5f, 0.5f); cocoonRect.anchorMax = new Vector2(0.5f, 0.5f); cocoonRect.pivot = new Vector2(0.5f, 0.5f); cocoonRect.pivot = new Vector2(0.5f, 0.5f); cocoonRect.sizeDelta = new Vector2(128f, 128f); ((Transform)cocoonRect).position = ((Transform)compassRect).position; compassCocoonSprite = IMG2Sprite.LoadSprite("compass-cocoon"); val4.sprite = compassCocoonSprite; UpdateCompassOffset(); UpdateCompassRotation(); UpdateCompassScale(); compassCG = compassScalerObject.AddComponent<CanvasGroup>(); UpdateCompassOpacity(); compassComponent = val.AddComponent<CocoonCompassComponent>(); compassScalerObject.SetActive(false); } public static void SetMinimapOutlineColor(Color color) { minimapViewport.UpdateOutlineColor(); } public static void SetMinimapOutlineDistance(Vector2 distance) { } public static void UpdateFont() { areaNameDisplay.font = (UseFallbackFont.Value ? fallbackFont : silksongFont); UpdateAreaNameOffset(); } public static void UpdateMinimapPosition() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) backgroundRect.anchoredPosition = new Vector2(MinimapPositionX.Value * (float)Screen.width, MinimapPositionY.Value * (float)Screen.height); } public static void UpdateAreaNameOffset() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) areaNameRect.anchoredPosition = Vector2.op_Implicit(Vector3.up * AreaNameOffsetY.Value + Vector3.right * AreaNameOffsetX.Value + Vector3.down * (float)((!UseFallbackFont.Value) ? 3 : 0)); } public static void UpdateCompassOffset() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) compassScalerRect.anchoredPosition = Vector2.op_Implicit(Vector3.up * CocoonCompassOffsetY.Value + Vector3.right * CocoonCompassOffsetX.Value); } public static void UpdateCompassScale() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) ((Transform)compassScalerRect).localScale = Vector3.one * (CocoonCompassScale.Value / 2f); } public static void UpdateCompassRotation() { } public static void UpdateAreaNameFontSize(bool updateText = false) { areaNameDisplay.fontSize = AreaNameFontSize.Value; } private static void ShowAreaName() { ((Behaviour)areaNameDisplay).enabled = true; } private static void HideAreaName() { ((Behaviour)areaNameDisplay).enabled = false; } private void Update() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) if (UnityInput.Current.GetKeyDown(ToggleMinimapButton.Value)) { ((ConfigEntryBase)Active).SetSerializedValue((!Active.Value).ToString()); } if (IsInGame && Active.Value) { if (UnityInput.Current.GetKey(ZoomInButton.Value)) { float value = MinimapZoom.Value; ((ConfigEntryBase)MinimapZoom).SetSerializedValue((value + ZoomSpeed.Value * Time.deltaTime).ToString()); } else if (UnityInput.Current.GetKey(ZoomOutButton.Value)) { float value2 = MinimapZoom.Value; ((ConfigEntryBase)MinimapZoom).SetSerializedValue((value2 - ZoomSpeed.Value * Time.deltaTime).ToString()); } } if (UnityInput.Current.GetKeyDown(ReloadConfigButton.Value)) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Reloading config from disk..."); ((BaseUnityPlugin)this).Config.Reload(); } } private void ConfigSettingChanged(object sender, EventArgs e) { //IL_012b: 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_01e7: Unknown result type (might be due to invalid IL or missing references) SettingChangedEventArgs val = (SettingChangedEventArgs)(object)((e is SettingChangedEventArgs) ? e : null); if (val != null) { if (val.ChangedSetting.Definition.Key == ActiveKey) { UpdateModVisible(); } if (val.ChangedSetting.Definition.Key == AreaNameFontSizeKey) { UpdateAreaNameFontSize(!IsInGame); } if (val.ChangedSetting.Definition.Key == MinimapPositionXKey || val.ChangedSetting.Definition.Key == MinimapPositionYKey) { UpdateMinimapPosition(); } if (val.ChangedSetting.Definition.Key == MinimapOffsetXKey || val.ChangedSetting.Definition.Key == MinimapOffsetYKey) { UpdateAreaNameOffset(); } if (val.ChangedSetting.Definition.Key == AreaNameDefaultColorKey && !isPaused) { SetAreaNameColor(AreaNameDefaultColor.Value); } if (val.ChangedSetting.Definition.Key == MinimapBackgroundColorKey) { SetBackgroundColor(MinimapBackgroundColor.Value); } if (val.ChangedSetting.Definition.Key == UseFallbackFontKey) { UpdateFont(); } if (val.ChangedSetting.Definition.Key == MinimapFormatKey) { UpdateAreaNameFontSize(!IsInGame); } if (val.ChangedSetting.Definition.Key == MinimapOutlineColorKey) { SetMinimapOutlineColor(MinimapOutlineColor.Value); } if (val.ChangedSetting.Definition.Key == MinimapZoomKey) { UpdateMinimapZoom(); } if (val.ChangedSetting.Definition.Key == MinimapOpacityKey) { UpdateMinimapOpacity(); } if (val.ChangedSetting.Definition.Key == MinimapShowBGKey) { UpdateMinimapShowBG(); } if (val.ChangedSetting.Definition.Key == MinimapUseOutlineKey) { minimapViewport.ChangeUseOutline(MinimapUseOutline.Value); minimapViewport.UpdateUseOutline(); } if (val.ChangedSetting.Definition.Key == MinimapFillShapeKey) { minimapViewport.ChangeShape(MinimapFillShape.Value); minimapViewport.UpdateShape(); UpdatePosDisplayDebug(); } if (val.ChangedSetting.Definition.Key == DebugShowPosKey) { UpdatePosDisplayDebug(); UpdateAreaNameValue(); } if (val.ChangedSetting.Definition.Key == MinimapOutlineTypeKey) { UpdateMinimapOutlineType(); } if (val.ChangedSetting.Definition.Key == MinimapFrameTypeKey) { UpdateMinimapFrameType(); } if (val.ChangedSetting.Definition.Key == MinimapScaleKey) { UpdateMinimapScale(); } if (val.ChangedSetting.Definition.Key == CocoonCompassOffsetXKey || val.ChangedSetting.Definition.Key == CocoonCompassOffsetYKey) { UpdateCompassOffset(); } if (val.ChangedSetting.Definition.Key == CocoonCompassScaleKey) { UpdateCompassScale(); } if (val.ChangedSetting.Definition.Key == CocoonCompassOpacityKey) { UpdateCompassOpacity(); } if (val.ChangedSetting.Definition.Key == IsCocoonCompassEnabledKey) { SetCocoonCompassActive(); } if (val.ChangedSetting.Definition.Key == IsCustomMarkersEnabledKey) { SetCustomMarkersActive(); } } } public static void SetCustomMarkersActive() { minimapViewport.UpdateMarkersActive(); } public static void SetCocoonCompassActive() { minimapViewport.UpdateCocoonActive(); } public static void UpdateMinimapScale() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)backgroundRect != (Object)null) { ((Component)backgroundRect).transform.localScale = Vector2.op_Implicit(Vector2.one * MinimapScale.Value); } } public static void UpdateMinimapFrameType() { if ((Object)(object)minimapViewport != (Object)null) { minimapViewport.UpdateShape(); } } public static void UpdateMinimapOutlineType() { minimapViewport.ChangeOutlineType(MinimapOutlineType.Value); minimapViewport.UpdateOutlineSprite(); } public static void UpdatePosDisplayDebug() { areaNameDisplay.lineSpacing = (DebugShowPos.Value ? 0.65f : 1f); ((Behaviour)minimapViewport.posDisplay).enabled = DebugShowPos.Value && MinimapFillShape.Value == MinimapShape.Square; } private void UpdateMinimapShowBG() { minimapViewport.ChangeShowBG(MinimapShowBG.Value); minimapViewport.UpdateShowBG(); } private void UpdateMinimapOpacity() { minimapViewport.ChangeOpacity(MinimapOpacity.Value); minimapViewport.UpdateOpacity(); } private void UpdateMinimapZoom() { minimapViewport.ChangeZoom(MinimapZoom.Value); minimapViewport.UpdateZoom(); } public static void UpdateModVisible() { ((Component)canvas).gameObject.SetActive(Active.Value); } public static void SetMinimapVisible(bool value) { ((Component)backgroundRect).gameObject.SetActive(value || AlwaysVisible.Value); ((Behaviour)areaNameDisplay).enabled = value || AlwaysVisible.Value; } private void Config_ConfigReloaded(object sender, EventArgs e) { ((BaseUnityPlugin)this).Logger.LogInfo((object)"Config reloaded from disk"); } public static void SetBackgroundColor(Color color) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) ((Graphic)backgroundImage).color = color; } public static void SetAreaNameColor(Color color) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) ((Graphic)areaNameDisplay).color = color; } public static void UpdateAreaNameValue() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) GameMap gameMap = GameManager.instance.gameMap; if (Object.op_Implicit((Object)(object)gameMap)) { MapZone currentMapZone = gameMap.GetCurrentMapZone(); bool flag = gameMap.HasAnyMapForZone(currentMapZone); string text = Language.Get(((object)(MapZone)(ref currentMapZone)).ToString(), "Map Zones").Replace("<br>", string.Empty); areaNameDisplay.text = (flag ? text : ""); if (DebugShowPos.Value) { Text obj = areaNameDisplay; obj.text += $"\n <size={areaNameDisplay.fontSize / 2}>{((object)(MapZone)(ref currentMapZone)).ToString()}</size>"; } minimapViewport.ChangeZone(flag, text, GameManager.instance.sceneName, currentMapZone); } } public static void PauseMinimap(float duration) { if (Object.op_Implicit((Object)(object)minimapViewport)) { minimapViewport.PauseMinimap(duration); } } private static void UpdateCompassOpacity() { compassCG.alpha = CocoonCompassOpacity.Value; } public static void ResumeMinimap(float duration, float delay) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)minimapViewport)) { return; } minimapViewport.ResumeMinimap(duration, delay); PlayerData playerData = GameManager.instance.playerData; if (playerData.HeroCorpseScene != string.Empty) { if (!((Component)compassScalerRect).gameObject.activeInHierarchy && playerData.HeroDeathScenePos != Vector2.zero && IsCocoonCompassEnabled.Value) { ManualLogSource log = Log; Vector2 heroDeathScenePos = playerData.HeroDeathScenePos; log.LogWarning((object)("FOUND COCOON AT " + ((object)(Vector2)(ref heroDeathScenePos)).ToString())); ((Component)compassScalerRect).gameObject.SetActive(true); isTrackingCocoon = true; if ((Object)(object)minimapViewport != (Object)null && (Object)(object)GameManager.instance.gameMap != (Object)null) { minimapViewport.CreateCocoonObject(GameManager.instance.gameMap.GetCorpsePosition()); } } } else { Log.LogWarning((object)"NO COCOON"); ((Component)compassScalerRect).gameObject.SetActive(false); minimapViewport.DeleteCocoonObject(); isTrackingCocoon = false; } } } public enum MinimapShape { Square, Circle } public enum MinimapOutline { Line, Dotted } public enum MinimapFrame { Default, Default4x, Variant, Variant4x, None } } namespace SkongMinimap.Utils { public class IMG2Sprite { public static Sprite Tex2DToSprite(Texture2D tex, float PixelsPerUnit = 100f) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) return Sprite.Create(tex, new Rect(0f, 0f, (float)((Texture)tex).width, (float)((Texture)tex).height), new Vector2(0f, 0f), PixelsPerUnit); } public static Sprite LoadSprite(string name) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) try { Assembly executingAssembly = Assembly.GetExecutingAssembly(); Texture2D val = LoadTexture("sprites", name, "png"); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), Vector2.one * 0.5f); } catch (Exception ex) { SkongMinimapPlugin.Log.LogError((object)("Failed loading sprite: " + ex.Message)); return null; } } public static Texture2D LoadTexture(string subfolder, string name, string extension) { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected O, but got Unknown Texture2D result = null; try { Assembly executingAssembly = Assembly.GetExecutingAssembly(); string text = executingAssembly.GetName().Name + "." + subfolder + "." + name + "." + extension; Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(text); if (manifestResourceStream != null) { byte[] array = new byte[manifestResourceStream.Length]; manifestResourceStream.Read(array, 0, array.Length); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); result = val; SkongMinimapPlugin.Log.LogInfo((object)("Loaded: " + text)); } } catch (Exception ex) { SkongMinimapPlugin.Log.LogError((object)("Failed loading texture: " + ex.Message)); result = null; } return result; } public static Texture2D LoadTextureFromBundle(string textureName) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); string directoryName = SkongMinimapPlugin.directoryName; string text = Path.Combine(directoryName, "maptextures"); AssetBundle val = AssetBundle.LoadFromFile(text); if ((Object)(object)val == (Object)null) { SkongMinimapPlugin.Log.LogError((object)"Failed to load AssetBundle!"); return null; } SkongMinimapPlugin.Log.LogInfo((object)("Loading area map: " + text + "." + textureName)); Texture2D result = val.LoadAsset<Texture2D>(textureName); val.Unload(false); stopwatch.Stop(); SkongMinimapPlugin.Log.LogWarning((object)$"Loaded {textureName} map in {stopwatch.ElapsedMilliseconds} ms"); return result; } } public class MapTextureBank { public Texture2D map_MossGrotto = null; public Texture2D map_BoneBottom = null; public Texture2D map_Wormways = null; public Texture2D map_TheMarrow = null; public Texture2D map_DeepDocks = null; public Texture2D map_HuntersMarch = null; public Texture2D map_FarFields = null; public Texture2D map_Shellwood = null; public Texture2D map_Bellhart = null; public Texture2D map_SinnersRoad = null; public Texture2D map_WispThicket = null; public Texture2D map_BlastedSteps = null; public Texture2D map_PutrifiedDucts = null; public Texture2D map_GrandGate = null; public Texture2D map_Underworks = null; public Texture2D map_Bilewater = null; public Texture2D map_TheCitadel = null; public Texture2D map_WhisperingVaults = null; public Texture2D map_TheSlab = null; public Texture2D map_MountFay = null; public Texture2D map_HighHalls = null; public Texture2D map_CogworkCore = null; public Texture2D map_SandsOfKarak = null; public Texture2D map_Memorium = null; public Texture2D map_TheCradle = null; public Texture2D map_Whiteward = null; public Texture2D map_WeavenestAtla = null; public Texture2D map_TheAbyss = null; public Texture2D map_Verdania = null; public Texture2D map_Greymoor = null; public Texture2D GetMapTextureByZone(string areaName, string sceneName, MapZone zone) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected I4, but got Unknown SkongMinimapPlugin.Log.LogInfo((object)("Trying to find which map to load: " + areaName + " - " + sceneName)); Texture2D result; switch (zone - 2) { case 11: if ((Object)(object)map_MossGrotto == (Object)null) { map_MossGrotto = IMG2Sprite.LoadTextureFromBundle("mossgrotto"); } result = map_MossGrotto; break; case 10: if ((Object)(object)map_BoneBottom == (Object)null) { map_BoneBottom = IMG2Sprite.LoadTextureFromBundle("bonebottom"); } result = map_BoneBottom; break; case 32: if ((Object)(object)map_Wormways == (Object)null) { map_Wormways = IMG2Sprite.LoadTextureFromBundle("wormways"); } result = map_Wormways; break; case 0: if ((Object)(object)map_TheMarrow == (Object)null) { map_TheMarrow = IMG2Sprite.LoadTextureFromBundle("themarrow"); } result = map_TheMarrow; break; case 13: if ((Object)(object)map_DeepDocks == (Object)null) { map_DeepDocks = IMG2Sprite.LoadTextureFromBundle("deepdocks"); } result = map_DeepDocks; break; case 9: if ((Object)(object)map_HuntersMarch == (Object)null) { map_HuntersMarch = IMG2Sprite.LoadTextureFromBundle("huntersmarch"); } result = map_HuntersMarch; break; case 14: if ((Object)(object)map_FarFields == (Object)null) { map_FarFields = IMG2Sprite.LoadTextureFromBundle("farfields"); } result = map_FarFields; break; case 2: if ((Object)(object)map_Shellwood == (Object)null) { map_Shellwood = IMG2Sprite.LoadTextureFromBundle("shellwood"); } result = map_Shellwood; break; case 8: if ((Object)(object)map_Bellhart == (Object)null) { map_Bellhart = IMG2Sprite.LoadTextureFromBundle("bellhart"); } result = map_Bellhart; break; case 7: if ((Object)(object)map_SinnersRoad == (Object)null) { map_SinnersRoad = IMG2Sprite.LoadTextureFromBundle("sinnersroad"); } result = map_SinnersRoad; break; case 33: if ((Object)(object)map_WispThicket == (Object)null) { map_WispThicket = IMG2Sprite.LoadTextureFromBundle("wispthicket"); } result = map_WispThicket; break; case 30: if ((Object)(object)map_BlastedSteps == (Object)null) { map_BlastedSteps = IMG2Sprite.LoadTextureFromBundle("blastedsteps"); } result = map_BlastedSteps; break; case 36: if ((Object)(object)map_PutrifiedDucts == (Object)null) { map_PutrifiedDucts = IMG2Sprite.LoadTextureFromBundle("putrifiedducts"); } result = map_PutrifiedDucts; break; case 38: if ((Object)(object)map_GrandGate == (Object)null) { map_GrandGate = IMG2Sprite.LoadTextureFromBundle("grandgate"); } result = map_GrandGate; break; case 20: if ((Object)(object)map_Underworks == (Object)null) { map_Underworks = IMG2Sprite.LoadTextureFromBundle("underworks"); } result = map_Underworks; break; case 34: if ((Object)(object)map_Bilewater == (Object)null) { map_Bilewater = IMG2Sprite.LoadTextureFromBundle("bilewater"); } result = map_Bilewater; break; case 4: if ((Object)(object)map_TheCitadel == (Object)null) { map_TheCitadel = IMG2Sprite.LoadTextureFromBundle("thecitadel"); } result = map_TheCitadel; break; case 18: if ((Object)(object)map_WhisperingVaults == (Object)null) { map_WhisperingVaults = IMG2Sprite.LoadTextureFromBundle("whisperingvaults"); } result = ((sceneName.ToLower() == "library_02") ? map_TheCitadel : map_WhisperingVaults); break; case 5: if ((Object)(object)map_TheSlab == (Object)null) { map_TheSlab = IMG2Sprite.LoadTextureFromBundle("theslab"); } result = map_TheSlab; break; case 22: if ((Object)(object)map_MountFay == (Object)null) { map_MountFay = IMG2Sprite.LoadTextureFromBundle("mountfay"); } result = map_MountFay; break; case 25: if ((Object)(object)map_HighHalls == (Object)null) { map_HighHalls = IMG2Sprite.LoadTextureFromBundle("highhalls"); } result = map_HighHalls; break; case 21: if ((Object)(object)map_CogworkCore == (Object)null) { map_CogworkCore = IMG2Sprite.LoadTextureFromBundle("cogwork"); } result = map_CogworkCore; break; case 3: if ((Object)(object)map_SandsOfKarak == (Object)null) { map_SandsOfKarak = IMG2Sprite.LoadTextureFromBundle("sandsofkarak"); } result = map_SandsOfKarak; break; case 26: if ((Object)(object)map_Memorium == (Object)null) { map_Memorium = IMG2Sprite.LoadTextureFromBundle("memorium"); } result = map_Memorium; break; case 27: if ((Object)(object)map_TheCradle == (Object)null) { map_TheCradle = IMG2Sprite.LoadTextureFromBundle("thecradle"); } result = map_TheCradle; break; case 24: if ((Object)(object)map_Whiteward == (Object)null) { map_Whiteward = IMG2Sprite.LoadTextureFromBundle("whiteward"); } result = map_Whiteward; break; case 15: if ((Object)(object)map_WeavenestAtla == (Object)null) { map_WeavenestAtla = IMG2Sprite.LoadTextureFromBundle("weavenestatla"); } result = map_WeavenestAtla; break; case 19: if ((Object)(object)map_Verdania == (Object)null) { map_Verdania = IMG2Sprite.LoadTextureFromBundle("verdania"); } result = map_Verdania; break; case 35: if ((Object)(object)map_TheAbyss == (Object)null) { map_TheAbyss = IMG2Sprite.LoadTextureFromBundle("theabyss"); } result = map_TheAbyss; break; case 1: if ((Object)(object)map_Greymoor == (Object)null) { map_Greymoor = IMG2Sprite.LoadTextureFromBundle("greymoor"); } result = map_Greymoor; break; default: SkongMinimapPlugin.Log.LogInfo((object)("Can't find area map: " + areaName + " - " + sceneName)); result = null; break; } SkongMinimapPlugin.Log.LogInfo((object)("Returning area map: " + areaName + " - " + sceneName)); return result; } } internal class MinimapPlayerPositionHandler { private static MethodInfo GameMap_GetMapPosition; private static FieldInfo GameMap_CurrentScene; private static FieldInfo GameMap_CurrentSceneObj; private static FieldInfo GameMap_CurrentScenePos; private static FieldInfo GameMap_CurrentSceneSize; private static FieldInfo GameMap_MapZoneInfo; public static void UpdatePrivateFieldsFromGameMap() { if (GameMap_GetMapPosition == null) { Type typeFromHandle = typeof(GameMap); BindingFlags bindingAttr = BindingFlags.Instance | BindingFlags.NonPublic; GameMap_GetMapPosition = typeFromHandle.GetMethod("GetMapPosition", bindingAttr, null, new Type[5] { typeof(Vector2), typeof(GameMapScene), typeof(GameObject), typeof(Vector2), typeof(Vector2) }, null); GameMap_CurrentScene = typeFromHandle.GetField("currentScene", bindingAttr); GameMap_CurrentScenePos = typeFromHandle.GetField("currentScenePos", bindingAttr); GameMap_CurrentSceneObj = typeFromHandle.GetField("currentSceneObj", bindingAttr); GameMap_CurrentSceneSize = typeFromHandle.GetField("currentSceneSize", bindingAttr); GameMap_MapZoneInfo = typeFromHandle.GetField("mapZoneInfo", bindingAttr); } } public static Vector2 GetPlayerMapPosition() { //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) UpdatePrivateFieldsFromGameMap(); if (SkongMinimapPlugin.IsInGame && GameMap_GetMapPosition != null && GameMap_CurrentScene != null && GameMap_CurrentScenePos != null && GameMap_CurrentSceneObj != null && GameMap_CurrentSceneSize != null) { GameMap gameMap = GameManager.instance.gameMap; gameMap.UpdateCurrentScene(); return (Vector2)GameMap_GetMapPosition.Invoke(gameMap, new object[5] { Vector2.op_Implicit(((Component)HeroController.instance).transform.position), GameMap_CurrentScene.GetValue(gameMap), (object)(GameObject)GameMap_CurrentSceneObj.GetValue(gameMap), (object)(Vector2)GameMap_CurrentScenePos.GetValue(gameMap), (object)(Vector2)GameMap_CurrentSceneSize.GetValue(gameMap) }); } return Vector2.zero; } public static Vector2 GetMapPosition(Vector2 pos) { //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) UpdatePrivateFieldsFromGameMap(); if (SkongMinimapPlugin.IsInGame && GameMap_GetMapPosition != null && GameMap_CurrentScene != null && GameMap_CurrentScenePos != null && GameMap_CurrentSceneObj != null && GameMap_CurrentSceneSize != null) { GameMap gameMap = GameManager.instance.gameMap; gameMap.UpdateCurrentScene(); return (Vector2)GameMap_GetMapPosition.Invoke(gameMap, new object[5] { pos, GameMap_CurrentScene.GetValue(gameMap), (object)(GameObject)GameMap_CurrentSceneObj.GetValue(gameMap), (object)(Vector2)GameMap_CurrentScenePos.GetValue(gameMap), (object)(Vector2)GameMap_CurrentSceneSize.GetValue(gameMap) }); } return Vector2.zero; } public static Vector2 GetBoundSize() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) try { GameMap gameMap = GameManager.instance.gameMap; GameMapScene val = (GameMapScene)GameMap_CurrentScene.GetValue(gameMap); Bounds bounds = val.BoundsSprite.bounds; return Vector2.op_Implicit(((Bounds)(ref bounds)).size) * Vector2.op_Implicit(((Component)val).transform.localScale); } catch (Exception) { return Vector2.zero; } } public static Vector2 WorldToMinimap(Vector2 worldPos) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) float num = worldPos.x * -196.2f - 222.3f; float num2 = worldPos.y * -155.75f - 416.5f; return new Vector2(num, num2); } } internal class TweenHelper { public static void TweenFloat(MonoBehaviour caller, Func<float> getter, Action<float> setter, float endValue, float duration) { caller.StartCoroutine(TweenFloatRoutine(getter, setter, endValue, duration)); } public static IEnumerator TweenFloatRoutine(Func<float> getter, Action<float> setter, float endValue, float duration) { float t = 0f; float startValue = getter(); int iteration = 0; while (t < duration && iteration < 1000) { setter(Mathf.Lerp(startValue, endValue, t / duration)); t += Time.unscaledDeltaTime; iteration++; if (iteration >= 1000) { SkongMinimapPlugin.Log.LogError((object)"TWEEN TIMEOUT"); setter(endValue); } yield return null; } setter(endValue); yield return null; } public static IEnumerator TweenFloatRoutineWithDelay(Func<float> getter, Action<float> setter, float endValue, float duration, float delay) { int iteration = 0; yield return (object)new WaitForSecondsRealtime(delay); float t = 0f; float startValue = getter(); while (t < duration && iteration < 1000) { setter(Mathf.Lerp(startValue, endValue, t / duration)); t += Time.unscaledDeltaTime; iteration++; if (iteration >= 1000) { SkongMinimapPlugin.Log.LogError((object)"TWEEN TIMEOUT"); setter(endValue); } yield return null; } setter(endValue); yield return null; } } } namespace SkongMinimap.Properties { internal class BenchPositions { public static Dictionary<MapZone, Vector2[]> list = new Dictionary<MapZone, Vector2[]> { { (MapZone)13, (Vector2[])(object)new Vector2[1] { new Vector2(-14.6f, -11.9f) } }, { (MapZone)12, (Vector2[])(object)new Vector2[2] { new Vector2(-9.9f, -8.7f), new Vector2(-12.3f, -11.3f) } }, { (MapZone)4, (Vector2[])(object)new Vector2[4] { new Vector2(-8.5f, -8f), new Vector2(-10.9f, -4.6f), new Vector2(-5f, -5f), new Vector2(-12.7f, -6.3f) } }, { (MapZone)34, (Vector2[])(object)new Vector2[1] { new Vector2(-18.4f, -7.6f) } }, { (MapZone)10, (Vector2[])(object)new Vector2[3] { new Vector2(-1.2f, -6.5f), new Vector2(-1.2f, -5.3f), new Vector2(-1.4f, -5.9f) } }, { (MapZone)24, (Vector2[])(object)new Vector2[4] { new Vector2(-20.8f, 6.1f), new Vector2(-13.8f, 4.8f), new Vector2(-13f, 8.8f), new Vector2(-12.6f, 12.4f) } }, { (MapZone)16, (Vector2[])(object)new Vector2[7] { new Vector2(13.7f, -11.2f), new Vector2(14f, -9.5f), new Vector2(8.1f, -10.3f), new Vector2(22.5f, -12.8f), new Vector2(16.2f, -12.3f), new Vector2(23.3f, -9f), new Vector2(17.6f, -7.1f) } }, { (MapZone)32, (Vector2[])(object)new Vector2[3] { new Vector2(-14.3f, -0.5f), new Vector2(-14.8f, -3.9f), new Vector2(-19.6f, -1.7f) } }, { (MapZone)6, (Vector2[])(object)new Vector2[7] { new Vector2(6.7f, 4f), new Vector2(8.7f, 7.8f), new Vector2(-3.2f, 2.7f), new Vector2(-2.9f, 5.4f), new Vector2(0.7f, 5.8f), new Vector2(8.2f, 7.8f), new Vector2(4f, 8f) } }, { (MapZone)36, (Vector2[])(object)new Vector2[4] { new Vector2(12.9f, -0.1f), new Vector2(10.1f, 0.2f), new Vector2(16.7f, 6.2f), new Vector2(20f, 4.2f) } }, { (MapZone)38, (Vector2[])(object)new Vector2[2] { new Vector2(17f, 8.9f), new Vector2(14.1f, 7.2f) } }, { (MapZone)2, (Vector2[])(object)new Vector2[4] { new Vector2(-7.1f, -9.2f), new Vector2(-7.7f, -11.3f), new Vector2(-10.6f, -9.4f), new Vector2(-1.8f, -10.3f) } }, { (MapZone)3, (Vector2[])(object)new Vector2[3] { new Vector2(13.7f, -4.8f), new Vector2(7.3f, -5f), new Vector2(14.5f, -5.3f) } }, { (MapZone)15, (Vector2[])(object)new Vector2[6] { new Vector2(6.6f, -11.6f), new Vector2(2.6f, -10.4f), new Vector2(2.2f, -14.2f), new Vector2(3.8f, -14.1f), new Vector2(4.5f, -12.3f), new Vector2(7.4f, -14.9f) } }, { (MapZone)5, (Vector2[])(object)new Vector2[2] { new Vector2(-9.1f, 2.3f), new Vector2(-20f, 3.8f) } }, { (MapZone)11, (Vector2[])(object)new Vector2[1] { new Vector2(7f, 8.3f) } }, { (MapZone)9, (Vector2[])(object)new Vector2[2] { new Vector2(9.9f, -2.2f), new Vector2(16.4f, -2.8f) } }, { (MapZone)35, (Vector2[])(object)new Vector2[1] { new Vector2(4.1f, -2.5f) } }, { (MapZone)22, (Vector2[])(object)new Vector2[3] { new Vector2(-5f, -1.2f), new Vector2(-1.1f, 1.3f), new Vector2(3.4f, 1.2f) } }, { (MapZone)29, (Vector2[])(object)new Vector2[1] { new Vector2(4.8f, 13.1f) } }, { (MapZone)26, (Vector2[])(object)new Vector2[1] { new Vector2(1.4f, 4.3f) } }, { (MapZone)20, (Vector2[])(object)new Vector2[2] { new Vector2(10.2f, 6.4f), new Vector2(11.4f, 4.1f) } }, { (MapZone)27, (Vector2[])(object)new Vector2[1] { new Vector2(1.2f, 8.5f) } }, { (MapZone)28, (Vector2[])(object)new Vector2[1] { new Vector2(5.4f, 8.6f) } }, { (MapZone)23, (Vector2[])(object)new Vector2[1] { new Vector2(2.3f, 7.7f) } }, { (MapZone)7, (Vector2[])(object)new Vector2[4] { new Vector2(-10.1f, 4.8f), new Vector2(-11.3f, 8.8f), new Vector2(-10.5f, 8.2f), new Vector2(-8.8f, 7f) } }, { (MapZone)17, (Vector2[])(object)new Vector2[1] { new Vector2(-10.6f, -13.7f) } }, { (MapZone)21, (Vector2[])(object)new Vector2[1] { new Vector2(23.9f, -4.8f) } }, { (MapZone)37, (Vector2[])(object)new Vector2[3] { new Vector2(2.1f, -16.6f), new Vector2(1.8f, -20.5f), new Vector2(7.4f, -17.8f) } } }; } } namespace SkongMinimap.Patches { [HarmonyPatch(typeof(DialogueBox))] internal class DialogueBoxPatches { [HarmonyPatch("StartConversation", new Type[] { typeof(LocalisedString), typeof(NPCControlBase), typeof(bool) })] [HarmonyPostfix] public static void StartConversation_Postfix() { SkongMinimapPlugin.Log.LogWarning((object)"Conversation started 1"); SkongMinimapPlugin.PauseMinimap(0.25f); } [HarmonyPatch("StartConversation", new Type[] { typeof(LocalisedString), typeof(NPCControlBase), typeof(bool), typeof(DisplayOptions), typeof(Action) })] [HarmonyPostfix] public static void StartConversation_Postfix2() { SkongMinimapPlugin.Log.LogWarning((object)"Conversation started 2"); SkongMinimapPlugin.PauseMinimap(0.25f); } [HarmonyPatch("StartConversation", new Type[] { typeof(string), typeof(NPCControlBase), typeof(bool), typeof(DisplayOptions), typeof(Action), typeof(Action) })] [HarmonyPostfix] public static void StartConversation_Postfix3() { SkongMinimapPlugin.PauseMinimap(0.25f); } } [HarmonyPatch(typeof(GameCameras))] internal class GameCamerasPatches { [HarmonyPatch("OnCinematicBegin")] [HarmonyPostfix] public static void OnCinematicBegin_Postfix() { SkongMinimapPlugin.Log.LogInfo((object)"Cinematic Started"); SkongMinimapPlugin.IsInCutscene = true; SkongMinimapPlugin.PauseMinimap(0.25f); } [HarmonyPatch("OnCinematicEnd")] [HarmonyPostfix] public static void OnCinematicEnd_Postfix() { SkongMinimapPlugin.IsInCutscene = false; SkongMinimapPlugin.ResumeMinimap(0.25f, 0f); SkongMinimapPlugin.Log.LogInfo((object)"Cinematic Ended"); } } [HarmonyPatch(typeof(GameManager))] internal class GameManagerPatches { private static bool isNewGame; [HarmonyPatch("Awake")] [HarmonyPostfix] public static void Awake_Postfix(GameManager __instance) { SkongMinimapPlugin.Log.LogInfo((object)"Minimap initiated"); SkongMinimapPlugin.InitMinimap(); } [HarmonyPatch("LoadGameFromUI", new Type[] { typeof(int), typeof(SaveGameData) })] [HarmonyPostfix] public static void LoadGameFromUI_Postfix(int saveSlot, SaveGameData saveGameData) { isNewGame = false; float playTime = saveGameData.playerData.playTime; SkongMinimapPlugin.IsInGame = true; SkongMinimapPlugin.UpdateAreaNameValue(); SkongMinimapPlugin.SetMinimapVisible(value: false); } [HarmonyPatch("StartNewGame")] [HarmonyPostfix] public static void StartNewGame_Postfix() { isNewGame = true; SkongMinimapPlugin.IsInGame = true; SkongMinimapPlugin.UpdateAreaNameValue(); SkongMinimapPlugin.SetMinimapVisible(value: false); SkongMinimapPlugin.PauseMinimap(0f); } [HarmonyPatch("SetPausedState")] [HarmonyPostfix] public static void SetPausedState_Postfix(bool value) { if (value) { SkongMinimapPlugin.PauseMinimap(0.25f); } else { SkongMinimapPlugin.ResumeMinimap(0.25f, 0f); } } [HarmonyPatch("SetState")] [HarmonyPostfix] public static void SetState_Postfix(GameState newState) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 if ((int)newState != 6) { if ((int)newState == 7) { SkongMinimapPlugin.PauseMinimap(0.25f); } } else { SkongMinimapPlugin.PauseMinimap(0.25f); } } [HarmonyPatch("PlayerDead")] [HarmonyPostfix] public static void PlayerDead_Postfix() { SkongMinimapPlugin.PauseMinimap(0.25f); } [HarmonyPatch("OnNextLevelReady")] [HarmonyPostfix] public static void OnNextLevelReady_Postfix() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Invalid comparison between Unknown and I4 SkongMinimapPlugin.UpdateEnemyList(); if (SkongMinimapPlugin.IsInGame && (int)GameManager.instance.GameState != 7 && !(GameManager.instance.sceneName == "Cinematic_Stag_Travel")) { if (isNewGame && GameManager.instance.lastSceneName == "Opening_Sequence") { isNewGame = false; return; } if (SkongMinimapPlugin.IsInCutscene) { SkongMinimapPlugin.UpdateAreaNameValue(); return; } SkongMinimapPlugin.SetMinimapVisible(value: true); SkongMinimapPlugin.ResumeMinimap(0.25f, 0.25f); SkongMinimapPlugin.UpdateAreaNameValue(); } } [HarmonyPatch("DoShopCloseGameMapUpdate")] [HarmonyPrefix] public static void DoShopCloseGameMapUpdate_Prefix() { if (GameManager.instance.DidPurchaseMap) { SkongMinimapPlugin.UpdateAreaNameValue(); } } [HarmonyPatch("CheckMapAchievements")] [HarmonyPrefix] public static void CheckMapAchievements_Prefix() { SkongMinimapPlugin.UpdateAreaNameValue(); if ((Object)(object)SkongMinimapPlugin.CurrentConversingNPC != (Object)null && ((Object)SkongMinimapPlugin.CurrentConversingNPC).name.Contains("Map Machine")) { SkongMinimapPlugin.Log.LogWarning((object)"Interacted with a Map Machine"); SkongMinimapPlugin.ResumeMinimap(0.25f, 0.25f); } } [HarmonyPatch("AddToBenchList")] [HarmonyPrefix] public static void AddToBenchList_Prefix() { SkongMinimapPlugin.Log.LogWarning((object)"ADD TO BENCH LIST"); } } [HarmonyPatch(typeof(GameMap))] internal class GameMapPatches { [HarmonyPatch("TryOpenQuickMap")] [HarmonyPostfix] public static void TryOpenQuickMap_Postfix() { SkongMinimapPlugin.PauseMinimap(0.25f); } [HarmonyPatch("CloseQuickMap")] [HarmonyPostfix] public static void CloseQuickMap_Postfix() { if (!GameManager.instance.playerData.isInventoryOpen) { SkongMinimapPlugin.ResumeMinimap(0.25f, 0.1f); } } } [HarmonyPatch(typeof(HeroController))] internal class HeroControllerPatches { [HarmonyPatch("CocoonBroken", new Type[] { typeof(bool), typeof(bool) })] [HarmonyPostfix] public static void CocoonBroken_Postfix() { SkongMinimapPlugin.Log.LogWarning((object)"Cocoon broken!"); ((Component)SkongMinimapPlugin.compassScalerRect).gameObject.SetActive(false); SkongMinimapPlugin.minimapViewport.DeleteCocoonObject(); } } [HarmonyPatch(typeof(HeroTalkAnimation))] internal class HeroTalkAnimationPatches { [HarmonyPatch("EnterConversation")] [HarmonyPostfix] public static void EnterConversation_Postfix(NPCControlBase sourceNpc) { SkongMinimapPlugin.IsInConversation = true; SkongMinimapPlugin.CurrentConversingNPC = sourceNpc; SkongMinimapPlugin.Log.LogInfo((object)("STARTED CONVERSATION WITH: " + ((Object)sourceNpc).name)); } [HarmonyPatch("ExitConversation")] [HarmonyPostfix] public static void ExitConversation_Postfix() { SkongMinimapPlugin.ResumeMinimap(0.25f, 0f); SkongMinimapPlugin.IsInConversation = false; } } [HarmonyPatch(typeof(InventoryMapManager))] internal class InventoryMapManagerPatches { [HarmonyPatch("OnPaneStart")] [HarmonyPostfix] public static void OnPaneStart_Postfix() { SkongMinimapPlugin.PauseMinimap(0.1f); } } [HarmonyPatch(typeof(MapMarkerMenu))] internal class MapMarkerMenuPatches { [HarmonyPatch("PlaceMarker")] [HarmonyPostfix] public static void PlaceMarker_Postfix() { SkongMinimapPlugin.UpdateCustomMarkers(); SkongMinimapPlugin.Log.LogWarning((object)"Placed a custom marker"); } [HarmonyPatch("RemoveMarker")] [HarmonyPostfix] public static void RemoveMarker_Postfix() { SkongMinimapPlugin.UpdateCustomMarkers(); SkongMinimapPlugin.Log.LogWarning((object)"Removed a custom marker"); } } [HarmonyPatch(typeof(MapPin))] internal class MapPinPatches { [HarmonyPatch("AddPin")] [HarmonyPostfix] public static void AddPin_Postfix() { } } [HarmonyPatch(typeof(QuitToMenu))] internal class QuitToMenuPatches { [HarmonyPatch("Start")] [HarmonyPostfix] public static void Start_Postfix() { SkongMinimapPlugin.Log.LogInfo((object)"Minimap hidden"); SkongMinimapPlugin.IsInGame = false; SkongMinimapPlugin.SetMinimapVisible(value: false); } } } namespace SkongMinimap.MonoBehaviours { internal class CocoonCompassComponent : MonoBehaviour { public void LateUpdate() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) if (SkongMinimapPlugin.IsInGame && SkongMinimapPlugin.isTrackingCocoon) { Vector2 playerMapPosition = MinimapPlayerPositionHandler.GetPlayerMapPosition(); Vector2 val = GameManager.instance.gameMap.GetCorpsePosition() - playerMapPosition; Vector2 normalized = ((Vector2)(ref val)).normalized; float num = Mathf.Atan2(normalized.y, normalized.x) * 57.29578f; ((Component)this).transform.localRotation = Quaternion.Euler(0f, 0f, num - 90f); } } } public class MinimapViewportComponent : MonoBehaviour { private Image viewportImage; private Sprite playerIcon; private Sprite noMapIcon; private Texture2D fullMapTex; private string location; private string directoryName; private CanvasGroup minimapCG; private Sprite squareFillSprite; private Sprite circleFillSprite; private Sprite defaultFrameSprite; private Sprite defaultFrameAllSprite; private Sprite variantFrameSprite; private Sprite variantFrameAllSprite; private Sprite redMarkerSprite; private Sprite yellowMarkerSprite; private Sprite silverMarkerSprite; private Sprite blackMarkerSprite; private Sprite brownMarkerSprite; private Sprite cocoonSprite; private Sprite benchSprite; private RadarManagerComponent radar; public GameObject cocoonParentObject; private GameObject pinsParentObject; private GameObject markersParentObject; private List<Image> markerImages = new List<Image>(); private List<RectTransform> markerRects = new List<RectTransform>(); private Dictionary<RectTransform, Vector2> markerPosPairs = new Dictionary<RectTransform, Vector2>(); private static GameObject cocoonObject; private static RectTransform cocoonRect; private static Vector2 cocoonPos; private List<Image> dotImages = new List<Image>(); private List<RectTransform> dotRects = new List<RectTransform>(); private Image outlineImage; private RectTransform outlineRect; private Sprite outlineSquareSprite; private Sprite outlineSquareDottedSprite; private Sprite outlineCircleSprite; private Sprite outlineCircleDottedSprite; private Sprite radarDotSprite; private Image framesImage; private RectTransform framesRect; private MinimapShape shape; private bool useOutline; public Text posDisplay; private RectTransform posRect; private Mask mask; private bool showBG = false; private MinimapOutline outlineType; private RawImage mapImage; private RectTransform mapRect; private Image playerIconImage; private RectTransform playerIconRect; private static float currentZoomMult = 1f; private float currentOpacity = 1f; private Coroutine minimapRoutine; private const float POS_COEFFICIENT = 150f; private const float OFFSET_X_COEFFICIENT = -390f; private const float OFFSET_Y_COEFFICIENT = 345f; public static MapZone lastZone = (MapZone)0; private Dictionary<RectTransform, Vector2> benchPosPairs = new Dictionary<RectTransform, Vector2>(); private float coefficient = 1f; private float xOffset; private float yOffset; private void LoadSprites() { squareFillSprite = IMG2Sprite.LoadSprite("fill"); circleFillSprite = IMG2Sprite.LoadSprite("fill-circle"); defaultFrameSprite = IMG2Sprite.LoadSprite("frames-default"); defaultFrameAllSprite = IMG2Sprite.LoadSprite("frames-default-allcorners"); variantFrameSprite = IMG2Sprite.LoadSprite("frames-variant"); variantFrameAllSprite = IMG2Sprite.LoadSprite("frames-variant-allcorners"); radarDotSprite = IMG2Sprite.LoadSprite("radar-dot"); redMarkerSprite = IMG2Sprite.LoadSprite("marker-red"); yellowMarkerSprite = IMG2Sprite.LoadSprite("marker-yellow"); silverMarkerSprite = IMG2Sprite.LoadSprite("marker-silver"); blackMarkerSprite = IMG2Sprite.LoadSprite("marker-black"); brownMarkerSprite = IMG2Sprite.LoadSprite("marker-brown"); cocoonSprite = IMG2Sprite.LoadSprite("marker-cocoon"); benchSprite = IMG2Sprite.LoadSprite("marker-bench"); } public void Start() { radar = ((Component)this).GetComponent<RadarManagerComponent>(); viewportImage = ((Component)this).GetComponent<Image>(); LoadSprites(); shape = SkongMinimapPlugin.MinimapFillShape.Value; useOutline = SkongMinimapPlugin.MinimapUseOutline.Value; viewportImage.sprite = ((shape == MinimapShape.Square) ? squareFillSprite : circleFillSprite); minimapCG = ((Component)this).gameObject.AddComponent<CanvasGroup>(); currentOpacity = SkongMinimapPlugin.MinimapOpacity.Value; UpdateOpacity(); location = Assembly.GetExecutingAssembly().Location; directoryName = Path.GetDirectoryName(location); mask = ((Component)this).gameObject.AddComponent<Mask>(); InitOutline(); InitFullMap(); InitPlayerIcon(); InitPosDisplay(); InitFrames(); InitSubModules(); InitCurrentMarkers(); ((Transform)SkongMinimapPlugin.areaNameRect).SetAsLastSibling(); ((Transform)SkongMinimapPlugin.compassScalerRect).SetAsLastSibling(); ((Component)SkongMinimapPlugin.compassScalerRect).gameObject.SetActive(false); SkongMinimapPlugin.UpdateAreaNameValue(); SkongMinimapPlugin.UpdateMinimapScale(); } private void InitSubModules() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown //IL_00ff: 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_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Expected O, but got Unknown //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) markersParentObject = new GameObject("Custom Markers"); Object.DontDestroyOnLoad((Object)(object)markersParentObject); markersParentObject.transform.SetParent(((Component)mapRect).transform); RectTransform val = markersParentObject.AddComponent<RectTransform>(); val.anchorMin = new Vector2(0.5f, 0.5f); val.anchorMax = new Vector2(0.5f, 0.5f); val.pivot = new Vector2(0.5f, 0.5f); val.sizeDelta = new Vector2(1600f, 1600f); val.anchoredPosition = Vector2.zero; UpdateMarkersActive(); cocoonParentObject = new GameObject("Cocoon Compass"); Object.DontDestroyOnLoad((Object)(object)cocoonParentObject); cocoonParentObject.transform.SetParent(((Component)mapRect).transform); RectTransform val2 = cocoonParentObject.AddComponent<RectTransform>(); val2.anchorMin = new Vector2(0.5f, 0.5f); val2.anchorMax = new Vector2(0.5f, 0.5f); val2.pivot = new Vector2(0.5f, 0.5f); val2.sizeDelta = new Vector2(1600f, 1600f); val2.anchoredPosition = Vector2.zero; UpdateCocoonActive(); pinsParentObject = new GameObject("Pins"); Object.DontDestroyOnLoad((Object)(object)pinsParentObject); pinsParentObject.transform.SetParent(((Component)mapRect).transform); RectTransform val3 = pinsParentObject.AddComponent<RectTransform>(); val3.anchorMin = new Vector2(0.5f, 0.5f); val3.anchorMax = new Vector2(0.5f, 0.5f); val3.pivot = new Vector2(0.5f, 0.5f); val3.sizeDelta = new Vector2(1600f, 1600f); val3.anchoredPosition = Vector2.zero + Vector2.up * 2f; } public void UpdateCocoonActive() { bool value = SkongMinimapPlugin.IsCocoonCompassEnabled.Value; if ((Object)(object)cocoonParentObject != (Object)null) { cocoonParentObject.SetActive(value); } if ((Object)(object)SkongMinimapPlugin.compassScalerObject != (Object)null) { SkongMinimapPlugin.compassScalerObject.SetActive(value && SkongMinimapPlugin.isTrackingCocoon); } } public void UpdateMarkersActive() { if ((Object)(object)markersParentObject != (Object)null) { markersParentObject.SetActive(SkongMinimapPlugin.IsCustomMarkersEnabled.Value); } } private void InitCurrentMarkers() { //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)GameManager.instance == (Object)null || GameManager.instance.playerData.placedMarkers == null) { SkongMinimapPlugin.Log.LogWarning((object)("Error when loading markers: " + (object)GameManager.instance)); } else { if (!SkongMinimapPlugin.IsCustomMarkersEnabled.Value) { return; } WrappedVector2List[] placedMarkers = GameManager.instance.playerData.placedMarkers; for (int i = 0; i < placedMarkers.Length; i++) { foreach (Vector2 item in ((WrappedList<Vector2>)(object)placedMarkers[i]).List) { CreateMarkerObject(item, (MarkerTypes)i); } } } } public void UpdateMarkers() { foreach (RectTransform markerRect in markerRects) { if ((Object)(object)markerRect != (Object)null) { Object.Destroy((Object)(object)((Component)markerRect).gameObject); } } markerRects.Clear(); markerImages.Clear(); markerPosPairs.Clear(); InitCurrentMarkers(); } public void CreateMarkerObject(Vector2 pos, MarkerTypes markerType) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) SkongMinimapPlugin.Log.LogInfo((object)$"Added {markerType} marker at {pos}!"); GameObject val = new GameObject("Marker " + ((object)(MarkerTypes)(ref markerType)).ToString()); val.transform.SetParent(markersParentObject.transform); Image val2 = val.AddComponent<Image>(); markerImages.Add(val2); RectTransform rectTransform = ((Graphic)val2).rectTransform; rectTransform.anchorMin = new Vector2(0.5f, 0.5f); rectTransform.anchorMax = new Vector2(0.5f, 0.5f); rectTransform.pivot = new Vector2(0.5f, 0.5f); rectTransform.sizeDelta = new Vector2(32f, 32f); rectTransform.anchoredPosition = WorldToMinimapPos(pos); ((Graphic)val2).color = Color.white; ((MaskableGraphic)val2).maskable = true; val2.sprite = GetMarkerSprite(markerType); markerRects.Add(rectTransform); markerPosPairs.Add(rectTransform, pos); } public void DeleteCocoonObject() { if ((Object)(object)cocoonObject != (Object)null) { Object.Destroy((Object)(object)cocoonObject); } } public void CreateCocoonObject(Vector2 pos) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)mapRect == (Object)null)) { SkongMinimapPlugin.Log.LogWarning((object)$"Added Cocoon marker at {pos}!"); cocoonObject = new GameObject("Cocoon Marker"); cocoonObject.transform.SetParent(cocoonParentObject.transform); Image val = cocoonObject.AddComponent<Image>(); cocoonRect = ((Graphic)val).rectTransform; cocoonRect.anchorMin = new Vector2(0.5f, 0.5f); cocoonRect.anchorMax = new Vector2(0.5f, 0.5f); cocoonRect.pivot = new Vector2(0.5f, 0.5f); cocoonRect.sizeDelta = new Vector2(48f, 48f); cocoonRect.anchoredPosition = WorldToMinimapPos(pos); cocoonPos = pos; ((Graphic)val).color = Color.white; ((MaskableGraphic)val).maskable = true; val.sprite = cocoonSprite; } } private Sprite GetMarkerSprite(MarkerTypes markerType) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected I4, but got Unknown Sprite result = null; switch ((int)markerType) { case 0: result = yellowMarkerSprite; break; case 1: result = silverMarkerSprite; break; case 2: result = redMarkerSprite; break; case 3: result = blackMarkerSprite; break; case 4: result = brownMarkerSprite; break; } return result; } public void UpdateRadarDots() { } private void InitRadarDot() { } private void InitOutline() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Minimap Outline"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(((Component)this).transform); outlineImage = val.AddComponent<Image>(); ((MaskableGraphic)outlineImage).maskable = false; outlineRect = ((Graphic)outlineImage).rectTransform; outlineRect.anchorMin = new Vector2(0.5f, 0.5f); outlineRect.anchorMax = new Vector2(0.5f, 0.5f); outlineRect.pivot = new Vector2(0.5f, 0.5f); outlineRect.sizeDelta = new Vector2(260f, 260f); outlineRect.anchoredPosition = Vector2.zero; outlineSquareSprite = IMG2Sprite.LoadSprite("outline"); outlineCircleSprite = IMG2Sprite.LoadSprite("outline-circle"); outlineSquareDottedSprite = IMG2Sprite.LoadSprite("outline-dotted"); outlineCircleDottedSprite = IMG2Sprite.LoadSprite("outline-circle-dotted"); UpdateShape(); UpdateOutlineSprite(); UpdateOutlineColor(); ((Behaviour)outlineImage).enabled = useOutline; } private void InitFrames() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Minimap Frames"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(((Component)this).transform); val.transform.SetAsLastSibling(); framesImage = val.AddComponent<Image>(); ((MaskableGraphic)framesImage).maskable = false; framesRect = ((Graphic)framesImage).rectTransform; framesRect.anchorMin = new Vector2(0.5f, 0.5f); framesRect.anchorMax = new Vector2(0.5f, 0.5f); framesRect.pivot = new Vector2(0.5f, 0.5f); framesRect.sizeDelta = new Vector2(280f, 280f); framesRect.anchoredPosition = Vector2.zero; ((Graphic)framesImage).color = Color.white; UpdateFrameSprite(); } public void UpdateOutlineColor() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)outlineImage)) { ((Graphic)outlineImage).color = SkongMinimapPlugin.MinimapOutlineColor.Value; } } public void UpdateOutlineSprite() { if (shape == MinimapShape.Square) { outlineImage.sprite = ((outlineType == MinimapOutline.Line) ? outlineSquareSprite : outlineSquareDottedSprite); } else { outlineImage.sprite = ((outlineType == MinimapOutline.Line) ? outlineCircleSprite : outlineCircleDottedSprite); } } public void UpdateFrameSprite() { if (!((Object)(object)framesImage == (Object)null)) { switch (SkongMinimapPlugin.MinimapFrameType.Value) { case MinimapFrame.Default: framesImage.sprite = defaultFrameSprite; break; case MinimapFrame.Default4x: framesImage.sprite = defaultFrameAllSprite; break; case MinimapFrame.Variant: framesImage.sprite = variantFrameSprite; break; case MinimapFrame.Variant4x: framesImage.sprite = variantFrameAllSprite; break; case MinimapFrame.None: framesImage.sprite = null; ((Behaviour)framesImage).enabled = false; return; } ((Behaviour)framesImage).enabled = SkongMinimapPlugin.MinimapFillShape.Value == MinimapShape.Square; } } public void ChangeUseOutline(bool useOutline) { this.useOutline = useOutline; } public void ChangeShape(MinimapShape shape) { this.shape = shape; } private void InitPosDisplay() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Player Position Display"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(((Component)this).transform); val.transform.SetAsLastSibling(); posDisplay = val.AddComponent<Text>(); ((MaskableGraphic)posDisplay).maskable = false; posRect = ((Graphic)posDisplay).rectTransform; posRect.anchorMin = new Vector2(0.5f, 0.5f); posRect.anchorMax = new Vector2(0.5f, 0.5f); posRect.pivot = new Vector2(0.5f, 0.5f); posRect.sizeDelta = new Vector2(256f, 256f); posRect.anchoredPosition = Vector2.zero; posDisplay.alignment = (TextAnchor)6; posDisplay.text = "X: 0 Y: 0"; posDisplay.fontSize = 16; ((Graphic)posDisplay).color = Color.white; posDisplay.font = (SkongMinimapPlugin.UseFallbackFont.Value ? SkongMinimapPlugin.fallbackFont : SkongMinimapPlugin.silksongFont); SkongMinimapPlugin.UpdatePosDisplayDebug(); } public void UpdateUseOutline() { if ((Object)(object)outlineImage != (Object)null) { ((Behaviour)outlineImage).enabled = useOutline; } } public void UpdateShape() { if ((Object)(object)viewportImage != (Object)null) { if (shape == MinimapShape.Square) { viewportImage.sprite = squareFillSprite; UpdateOutlineSprite(); UpdateFrameSprite(); } else { viewportImage.sprite = circleFillSprite; UpdateOutlineSprite(); UpdateFrameSprite(); } } } public void ChangeOutlineType(MinimapOutline outlineType) { this.outlineType = outlineType; } public void ChangeShowBG(bool value) { showBG = value; } public void UpdateShowBG() { if (Object.op_Implicit((Object)(object)mask)) { mask.showMaskGraphic = showBG; } } public void ChangeZoom(float mult) { currentZoomMult = mult; } public void ChangeOpacity(float value) { currentOpacity = value; } public void UpdateZoom() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)mapRect)) { return; } mapRect.sizeDelta = Vector2.one * (currentZoomMult * 8000f); foreach (RectTransform key in markerPosPairs.Keys) { key.anchoredPosition = WorldToMinimapPos(markerPosPairs[key]); } if (Object.op_Implicit((Object)(object)cocoonRect) && cocoonPos != Vector2.zero) { cocoonRect.anchoredPosition = WorldToMinimapPos(cocoonPos); } foreach (RectTransform key2 in benchPosPairs.Keys) { key2.anchoredPosition = WorldToMinimapPos(benchPosPairs[key2]); } } public void UpdateOpacity() { if (Object.op_Implicit((Object)(object)minimapCG)) { minimapCG.alpha = currentOpacity; } } public void InitFullMap() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("Full Map"); Object.DontDestroyOnLoad((Object)(object)val); val.transform.SetParent(((Component)this).transform); mapImage = val.AddComponent<RawImage>(); ((MaskableGraphic)mapImage).maskable = true; mapRect = ((Graphic)mapImage).rectTransform; mapRect.anchorMin = new Vector2(0.5f, 0.5f); mapRect.anchorMax = new Vector2(0.5f, 0.5f); mapRect.pivot = new Vector2(0.5f, 0.5f); mapRect.sizeDelta = new Vector2(1600f, 1600f); mapRect.anchoredPosition = Vector2.zero; ((Graphic)mapImage).color = Color.black; SkongMinimapPlugin.Log.LogInfo((object)"Map viewport initiated"); UpdateZoom(); SkongMinimapPlugin.UpdateAreaNameValue(); } public void InitPlayerIcon() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_005e: Unknown result type (might be due to invalid IL or mi