using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HarmonyLib; using Splatform; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("SeasonheimMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SeasonheimMod")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("93c3a5ae-6334-4635-88ba-d61d730b4124")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace SeasonheimMod; [BepInPlugin("com.oathorse.SeasonsheimMod", "SeasonsheimMod", "0.1.2")] public class Seasonheim : BaseUnityPlugin { public enum Biome { Meadows, Forest, Swamp, Mountains, Plains, Mistlands, Ashlands, Ocean, Hildir, Bogwitch } public struct TrophyHuntData { public string m_name; public string m_prettyName; public Biome m_biome; private int m_value; public float m_dropPercent; public List m_enemies; public TrophyHuntData(string name, string prettyName, Biome biome, int value, float dropPercent, List enemies) { m_name = name; m_prettyName = prettyName; m_biome = biome; m_value = value; m_dropPercent = dropPercent; m_enemies = enemies; } public int GetCurGameModeTrophyScoreValue() { return m_value; } } public class TrophyPin { public Vector3 m_pos; public string m_trophyName; } public enum TrophyGameMode { Seasonheim2026, Max } [Serializable] public class TrackEvent { public string tag; public int secs; public int x; public int y; public int z; public string extra; } [HarmonyPatch(typeof(Player), "OnSpawned")] public class Player_OnSpawned_Patch { private static void Postfix(Player __instance) { if ((Object)(object)__instance != (Object)(object)Player.m_localPlayer) { return; } Array.Sort(__m_trophyHuntData, (TrophyHuntData x, TrophyHuntData y) => x.m_biome.CompareTo(y.m_biome) * 100000 + x.GetCurGameModeTrophyScoreValue().CompareTo(y.GetCurGameModeTrophyScoreValue()) * 10000 + x.m_name.CompareTo(y.m_name)); __m_trophyCache = Player.m_localPlayer.GetTrophies(); BuildUIElements(); Directory.GetCurrentDirectory(); UpdateModUI(Player.m_localPlayer); ShowPlayerPath(showPlayerPath: false); StartCollectingPlayerPath(); foreach (PinData pin in Minimap.instance.m_pins) { if (pin.m_name.StartsWith("Trophy")) { pin.m_icon = GetTrophySprite(pin.m_name); } } FixTrophyPins(); Debug.LogWarning((object)("Loading into Game Mode: " + GetGameModeString(GetGameMode()))); Player localPlayer = Player.m_localPlayer; if ((Object)(object)localPlayer != (Object)null) { localPlayer.UpdateKnownRecipesList(); } } } [HarmonyPatch(typeof(Player), "AddTrophy", new Type[] { typeof(ItemData) })] public static class Player_AddTrophy_Patch { public static void Postfix(Player __instance, ItemData item) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)__instance != (Object)null && item != null) { string name = ((Object)item.m_dropPrefab).name; if (__m_trophyCache.Find((string trophyName) => trophyName == name) != name) { FlashTrophy(name); __m_trophyCache = __instance.GetTrophies(); UpdateModUI(__instance); AddTrophyPin(((Component)__instance).transform.position, name); } } } } [HarmonyPatch(typeof(FejdStartup), "Start")] public class FejdStartup_Start_Patch { private static void Postfix() { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_008b: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Expected O, but got Unknown GameObject val = GameObject.Find("Menu"); if ((Object)(object)val != (Object)null) { GameObject obj = GameObject.Find("Topic"); __m_globalFontObject = ((TMP_Text)((obj != null) ? obj.GetComponent() : null)).font; Transform val2 = val.transform.Find("Logo"); if ((Object)(object)val2 != (Object)null) { GameObject val3 = new GameObject("SeasonheimLogoText"); val3.transform.SetParent(val2.parent); RectTransform obj2 = val3.AddComponent(); ((Transform)obj2).localScale = Vector3.one; obj2.anchorMin = new Vector2(0.5f, 0.6f); obj2.anchorMax = new Vector2(1f, 0.6f); obj2.pivot = new Vector2(1f, 1f); obj2.anchoredPosition = new Vector2(-20f, 20f); obj2.sizeDelta = new Vector2(-650f, 185f); __m_mainMenuText = AddTextMeshProComponent(val3); ((TMP_Text)__m_mainMenuText).font = __m_globalFontObject; ((TMP_Text)__m_mainMenuText).fontMaterial = ((TMP_Asset)__m_globalFontObject).material; ((TMP_Text)__m_mainMenuText).fontStyle = (FontStyles)1; ((TMP_Text)__m_mainMenuText).text = GetTrophyHuntMainMenuText(); ((TMP_Text)__m_mainMenuText).alignment = (TextAlignmentOptions)513; ((TMP_Text)__m_mainMenuText).lineSpacingAdjustment = -5f; } else { Debug.LogWarning((object)"Valheim logo not found!"); } } else { Debug.LogWarning((object)"Main menu not found!"); } } } [HarmonyPatch(typeof(LoadingIndicator), "Awake")] public static class LoadingIndicator_Awake_Patch { private static void Postfix(LoadingIndicator __instance) { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)__instance != (Object)null)) { return; } foreach (AssetBundle allLoadedAssetBundle in AssetBundle.GetAllLoadedAssetBundles()) { string text = "Assets/UI/textures/small/texts_button.png"; if (allLoadedAssetBundle.Contains(text)) { Object obj = allLoadedAssetBundle.LoadAsset(text); Texture2D val = (Texture2D)(object)((obj is Texture2D) ? obj : null); if (val != null) { Sprite val2 = Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f)); __instance.m_spinner.sprite = val2; ((Graphic)__instance.m_spinner).color = new Color(1f, 43f / 51f, 0f, 1f); __instance.m_spinnerOriginalColor = ((Graphic)__instance.m_spinner).color; __m_trophySprite = val2; } break; } text = "Assets/UI/textures/small/health.png"; if (allLoadedAssetBundle.Contains(text)) { Debug.LogError((object)"Found Health Sprite"); Object obj2 = allLoadedAssetBundle.LoadAsset(text); Texture2D val3 = (Texture2D)(object)((obj2 is Texture2D) ? obj2 : null); if (val3 != null) { __m_healthSprite = Sprite.Create(val3, new Rect(0f, 0f, (float)((Texture)val3).width, (float)((Texture)val3).height), new Vector2(0.5f, 0.5f)); } break; } } } } public const string PluginGUID = "com.oathorse.SeasonsheimMod"; public const string PluginName = "SeasonsheimMod"; public const string PluginVersion = "0.1.2"; private readonly Harmony harmony = new Harmony("com.oathorse.SeasonsheimMod"); private const bool DUMP_TROPHY_DATA = false; public static Seasonheim __m_seasonheimMod; private const float DEFAULT_SCORE_FONT_SIZE = 36f; public static TrophyHuntData[] __m_trophyHuntData = new TrophyHuntData[58] { new TrophyHuntData("TrophyAbomination", "Abomination", Biome.Swamp, 1, 50f, new List { "$enemy_abomination" }), new TrophyHuntData("TrophyAsksvin", "Asksvin", Biome.Ashlands, 1, 50f, new List { "$enemy_asksvin" }), new TrophyHuntData("TrophyBlob", "Blob", Biome.Swamp, 1, 10f, new List { "$enemy_blob", "$enemy_blobelite" }), new TrophyHuntData("TrophyBoar", "Boar", Biome.Meadows, 1, 15f, new List { "$enemy_boar" }), new TrophyHuntData("TrophyBjorn", "Bear", Biome.Forest, 1, 10f, new List { "$enemy_bjorn" }), new TrophyHuntData("TrophyBjornUndead", "Vile", Biome.Plains, 1, 15f, new List { "$enemy_unbjorn" }), new TrophyHuntData("TrophyBonemass", "Bonemass", Biome.Swamp, 1, 100f, new List { "$enemy_bonemass" }), new TrophyHuntData("TrophyBonemawSerpent", "Bonemaw", Biome.Ashlands, 1, 33f, new List { "$enemy_bonemawserpent" }), new TrophyHuntData("TrophyCharredArcher", "Charred Archer", Biome.Ashlands, 1, 5f, new List { "$enemy_charred_archer" }), new TrophyHuntData("TrophyCharredMage", "Charred Warlock", Biome.Ashlands, 1, 5f, new List { "$enemy_charred_mage" }), new TrophyHuntData("TrophyCharredMelee", "Charred Warrior", Biome.Ashlands, 1, 5f, new List { "$enemy_charred_melee" }), new TrophyHuntData("TrophyCultist", "Cultist", Biome.Mountains, 1, 10f, new List { "$enemy_fenringcultist" }), new TrophyHuntData("TrophyCultist_Hildir", "Geirrhafa", Biome.Hildir, 1, 100f, new List { "$enemy_fenringcultist_hildir" }), new TrophyHuntData("TrophyDeathsquito", "Deathsquito", Biome.Plains, 1, 5f, new List { "$enemy_deathsquito" }), new TrophyHuntData("TrophyDeer", "Deer", Biome.Meadows, 1, 50f, new List { "$enemy_deer" }), new TrophyHuntData("TrophyDragonQueen", "Moder", Biome.Mountains, 1, 100f, new List { "$enemy_dragon" }), new TrophyHuntData("TrophyDraugr", "Draugr", Biome.Swamp, 1, 10f, new List { "$enemy_draugr" }), new TrophyHuntData("TrophyDraugrElite", "Draugr Elite", Biome.Swamp, 1, 10f, new List { "$enemy_draugrelite" }), new TrophyHuntData("TrophyDvergr", "Dvergr", Biome.Mistlands, 1, 5f, new List { "$enemy_dvergr", "$enemy_dvergr_mage" }), new TrophyHuntData("TrophyEikthyr", "Eikthyr", Biome.Meadows, 1, 100f, new List { "$enemy_eikthyr" }), new TrophyHuntData("TrophyFader", "Fader", Biome.Ashlands, 1, 100f, new List { "$enemy_fader" }), new TrophyHuntData("TrophyFallenValkyrie", "Fallen Valkyrie", Biome.Ashlands, 1, 5f, new List { "$enemy_fallenvalkyrie" }), new TrophyHuntData("TrophyFenring", "Fenring", Biome.Mountains, 1, 10f, new List { "$enemy_fenring" }), new TrophyHuntData("TrophyFrostTroll", "Troll", Biome.Forest, 1, 50f, new List { "$enemy_troll" }), new TrophyHuntData("TrophyGhost", "Ghost", Biome.Forest, 1, 10f, new List { "$enemy_ghost" }), new TrophyHuntData("TrophyGjall", "Gjall", Biome.Mistlands, 1, 30f, new List { "$enemy_gjall" }), new TrophyHuntData("TrophyGoblin", "Fuling", Biome.Plains, 1, 10f, new List { "$enemy_goblin" }), new TrophyHuntData("TrophyGoblinBrute", "Fuling Berserker", Biome.Plains, 1, 5f, new List { "$enemy_goblinbrute" }), new TrophyHuntData("TrophyGoblinBruteBrosBrute", "Thungr", Biome.Hildir, 1, 100f, new List { "$enemy_goblinbrute_hildircombined" }), new TrophyHuntData("TrophyGoblinBruteBrosShaman", "Zil", Biome.Hildir, 1, 100f, new List { "$enemy_goblin_hildir" }), new TrophyHuntData("TrophyGoblinKing", "Yagluth", Biome.Plains, 1, 100f, new List { "$enemy_goblinking" }), new TrophyHuntData("TrophyGoblinShaman", "Fuling Shaman", Biome.Plains, 1, 10f, new List { "$enemy_goblinshaman" }), new TrophyHuntData("TrophyGreydwarf", "Greydwarf", Biome.Forest, 1, 5f, new List { "$enemy_greydwarf" }), new TrophyHuntData("TrophyGreydwarfBrute", "Greydwarf Brute", Biome.Forest, 1, 10f, new List { "$enemy_greydwarfbrute" }), new TrophyHuntData("TrophyGreydwarfShaman", "Greydwarf Shaman", Biome.Forest, 1, 10f, new List { "$enemy_greydwarfshaman" }), new TrophyHuntData("TrophyGrowth", "Growth", Biome.Plains, 1, 10f, new List { "$enemy_blobtar" }), new TrophyHuntData("TrophyHare", "Misthare", Biome.Mistlands, 1, 5f, new List { "$enemy_hare" }), new TrophyHuntData("TrophyHatchling", "Drake", Biome.Mountains, 1, 10f, new List { "$enemy_thehive", "$enemy_drake" }), new TrophyHuntData("TrophyLeech", "Leech", Biome.Swamp, 1, 10f, new List { "$enemy_leech" }), new TrophyHuntData("TrophyLox", "Lox", Biome.Plains, 1, 10f, new List { "$enemy_lox" }), new TrophyHuntData("TrophyMorgen", "Morgen", Biome.Ashlands, 1, 5f, new List { "$enemy_morgen" }), new TrophyHuntData("TrophyNeck", "Neck", Biome.Meadows, 1, 5f, new List { "$enemy_neck" }), new TrophyHuntData("TrophySeeker", "Seeker", Biome.Mistlands, 1, 10f, new List { "$enemy_seeker" }), new TrophyHuntData("TrophySeekerBrute", "Seeker Soldier", Biome.Mistlands, 1, 5f, new List { "$enemy_seekerbrute" }), new TrophyHuntData("TrophySeekerQueen", "The Queen", Biome.Mistlands, 1, 100f, new List { "$enemy_seekerqueen" }), new TrophyHuntData("TrophySerpent", "Serpent", Biome.Ocean, 1, 33f, new List { "$enemy_serpent" }), new TrophyHuntData("TrophySGolem", "Stone Golem", Biome.Mountains, 1, 5f, new List { "$enemy_stonegolem" }), new TrophyHuntData("TrophySkeleton", "Skeleton", Biome.Forest, 1, 10f, new List { "$enemy_skeleton" }), new TrophyHuntData("TrophySkeletonHildir", "Brenna", Biome.Hildir, 1, 100f, new List { "$enemy_skeletonfire" }), new TrophyHuntData("TrophySkeletonPoison", "Rancid Remains", Biome.Forest, 1, 10f, new List { "$enemy_skeletonpoison" }), new TrophyHuntData("TrophySurtling", "Surtling", Biome.Swamp, 1, 5f, new List { "$enemy_surtling" }), new TrophyHuntData("TrophyTheElder", "The Elder", Biome.Forest, 1, 100f, new List { "$enemy_gdking" }), new TrophyHuntData("TrophyTick", "Tick", Biome.Mistlands, 1, 5f, new List { "$enemy_tick" }), new TrophyHuntData("TrophyUlv", "Ulv", Biome.Mountains, 1, 5f, new List { "$enemy_ulv" }), new TrophyHuntData("TrophyVolture", "Volture", Biome.Ashlands, 1, 50f, new List { "$enemy_volture" }), new TrophyHuntData("TrophyWolf", "Wolf", Biome.Mountains, 1, 10f, new List { "$enemy_wolf" }), new TrophyHuntData("TrophyWraith", "Wraith", Biome.Swamp, 1, 5f, new List { "$enemy_wraith" }), new TrophyHuntData("TrophyKvastur", "Kvastur", Biome.Bogwitch, 1, 100f, new List { "$enemy_kvastur" }) }; private static GameObject __m_scoreTextElement = null; private static GameObject __m_scoreBGElement = null; private static TMP_FontAsset __m_globalFontObject = null; private static List __m_iconList = null; private static Sprite __m_trophySprite = null; private static float __m_baseTrophyScale = 1.4f; private static float __m_userIconScale = 1.2f; private static float __m_userTextScale = 1f; private static float __m_userTrophySpacing = 1f; private static List __m_trophyCache = new List(); private static bool __m_pathAddedToMinimap = false; private static List __m_pathPins = new List(); private static List __m_pendingEvents = new List(); private static bool __m_collectingPlayerPath = false; private static float __m_playerPathCollectionInterval = 5f; private static float __m_minPathPlayerMoveDistance = 10f; private static List __m_trophyPins = new List(); private static TrophyGameMode __m_trophyGameMode = TrophyGameMode.Seasonheim2026; private static bool __m_ignoreInvalidateUIChanges = false; private static int __m_playerCurrentScore = 0; public static bool __m_showingTrophies = true; public static TextMeshProUGUI __m_mainMenuText = null; private static GameObject __m_scoreTooltipObject = null; private static GameObject __m_scoreTooltipBackground = null; private static TextMeshProUGUI __m_scoreTooltipText; private static Vector2 __m_trophyHuntScoreTooltipWindowSize = new Vector2(240f, 105f); private static Vector2 __m_scoreTooltipTextOffset = new Vector2(5f, 2f); private static Dictionary __toolTipSizes = new Dictionary { { TrophyGameMode.Seasonheim2026, new Vector2(240f, 105f) } }; private static GameObject __m_trophyTooltipObject = null; private static GameObject __m_trophyTooltipBackground = null; private static TextMeshProUGUI __m_trophyTooltip; private static Vector2 __m_trophyTooltipWindowSize = new Vector2(240f, 60f); private static Vector2 __m_trophyTooltipTextOffset = new Vector2(5f, 2f); public static Sprite __m_healthSprite = null; private static TextMeshProUGUI AddTextMeshProComponent(GameObject toThisObject) { TextMeshProUGUI obj = toThisObject.AddComponent(); ((TMP_Text)obj).font = __m_globalFontObject; ((Graphic)obj).material = ((TMP_Asset)__m_globalFontObject).material; return obj; } public static TrophyGameMode GetGameMode() { return __m_trophyGameMode; } public static string GetGameModeString(TrophyGameMode mode) { string text = "Unknown"; if (mode == TrophyGameMode.Seasonheim2026) { return "Seasonsheim 2026"; } return "Unknown"; } private void Awake() { __m_seasonheimMod = this; harmony.PatchAll(); } private void Start() { } public static void ShowTrophies(bool show) { foreach (GameObject _m_icon in __m_iconList) { _m_icon.SetActive(show); } } public static string GetGameModeNameText() { string result = "???"; if (GetGameMode() == TrophyGameMode.Seasonheim2026) { result = "Seasonsheim 2026"; } return result; } public static string GetGameModeText() { string result = "" + "\nGame Mode: " + GetGameModeString(GetGameMode()) + "\n"; GetGameMode(); return result; } public static string GetTrophyHuntMainMenuText() { return "Seasonsheim!\n (Version: 0.1.2)" + GetGameModeText(); } public static void ShowPlayerPath(bool showPlayerPath) { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) if (!showPlayerPath) { foreach (PinData _m_pathPin in __m_pathPins) { Minimap.instance.RemovePin(_m_pathPin); } __m_pathPins.Clear(); __m_pathAddedToMinimap = false; return; } __m_pathPins.Clear(); Vector3 val = Vector3.positiveInfinity; Vector3 val2 = default(Vector3); foreach (TrackEvent _m_pendingEvent in __m_pendingEvents) { ((Vector3)(ref val2))..ctor((float)_m_pendingEvent.x, (float)_m_pendingEvent.y, (float)_m_pendingEvent.z); if (!(Vector3.Distance(val2, val) < 50f)) { val = val2; PinData item = Minimap.instance.AddPin(val2, (PinType)3, "", false, false, 0L, default(PlatformUserID)); __m_pathPins.Add(item); } } __m_pathAddedToMinimap = true; } public static IEnumerator WaitForFirstInput() { Player player = Player.m_localPlayer; if (!((Object)(object)player == (Object)null)) { while (player.m_intro) { yield return null; } while (!Input.anyKeyDown && ((Character)player).GetMoveDir() == Vector3.zero) { yield return null; } } } public static void RaiseAllPlayerSkills(float skillLevel) { if (!Object.op_Implicit((Object)(object)Player.m_localPlayer)) { return; } foreach (KeyValuePair skillDatum in ((Character)Player.m_localPlayer).GetSkills().m_skillData) { if (skillDatum.Value.m_level < skillLevel) { skillDatum.Value.m_level = skillLevel; } } } public static void InitializeTrackedDataForNewPlayer() { __m_collectingPlayerPath = false; __m_trophyPins.Clear(); } public static int CalculateTrophyPoints(bool displayToLog = false) { int num = 0; TrophyHuntData[] _m_trophyHuntData = __m_trophyHuntData; for (int i = 0; i < _m_trophyHuntData.Length; i++) { TrophyHuntData trophyHuntData = _m_trophyHuntData[i]; if (__m_trophyCache.Contains(trophyHuntData.m_name)) { num += trophyHuntData.GetCurGameModeTrophyScoreValue(); } } return num; } private static void BuildUIElements() { //IL_009c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Hud.instance == (Object)null || (Object)(object)Hud.instance.m_rootObject == (Object)null) { Debug.LogError((object)"TrophyHuntMod: Hud.instance.m_rootObject is NOT valid"); } else { if (!((Object)(object)__m_scoreTextElement == (Object)null)) { return; } Transform val = ((Component)Hud.instance).transform.Find("hudroot/healthpanel"); if ((Object)(object)val == (Object)null) { Debug.LogError((object)"Health panel transform not found."); return; } if ((Object)(object)__m_scoreTextElement == (Object)null) { __m_scoreTextElement = CreateScoreTextElement(val); } __m_iconList = new List(); CreateTrophyIconElements(val, __m_trophyHuntData, __m_iconList); CreateTrophyTooltip(); CreateGameModeElements(); SetScoreTextElementColor(Color.yellow); CreateScoreTooltip(); } } public static void CreateGameModeElements() { //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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Expected O, but got Unknown //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) Transform val = ((Component)Hud.instance).transform.Find("hudroot/healthpanel"); if ((Object)(object)val == (Object)null) { Debug.LogError((object)"Minimap transform not found."); return; } GameObject val2 = new GameObject("GameModeText"); val2.transform.SetParent(val); RectTransform obj = val2.AddComponent(); obj.sizeDelta = new Vector2(300f, 100f); obj.anchoredPosition = new Vector2(-40f, 260f); ((Transform)obj).localScale = new Vector3(1f, 1f, 1f); ((Transform)obj).rotation = Quaternion.Euler(0f, 0f, 90f); TextMeshProUGUI obj2 = AddTextMeshProComponent(val2); ((TMP_Text)obj2).text = GetGameModeString(GetGameMode()) + "\nv0.1.2"; ((TMP_Text)obj2).fontSize = 22f; ((TMP_Text)obj2).fontStyle = (FontStyles)1; ((Graphic)obj2).color = Color.yellow; ((Graphic)obj2).raycastTarget = false; ((TMP_Text)obj2).fontMaterial.EnableKeyword("OUTLINE_ON"); ((TMP_Text)obj2).outlineColor = Color32.op_Implicit(Color.black); ((TMP_Text)obj2).outlineWidth = 0.125f; ((TMP_Text)obj2).verticalAlignment = (VerticalAlignmentOptions)256; ((TMP_Text)obj2).horizontalAlignment = (HorizontalAlignmentOptions)1; } private static GameObject CreateScoreTextElement(Transform parentTransform) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Expected O, but got Unknown //IL_018e: Expected O, but got Unknown __m_scoreBGElement = new GameObject("ScoreBG"); __m_scoreBGElement.transform.SetParent(parentTransform); Vector2 anchoredPosition = default(Vector2); ((Vector2)(ref anchoredPosition))..ctor(100f, 90f); Vector2 sizeDelta = default(Vector2); ((Vector2)(ref sizeDelta))..ctor(300f, 42f); RectTransform obj = __m_scoreBGElement.AddComponent(); Vector2 anchoredPosition2 = default(Vector2); ((Vector2)(ref anchoredPosition2))..ctor(-70f, 95f); Vector2 sizeDelta2 = default(Vector2); ((Vector2)(ref sizeDelta2))..ctor(230f, 72f); obj.sizeDelta = sizeDelta2; obj.anchoredPosition = anchoredPosition2; ((Transform)obj).localScale = new Vector3(__m_userTextScale, __m_userTextScale, __m_userTextScale); __m_scoreBGElement.SetActive(false); ((Graphic)__m_scoreBGElement.AddComponent()).color = new Color(0f, 0f, 0f, 1f); GameObject val = new GameObject("ScoreText"); val.transform.SetParent(parentTransform); RectTransform obj2 = val.AddComponent(); obj2.sizeDelta = sizeDelta; obj2.anchoredPosition = anchoredPosition; ((Transform)obj2).localScale = new Vector3(__m_userTextScale, __m_userTextScale, __m_userTextScale); int num = 9999; TextMeshProUGUI obj3 = AddTextMeshProComponent(val); ((TMP_Text)obj3).text = $"Score: {num}"; ((TMP_Text)obj3).fontSize = 36f; ((Graphic)obj3).color = Color.yellow; ((TMP_Text)obj3).alignment = (TextAlignmentOptions)4097; ((TMP_Text)obj3).horizontalAlignment = (HorizontalAlignmentOptions)1; ((Graphic)obj3).raycastTarget = true; ((TMP_Text)obj3).fontMaterial.EnableKeyword("OUTLINE_ON"); ((TMP_Text)obj3).outlineColor = Color32.op_Implicit(Color.black); ((TMP_Text)obj3).outlineWidth = 0.12f; AddTooltipTriggersToScoreObject(val); return val; } public static void SetScoreTextElementColor(Color color) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) if (!__m_ignoreInvalidateUIChanges && (Object)(object)__m_scoreTextElement != (Object)null) { ((Graphic)__m_scoreTextElement.GetComponent()).color = color; } } private static GameObject CreateTrophyIconElement(Transform parentTransform, Sprite iconSprite, string iconName, Biome iconBiome, int index) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_004b: 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_006e: 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_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00b1: Expected O, but got Unknown int num = 33; int num2 = -1; int num3 = -50; int num4 = -140; GameObject val = new GameObject(iconName); val.transform.SetParent(parentTransform); RectTransform obj = val.AddComponent(); obj.sizeDelta = new Vector2((float)num, (float)num); obj.anchoredPosition = new Vector2((float)num3 + (float)index * ((float)(num + num2) + __m_userTrophySpacing), (float)num4); ((Transform)obj).localScale = new Vector3(__m_baseTrophyScale, __m_baseTrophyScale, __m_baseTrophyScale) * __m_userIconScale; Image obj2 = val.AddComponent(); obj2.sprite = iconSprite; ((Graphic)obj2).color = new Color(0.1f, 0.1f, 0.1f, 0.95f); ((Graphic)obj2).raycastTarget = true; AddTooltipTriggersToTrophyIcon(val); return val; } public static void DeleteTrophyIconElements(List iconList) { foreach (GameObject icon in iconList) { Object.Destroy((Object)(object)icon); } iconList.Clear(); } public static void CreateTrophyIconElements(Transform parentTransform, TrophyHuntData[] trophies, List iconList) { for (int i = 0; i < trophies.Length; i++) { TrophyHuntData trophyHuntData = trophies[i]; Sprite trophySprite = GetTrophySprite(trophyHuntData.m_name); if ((Object)(object)trophySprite == (Object)null) { Debug.LogError((object)("Unable to find trophy sprite for " + trophyHuntData.m_name)); continue; } GameObject val = CreateTrophyIconElement(parentTransform, trophySprite, trophyHuntData.m_name, trophyHuntData.m_biome, iconList.Count); ((Object)val).name = trophyHuntData.m_name; iconList.Add(val); } } private static Sprite GetTrophySprite(string trophyPrefabName) { if ((Object)(object)ObjectDB.instance == (Object)null) { Debug.LogError((object)"ObjectDB is not loaded."); return null; } GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(trophyPrefabName); if ((Object)(object)itemPrefab == (Object)null) { Debug.LogError((object)("Trophy prefab '" + trophyPrefabName + "' not found.")); return null; } ItemDrop component = itemPrefab.GetComponent(); if ((Object)(object)component == (Object)null) { Debug.LogError((object)("ItemDrop component not found on prefab '" + trophyPrefabName + "'.")); return null; } return component.m_itemData.m_shared.m_icons[0]; } private static void EnableTrophyHuntIcon(string trophyName) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) if (__m_iconList == null) { Debug.LogError((object)"__m_iconList is null in EnableTrophyHuntIcon()"); return; } GameObject val = __m_iconList.Find((GameObject gameObject) => ((Object)gameObject).name == trophyName); if ((Object)(object)val != (Object)null) { Image component = val.GetComponent(); if ((Object)(object)component != (Object)null) { ((Graphic)component).color = Color.white; } } else { Debug.LogError((object)("Unable to find " + trophyName + " in __m_iconList")); } } private static int CalculateTrophyScore(Player player) { int num = 0; foreach (string trophyName in player.GetTrophies()) { TrophyHuntData trophyHuntData = Array.Find(__m_trophyHuntData, (TrophyHuntData element) => element.m_name == trophyName); if (trophyHuntData.m_name == trophyName) { num += trophyHuntData.GetCurGameModeTrophyScoreValue(); } } return num; } public static void EnableTrophyHuntIcons(Player player) { foreach (string trophy in player.GetTrophies()) { EnableTrophyHuntIcon(trophy); } } public static int CalculateCurrentScore(Player player) { if ((Object)(object)player == (Object)null) { return __m_playerCurrentScore; } return __m_playerCurrentScore = CalculateTrophyScore(player); } public static void UpdateModUI(Player player) { if ((Object)(object)Hud.instance == (Object)null) { Debug.LogError((object)"Hud.instance is null"); return; } if ((Object)(object)Hud.instance.m_rootObject == (Object)null) { Debug.LogError((object)"Hud.instance.m_rootObject is null"); return; } if ((Object)(object)player == (Object)null) { Debug.LogError((object)"Player.m_localPlayer is null"); return; } if (player.m_trophies == null) { Debug.LogError((object)"Player.m_localPlayer.m_trophies is null"); return; } EnableTrophyHuntIcons(player); int num = CalculateCurrentScore(player); if (Object.op_Implicit((Object)(object)__m_scoreTextElement)) { ((TMP_Text)__m_scoreTextElement.GetComponent()).text = "Score: " + num; } } private static IEnumerator FlashImage(Image targetImage, RectTransform imageRect) { float flashDuration = 0.809f; int numFlashes = 6; Vector2 originalAnchoredPosition = imageRect.anchoredPosition; Vector3 originalScale = ((Transform)imageRect).localScale; for (int i = 0; i < numFlashes; i++) { for (float t = 0f; t < flashDuration; t += Time.deltaTime) { float num = Math.Min(1f, t / flashDuration); if ((int)(num * 5f) % 2 == 0) { ((Graphic)targetImage).color = Color.white; } else { ((Graphic)targetImage).color = Color.green; } float num2 = 1f + 1.5f * num; ((Transform)imageRect).localScale = new Vector3(__m_baseTrophyScale, __m_baseTrophyScale, __m_baseTrophyScale) * num2 * __m_userIconScale; imageRect.anchoredPosition = originalAnchoredPosition + new Vector2(0f, 150f) * (float)Math.Sin(num / 2f); yield return null; } imageRect.anchoredPosition = originalAnchoredPosition; } ((Graphic)targetImage).color = Color.white; ((Transform)imageRect).localScale = originalScale; imageRect.anchoredPosition = originalAnchoredPosition; } private static IEnumerator FlashImage2(Image targetImage, RectTransform imageRect) { float flashDuration = 0.5f; int numFlashes = 4; Vector2 originalAnchoredPosition = imageRect.anchoredPosition; Vector3 originalScale = ((Transform)imageRect).localScale; for (int i = 0; i < numFlashes; i++) { float curAccel = 10f; float curVelocity = 0f; float curPosition = 0f; float timeElapsed = 0f; while (curVelocity > 0.1f) { float deltaTime = Time.deltaTime; curAccel += -10f * deltaTime; curVelocity += curAccel * deltaTime; curPosition += curVelocity * deltaTime; float num = 2f + timeElapsed / flashDuration; ((Transform)imageRect).localScale = new Vector3(__m_baseTrophyScale, __m_baseTrophyScale, __m_baseTrophyScale) * num * __m_userIconScale; imageRect.anchoredPosition = originalAnchoredPosition + new Vector2(0f, 200f) * curPosition; yield return null; } } ((Graphic)targetImage).color = Color.white; ((Transform)imageRect).localScale = originalScale; imageRect.anchoredPosition = originalAnchoredPosition; } private static IEnumerator FlashBiomeImage(Image targetImage, RectTransform imageRect) { float flashDuration = 6f; Quaternion originalRotation = ((Transform)imageRect).rotation; for (float t = 0f; t < flashDuration; t += Time.deltaTime) { ((Transform)imageRect).localEulerAngles = ((Transform)imageRect).localEulerAngles + new Vector3(0f, 0f, t); yield return null; } ((Transform)imageRect).rotation = originalRotation; } private static void FlashTrophy(string trophyName) { GameObject val = __m_iconList.Find((GameObject gameObject) => ((Object)gameObject).name == trophyName); if ((Object)(object)val != (Object)null) { Image component = val.GetComponent(); if ((Object)(object)component != (Object)null) { RectTransform component2 = val.GetComponent(); if ((Object)(object)component2 != (Object)null) { ((MonoBehaviour)__m_seasonheimMod).StartCoroutine(FlashImage(component, component2)); } } } else { Debug.LogError((object)("Unable to find " + trophyName + " in __m_iconList")); } } public static void AddTrackEvent(string tag, Vector3 pos, string extra = null) { //IL_0019: 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_003b: Unknown result type (might be due to invalid IL or missing references) __m_pendingEvents.Add(new TrackEvent { tag = tag, secs = 0, x = Mathf.RoundToInt(pos.x), y = Mathf.RoundToInt(pos.y), z = Mathf.RoundToInt(pos.z), extra = extra }); } public static void StartCollectingPlayerPath() { StopCollectingPlayerPath(); __m_collectingPlayerPath = true; ((MonoBehaviour)__m_seasonheimMod).StartCoroutine(CollectPlayerPath()); } public static void StopCollectingPlayerPath() { __m_collectingPlayerPath = false; } public static IEnumerator CollectPlayerPath() { Vector3 lastPos = Vector3.positiveInfinity; while (__m_collectingPlayerPath) { yield return (object)new WaitForSeconds(__m_playerPathCollectionInterval); if (!__m_collectingPlayerPath) { break; } Player localPlayer = Player.m_localPlayer; if (!((Object)(object)localPlayer == (Object)null)) { Vector3 position = ((Component)localPlayer).transform.position; Vector3 val = lastPos; if (__m_pendingEvents.Count > 0) { TrackEvent trackEvent = __m_pendingEvents[__m_pendingEvents.Count - 1]; ((Vector3)(ref val))..ctor((float)trackEvent.x, (float)trackEvent.y, (float)trackEvent.z); } if (Vector3.Distance(position, val) >= __m_minPathPlayerMoveDistance) { AddTrackEvent("W", position); lastPos = position; } } } } public static void AddTrophyPin(Vector3 position, string trophyName, bool big = false) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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) PinData val = Minimap.instance.AddPin(position, (PinType)9, "", true, false, 0L, default(PlatformUserID)); val.m_icon = GetTrophySprite(trophyName); TrophyPin trophyPin = new TrophyPin(); trophyPin.m_pos = position; trophyPin.m_trophyName = trophyName; if (big) { val.m_doubleSize = true; } __m_trophyPins.Add(trophyPin); } public static void FixTrophyPins() { //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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Minimap.instance == (Object)null) { return; } foreach (TrophyPin _m_trophyPin in __m_trophyPins) { foreach (PinData pin in Minimap.instance.m_pins) { if (Vector3.Distance(pin.m_pos, _m_trophyPin.m_pos) < 1f) { Minimap.instance.RemovePin(pin); break; } } } foreach (TrophyPin _m_trophyPin2 in __m_trophyPins) { Minimap.instance.AddPin(_m_trophyPin2.m_pos, (PinType)9, "", true, false, 0L, default(PlatformUserID)).m_icon = GetTrophySprite(_m_trophyPin2.m_trophyName); } } private static float GetTotalOnFootDistance(Game game) { if ((Object)(object)game == (Object)null) { Debug.LogError((object)"No Game object found in GetTotalOnFootDistance"); return 0f; } PlayerProfile playerProfile = game.GetPlayerProfile(); if (playerProfile != null) { PlayerStats playerStats = playerProfile.m_playerStats; if (playerStats != null) { return playerStats[(PlayerStatType)17] + playerStats[(PlayerStatType)18]; } } return 0f; } public static void CreateScoreTooltip() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_000f: 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_005c: Unknown result type (might be due to invalid IL or missing references) //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_00a4: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) __m_scoreTooltipBackground = new GameObject("Score Tooltip Background"); Vector2 val = __m_trophyHuntScoreTooltipWindowSize; if (__toolTipSizes.ContainsKey(GetGameMode())) { val = __toolTipSizes[GetGameMode()]; } Transform transform = ((Component)Hud.instance).transform; __m_scoreTooltipBackground.transform.SetParent(transform, false); __m_scoreTooltipBackground.AddComponent().sizeDelta = val; ((Graphic)__m_scoreTooltipBackground.AddComponent()).color = new Color(0f, 0f, 0f, 0.95f); __m_scoreTooltipBackground.SetActive(false); __m_scoreTooltipObject = new GameObject("Score Tooltip Text"); __m_scoreTooltipObject.transform.SetParent(__m_scoreTooltipBackground.transform, false); __m_scoreTooltipObject.AddComponent().sizeDelta = new Vector2(val.x - __m_scoreTooltipTextOffset.x, val.y - __m_scoreTooltipTextOffset.y); __m_scoreTooltipText = AddTextMeshProComponent(__m_scoreTooltipObject); ((TMP_Text)__m_scoreTooltipText).fontSize = 14f; ((TMP_Text)__m_scoreTooltipText).alignment = (TextAlignmentOptions)257; ((Graphic)__m_scoreTooltipText).color = Color.yellow; __m_scoreTooltipObject.SetActive(false); } public static void AddTooltipTriggersToScoreObject(GameObject uiObject) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)uiObject.GetComponent() != (Object)null)) { EventTrigger obj = uiObject.AddComponent(); Entry val = new Entry(); val.eventID = (EventTriggerType)0; ((UnityEvent)(object)val.callback).AddListener((UnityAction)delegate { ShowScoreTooltip(uiObject); }); obj.triggers.Add(val); Entry val2 = new Entry(); val2.eventID = (EventTriggerType)1; ((UnityEvent)(object)val2.callback).AddListener((UnityAction)delegate { HideScoreTooltip(); }); obj.triggers.Add(val2); } } public static string BuildScoreTooltipText(GameObject uiObject) { string gameModeNameText = GetGameModeNameText(); string text = "" + gameModeNameText + "\n"; int count = __m_trophyCache.Count; int num = 0; return string.Concat(string.Concat(str1: $" Earned Points: {CalculateTrophyPoints()}\n\n", str0: string.Concat(text + "\n", $" Trophies:\n Num: {count}/{__m_trophyHuntData.Length}\n")), ""); } public static void ShowScoreTooltip(GameObject uiObject) { //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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00ea: 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) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)uiObject == (Object)null)) { string text = BuildScoreTooltipText(uiObject); ((TMP_Text)__m_scoreTooltipText).text = text; __m_scoreTooltipBackground.SetActive(true); __m_scoreTooltipObject.SetActive(true); Vector2 val = __m_trophyHuntScoreTooltipWindowSize; if (__toolTipSizes.ContainsKey(GetGameMode())) { val = __toolTipSizes[GetGameMode()]; } Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(val.x / 2f, val.y, 0f); Vector3 val3 = Input.mousePosition + val2; if (val3.x < 200f) { val3.x = 200f; } if (val3.y < 200f) { val3.y = 200f; } if (val3.x > (float)Screen.width - val.x) { val3.x = (float)Screen.width - val.x; } if (val3.y > (float)Screen.height - val.y) { val3.y = (float)Screen.height - val.y; } __m_scoreTooltipBackground.transform.position = val3; __m_scoreTooltipObject.transform.position = new Vector3(val3.x + __m_scoreTooltipTextOffset.x, val3.y - __m_scoreTooltipTextOffset.y, 0f); } } public static void HideScoreTooltip() { __m_scoreTooltipBackground.SetActive(false); __m_scoreTooltipObject.SetActive(false); } public static void CreateTrophyTooltip() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown //IL_003b: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) Vector2 _m_trophyTooltipWindowSize = __m_trophyTooltipWindowSize; __m_trophyTooltipBackground = new GameObject("Tooltip Background"); Transform transform = ((Component)Hud.instance).transform; __m_trophyTooltipBackground.transform.SetParent(transform, false); __m_trophyTooltipBackground.AddComponent().sizeDelta = _m_trophyTooltipWindowSize; ((Graphic)__m_trophyTooltipBackground.AddComponent()).color = new Color(0f, 0f, 0f, 0.85f); __m_trophyTooltipBackground.SetActive(false); __m_trophyTooltipObject = new GameObject("Tooltip Text"); __m_trophyTooltipObject.transform.SetParent(__m_trophyTooltipBackground.transform, false); __m_trophyTooltipObject.AddComponent().sizeDelta = new Vector2(_m_trophyTooltipWindowSize.x - __m_trophyTooltipTextOffset.x, _m_trophyTooltipWindowSize.y - __m_trophyTooltipTextOffset.y); __m_trophyTooltip = AddTextMeshProComponent(__m_trophyTooltipObject); ((TMP_Text)__m_trophyTooltip).fontSize = 14f; ((TMP_Text)__m_trophyTooltip).alignment = (TextAlignmentOptions)257; ((Graphic)__m_trophyTooltip).color = Color.yellow; __m_trophyTooltipObject.SetActive(false); } public static void DeleteTrophyTooltip() { if ((Object)(object)__m_trophyTooltipObject != (Object)null) { Object.DestroyImmediate((Object)(object)__m_trophyTooltipObject); __m_trophyTooltipObject = null; } if (Object.op_Implicit((Object)(object)__m_trophyTooltipBackground)) { Object.DestroyImmediate((Object)(object)__m_trophyTooltipBackground); __m_trophyTooltipBackground = null; } } public static void AddTooltipTriggersToTrophyIcon(GameObject trophyIconObject) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)trophyIconObject.GetComponent() != (Object)null)) { EventTrigger obj = trophyIconObject.AddComponent(); Entry val = new Entry(); val.eventID = (EventTriggerType)0; ((UnityEvent)(object)val.callback).AddListener((UnityAction)delegate { ShowTrophyTooltip(trophyIconObject); }); obj.triggers.Add(val); Entry val2 = new Entry(); val2.eventID = (EventTriggerType)1; ((UnityEvent)(object)val2.callback).AddListener((UnityAction)delegate { HideTrophyTooltip(); }); obj.triggers.Add(val2); } } public static string BuildTrophyTooltipText(GameObject uiObject) { if ((Object)(object)uiObject == (Object)null) { return "Invalid"; } string trophyName = ((Object)uiObject).name; TrophyHuntData trophyHuntData = Array.Find(__m_trophyHuntData, (TrophyHuntData element) => element.m_name == trophyName); return "" + trophyHuntData.m_prettyName + "\n" + $"Point Value: {trophyHuntData.GetCurGameModeTrophyScoreValue()}\n"; } public static void ShowTrophyTooltip(GameObject uiObject) { //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_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: 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_0117: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)uiObject == (Object)null)) { string text = ""; text = BuildTrophyTooltipText(uiObject); ((TMP_Text)__m_trophyTooltip).text = text; __m_trophyTooltipBackground.SetActive(true); __m_trophyTooltipObject.SetActive(true); Vector2 _m_trophyTooltipWindowSize = __m_trophyTooltipWindowSize; Vector3 val = default(Vector3); ((Vector3)(ref val))..ctor(_m_trophyTooltipWindowSize.x / 2f, _m_trophyTooltipWindowSize.y, 0f); Vector3 val2 = Input.mousePosition + val; if (val2.x < 0f) { val2.x = 0f; } if (val2.y < 0f) { val2.y = 0f; } if (val2.x > (float)Screen.width - _m_trophyTooltipWindowSize.x) { val2.x = (float)Screen.width - _m_trophyTooltipWindowSize.x; } if (val2.y > (float)Screen.height - _m_trophyTooltipWindowSize.y) { val2.y = (float)Screen.height - _m_trophyTooltipWindowSize.y; } __m_trophyTooltipBackground.transform.position = val2; __m_trophyTooltipObject.transform.position = new Vector3(val2.x + __m_trophyTooltipTextOffset.x, val2.y - __m_trophyTooltipTextOffset.y, 0f); } } public static void HideTrophyTooltip() { __m_trophyTooltipBackground.SetActive(false); __m_trophyTooltipObject.SetActive(false); } public static bool CharacterCanDropTrophies(string characterName) { if (Array.FindIndex(__m_trophyHuntData, (TrophyHuntData element) => element.m_enemies.Contains(characterName)) >= 0) { return true; } return false; } public static string EnemyNameToTrophyName(string enemyName) { int num = Array.FindIndex(__m_trophyHuntData, (TrophyHuntData element) => element.m_enemies.Contains(enemyName)); if (num < 0) { return "Not Found"; } return __m_trophyHuntData[num].m_name; } }