Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of ModpackDebugger v1.1.0
ModpackDebugger.dll
Decompiled 5 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using HG; using HarmonyLib; using IL.RoR2.UI; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using On.RoR2.ContentManagement; using On.RoR2.ExpansionManagement; using On.RoR2.Skills; using On.RoR2.UI; using On.RoR2.UI.LogBook; using R2API; using RoR2; using RoR2.ContentManagement; using RoR2.ExpansionManagement; using RoR2.Skills; using RoR2.UI; using RoR2.UI.LogBook; using UnityEngine; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ModpackDebugger")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ModpackDebugger")] [assembly: AssemblyTitle("ModpackDebugger")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace ModpackDebugger { [BepInPlugin("000.prodzpod.ModpackDebugger", "ModpackDebugger", "1.1.0")] public class Main : BaseUnityPlugin { public class EnforcerGangFallBack { public static void Prefix(IContentPackProvider __instance) { //IL_00d2: Unknown result type (might be due to invalid IL or missing references) PluginInfo val = ((IEnumerable<PluginInfo>)Chainloader.PluginInfos.Values).FirstOrDefault((Func<PluginInfo, bool>)((PluginInfo x) => ((object)x.Instance).GetType().Assembly == ((object)__instance).GetType().Assembly)); if (val == null || ForbiddenGUIDs.Any(val.Metadata.GUID.Contains)) { return; } packIdentifierToGUID[__instance.identifier] = val.Metadata.GUID; IEnumerable<FieldInfo> enumerable = from x in ((object)__instance).GetType().GetRuntimeFields() where typeof(ContentPack).IsAssignableFrom(x.FieldType) select x; foreach (FieldInfo item in enumerable) { ((ContentPack)item.GetValue(__instance)).identifier = __instance.identifier; } } public static IEnumerable<MethodBase> TargetMethods() { List<MethodBase> list = new List<MethodBase>(); Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly assembly in assemblies) { IEnumerable<Type> source = from x in assembly.GetTypes() where ((MemberInfo)x).GetCustomAttributes<BepInPlugin>(inherit: true).ToArray().Length != 0 select x; if (source.Any((Type x) => ((MemberInfo)x).GetCustomAttributes<BepInDependency>(inherit: true).Any((BepInDependency y) => y.DependencyGUID == "com.TeamMoonstorm.MSU"))) { continue; } Type[] types = assembly.GetTypes(); foreach (Type type in types) { try { if (!type.IsAbstract && !type.IsInterface && typeof(IContentPackProvider).IsAssignableFrom(type)) { list.Add(type.GetMethod("GenerateContentPackAsync")); } } catch { } } } return list; } } public class MSUFallBack { public static void Postfix(BaseUnityPlugin __instance) { //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown string gUID = ((MemberInfo)((object)__instance).GetType()).GetCustomAttribute<BepInPlugin>().GUID; Type[] array = (from t in ((object)__instance).GetType().Assembly.GetTypes() where !t.IsAbstract && !t.IsInterface && typeof(IContentPackProvider).IsAssignableFrom(t) select t).ToArray(); Type[] array2 = array; foreach (Type type in array2) { IEnumerable<object> enumerable = from x in type.GetRuntimeProperties() where typeof(ContentPack).IsAssignableFrom(x.PropertyType) select x.GetValue(null); foreach (object item in enumerable) { ContentPack val = (ContentPack)item; val._identifier = gUID; packIdentifierToGUID[val.identifier] = gUID; } } } public static IEnumerable<MethodBase> TargetMethods() { List<MethodBase> list = new List<MethodBase>(); Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly assembly in assemblies) { IEnumerable<Type> source = from x in assembly.GetTypes() where ((MemberInfo)x).GetCustomAttributes<BepInPlugin>(inherit: true).ToArray().Length != 0 select x; list.AddRange(from t in source where !t.IsAbstract && !t.IsInterface && ((MemberInfo)t).GetCustomAttributes<BepInDependency>(inherit: true).Any((BepInDependency attr) => attr.DependencyGUID == "com.TeamMoonstorm.MSU") select t into x select x.GetMethod("Awake")); } return list; } } [HarmonyPatch(typeof(Skins), "CreateNewSkinDef", new Type[] { typeof(SkinDefParamsInfo) })] public class HookR2API { public static void Prefix(SkinDefParamsInfo skin) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) stuffDefToAssemblies[skin] = GetAssembliesFromStackTrace(); } } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_ctor <>9__25_0; public static hook_ctor <>9__25_1; public static hook_ctor <>9__25_2; public static hook_ctor <>9__25_3; public static hook_ctor <>9__25_4; public static hook_ctor <>9__25_5; public static hook_CanSelectEquipmentEntry <>9__25_16; public static Action <>9__25_6; public static hook_GetPickupTooltipContent <>9__25_7; public static hook_GetMonsterTooltipContent <>9__25_8; public static hook_GetSurvivorTooltipContent <>9__25_9; public static hook_GetStageTooltipContent <>9__25_10; public static hook_GetAchievementTooltipContent <>9__25_11; public static hook_GetDroneTooltipContent <>9__25_12; public static hook_Start <>9__25_13; public static hook_RebuildHeaders <>9__25_14; public static Func<Instruction, bool> <>9__25_36; public static Func<Instruction, bool> <>9__25_37; public static Func<SkinDef, string> <>9__25_38; public static Manipulator <>9__25_15; public static Func<StackFrame, string> <>9__28_0; internal void <Awake>b__25_0(orig_ctor orig, ContentPack self) { orig.Invoke(self); contentPacks.Add(self); } internal void <Awake>b__25_1(orig_ctor orig, DifficultyDef self, float a, string b, string c, string d, Color e, string f, bool g) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, a, b, c, d, e, f, g); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); } internal void <Awake>b__25_2(orig_ctor orig, SkillDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); } internal void <Awake>b__25_3(orig_ctor orig, ArtifactDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); } internal void <Awake>b__25_4(orig_ctor orig, SkinDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); } internal void <Awake>b__25_5(orig_ctor orig, ExpansionDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); } internal void <Awake>b__25_6() { //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_0067: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Expected O, but got Unknown if (Chainloader.PluginInfos.ContainsKey("")) { return; } EliteDef[] eliteDefs = EliteCatalog.eliteDefs; foreach (EliteDef val in eliteDefs) { if (!eliteEquips.ContainsKey(val.eliteEquipmentDef)) { eliteEquips.Add(val.eliteEquipmentDef, val); } } Enumerator<ItemDef> enumerator = ItemCatalog.allItemDefs.GetEnumerator(); try { while (enumerator.MoveNext()) { <>c__DisplayClass25_0 CS$<>8__locals0 = new <>c__DisplayClass25_0 { i = enumerator.Current }; if (Object.op_Implicit((Object)(object)CS$<>8__locals0.i)) { EquipmentDef val2 = ((IEnumerable<EquipmentDef>)eliteEquips.Keys).FirstOrDefault((Func<EquipmentDef, bool>)((EquipmentDef x) => x.pickupModelReference == CS$<>8__locals0.i.pickupModelReference)); if (Object.op_Implicit((Object)(object)val2) && !eliteItems.ContainsKey(CS$<>8__locals0.i)) { eliteItems.Add(CS$<>8__locals0.i, eliteEquips[val2]); } } } } finally { ((IDisposable)enumerator).Dispose(); } object obj = <>9__25_16; if (obj == null) { hook_CanSelectEquipmentEntry val3 = delegate(orig_CanSelectEquipmentEntry orig, EquipmentDef def, Dictionary<ExpansionDef, bool> a) { bool flag = orig.Invoke(def, a); return (Object.op_Implicit((Object)(object)def) && eliteEquips.ContainsKey(def)) || flag; }; <>9__25_16 = val3; obj = (object)val3; } LogBookController.CanSelectEquipmentEntry += (hook_CanSelectEquipmentEntry)obj; } internal bool <Awake>b__25_16(orig_CanSelectEquipmentEntry orig, EquipmentDef def, Dictionary<ExpansionDef, bool> a) { bool result = orig.Invoke(def, a); if (Object.op_Implicit((Object)(object)def) && eliteEquips.ContainsKey(def)) { return true; } return result; } internal TooltipContent <Awake>b__25_7(orig_GetPickupTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Invalid comparison between Unknown and I4 //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Invalid comparison between Unknown and I4 //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_1 CS$<>8__locals0 = new <>c__DisplayClass25_1(); TooltipContent val = orig.Invoke(ref entry, b, c); CS$<>8__locals0.pickup = PickupCatalog.GetPickupDef((PickupIndex)entry.extraData); if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string text2 = ""; CS$<>8__locals0.elite = null; if ((int)CS$<>8__locals0.pickup.itemIndex != -1) { ItemDef itemDef = ItemCatalog.GetItemDef(CS$<>8__locals0.pickup.itemIndex); if (PrintID.Value) { text = text + "ItemDef Name: " + ((Object)itemDef).name + "\n"; text += $"ItemIndex: {itemDef.itemIndex}\n"; } if (PrintTokens.Value) { text = text + "ItemDef NameToken: " + itemDef.nameToken + "\n"; text = text + "ItemDef PickupToken: " + itemDef.pickupToken + "\n"; text = text + "ItemDef DescriptionToken: " + itemDef.descriptionToken + "\n"; text = text + "ItemDef LoreToken: " + itemDef.loreToken + "\n"; } if (eliteItems.ContainsKey(itemDef)) { CS$<>8__locals0.elite = eliteItems[itemDef]; } } if ((int)CS$<>8__locals0.pickup.equipmentIndex != -1) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(CS$<>8__locals0.pickup.equipmentIndex); if (PrintID.Value) { text = text + "EquipmentDef Name: " + ((Object)equipmentDef).name + "\n"; text += $"EquipmentIndex: {equipmentDef.equipmentIndex}\n"; } if (PrintTokens.Value) { text = text + "EquipmentDef NameToken: " + equipmentDef.nameToken + "\n"; text = text + "EquipmentDef PickupToken: " + equipmentDef.pickupToken + "\n"; text = text + "EquipmentDef DescriptionToken: " + equipmentDef.descriptionToken + "\n"; text = text + "EquipmentDef LoreToken: " + equipmentDef.loreToken + "\n"; } if (eliteEquips.ContainsKey(equipmentDef)) { CS$<>8__locals0.elite = eliteEquips[equipmentDef]; } } if (PrintID.Value) { text = text + "PickupDef Name: " + CS$<>8__locals0.pickup.internalName + "\n"; text += $"PickupIndex: {CS$<>8__locals0.pickup.pickupIndex}\n"; } if (PrintGraphics.Value) { string text3 = text; GameObject displayPrefab = CS$<>8__locals0.pickup.displayPrefab; text = text3 + "PickupDef Prefab Name: " + ((displayPrefab != null) ? ((Object)displayPrefab).name : null) + "\n"; string text4 = text; Sprite iconSprite = CS$<>8__locals0.pickup.iconSprite; text = text4 + "PickupDef Icon Sprite Name: " + ((iconSprite != null) ? ((Object)iconSprite).name : null) + "\n"; string text5 = text; Texture iconTexture = CS$<>8__locals0.pickup.iconTexture; text = text5 + "PickupDef Icon Texture Name: " + ((iconTexture != null) ? ((Object)iconTexture).name : null) + "\n"; } if ((Object)(object)CS$<>8__locals0.elite != (Object)null) { BuffDef val2 = ((IEnumerable<BuffDef>)BuffCatalog.buffDefs).FirstOrDefault((Func<BuffDef, bool>)((BuffDef x) => (Object)(object)x.eliteDef == (Object)(object)CS$<>8__locals0.elite)); if (PrintID.Value) { text = text + "EliteDef Name: " + ((Object)CS$<>8__locals0.elite).name + "\n"; text += $"EliteIndex: {CS$<>8__locals0.elite.eliteIndex}\n"; } if (PrintTokens.Value) { text = text + "EliteDef ModifierToken: " + CS$<>8__locals0.elite.modifierToken + " (" + Language.GetString(CS$<>8__locals0.elite.modifierToken) + ")\n"; } if (PrintGraphics.Value) { text += $"EliteDef Color: {CS$<>8__locals0.elite.color}\n"; text += $"EliteDef RampIndex: {CS$<>8__locals0.elite.shaderEliteRampIndex}\n"; } if (Object.op_Implicit((Object)(object)val2)) { if (PrintID.Value) { text = text + "BuffDef Name: " + ((Object)val2).name + "\n"; text += $"BuffIndex: {val2.buffIndex}\n"; } if (PrintGraphics.Value) { text = text + "BuffDef Icon: " + val2.iconPath + "\n"; string text6 = text; Sprite iconSprite2 = val2.iconSprite; text = text6 + "BuffDef IconName: " + ((iconSprite2 != null) ? ((Object)iconSprite2).name : null) + "\n"; } } int num = contentPacks.FindIndex((ContentPack x) => x.eliteDefs.Contains(CS$<>8__locals0.elite)); if (num != -1) { text2 = text2 + GetModName(contentPacks[num].identifier) + "\nSource Mod (Equipment): "; } } if (PrintID.Value && (int)CS$<>8__locals0.pickup.itemIndex != -1) { text += $"ItemTierDef Name: {ItemTierCatalog.GetItemTierDef(ItemCatalog.GetItemDef(CS$<>8__locals0.pickup.itemIndex).tier)}\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)CS$<>8__locals0.pickup.unlockableDef)) { text = text + "UnlockableDef Name: " + CS$<>8__locals0.pickup.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {CS$<>8__locals0.pickup.unlockableDef.index}\n"; } int num2 = contentPacks.FindIndex(delegate(ContentPack x) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_0022: 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) if ((int)CS$<>8__locals0.pickup.itemIndex != -1) { return x.itemDefs.Contains(ItemCatalog.GetItemDef(CS$<>8__locals0.pickup.itemIndex)); } return (int)CS$<>8__locals0.pickup.equipmentIndex != -1 && x.equipmentDefs.Contains(EquipmentCatalog.GetEquipmentDef(CS$<>8__locals0.pickup.equipmentIndex)); }); if (num2 != -1) { text2 += GetModName(contentPacks[num2].identifier); } val.overrideBodyText += FormatInternal(text, text2, LogbookZoom.Value); return val; } internal TooltipContent <Awake>b__25_8(orig_GetMonsterTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0030: 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_0138: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_2 CS$<>8__locals0 = new <>c__DisplayClass25_2(); TooltipContent val = orig.Invoke(ref entry, b, c); CS$<>8__locals0.body = (CharacterBody)entry.extraData; CharacterMaster master = CS$<>8__locals0.body.master; if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string sourcemod = ""; if (PrintID.Value) { text = text + "CharacterBody Name: " + ((Object)CS$<>8__locals0.body).name + "\n"; text += $"BodyIndex: {CS$<>8__locals0.body.bodyIndex}\n"; } if (PrintTokens.Value) { text = text + "CharacterBody NameToken: " + CS$<>8__locals0.body.baseNameToken + "\n"; text = text + "CharacterBody SubtitleToken: " + CS$<>8__locals0.body.subtitleNameToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master)) { text = text + "CharacterMaster Name: " + ((Object)master).name + "\n"; text += $"MasterIndex: {master.masterIndex}\n"; } if (PrintGraphics.Value) { text = text + "CharacterBody Portrait Icon: " + ((Object)CS$<>8__locals0.body.portraitIcon).name + "\n"; } int num = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)((Component)CS$<>8__locals0.body).gameObject) && x.bodyPrefabs.Contains(((Component)CS$<>8__locals0.body).gameObject)); if (num != -1) { sourcemod = GetModName(contentPacks[num].identifier); } val.overrideBodyText += FormatInternal(text, sourcemod, LogbookZoom.Value); return val; } internal TooltipContent <Awake>b__25_9(orig_GetSurvivorTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_001f: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_3 CS$<>8__locals0 = new <>c__DisplayClass25_3(); TooltipContent val = orig.Invoke(ref entry, b, c); CharacterBody val2 = (CharacterBody)entry.extraData; CharacterMaster master = val2.master; CS$<>8__locals0.surv = SurvivorCatalog.FindSurvivorDefFromBody(((Component)(CharacterBody)entry.extraData).gameObject); if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string text2 = ""; if (PrintID.Value) { text = text + "SurvivorDef Name: " + CS$<>8__locals0.surv.cachedName + "\n"; text += $"SurvivorIndex: {CS$<>8__locals0.surv.survivorIndex}\n"; text = text + "CharacterBody Name: " + ((Object)val2).name + "\n"; text += $"BodyIndex: {val2.bodyIndex}\n"; } if (PrintTokens.Value) { text = text + "CharacterBody NameToken: " + val2.baseNameToken + "\n"; text = text + "CharacterBody SubtitleToken: " + val2.subtitleNameToken + "\n"; text = text + "SurvivorDef DescriptionToken: " + CS$<>8__locals0.surv.descriptionToken + "\n"; text = text + "SurvivorDef OutroToken: " + CS$<>8__locals0.surv.outroFlavorToken + "\n"; text = text + "SurvivorDef OutroFailureToken: " + CS$<>8__locals0.surv.mainEndingEscapeFailureFlavorToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master)) { text = text + "CharacterMaster Name: " + ((Object)master).name + "\n"; text += $"MasterIndex: {master.masterIndex}\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)CS$<>8__locals0.surv.unlockableDef)) { text = text + "UnlockableDef Name: " + CS$<>8__locals0.surv.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {CS$<>8__locals0.surv.unlockableDef.index}\n"; } int num = contentPacks.FindIndex((ContentPack x) => x.survivorDefs.Contains(CS$<>8__locals0.surv)); if (num != -1) { text2 += GetModName(contentPacks[num].identifier); } val.overrideBodyText += FormatInternal(text, text2, LogbookZoom.Value); return val; } internal TooltipContent <Awake>b__25_10(orig_GetStageTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0024: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_4 CS$<>8__locals0 = new <>c__DisplayClass25_4(); TooltipContent val = orig.Invoke(ref entry, b, c); CS$<>8__locals0.scene = (SceneDef)entry.extraData; if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string text2 = ""; if (PrintID.Value) { text = text + "SceneDef Name: " + CS$<>8__locals0.scene.cachedName + "\n"; text += $"SceneDefIndex: {CS$<>8__locals0.scene.sceneDefIndex}\n"; } if (PrintTokens.Value) { text = text + "SceneDef NameToken: " + CS$<>8__locals0.scene.nameToken + "\n"; text = text + "SceneDef SubtitleToken: " + CS$<>8__locals0.scene.subtitleToken + "\n"; text = text + "SceneDef LoreToken: " + CS$<>8__locals0.scene.loreToken + "\n"; } int num = contentPacks.FindIndex((ContentPack x) => x.sceneDefs.Contains(CS$<>8__locals0.scene)); if (num != -1) { text2 += GetModName(contentPacks[num].identifier); } val.overrideBodyText += FormatInternal(text, text2, LogbookZoom.Value); return val; } internal TooltipContent <Awake>b__25_11(orig_GetAchievementTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_001f: Expected O, but got Unknown //IL_0030: 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_017f: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: 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_0200: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_5 CS$<>8__locals0 = new <>c__DisplayClass25_5(); TooltipContent val = orig.Invoke(ref entry, b, c); AchievementDef val2 = (AchievementDef)entry.extraData; CS$<>8__locals0.unlockable = UnlockableCatalog.GetUnlockableDef(val2.unlockableRewardIdentifier); if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string text2 = ""; if (PrintID.Value) { text = text + "AchievementDef Name: " + val2.identifier + "\n"; text += $"AchievementIndex: {val2.index}\n"; } if (PrintTokens.Value) { text = text + "AchievementDef NameToken: " + val2.nameToken + "\n"; text = text + "AchievementDef DescriptionToken: " + val2.descriptionToken + "\n"; } if (PrintGraphics.Value) { text = text + "AchievementDef Icon: " + val2.iconPath + "\n"; string text3 = text; Sprite achievedIcon = val2.achievedIcon; text = text3 + "AchievementDef IconName: " + ((achievedIcon != null) ? ((Object)achievedIcon).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)CS$<>8__locals0.unlockable)) { text = text + "UnlockableDef Name: " + CS$<>8__locals0.unlockable.cachedName + "\n"; text += $"UnlockableIndex: {CS$<>8__locals0.unlockable.index}\n"; } int num = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)CS$<>8__locals0.unlockable) && x.unlockableDefs.Contains(CS$<>8__locals0.unlockable)); if (num != -1) { text2 += GetModName(contentPacks[num].identifier); } val.overrideBodyText += FormatInternal(text, text2, LogbookZoom.Value); return val; } internal TooltipContent <Awake>b__25_12(orig_GetDroneTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass25_6 CS$<>8__locals0 = new <>c__DisplayClass25_6(); TooltipContent val = orig.Invoke(ref entry, b, c); CS$<>8__locals0.body = (CharacterBody)entry.extraData; CharacterMaster master = CS$<>8__locals0.body.master; if (!string.IsNullOrWhiteSpace(val.overrideBodyText)) { val.overrideBodyText += "\n\n"; } string text = ""; string sourcemod = ""; DroneDef droneDef = DroneCatalog.GetDroneDef(DroneCatalog.GetDroneIndexFromBodyIndex(CS$<>8__locals0.body.bodyIndex)); if (Object.op_Implicit((Object)(object)droneDef) && PrintID.Value) { text = text + "DroneDef Name: " + ((Object)droneDef).name + "\n"; text += $"DroneIndex: {droneDef.droneIndex}\n"; text += $"DroneType: {droneDef.droneType}\n"; } if (Object.op_Implicit((Object)(object)droneDef) && PrintTokens.Value) { text = text + "DroneDef NameToken: " + droneDef.nameToken + "\n"; text = text + "DroneDef DescriptionToken: " + droneDef.descriptionToken + "\n"; text = text + "DroneDef PickupToken: " + droneDef.pickupToken + "\n"; text = text + "DroneDef SkillDescriptionToken: " + droneDef.skillDescriptionToken + "\n"; text = text + "DroneDef DroneTechCommandToken: " + droneDef.droneTechCommandToken + "\n"; } if (Object.op_Implicit((Object)(object)droneDef) && PrintID.Value) { text += $"DroneDef Can Combine: {droneDef.canCombine}\n"; text += $"DroneDef Can Drop: {droneDef.canDrop}\n"; text += $"DroneDef Can Remote Operate: {droneDef.canRemoteOp}\n"; text += $"DroneDef Can Scrap: {droneDef.canScrap}\n"; } if (PrintID.Value) { text = text + "CharacterBody Name: " + ((Object)CS$<>8__locals0.body).name + "\n"; text += $"BodyIndex: {CS$<>8__locals0.body.bodyIndex}\n"; } if (PrintTokens.Value) { text = text + "CharacterBody NameToken: " + CS$<>8__locals0.body.baseNameToken + "\n"; text = text + "CharacterBody SubtitleToken: " + CS$<>8__locals0.body.subtitleNameToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master)) { text = text + "CharacterMaster Name: " + ((Object)master).name + "\n"; text += $"MasterIndex: {master.masterIndex}\n"; } if (PrintGraphics.Value) { text = text + "CharacterBody Portrait Icon: " + ((Object)CS$<>8__locals0.body.portraitIcon).name + "\n"; } int num = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)((Component)CS$<>8__locals0.body).gameObject) && x.bodyPrefabs.Contains(((Component)CS$<>8__locals0.body).gameObject)); if (num != -1) { sourcemod = GetModName(contentPacks[num].identifier); } val.overrideBodyText += FormatInternal(text, sourcemod, LogbookZoom.Value); return val; } internal void <Awake>b__25_13(orig_Start orig, PreGameController self) { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); using (IEnumerator<DifficultyDef> enumerator = DifficultyAPI.difficultyDefinitions.Values.GetEnumerator()) { while (enumerator.MoveNext()) { <>c__DisplayClass25_7 CS$<>8__locals2 = new <>c__DisplayClass25_7 { diff = enumerator.Current }; <>c__DisplayClass25_8 CS$<>8__locals5 = new <>c__DisplayClass25_8(); string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(CS$<>8__locals2.diff.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text += $"DifficultyIndex: {DifficultyAPI.difficultyDefinitions.First((KeyValuePair<DifficultyIndex, DifficultyDef> x) => x.Value == CS$<>8__locals2.diff).Key}\n"; } if (PrintTokens.Value) { text = text + "DifficultyDef NameToken: " + CS$<>8__locals2.diff.nameToken + "\n"; text = text + "DifficultyDef DescriptionToken: " + CS$<>8__locals2.diff.descriptionToken + "\n"; } if (PrintID.Value) { text = text + "DifficultyDef ServerTag: " + CS$<>8__locals2.diff.serverTag + "\n"; } if (PrintGraphics.Value) { text = text + "DifficultyDef Icon: " + CS$<>8__locals2.diff.iconPath + "\n"; string text4 = text; Sprite iconSprite = CS$<>8__locals2.diff.iconSprite; text = text4 + "DifficultyDef IconName: " + ((iconSprite != null) ? ((Object)iconSprite).name : null) + "\n"; } text2 = ((!TryGetGUID(CS$<>8__locals2.diff, out var guid)) ? "Vanilla" : GetModName(guid)); CS$<>8__locals5.temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[CS$<>8__locals2.diff.descriptionToken] = (string orig) => orig + CS$<>8__locals5.temp; } } foreach (SkillFamily allSkillFamily in SkillCatalog.allSkillFamilies) { for (int i = 0; i < allSkillFamily.variants.Length; i++) { <>c__DisplayClass25_9 CS$<>8__locals0 = new <>c__DisplayClass25_9(); Variant val = allSkillFamily.variants[i]; CS$<>8__locals0.skill = val.skillDef; if ((Object)(object)CS$<>8__locals0.skill == (Object)null) { continue; } string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(CS$<>8__locals0.skill.skillDescriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "SkillFamily Name: " + allSkillFamily.name + "\n"; text += $"SkillFamily CatalogIndex: {allSkillFamily.catalogIndex}\n"; text += $"Variant Number: {i}\n"; } if (PrintTokens.Value) { text = text + "SkillDef NameToken: " + CS$<>8__locals0.skill.skillNameToken + "\n"; text = text + "SkillDef DescriptionToken: " + CS$<>8__locals0.skill.skillDescriptionToken + "\n"; if (CS$<>8__locals0.skill.keywordTokens != null) { text = text + "SkillDef KeywordTokens: " + string.Join(", ", CS$<>8__locals0.skill.keywordTokens) + "\n"; } } if (PrintGraphics.Value) { string text5 = text; Sprite icon = CS$<>8__locals0.skill.icon; text = text5 + "SkillDef IconName: " + ((icon != null) ? ((Object)icon).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)val.unlockableDef)) { text = text + "UnlockableDef Name: " + val.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {val.unlockableDef.index}\n"; } if (TryGetGUID(CS$<>8__locals0.skill, out var guid2)) { text2 = GetModName(guid2); } else { int num = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)CS$<>8__locals0.skill) && x.skillDefs.Contains(CS$<>8__locals0.skill)); if (num != -1) { if (contentPacks[num].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(CS$<>8__locals0.skill.skillDescriptionToken)) { continue; } text2 = GetModName(contentPacks[num].identifier); } } CS$<>8__locals0.temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[CS$<>8__locals0.skill.skillDescriptionToken] = delegate(string orig) { LoadoutPanelController obj = Object.FindObjectOfType<LoadoutPanelController>(); bool? obj2; if (obj == null) { obj2 = null; } else { GameObject gameObject = ((Component)obj).gameObject; obj2 = ((gameObject != null) ? new bool?(gameObject.activeSelf) : null); } bool? flag = obj2; return orig + (flag.GetValueOrDefault() ? CS$<>8__locals0.temp : ""); }; } } SkinDef[] allSkinDefs = SkinCatalog.allSkinDefs; foreach (SkinDef val2 in allSkinDefs) { <>c__DisplayClass25_10 CS$<>8__locals1 = new <>c__DisplayClass25_10(); string text = ""; string text2 = ""; string text3 = ""; if (PrintID.Value) { text = text + "SkinDef Name: " + ((Object)val2).name + "\n"; text += $"SkinIndex: {val2.skinIndex}\n"; } if (PrintTokens.Value) { text = text + "SkinDef NameToken: " + val2.nameToken + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)val2.unlockableDef)) { text = text + "UnlockableDef Name: " + val2.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {val2.unlockableDef.index}\n"; } if (TryGetGUID(val2, out var guid3)) { text2 = GetModName(guid3); } CS$<>8__locals1.temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[val2.nameToken + "_DESC"] = (string _) => CS$<>8__locals1.temp; } ArtifactDef[] artifactDefs = ArtifactCatalog.artifactDefs; for (int k = 0; k < artifactDefs.Length; k++) { <>c__DisplayClass25_11 CS$<>8__locals3 = new <>c__DisplayClass25_11 { artifact = artifactDefs[k] }; <>c__DisplayClass25_12 CS$<>8__locals4 = new <>c__DisplayClass25_12(); string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(CS$<>8__locals3.artifact.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "ArtifactDef Name: " + CS$<>8__locals3.artifact.cachedName + "\n"; text += $"ArtifactIndex: {CS$<>8__locals3.artifact.artifactIndex}\n"; } if (PrintTokens.Value) { text = text + "ArtifactDef NameToken: " + CS$<>8__locals3.artifact.nameToken + "\n"; text = text + "ArtifactDef DescriptionToken: " + CS$<>8__locals3.artifact.descriptionToken + "\n"; } if (PrintGraphics.Value) { string text6 = text; GameObject pickupModelPrefab = CS$<>8__locals3.artifact.pickupModelPrefab; text = text6 + "ArtifactDef Pickup Name: " + ((pickupModelPrefab != null) ? ((Object)pickupModelPrefab).name : null) + "\n"; string text7 = text; Sprite smallIconSelectedSprite = CS$<>8__locals3.artifact.smallIconSelectedSprite; text = text7 + "ArtifactDef IconName: " + ((smallIconSelectedSprite != null) ? ((Object)smallIconSelectedSprite).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)CS$<>8__locals3.artifact.unlockableDef)) { text = text + "UnlockableDef Name: " + CS$<>8__locals3.artifact.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {CS$<>8__locals3.artifact.unlockableDef.index}\n"; } if (TryGetGUID(CS$<>8__locals3.artifact, out var guid4)) { text2 = GetModName(guid4); } else { int num2 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)CS$<>8__locals3.artifact) && x.artifactDefs.Contains(CS$<>8__locals3.artifact)); if (num2 != -1) { if (contentPacks[num2].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(CS$<>8__locals3.artifact.descriptionToken)) { continue; } text2 += GetModName(contentPacks[num2].identifier); } } CS$<>8__locals4.temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[CS$<>8__locals3.artifact.descriptionToken] = (string orig) => orig + CS$<>8__locals4.temp; } ExpansionDef[] expansionDefs = ContentManager.expansionDefs; for (int l = 0; l < expansionDefs.Length; l++) { <>c__DisplayClass25_13 CS$<>8__locals6 = new <>c__DisplayClass25_13 { exp = expansionDefs[l] }; <>c__DisplayClass25_14 CS$<>8__locals7 = new <>c__DisplayClass25_14(); string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(CS$<>8__locals6.exp.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "ExpansionDef Name: " + ((Object)CS$<>8__locals6.exp).name + "\n"; text += $"ExpansionIndex: {CS$<>8__locals6.exp.expansionIndex}\n"; } if (PrintTokens.Value) { text = text + "ExpansionDef NameToken: " + CS$<>8__locals6.exp.nameToken + "\n"; text = text + "ExpansionDef DescriptionToken: " + CS$<>8__locals6.exp.descriptionToken + "\n"; } if (PrintGraphics.Value) { string text8 = text; Sprite iconSprite2 = CS$<>8__locals6.exp.iconSprite; text = text8 + "ExpansionDef IconName: " + ((iconSprite2 != null) ? ((Object)iconSprite2).name : null) + "\n"; } if (PrintUnlocks.Value && (Object)(object)CS$<>8__locals6.exp.requiredEntitlement != (Object)null) { text = text + "ExpansionDef Required EntitlementDef Name: " + ((Object)CS$<>8__locals6.exp.requiredEntitlement).name + "\n"; text += $"ExpansionDef Required EntitlementIndex: {CS$<>8__locals6.exp.requiredEntitlement.entitlementIndex}\n"; text = text + "ExpansionDef Required EntitlementDef NameToken: " + CS$<>8__locals6.exp.requiredEntitlement.nameToken + "\n"; } if (TryGetGUID(CS$<>8__locals6.exp, out var guid5)) { text2 = GetModName(guid5); } else { int num3 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)CS$<>8__locals6.exp) && x.expansionDefs.Contains(CS$<>8__locals6.exp)); if (num3 != -1) { if (contentPacks[num3].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(CS$<>8__locals6.exp.descriptionToken)) { continue; } text2 = GetModName(contentPacks[num3].identifier); } } CS$<>8__locals7.temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[CS$<>8__locals6.exp.descriptionToken] = (string orig) => orig + CS$<>8__locals7.temp; } DescTokenToExtraData.Remove(""); } internal void <Awake>b__25_14(orig_RebuildHeaders orig, HGHeaderNavigationController self) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); Scene activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name != "lobby")) { Object.FindObjectOfType<CharacterSelectController>().RebuildLocal(false); } } internal void <Awake>b__25_15(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0077: 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) <>c__DisplayClass25_15 CS$<>8__locals0 = new <>c__DisplayClass25_15(); ILCursor val = new ILCursor(il); CS$<>8__locals0.skin = -1; val.GotoNext((MoveType)2, new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref CS$<>8__locals0.skin), (Instruction x) => ILPatternMatchingExt.MatchLdfld<SkinDef>(x, "nameToken"), (Instruction x) => ILPatternMatchingExt.MatchLdsfld<string>(x, "Empty") }); val.Emit(OpCodes.Pop); val.Emit(OpCodes.Ldloc, CS$<>8__locals0.skin); val.EmitDelegate<Func<SkinDef, string>>((Func<SkinDef, string>)((SkinDef def) => def.nameToken + "_DESC")); } internal bool <Awake>b__25_36(Instruction x) { return ILPatternMatchingExt.MatchLdfld<SkinDef>(x, "nameToken"); } internal bool <Awake>b__25_37(Instruction x) { return ILPatternMatchingExt.MatchLdsfld<string>(x, "Empty"); } internal string <Awake>b__25_38(SkinDef def) { return def.nameToken + "_DESC"; } internal string <GetAssembliesFromStackTrace>b__28_0(StackFrame frame) { return frame.GetMethod().DeclaringType.Assembly.FullName; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_0 { public ItemDef i; internal bool <Awake>b__17(EquipmentDef x) { return x.pickupModelReference == i.pickupModelReference; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_1 { public EliteDef elite; public PickupDef pickup; internal bool <Awake>b__19(BuffDef x) { return (Object)(object)x.eliteDef == (Object)(object)elite; } internal bool <Awake>b__20(ContentPack x) { return x.eliteDefs.Contains(elite); } internal bool <Awake>b__18(ContentPack x) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_0022: 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) if ((int)pickup.itemIndex != -1) { return x.itemDefs.Contains(ItemCatalog.GetItemDef(pickup.itemIndex)); } if ((int)pickup.equipmentIndex != -1) { return x.equipmentDefs.Contains(EquipmentCatalog.GetEquipmentDef(pickup.equipmentIndex)); } return false; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_10 { public string temp; internal string <Awake>b__30(string _) { return temp; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_11 { public ArtifactDef artifact; internal bool <Awake>b__32(ContentPack x) { return Object.op_Implicit((Object)(object)artifact) && x.artifactDefs.Contains(artifact); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_12 { public string temp; internal string <Awake>b__31(string orig) { return orig + temp; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_13 { public ExpansionDef exp; internal bool <Awake>b__34(ContentPack x) { return Object.op_Implicit((Object)(object)exp) && x.expansionDefs.Contains(exp); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_14 { public string temp; internal string <Awake>b__33(string orig) { return orig + temp; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_15 { public int skin; internal bool <Awake>b__35(Instruction x) { return ILPatternMatchingExt.MatchLdloc(x, ref skin); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_2 { public CharacterBody body; internal bool <Awake>b__21(ContentPack x) { return Object.op_Implicit((Object)(object)((Component)body).gameObject) && x.bodyPrefabs.Contains(((Component)body).gameObject); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_3 { public SurvivorDef surv; internal bool <Awake>b__22(ContentPack x) { return x.survivorDefs.Contains(surv); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_4 { public SceneDef scene; internal bool <Awake>b__23(ContentPack x) { return x.sceneDefs.Contains(scene); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_5 { public UnlockableDef unlockable; internal bool <Awake>b__24(ContentPack x) { return Object.op_Implicit((Object)(object)unlockable) && x.unlockableDefs.Contains(unlockable); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_6 { public CharacterBody body; internal bool <Awake>b__25(ContentPack x) { return Object.op_Implicit((Object)(object)((Component)body).gameObject) && x.bodyPrefabs.Contains(((Component)body).gameObject); } } [CompilerGenerated] private sealed class <>c__DisplayClass25_7 { public DifficultyDef diff; internal bool <Awake>b__26(KeyValuePair<DifficultyIndex, DifficultyDef> x) { return x.Value == diff; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_8 { public string temp; internal string <Awake>b__27(string orig) { return orig + temp; } } [CompilerGenerated] private sealed class <>c__DisplayClass25_9 { public SkillDef skill; public string temp; internal bool <Awake>b__29(ContentPack x) { return Object.op_Implicit((Object)(object)skill) && x.skillDefs.Contains(skill); } internal string <Awake>b__28(string orig) { LoadoutPanelController obj = Object.FindObjectOfType<LoadoutPanelController>(); bool? obj2; if (obj == null) { obj2 = null; } else { GameObject gameObject = ((Component)obj).gameObject; obj2 = ((gameObject != null) ? new bool?(gameObject.activeSelf) : null); } bool? flag = obj2; return orig + (flag.GetValueOrDefault() ? temp : ""); } } public const string PluginGUID = "000.prodzpod.ModpackDebugger"; public const string PluginAuthor = "000.prodzpod"; public const string PluginName = "ModpackDebugger"; public const string PluginVersion = "1.1.0"; public static ManualLogSource Log; public static PluginInfo pluginInfo; public static Harmony Harmony; public static ConfigFile Config; public static List<ContentPack> contentPacks = new List<ContentPack>(); public static Dictionary<string, string> packIdentifierToGUID = new Dictionary<string, string>(); public static Dictionary<object, string[]> stuffDefToAssemblies = new Dictionary<object, string[]>(); public static Dictionary<string, Func<string, string>> DescTokenToExtraData = new Dictionary<string, Func<string, string>>(); public static ConfigEntry<bool> PrintID; public static ConfigEntry<bool> PrintTokens; public static ConfigEntry<bool> PrintGraphics; public static ConfigEntry<bool> PrintUnlocks; public static ConfigEntry<bool> PrintSourceMod; public static ConfigEntry<bool> DebugMode; public static ConfigEntry<float> LogbookZoom; public static ConfigEntry<float> LobbyZoom; public static ConfigEntry<bool> EnableLobbyTooltips; public static ConfigEntry<bool> ShowEliteAspects; public static Dictionary<EquipmentDef, EliteDef> eliteEquips = new Dictionary<EquipmentDef, EliteDef>(); public static Dictionary<ItemDef, EliteDef> eliteItems = new Dictionary<ItemDef, EliteDef>(); public const string MSU_GUID = "com.TeamMoonstorm.MSU"; public static List<string> ForbiddenGUIDs = new List<string>(5) { "ModpackDebugger", "r2api", "mysticsrisky2utils", "MSU", "TILER2" }; public void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Expected O, but got Unknown //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Expected O, but got Unknown //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Expected O, but got Unknown //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Expected O, but got Unknown //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Expected O, but got Unknown //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Expected O, but got Unknown //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Expected O, but got Unknown //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Expected O, but got Unknown //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Expected O, but got Unknown //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Expected O, but got Unknown //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Expected O, but got Unknown //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Expected O, but got Unknown //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Expected O, but got Unknown //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Expected O, but got Unknown //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Expected O, but got Unknown pluginInfo = ((BaseUnityPlugin)this).Info; Log = ((BaseUnityPlugin)this).Logger; Harmony = new Harmony("000.prodzpod.ModpackDebugger"); Config = new ConfigFile(Path.Combine(Paths.ConfigPath, "000.prodzpod.ModpackDebugger.cfg"), true); PrintID = Config.Bind<bool>("General", "Print ID", true, "Prints internal IDs and indices."); PrintTokens = Config.Bind<bool>("General", "Print Tokens", true, "Prints language token IDs."); PrintGraphics = Config.Bind<bool>("General", "Print Graphics", true, "Prints model and sprite names and paths."); PrintUnlocks = Config.Bind<bool>("General", "Print Unlocks", true, "Prints unlockable IDs."); PrintSourceMod = Config.Bind<bool>("General", "Print Source Mod", true, "Prints source mod for the content."); LogbookZoom = Config.Bind<float>("General", "Logbook Zoom", 50f, "in % compared to normal text"); LobbyZoom = Config.Bind<float>("General", "Lobby Zoom", 75f, "in % compared to normal text"); EnableLobbyTooltips = Config.Bind<bool>("General", "Enable Lobby Tooltips", true, "disable if switching character lags too much"); ShowEliteAspects = Config.Bind<bool>("General", "Show Elite Aspects on Logbook", true, "overridden if zetaspects is installed"); packIdentifierToGUID.Add("RoR2.BaseContent", "Vanilla (No DLC)"); packIdentifierToGUID.Add("RoR2.Junk", "Vanilla (Unused)"); packIdentifierToGUID.Add("RoR2.DLC1", "Vanilla (SotV)"); packIdentifierToGUID.Add("RoR2.DLC2", "Vanilla (SotS)"); packIdentifierToGUID.Add("RoR2.DLC3", "Vanilla (AC)"); object obj = <>c.<>9__25_0; if (obj == null) { hook_ctor val = delegate(orig_ctor orig, ContentPack self) { orig.Invoke(self); contentPacks.Add(self); }; <>c.<>9__25_0 = val; obj = (object)val; } ContentPack.ctor += (hook_ctor)obj; Harmony.PatchAll(typeof(EnforcerGangFallBack)); object obj2 = <>c.<>9__25_1; if (obj2 == null) { hook_ctor val2 = delegate(orig_ctor orig, DifficultyDef self, float a, string b, string c, string d, Color e, string f, bool g) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, a, b, c, d, e, f, g); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); }; <>c.<>9__25_1 = val2; obj2 = (object)val2; } DifficultyDef.ctor += (hook_ctor)obj2; object obj3 = <>c.<>9__25_2; if (obj3 == null) { hook_ctor val3 = delegate(orig_ctor orig, SkillDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); }; <>c.<>9__25_2 = val3; obj3 = (object)val3; } SkillDef.ctor += (hook_ctor)obj3; object obj4 = <>c.<>9__25_3; if (obj4 == null) { hook_ctor val4 = delegate(orig_ctor orig, ArtifactDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); }; <>c.<>9__25_3 = val4; obj4 = (object)val4; } ArtifactDef.ctor += (hook_ctor)obj4; object obj5 = <>c.<>9__25_4; if (obj5 == null) { hook_ctor val5 = delegate(orig_ctor orig, SkinDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); }; <>c.<>9__25_4 = val5; obj5 = (object)val5; } SkinDef.ctor += (hook_ctor)obj5; object obj6 = <>c.<>9__25_5; if (obj6 == null) { hook_ctor val6 = delegate(orig_ctor orig, ExpansionDef self) { orig.Invoke(self); stuffDefToAssemblies[self] = GetAssembliesFromStackTrace(); }; <>c.<>9__25_5 = val6; obj6 = (object)val6; } ExpansionDef.ctor += (hook_ctor)obj6; Harmony.PatchAll(typeof(HookR2API)); if (ShowEliteAspects.Value) { RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { //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_0067: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Expected O, but got Unknown if (!Chainloader.PluginInfos.ContainsKey("")) { EliteDef[] eliteDefs = EliteCatalog.eliteDefs; foreach (EliteDef val28 in eliteDefs) { if (!eliteEquips.ContainsKey(val28.eliteEquipmentDef)) { eliteEquips.Add(val28.eliteEquipmentDef, val28); } } Enumerator<ItemDef> enumerator3 = ItemCatalog.allItemDefs.GetEnumerator(); try { while (enumerator3.MoveNext()) { ItemDef m = enumerator3.Current; if (Object.op_Implicit((Object)(object)m)) { EquipmentDef val29 = ((IEnumerable<EquipmentDef>)eliteEquips.Keys).FirstOrDefault((Func<EquipmentDef, bool>)((EquipmentDef x) => x.pickupModelReference == m.pickupModelReference)); if (Object.op_Implicit((Object)(object)val29) && !eliteItems.ContainsKey(m)) { eliteItems.Add(m, eliteEquips[val29]); } } } } finally { ((IDisposable)enumerator3).Dispose(); } object obj18 = <>c.<>9__25_16; if (obj18 == null) { hook_CanSelectEquipmentEntry val30 = delegate(orig_CanSelectEquipmentEntry orig, EquipmentDef def, Dictionary<ExpansionDef, bool> a) { bool flag2 = orig.Invoke(def, a); return (Object.op_Implicit((Object)(object)def) && eliteEquips.ContainsKey(def)) || flag2; }; <>c.<>9__25_16 = val30; obj18 = (object)val30; } LogBookController.CanSelectEquipmentEntry += (hook_CanSelectEquipmentEntry)obj18; } }); } object obj7 = <>c.<>9__25_7; if (obj7 == null) { hook_GetPickupTooltipContent val7 = delegate(orig_GetPickupTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Invalid comparison between Unknown and I4 //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Invalid comparison between Unknown and I4 //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Invalid comparison between Unknown and I4 //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_0616: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0696: Unknown result type (might be due to invalid IL or missing references) TooltipContent val26 = orig.Invoke(ref entry, b, c); PickupDef pickup = PickupCatalog.GetPickupDef((PickupIndex)entry.extraData); if (!string.IsNullOrWhiteSpace(val26.overrideBodyText)) { val26.overrideBodyText += "\n\n"; } string text18 = ""; string text19 = ""; EliteDef elite = null; if ((int)pickup.itemIndex != -1) { ItemDef itemDef = ItemCatalog.GetItemDef(pickup.itemIndex); if (PrintID.Value) { text18 = text18 + "ItemDef Name: " + ((Object)itemDef).name + "\n"; text18 += $"ItemIndex: {itemDef.itemIndex}\n"; } if (PrintTokens.Value) { text18 = text18 + "ItemDef NameToken: " + itemDef.nameToken + "\n"; text18 = text18 + "ItemDef PickupToken: " + itemDef.pickupToken + "\n"; text18 = text18 + "ItemDef DescriptionToken: " + itemDef.descriptionToken + "\n"; text18 = text18 + "ItemDef LoreToken: " + itemDef.loreToken + "\n"; } if (eliteItems.ContainsKey(itemDef)) { elite = eliteItems[itemDef]; } } if ((int)pickup.equipmentIndex != -1) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(pickup.equipmentIndex); if (PrintID.Value) { text18 = text18 + "EquipmentDef Name: " + ((Object)equipmentDef).name + "\n"; text18 += $"EquipmentIndex: {equipmentDef.equipmentIndex}\n"; } if (PrintTokens.Value) { text18 = text18 + "EquipmentDef NameToken: " + equipmentDef.nameToken + "\n"; text18 = text18 + "EquipmentDef PickupToken: " + equipmentDef.pickupToken + "\n"; text18 = text18 + "EquipmentDef DescriptionToken: " + equipmentDef.descriptionToken + "\n"; text18 = text18 + "EquipmentDef LoreToken: " + equipmentDef.loreToken + "\n"; } if (eliteEquips.ContainsKey(equipmentDef)) { elite = eliteEquips[equipmentDef]; } } if (PrintID.Value) { text18 = text18 + "PickupDef Name: " + pickup.internalName + "\n"; text18 += $"PickupIndex: {pickup.pickupIndex}\n"; } if (PrintGraphics.Value) { string text20 = text18; GameObject displayPrefab = pickup.displayPrefab; text18 = text20 + "PickupDef Prefab Name: " + ((displayPrefab != null) ? ((Object)displayPrefab).name : null) + "\n"; string text21 = text18; Sprite iconSprite3 = pickup.iconSprite; text18 = text21 + "PickupDef Icon Sprite Name: " + ((iconSprite3 != null) ? ((Object)iconSprite3).name : null) + "\n"; string text22 = text18; Texture iconTexture = pickup.iconTexture; text18 = text22 + "PickupDef Icon Texture Name: " + ((iconTexture != null) ? ((Object)iconTexture).name : null) + "\n"; } if ((Object)(object)elite != (Object)null) { BuffDef val27 = ((IEnumerable<BuffDef>)BuffCatalog.buffDefs).FirstOrDefault((Func<BuffDef, bool>)((BuffDef x) => (Object)(object)x.eliteDef == (Object)(object)elite)); if (PrintID.Value) { text18 = text18 + "EliteDef Name: " + ((Object)elite).name + "\n"; text18 += $"EliteIndex: {elite.eliteIndex}\n"; } if (PrintTokens.Value) { text18 = text18 + "EliteDef ModifierToken: " + elite.modifierToken + " (" + Language.GetString(elite.modifierToken) + ")\n"; } if (PrintGraphics.Value) { text18 += $"EliteDef Color: {elite.color}\n"; text18 += $"EliteDef RampIndex: {elite.shaderEliteRampIndex}\n"; } if (Object.op_Implicit((Object)(object)val27)) { if (PrintID.Value) { text18 = text18 + "BuffDef Name: " + ((Object)val27).name + "\n"; text18 += $"BuffIndex: {val27.buffIndex}\n"; } if (PrintGraphics.Value) { text18 = text18 + "BuffDef Icon: " + val27.iconPath + "\n"; string text23 = text18; Sprite iconSprite4 = val27.iconSprite; text18 = text23 + "BuffDef IconName: " + ((iconSprite4 != null) ? ((Object)iconSprite4).name : null) + "\n"; } } int num9 = contentPacks.FindIndex((ContentPack x) => x.eliteDefs.Contains(elite)); if (num9 != -1) { text19 = text19 + GetModName(contentPacks[num9].identifier) + "\nSource Mod (Equipment): "; } } if (PrintID.Value && (int)pickup.itemIndex != -1) { text18 += $"ItemTierDef Name: {ItemTierCatalog.GetItemTierDef(ItemCatalog.GetItemDef(pickup.itemIndex).tier)}\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)pickup.unlockableDef)) { text18 = text18 + "UnlockableDef Name: " + pickup.unlockableDef.cachedName + "\n"; text18 += $"UnlockableIndex: {pickup.unlockableDef.index}\n"; } int num10 = contentPacks.FindIndex(delegate(ContentPack x) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_0022: 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) if ((int)pickup.itemIndex != -1) { return x.itemDefs.Contains(ItemCatalog.GetItemDef(pickup.itemIndex)); } return (int)pickup.equipmentIndex != -1 && x.equipmentDefs.Contains(EquipmentCatalog.GetEquipmentDef(pickup.equipmentIndex)); }); if (num10 != -1) { text19 += GetModName(contentPacks[num10].identifier); } val26.overrideBodyText += FormatInternal(text18, text19, LogbookZoom.Value); return val26; }; <>c.<>9__25_7 = val7; obj7 = (object)val7; } LogBookController.GetPickupTooltipContent += (hook_GetPickupTooltipContent)obj7; object obj8 = <>c.<>9__25_8; if (obj8 == null) { hook_GetMonsterTooltipContent val8 = delegate(orig_GetMonsterTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0030: 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_0138: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) TooltipContent val25 = orig.Invoke(ref entry, b, c); CharacterBody body2 = (CharacterBody)entry.extraData; CharacterMaster master3 = body2.master; if (!string.IsNullOrWhiteSpace(val25.overrideBodyText)) { val25.overrideBodyText += "\n\n"; } string text17 = ""; string sourcemod2 = ""; if (PrintID.Value) { text17 = text17 + "CharacterBody Name: " + ((Object)body2).name + "\n"; text17 += $"BodyIndex: {body2.bodyIndex}\n"; } if (PrintTokens.Value) { text17 = text17 + "CharacterBody NameToken: " + body2.baseNameToken + "\n"; text17 = text17 + "CharacterBody SubtitleToken: " + body2.subtitleNameToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master3)) { text17 = text17 + "CharacterMaster Name: " + ((Object)master3).name + "\n"; text17 += $"MasterIndex: {master3.masterIndex}\n"; } if (PrintGraphics.Value) { text17 = text17 + "CharacterBody Portrait Icon: " + ((Object)body2.portraitIcon).name + "\n"; } int num8 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)((Component)body2).gameObject) && x.bodyPrefabs.Contains(((Component)body2).gameObject)); if (num8 != -1) { sourcemod2 = GetModName(contentPacks[num8].identifier); } val25.overrideBodyText += FormatInternal(text17, sourcemod2, LogbookZoom.Value); return val25; }; <>c.<>9__25_8 = val8; obj8 = (object)val8; } LogBookController.GetMonsterTooltipContent += (hook_GetMonsterTooltipContent)obj8; object obj9 = <>c.<>9__25_9; if (obj9 == null) { hook_GetSurvivorTooltipContent val9 = delegate(orig_GetSurvivorTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_001f: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) TooltipContent val23 = orig.Invoke(ref entry, b, c); CharacterBody val24 = (CharacterBody)entry.extraData; CharacterMaster master2 = val24.master; SurvivorDef surv = SurvivorCatalog.FindSurvivorDefFromBody(((Component)(CharacterBody)entry.extraData).gameObject); if (!string.IsNullOrWhiteSpace(val23.overrideBodyText)) { val23.overrideBodyText += "\n\n"; } string text15 = ""; string text16 = ""; if (PrintID.Value) { text15 = text15 + "SurvivorDef Name: " + surv.cachedName + "\n"; text15 += $"SurvivorIndex: {surv.survivorIndex}\n"; text15 = text15 + "CharacterBody Name: " + ((Object)val24).name + "\n"; text15 += $"BodyIndex: {val24.bodyIndex}\n"; } if (PrintTokens.Value) { text15 = text15 + "CharacterBody NameToken: " + val24.baseNameToken + "\n"; text15 = text15 + "CharacterBody SubtitleToken: " + val24.subtitleNameToken + "\n"; text15 = text15 + "SurvivorDef DescriptionToken: " + surv.descriptionToken + "\n"; text15 = text15 + "SurvivorDef OutroToken: " + surv.outroFlavorToken + "\n"; text15 = text15 + "SurvivorDef OutroFailureToken: " + surv.mainEndingEscapeFailureFlavorToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master2)) { text15 = text15 + "CharacterMaster Name: " + ((Object)master2).name + "\n"; text15 += $"MasterIndex: {master2.masterIndex}\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)surv.unlockableDef)) { text15 = text15 + "UnlockableDef Name: " + surv.unlockableDef.cachedName + "\n"; text15 += $"UnlockableIndex: {surv.unlockableDef.index}\n"; } int num7 = contentPacks.FindIndex((ContentPack x) => x.survivorDefs.Contains(surv)); if (num7 != -1) { text16 += GetModName(contentPacks[num7].identifier); } val23.overrideBodyText += FormatInternal(text15, text16, LogbookZoom.Value); return val23; }; <>c.<>9__25_9 = val9; obj9 = (object)val9; } LogBookController.GetSurvivorTooltipContent += (hook_GetSurvivorTooltipContent)obj9; object obj10 = <>c.<>9__25_10; if (obj10 == null) { hook_GetStageTooltipContent val10 = delegate(orig_GetStageTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0024: 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_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) TooltipContent val22 = orig.Invoke(ref entry, b, c); SceneDef scene = (SceneDef)entry.extraData; if (!string.IsNullOrWhiteSpace(val22.overrideBodyText)) { val22.overrideBodyText += "\n\n"; } string text13 = ""; string text14 = ""; if (PrintID.Value) { text13 = text13 + "SceneDef Name: " + scene.cachedName + "\n"; text13 += $"SceneDefIndex: {scene.sceneDefIndex}\n"; } if (PrintTokens.Value) { text13 = text13 + "SceneDef NameToken: " + scene.nameToken + "\n"; text13 = text13 + "SceneDef SubtitleToken: " + scene.subtitleToken + "\n"; text13 = text13 + "SceneDef LoreToken: " + scene.loreToken + "\n"; } int num6 = contentPacks.FindIndex((ContentPack x) => x.sceneDefs.Contains(scene)); if (num6 != -1) { text14 += GetModName(contentPacks[num6].identifier); } val22.overrideBodyText += FormatInternal(text13, text14, LogbookZoom.Value); return val22; }; <>c.<>9__25_10 = val10; obj10 = (object)val10; } LogBookController.GetStageTooltipContent += (hook_GetStageTooltipContent)obj10; object obj11 = <>c.<>9__25_11; if (obj11 == null) { hook_GetAchievementTooltipContent val11 = delegate(orig_GetAchievementTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_001f: Expected O, but got Unknown //IL_0030: 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_017f: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: 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_0200: Unknown result type (might be due to invalid IL or missing references) TooltipContent val20 = orig.Invoke(ref entry, b, c); AchievementDef val21 = (AchievementDef)entry.extraData; UnlockableDef unlockable = UnlockableCatalog.GetUnlockableDef(val21.unlockableRewardIdentifier); if (!string.IsNullOrWhiteSpace(val20.overrideBodyText)) { val20.overrideBodyText += "\n\n"; } string text10 = ""; string text11 = ""; if (PrintID.Value) { text10 = text10 + "AchievementDef Name: " + val21.identifier + "\n"; text10 += $"AchievementIndex: {val21.index}\n"; } if (PrintTokens.Value) { text10 = text10 + "AchievementDef NameToken: " + val21.nameToken + "\n"; text10 = text10 + "AchievementDef DescriptionToken: " + val21.descriptionToken + "\n"; } if (PrintGraphics.Value) { text10 = text10 + "AchievementDef Icon: " + val21.iconPath + "\n"; string text12 = text10; Sprite achievedIcon = val21.achievedIcon; text10 = text12 + "AchievementDef IconName: " + ((achievedIcon != null) ? ((Object)achievedIcon).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)unlockable)) { text10 = text10 + "UnlockableDef Name: " + unlockable.cachedName + "\n"; text10 += $"UnlockableIndex: {unlockable.index}\n"; } int num5 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)unlockable) && x.unlockableDefs.Contains(unlockable)); if (num5 != -1) { text11 += GetModName(contentPacks[num5].identifier); } val20.overrideBodyText += FormatInternal(text10, text11, LogbookZoom.Value); return val20; }; <>c.<>9__25_11 = val11; obj11 = (object)val11; } LogBookController.GetAchievementTooltipContent += (hook_GetAchievementTooltipContent)obj11; object obj12 = <>c.<>9__25_12; if (obj12 == null) { hook_GetDroneTooltipContent val12 = delegate(orig_GetDroneTooltipContent orig, ref Entry entry, UserProfile b, EntryStatus c) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0024: Expected O, but got Unknown //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) TooltipContent val19 = orig.Invoke(ref entry, b, c); CharacterBody body = (CharacterBody)entry.extraData; CharacterMaster master = body.master; if (!string.IsNullOrWhiteSpace(val19.overrideBodyText)) { val19.overrideBodyText += "\n\n"; } string text9 = ""; string sourcemod = ""; DroneDef droneDef = DroneCatalog.GetDroneDef(DroneCatalog.GetDroneIndexFromBodyIndex(body.bodyIndex)); if (Object.op_Implicit((Object)(object)droneDef) && PrintID.Value) { text9 = text9 + "DroneDef Name: " + ((Object)droneDef).name + "\n"; text9 += $"DroneIndex: {droneDef.droneIndex}\n"; text9 += $"DroneType: {droneDef.droneType}\n"; } if (Object.op_Implicit((Object)(object)droneDef) && PrintTokens.Value) { text9 = text9 + "DroneDef NameToken: " + droneDef.nameToken + "\n"; text9 = text9 + "DroneDef DescriptionToken: " + droneDef.descriptionToken + "\n"; text9 = text9 + "DroneDef PickupToken: " + droneDef.pickupToken + "\n"; text9 = text9 + "DroneDef SkillDescriptionToken: " + droneDef.skillDescriptionToken + "\n"; text9 = text9 + "DroneDef DroneTechCommandToken: " + droneDef.droneTechCommandToken + "\n"; } if (Object.op_Implicit((Object)(object)droneDef) && PrintID.Value) { text9 += $"DroneDef Can Combine: {droneDef.canCombine}\n"; text9 += $"DroneDef Can Drop: {droneDef.canDrop}\n"; text9 += $"DroneDef Can Remote Operate: {droneDef.canRemoteOp}\n"; text9 += $"DroneDef Can Scrap: {droneDef.canScrap}\n"; } if (PrintID.Value) { text9 = text9 + "CharacterBody Name: " + ((Object)body).name + "\n"; text9 += $"BodyIndex: {body.bodyIndex}\n"; } if (PrintTokens.Value) { text9 = text9 + "CharacterBody NameToken: " + body.baseNameToken + "\n"; text9 = text9 + "CharacterBody SubtitleToken: " + body.subtitleNameToken + "\n"; } if (PrintID.Value && Object.op_Implicit((Object)(object)master)) { text9 = text9 + "CharacterMaster Name: " + ((Object)master).name + "\n"; text9 += $"MasterIndex: {master.masterIndex}\n"; } if (PrintGraphics.Value) { text9 = text9 + "CharacterBody Portrait Icon: " + ((Object)body.portraitIcon).name + "\n"; } int num4 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)((Component)body).gameObject) && x.bodyPrefabs.Contains(((Component)body).gameObject)); if (num4 != -1) { sourcemod = GetModName(contentPacks[num4].identifier); } val19.overrideBodyText += FormatInternal(text9, sourcemod, LogbookZoom.Value); return val19; }; <>c.<>9__25_12 = val12; obj12 = (object)val12; } LogBookController.GetDroneTooltipContent += (hook_GetDroneTooltipContent)obj12; if (EnableLobbyTooltips.Value) { object obj13 = <>c.<>9__25_13; if (obj13 == null) { hook_Start val13 = delegate(orig_Start orig, PreGameController self) { //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); foreach (DifficultyDef diff in DifficultyAPI.difficultyDefinitions.Values) { string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(diff.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text += $"DifficultyIndex: {DifficultyAPI.difficultyDefinitions.First((KeyValuePair<DifficultyIndex, DifficultyDef> x) => x.Value == diff).Key}\n"; } if (PrintTokens.Value) { text = text + "DifficultyDef NameToken: " + diff.nameToken + "\n"; text = text + "DifficultyDef DescriptionToken: " + diff.descriptionToken + "\n"; } if (PrintID.Value) { text = text + "DifficultyDef ServerTag: " + diff.serverTag + "\n"; } if (PrintGraphics.Value) { text = text + "DifficultyDef Icon: " + diff.iconPath + "\n"; string text4 = text; Sprite iconSprite = diff.iconSprite; text = text4 + "DifficultyDef IconName: " + ((iconSprite != null) ? ((Object)iconSprite).name : null) + "\n"; } text2 = ((!TryGetGUID(diff, out var guid)) ? "Vanilla" : GetModName(guid)); string temp5 = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[diff.descriptionToken] = (string orig) => orig + temp5; } foreach (SkillFamily allSkillFamily in SkillCatalog.allSkillFamilies) { for (int i = 0; i < allSkillFamily.variants.Length; i++) { Variant val17 = allSkillFamily.variants[i]; SkillDef skill = val17.skillDef; if (!((Object)(object)skill == (Object)null)) { string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(skill.skillDescriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "SkillFamily Name: " + allSkillFamily.name + "\n"; text += $"SkillFamily CatalogIndex: {allSkillFamily.catalogIndex}\n"; text += $"Variant Number: {i}\n"; } if (PrintTokens.Value) { text = text + "SkillDef NameToken: " + skill.skillNameToken + "\n"; text = text + "SkillDef DescriptionToken: " + skill.skillDescriptionToken + "\n"; if (skill.keywordTokens != null) { text = text + "SkillDef KeywordTokens: " + string.Join(", ", skill.keywordTokens) + "\n"; } } if (PrintGraphics.Value) { string text5 = text; Sprite icon = skill.icon; text = text5 + "SkillDef IconName: " + ((icon != null) ? ((Object)icon).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)val17.unlockableDef)) { text = text + "UnlockableDef Name: " + val17.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {val17.unlockableDef.index}\n"; } if (TryGetGUID(skill, out var guid2)) { text2 = GetModName(guid2); } else { int num = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)skill) && x.skillDefs.Contains(skill)); if (num != -1) { if (contentPacks[num].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(skill.skillDescriptionToken)) { continue; } text2 = GetModName(contentPacks[num].identifier); } } string temp4 = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[skill.skillDescriptionToken] = delegate(string orig) { LoadoutPanelController obj16 = Object.FindObjectOfType<LoadoutPanelController>(); bool? obj17; if (obj16 == null) { obj17 = null; } else { GameObject gameObject = ((Component)obj16).gameObject; obj17 = ((gameObject != null) ? new bool?(gameObject.activeSelf) : null); } bool? flag = obj17; return orig + (flag.GetValueOrDefault() ? temp4 : ""); }; } } } SkinDef[] allSkinDefs = SkinCatalog.allSkinDefs; foreach (SkinDef val18 in allSkinDefs) { string text = ""; string text2 = ""; string text3 = ""; if (PrintID.Value) { text = text + "SkinDef Name: " + ((Object)val18).name + "\n"; text += $"SkinIndex: {val18.skinIndex}\n"; } if (PrintTokens.Value) { text = text + "SkinDef NameToken: " + val18.nameToken + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)val18.unlockableDef)) { text = text + "UnlockableDef Name: " + val18.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {val18.unlockableDef.index}\n"; } if (TryGetGUID(val18, out var guid3)) { text2 = GetModName(guid3); } string temp3 = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[val18.nameToken + "_DESC"] = (string _) => temp3; } ArtifactDef[] artifactDefs = ArtifactCatalog.artifactDefs; foreach (ArtifactDef artifact in artifactDefs) { string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(artifact.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "ArtifactDef Name: " + artifact.cachedName + "\n"; text += $"ArtifactIndex: {artifact.artifactIndex}\n"; } if (PrintTokens.Value) { text = text + "ArtifactDef NameToken: " + artifact.nameToken + "\n"; text = text + "ArtifactDef DescriptionToken: " + artifact.descriptionToken + "\n"; } if (PrintGraphics.Value) { string text6 = text; GameObject pickupModelPrefab = artifact.pickupModelPrefab; text = text6 + "ArtifactDef Pickup Name: " + ((pickupModelPrefab != null) ? ((Object)pickupModelPrefab).name : null) + "\n"; string text7 = text; Sprite smallIconSelectedSprite = artifact.smallIconSelectedSprite; text = text7 + "ArtifactDef IconName: " + ((smallIconSelectedSprite != null) ? ((Object)smallIconSelectedSprite).name : null) + "\n"; } if (PrintUnlocks.Value && Object.op_Implicit((Object)(object)artifact.unlockableDef)) { text = text + "UnlockableDef Name: " + artifact.unlockableDef.cachedName + "\n"; text += $"UnlockableIndex: {artifact.unlockableDef.index}\n"; } if (TryGetGUID(artifact, out var guid4)) { text2 = GetModName(guid4); } else { int num2 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)artifact) && x.artifactDefs.Contains(artifact)); if (num2 != -1) { if (contentPacks[num2].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(artifact.descriptionToken)) { continue; } text2 += GetModName(contentPacks[num2].identifier); } } string temp2 = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[artifact.descriptionToken] = (string orig) => orig + temp2; } ExpansionDef[] expansionDefs = ContentManager.expansionDefs; foreach (ExpansionDef exp in expansionDefs) { string text = ""; string text2 = ""; string text3 = (string.IsNullOrWhiteSpace(Language.GetString(exp.descriptionToken)) ? "" : "\n\n"); if (PrintID.Value) { text = text + "ExpansionDef Name: " + ((Object)exp).name + "\n"; text += $"ExpansionIndex: {exp.expansionIndex}\n"; } if (PrintTokens.Value) { text = text + "ExpansionDef NameToken: " + exp.nameToken + "\n"; text = text + "ExpansionDef DescriptionToken: " + exp.descriptionToken + "\n"; } if (PrintGraphics.Value) { string text8 = text; Sprite iconSprite2 = exp.iconSprite; text = text8 + "ExpansionDef IconName: " + ((iconSprite2 != null) ? ((Object)iconSprite2).name : null) + "\n"; } if (PrintUnlocks.Value && (Object)(object)exp.requiredEntitlement != (Object)null) { text = text + "ExpansionDef Required EntitlementDef Name: " + ((Object)exp.requiredEntitlement).name + "\n"; text += $"ExpansionDef Required EntitlementIndex: {exp.requiredEntitlement.entitlementIndex}\n"; text = text + "ExpansionDef Required EntitlementDef NameToken: " + exp.requiredEntitlement.nameToken + "\n"; } if (TryGetGUID(exp, out var guid5)) { text2 = GetModName(guid5); } else { int num3 = contentPacks.FindIndex((ContentPack x) => Object.op_Implicit((Object)(object)exp) && x.expansionDefs.Contains(exp)); if (num3 != -1) { if (contentPacks[num3].identifier == "RoR2.Junk" && DescTokenToExtraData.ContainsKey(exp.descriptionToken)) { continue; } text2 = GetModName(contentPacks[num3].identifier); } } string temp = text3 + FormatInternal(text, text2, LobbyZoom.Value); DescTokenToExtraData[exp.descriptionToken] = (string orig) => orig + temp; } DescTokenToExtraData.Remove(""); }; <>c.<>9__25_13 = val13; obj13 = (object)val13; } PreGameController.Start += (hook_Start)obj13; } if (EnableLobbyTooltips.Value) { object obj14 = <>c.<>9__25_14; if (obj14 == null) { hook_RebuildHeaders val14 = delegate(orig_RebuildHeaders orig, HGHeaderNavigationController self) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); Scene activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name != "lobby")) { Object.FindObjectOfType<CharacterSelectController>().RebuildLocal(false); } }; <>c.<>9__25_14 = val14; obj14 = (object)val14; } HGHeaderNavigationController.RebuildHeaders += (hook_RebuildHeaders)obj14; } if (!EnableLobbyTooltips.Value) { return; } object obj15 = <>c.<>9__25_15; if (obj15 == null) { Manipulator val15 = delegate(ILContext il) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0077: 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) ILCursor val16 = new ILCursor(il); int skin = -1; val16.GotoNext((MoveType)2, new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, ref skin), (Instruction x) => ILPatternMatchingExt.MatchLdfld<SkinDef>(x, "nameToken"), (Instruction x) => ILPatternMatchingExt.MatchLdsfld<string>(x, "Empty") }); val16.Emit(OpCodes.Pop); val16.Emit(OpCodes.Ldloc, skin); val16.EmitDelegate<Func<SkinDef, string>>((Func<SkinDef, string>)((SkinDef def) => def.nameToken + "_DESC")); }; <>c.<>9__25_15 = val15; obj15 = (object)val15; } Row.FromSkin += (Manipulator)obj15; } public static string GetModName(string id) { if (packIdentifierToGUID.ContainsKey(id)) { id = packIdentifierToGUID[id]; } if (Chainloader.PluginInfos.TryGetValue(id, out var value)) { id = value.Metadata.Name + " (GUID: " + value.Metadata.GUID + ")"; } else { PluginInfo val = ((IEnumerable<PluginInfo>)Chainloader.PluginInfos.Values).FirstOrDefault((Func<PluginInfo, bool>)((PluginInfo x) => x.Metadata.Name == id)); if (val != null) { id = val.Metadata.Name + " (GUID: " + val.Metadata.GUID + ")"; } } return id; } public static string[] GetAssembliesFromStackTrace() { return (from frame in new StackTrace().GetFrames() select frame.GetMethod().DeclaringType.Assembly.FullName).ToArray(); } public static bool TryGetGUID(object o, out string guid) { guid = ""; if (!stuffDefToAssemblies.ContainsKey(o)) { return false; } string[] array = stuffDefToAssemblies[o]; foreach (string a in array) { PluginInfo val = ((IEnumerable<PluginInfo>)Chainloader.PluginInfos.Values).FirstOrDefault((Func<PluginInfo, bool>)((PluginInfo x) => ((object)x.Instance)?.GetType()?.Assembly.FullName == a))