Decompiled source of WolfoQualityOfLife v4.2.5
WolfoQoL_Client.dll
Decompiled 13 hours ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.Bell.BellWeapon; using EntityStates.Chef; using EntityStates.Commando; using EntityStates.Croco; using EntityStates.FalseSon; using EntityStates.FalseSonBoss; using EntityStates.Interactables.GoldBeacon; using EntityStates.Loader; using EntityStates.LunarTeleporter; using EntityStates.Mage; using EntityStates.Merc; using EntityStates.Merc.Weapon; using EntityStates.MeridianEvent; using EntityStates.Missions.Arena.NullWard; using EntityStates.Missions.BrotherEncounter; using EntityStates.Missions.GeodeSecretMission; using EntityStates.Missions.Moon; using EntityStates.QuestVolatileBattery; using EntityStates.Scrapper; using EntityStates.ShrineHalcyonite; using EntityStates.Toolbot; using EntityStates.VoidRaidCrab; using EntityStates.VoidSurvivor; using EntityStates.VoidSurvivor.Weapon; using HG; using IL.EntityStates; using IL.EntityStates.Bell.BellWeapon; using IL.EntityStates.Merc; using IL.EntityStates.Merc.Weapon; using IL.RoR2; using IL.RoR2.UI; using JetBrains.Annotations; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On; using On.EntityStates; using On.EntityStates.Chef; using On.EntityStates.Commando; using On.EntityStates.Croco; using On.EntityStates.FalseSon; using On.EntityStates.FalseSonBoss; using On.EntityStates.Interactables.GoldBeacon; using On.EntityStates.Loader; using On.EntityStates.LunarTeleporter; using On.EntityStates.Mage; using On.EntityStates.Merc; using On.EntityStates.Merc.Weapon; using On.EntityStates.Missions.Arena.NullWard; using On.EntityStates.Missions.BrotherEncounter; using On.EntityStates.Missions.GeodeSecretMission; using On.EntityStates.Missions.Moon; using On.EntityStates.QuestVolatileBattery; using On.EntityStates.Scrapper; using On.EntityStates.ShrineHalcyonite; using On.EntityStates.Toolbot; using On.EntityStates.VoidRaidCrab; using On.EntityStates.VoidSurvivor; using On.EntityStates.VoidSurvivor.Weapon; using On.RoR2; using On.RoR2.UI; using On.RoR2.UI.LogBook; using On.RoR2.UI.MainMenu; using R2API; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Artifacts; using RoR2.ContentManagement; using RoR2.ExpansionManagement; using RoR2.Hologram; using RoR2.Items; using RoR2.Navigation; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.Stats; using RoR2.UI; using RoR2.UI.LogBook; using RoR2.UI.MainMenu; using TMPro; using ThreeEyedGames; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.UI; using WolfoFixes; using WolfoQoL_Client.DeathScreen; using WolfoQoL_Client.Reminders; using WolfoQoL_Client.Skins; using WolfoQoL_Client.Text; [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("WolfoQoL_Client")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+b9c8280ffec4d1eebdf86179ba07c3462841e051")] [assembly: AssemblyProduct("WolfoQoL_Client")] [assembly: AssemblyTitle("WolfoQoL_Client")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: UnverifiableCode] [module: UnverifiableCode] 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 WolfoQoL_Client { public static class Assets { [CompilerGenerated] private static class <>O { public static hook_SetFolders <0>__SetFolders; } public static AssetBundle Bundle; public static PluginInfo PluginInfo; public static string Folder = "QualityOfLife\\"; internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location); internal static void Init(PluginInfo info) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Expected O, but got Unknown PluginInfo = info; if (!Directory.Exists(GetPathToFile(Folder))) { Folder = "plugins\\" + Folder; } if (Directory.Exists(GetPathToFile(Folder + "AssetBundles"))) { Bundle = AssetBundle.LoadFromFile(GetPathToFile(Folder + "AssetBundles", "wolfoqualityoflife")); } else { Debug.LogError((object)"COULD NOT FIND ASSETBUNDLES FOLDER"); } if (WConfig.cfgTestDisableMod.Value) { return; } if (Directory.Exists(GetPathToFile(Folder + "Languages"))) { object obj = <>O.<0>__SetFolders; if (obj == null) { hook_SetFolders val = SetFolders; <>O.<0>__SetFolders = val; obj = (object)val; } Language.SetFolders += (hook_SetFolders)obj; } else { Debug.LogError((object)"COULD NOT FIND LANGUAGES FOLDER"); } } private static void SetFolders(orig_SetFolders orig, Language self, IEnumerable<string> newFolders) { IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(GetPathToFile(Folder + "Languages")), self.name); orig.Invoke(self, newFolders.Union(second)); } internal static string GetPathToFile(string folderName) { return Path.Combine(assemblyDir, folderName); } internal static string GetPathToFile(string folderName, string fileName) { return Path.Combine(assemblyDir, folderName, fileName); } } public class ClientChecks { [CompilerGenerated] private static class <>O { public static hook_Start <0>__AddClientListeners; public static hook_OnDeserialize <1>__ClientCheck_Multishop; public static hook_OnEnter <2>__ScrapperBaseState_OnEnter; public static Manipulator <3>__ClientCheck_Purchase; public static Manipulator <4>__Inventory_OnDeserialize; public static hook_OnDisable <5>__EquipmentDrone_ForceMessage; } public static void Start() { //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_001c: Expected O, but got Unknown //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_003d: Expected O, but got Unknown //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_005e: Expected O, but got Unknown //IL_0074: 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_007f: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown object obj = <>O.<0>__AddClientListeners; if (obj == null) { hook_Start val = AddClientListeners; <>O.<0>__AddClientListeners = val; obj = (object)val; } PlayerCharacterMasterController.Start += (hook_Start)obj; object obj2 = <>O.<1>__ClientCheck_Multishop; if (obj2 == null) { hook_OnDeserialize val2 = ClientCheck_Multishop; <>O.<1>__ClientCheck_Multishop = val2; obj2 = (object)val2; } MultiShopController.OnDeserialize += (hook_OnDeserialize)obj2; object obj3 = <>O.<2>__ScrapperBaseState_OnEnter; if (obj3 == null) { hook_OnEnter val3 = ScrapperBaseState_OnEnter; <>O.<2>__ScrapperBaseState_OnEnter = val3; obj3 = (object)val3; } ScrapperBaseState.OnEnter += (hook_OnEnter)obj3; object obj4 = <>O.<3>__ClientCheck_Purchase; if (obj4 == null) { Manipulator val4 = ClientCheck_Purchase; <>O.<3>__ClientCheck_Purchase = val4; obj4 = (object)val4; } PurchaseInteraction.OnDeserialize += (Manipulator)obj4; object obj5 = <>O.<4>__Inventory_OnDeserialize; if (obj5 == null) { Manipulator val5 = Inventory_OnDeserialize; <>O.<4>__Inventory_OnDeserialize = val5; obj5 = (object)val5; } Inventory.OnDeserialize += (Manipulator)obj5; object obj6 = <>O.<5>__EquipmentDrone_ForceMessage; if (obj6 == null) { hook_OnDisable val6 = EquipmentDrone_ForceMessage; <>O.<5>__EquipmentDrone_ForceMessage = val6; obj6 = (object)val6; } SummonMasterBehavior.OnDisable += (hook_OnDisable)obj6; } private static void EquipmentDrone_ForceMessage(orig_OnDisable orig, SummonMasterBehavior self) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Invalid comparison between Unknown and I4 orig.Invoke(self); if (self.callOnEquipmentSpentOnPurchase) { PurchaseInteraction component = ((Component)self).GetComponent<PurchaseInteraction>(); if (Object.op_Implicit((Object)(object)component) && (int)component.costType == 7) { ItemLoss_ClientListener.forceEquip = true; ItemLoss_ClientListener.token = "ITEM_LOSS_GENERIC"; ItemLoss_ClientListener.TryMessage(); } } } private static void ClientCheck_Purchase(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStfld(x, "RoR2.PurchaseInteraction", "available") }); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStfld(x, "RoR2.PurchaseInteraction", "available") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<bool, PurchaseInteraction, bool>>((Func<bool, PurchaseInteraction, bool>)delegate(bool t, PurchaseInteraction pur) { if (!t) { CheckInteractable_ClientOnly(pur, isMulti: false); } return t; }); } else { Debug.LogWarning((object)"IL Failed : PurchaseInteraction_OnDeserialize"); } } private static void Inventory_OnDeserialize(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.Inventory", "itemStacks"), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "RoR2.NetworkExtensions", "ReadItemStacks") })) { val.EmitDelegate<Func<Inventory, Inventory>>((Func<Inventory, Inventory>)delegate(Inventory inventory) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) ItemLoss_ClientListener itemLoss_ClientListener2 = default(ItemLoss_ClientListener); if (((Component)inventory).TryGetComponent<ItemLoss_ClientListener>(ref itemLoss_ClientListener2)) { Array.Copy(inventory.itemStacks, itemLoss_ClientListener2.prevItems, itemLoss_ClientListener2.prevItems.Length); itemLoss_ClientListener2.prevEquip = inventory.currentEquipmentIndex; } return inventory; }); } else { Debug.LogWarning((object)"IL Failed : Inventory_OnDeserialize"); } val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStfld(x, "RoR2.Inventory", "equipmentDisabled") }); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0) })) { val.EmitDelegate<Func<Inventory, Inventory>>((Func<Inventory, Inventory>)delegate(Inventory inventory) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) ItemLoss_ClientListener itemLoss_ClientListener = default(ItemLoss_ClientListener); if (((Component)inventory).TryGetComponent<ItemLoss_ClientListener>(ref itemLoss_ClientListener)) { itemLoss_ClientListener.prevEquip = inventory.currentEquipmentIndex; } return inventory; }); } else { Debug.LogWarning((object)"IL Failed : Inventory_OnDeserialize"); } } private static void ScrapperBaseState_OnEnter(orig_OnEnter orig, ScrapperBaseState self) { orig.Invoke(self); if (!NetworkServer.active && self is WaitToBeginScrapping) { ItemLoss_ClientListener.isScrapper = true; ItemLoss_ClientListener.TryMessage(); } } public static void AddClientListeners(orig_Start orig, PlayerCharacterMasterController self) { orig.Invoke(self); if (!WolfoMain.HostHasMod) { ((Component)self).gameObject.AddComponent<KillerInfo_ClientListener>(); ((Component)self).gameObject.AddComponent<ItemLoss_ClientListener>(); } } private static void ClientCheck_Multishop(orig_OnDeserialize orig, MultiShopController self, NetworkReader reader, bool initialState) { bool available = self.available; orig.Invoke(self, reader, initialState); if (available && !self.available && ((Object)self).name.StartsWith("FreeChestMultiShop")) { CheckInteractable_ClientOnly(null, isMulti: true); } } public static void CheckInteractable_ClientOnly(PurchaseInteraction purchase, bool isMulti) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004b: 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_008a: Expected I4, but got Unknown if (isMulti) { if (Object.op_Implicit((Object)(object)TreasureReminder.instance.Objective_FreeChest)) { TreasureReminder.instance.DeductFreeChestCount(); } return; } if (purchase.saleStarCompatible) { ItemLoss_ClientListener.TrySaleStar(purchase); } CostTypeIndex costType = purchase.costType; CostTypeIndex val = costType; switch ((int)val) { case 4: case 5: case 6: case 10: if (((Object)((Component)purchase).gameObject).name.StartsWith("LunarCauldron")) { ItemLoss_ClientListener.token = "ITEM_LOSS_CAULDRON"; } else { ItemLoss_ClientListener.token = "ITEM_LOSS_GENERIC"; } ItemLoss_ClientListener.TryMessage(); break; case 7: ItemLoss_ClientListener.checkEquip = true; ItemLoss_ClientListener.token = "ITEM_LOSS_GENERIC"; ItemLoss_ClientListener.TryMessage(); break; case 9: ItemLoss_ClientListener.checkEquip = true; ItemLoss_ClientListener.token = "ITEM_LOSS_CLEANSING"; ItemLoss_ClientListener.TryMessage(); break; case 12: if (Object.op_Implicit((Object)(object)TreasureReminder.instance)) { TreasureReminder.instance.DeductLockboxCount(); } break; case 13: if (Object.op_Implicit((Object)(object)TreasureReminder.instance)) { TreasureReminder.instance.DeductLockboxVoidCount(); } break; case 0: if (Object.op_Implicit((Object)(object)((Component)purchase).gameObject.GetComponent<ShrineBossBehavior>())) { ShrineBoss_IconStack.AddShrineIcon_Static(); } break; case 1: case 2: case 3: case 8: case 11: break; } } } public class KillerInfo_ClientListener : MonoBehaviour { public GameObject playerBodyObject; public CharacterBody charBody; public CharacterMaster playerMaster; public UnityAction deathEvent; public bool killed = false; private DamageDealtMessage latestDmg; public void OnEnable() { //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown if (WolfoMain.HostHasMod) { Debug.Log((object)"Host has mod, removing Client Workaround : KillerInfo_ClientListener"); Object.Destroy((Object)(object)this); return; } PlayerCharacterMasterController component = ((Component)this).GetComponent<PlayerCharacterMasterController>(); if (!((Object)(object)component == (Object)null)) { GlobalEventManager.onClientDamageNotified += onClientDamageNotified; playerMaster = component.master; playerMaster.onBodyStart += Master_onBodyStart; if (deathEvent == null) { deathEvent = new UnityAction(OnBodyDeath); playerMaster.onBodyDeath.AddListener(deathEvent); } } } public void OnDisable() { if (deathEvent != null) { playerMaster.onBodyDeath.RemoveListener(deathEvent); } playerMaster.onBodyStart -= Master_onBodyStart; GlobalEventManager.onClientDamageNotified -= onClientDamageNotified; } public void SendMessage() { //IL_00f5: 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) if (latestDmg == null) { return; } if (charBody.healthComponent.alive) { Debug.Log((object)("KillerInfo_ClientListener | Sending message but is Alive?" + (object)charBody)); } if (killed) { Debug.Log((object)("KillerInfo_ClientListener | Already sent message, how are they dying again?" + (object)charBody)); return; } killed = true; string bestBodyName = Util.GetBestBodyName(latestDmg.attacker); CharacterMaster attackerMaster = null; CharacterBody val = null; if (Object.op_Implicit((Object)(object)latestDmg.attacker)) { val = latestDmg.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)val)) { attackerMaster = val.master; } } DeathMessage.DeathAndKillerInventoryMessage(latestDmg.damage, charBody, val, attackerMaster, latestDmg.damageType, latestDmg.damageColorIndex, latestDmg.delayedHit, sendOverNetwork: false); } public IEnumerator Delay_DeathMessage() { yield return (object)new WaitForSeconds(0.3f); SendMessage(); latestDmg = null; } private void Master_onBodyStart(CharacterBody obj) { killed = false; playerBodyObject = ((Component)obj).gameObject; charBody = obj; } private void OnBodyDeath() { ((MonoBehaviour)this).StartCoroutine(Delay_DeathMessage()); if (WConfig.cfgTestClient.Value) { SendMessage(); killed = false; } } private void onClientDamageNotified(DamageDealtMessage dmg) { if ((Object)(object)dmg.victim == (Object)(object)playerBodyObject) { latestDmg = dmg; } } } public class ItemLoss_ClientListener : MonoBehaviour { public static ItemLoss_ClientListener latest; public static bool isScrapper = false; public static bool forceEquip = false; public static bool checkEquip = false; public static bool checkSaleStar = false; public static string token = "ITEM_LOSS_GENERIC"; public PlayerCharacterMasterController playerMaster; public Inventory inventory; public int[] prevItems = ItemCatalog.RequestItemStackArray(); public EquipmentIndex prevEquip = (EquipmentIndex)(-1); public void OnEnable() { if (WolfoMain.HostHasMod) { Debug.Log((object)"Host has mod, removing Client Workaround : ItemLoss_ClientListener"); Object.Destroy((Object)(object)this); } else { playerMaster = ((Component)this).GetComponent<PlayerCharacterMasterController>(); inventory = playerMaster.master.inventory; inventory.onInventoryChanged += Inventory_onInventoryChanged; } } public void OnDisable() { if (Object.op_Implicit((Object)(object)inventory)) { inventory.onInventoryChanged -= Inventory_onInventoryChanged; } } private void Inventory_onInventoryChanged() { latest = this; if (forceEquip) { TryMessage(); } } public static void TryMessage() { if ((Object)(object)latest != (Object)null) { latest.TryMessageInstance(); } } public static void TrySaleStar(PurchaseInteraction purchase) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected I4, but got Unknown if (WConfig.cfgMessagesSaleStar.Value && (Object)(object)latest != (Object)null) { int num = (int)Items.LowerPricedChests.itemIndex; int num2 = latest.prevItems[num]; int num3 = latest.inventory.itemStacks[num]; Debug.Log((object)("SaleStar " + num2 + " " + num3)); if (num2 > 0 && num3 == 0) { latest.prevItems[num] = 0; Chat.AddMessage((ChatMessageBase)(object)new SaleStarMessage { interactableToken = purchase.displayNameToken, subjectNetworkUserObject = latest.playerMaster.networkUserObject }); } } } public void TryMessageInstance() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Invalid comparison between Unknown and I4 //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Invalid comparison between Unknown and I4 //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) bool flag = false; if (isScrapper) { flag = ItemScrapMessage(inventory.itemStacks); } else if (!forceEquip) { flag = ((!checkEquip || (int)inventory.currentEquipmentIndex != -1) ? ItemMessage(inventory.itemStacks) : EquipmentMessage()); } else { if ((int)prevEquip == -1) { prevEquip = inventory.currentEquipmentIndex; } flag = EquipmentMessage(); } if (!flag) { Debug.Log((object)"Attempted message with no differences."); } forceEquip = false; checkEquip = false; isScrapper = false; } public bool ItemScrapMessage(int[] now) { //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) if (!WConfig.cfgMessageScrap.Value) { return false; } bool flag = false; int num = -1; int itemCount = -1; for (int i = 0; i < prevItems.Length; i++) { if (prevItems[i] > now[i]) { flag = true; num = i; itemCount = prevItems[i] - now[i]; break; } } if (flag) { ItemLoss_Host.ItemLossMessage obj = new ItemLoss_Host.ItemLossMessage { baseToken = "ITEM_LOSS_SCRAP" }; ((SubjectChatMessage)obj).subjectAsNetworkUser = playerMaster.networkUser; obj.pickupIndexOnlyOneItem = PickupCatalog.FindPickupIndex((ItemIndex)num); obj.itemCount = itemCount; Chat.AddMessage((ChatMessageBase)(object)obj); } Array.Copy(inventory.itemStacks, prevItems, prevItems.Length); return flag; } public bool ItemMessage(int[] now) { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) int[] array = ItemCatalog.RequestItemStackArray(); int num = 0; int num2 = -1; for (int i = 0; i < prevItems.Length; i++) { if (prevItems[i] > now[i]) { num++; num2 = i; array[i] = prevItems[i] - now[i]; } } if (num == 1) { if (token != "ITEM_LOSS_CAULDRON") { ItemDef itemDef = ItemCatalog.GetItemDef((ItemIndex)num2); if (itemDef.ContainsTag((ItemTag)10)) { token = "ITEM_LOSS_USED"; } } ItemLoss_Host.ItemLossMessage obj = new ItemLoss_Host.ItemLossMessage { baseToken = token }; ((SubjectChatMessage)obj).subjectAsNetworkUser = playerMaster.networkUser; obj.pickupIndexOnlyOneItem = PickupCatalog.FindPickupIndex((ItemIndex)num2); Chat.AddMessage((ChatMessageBase)(object)obj); } else if (num > 0) { ItemLoss_Host.ItemLossMessage obj2 = new ItemLoss_Host.ItemLossMessage { baseToken = token }; ((SubjectChatMessage)obj2).subjectAsNetworkUser = playerMaster.networkUser; obj2.itemStacks = array; Chat.AddMessage((ChatMessageBase)(object)obj2); } Array.Copy(inventory.itemStacks, prevItems, prevItems.Length); return num > 0; } public bool EquipmentMessage() { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0028: 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_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) bool result = false; if ((int)prevEquip != -1) { result = true; ItemLoss_Host.ItemLossMessage obj = new ItemLoss_Host.ItemLossMessage { baseToken = token, pickupIndexOnlyOneItem = PickupCatalog.FindPickupIndex(prevEquip) }; ((SubjectChatMessage)obj).subjectAsNetworkUser = playerMaster.networkUser; Chat.AddMessage((ChatMessageBase)(object)obj); } else { Debug.LogWarning((object)"EquipmentMessage but without Equipment?"); } prevEquip = inventory.currentEquipmentIndex; return result; } } public class Eclipse { public static void Start() { DifficultyColors(); } private static DifficultyIndex EclipseRun_GetEclipseDifficultyIndex(orig_GetEclipseDifficultyIndex orig, int eclipseLevel) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: 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) DifficultyIndex val = orig.Invoke(eclipseLevel); Debug.Log((object)("EclipseLevel" + ((object)(DifficultyIndex)(ref val)).ToString())); return orig.Invoke(eclipseLevel); } private static void EclipseRun_OverrideRuleChoices(orig_OverrideRuleChoices orig, EclipseRun self, RuleChoiceMask mustInclude, RuleChoiceMask mustExclude, ulong runSeed) { Debug.Log((object)"EclipseRuleoverride"); orig.Invoke(self, mustInclude, mustExclude, runSeed); for (int i = 1; i > 17; i++) { RuleChoiceDef val = RuleCatalog.FindChoiceDef($"Difficulty.Eclipse{i}"); if (((SerializableBitArray)mustInclude)[val.globalIndex]) { PreGameController.instance.ruleBookBuffer.ApplyChoice(val); break; } ((SerializableBitArray)mustInclude)[val.globalIndex] = true; ((SerializableBitArray)mustExclude)[val.globalIndex] = false; } } private static void DifficultyColors() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: 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_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_004a: 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_0057: 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_0064: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0073: 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_0081: Unknown result type (might be due to invalid IL or missing references) Color color = default(Color); ((Color)(ref color))..ctor(0.2f, 0.22f, 0.4f, 1f); DifficultyCatalog.difficultyDefs[3].color = color; DifficultyCatalog.difficultyDefs[4].color = color; DifficultyCatalog.difficultyDefs[5].color = color; DifficultyCatalog.difficultyDefs[6].color = color; DifficultyCatalog.difficultyDefs[7].color = color; DifficultyCatalog.difficultyDefs[8].color = color; DifficultyCatalog.difficultyDefs[9].color = color; DifficultyCatalog.difficultyDefs[10].color = color; DifficultyCatalog.difficultyDefs[3].serverTag = "e1"; DifficultyCatalog.difficultyDefs[4].serverTag = "e2"; DifficultyCatalog.difficultyDefs[5].serverTag = "e3"; DifficultyCatalog.difficultyDefs[6].serverTag = "e4"; DifficultyCatalog.difficultyDefs[7].serverTag = "e5"; DifficultyCatalog.difficultyDefs[8].serverTag = "e6"; DifficultyCatalog.difficultyDefs[9].serverTag = "e7"; DifficultyCatalog.difficultyDefs[10].serverTag = "e8"; } } public class ItemOrbPhysicsChanger : MonoBehaviour { public Rigidbody body; public void Awake() { body = ((Component)this).GetComponent<Rigidbody>(); } public void FixedUpdate() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)body) && body.velocity.y < -30f) { ((Component)this).gameObject.layer = 8; Object.Destroy((Object)(object)this); } } } public class GameplayQualityOfLife { [CompilerGenerated] private static class <>O { public static hook_FixedUpdate <0>__LunarTeleporterBaseState_FixedUpdate; public static hook_TryZoneStart <1>__TeleportItems; } public static void Start() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0071: 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_007c: Expected O, but got Unknown if (WConfig.cfgGameplay.Value) { PrismaticTrial.AllowPrismaticTrials(); object obj = <>O.<0>__LunarTeleporterBaseState_FixedUpdate; if (obj == null) { hook_FixedUpdate val = LunarTeleporterBaseState_FixedUpdate; <>O.<0>__LunarTeleporterBaseState_FixedUpdate = val; obj = (object)val; } LunarTeleporterBaseState.FixedUpdate += (hook_FixedUpdate)obj; } if (WConfig.ItemsTeleport.Value) { GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/PickupDroplet.prefab").WaitForCompletion(); val2.AddComponent<ItemOrbPhysicsChanger>(); object obj2 = <>O.<1>__TeleportItems; if (obj2 == null) { hook_TryZoneStart val3 = TeleportItems; <>O.<1>__TeleportItems = val3; obj2 = (object)val3; } MapZone.TryZoneStart += (hook_TryZoneStart)obj2; } GeyserLock.Start(); } public static bool IsItem(Collider collider) { if (Object.op_Implicit((Object)(object)((Component)collider).GetComponent<PickupDropletController>())) { return true; } if (Object.op_Implicit((Object)(object)((Component)collider).GetComponent<GenericPickupController>())) { return true; } if (Object.op_Implicit((Object)(object)((Component)collider).GetComponent<PickupPickerController>())) { return true; } return false; } public static void TeleportItems(orig_TryZoneStart orig, MapZone self, Collider collider) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Invalid comparison between Unknown and I4 //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: 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) //IL_0102: Expected O, but got Unknown //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Expected O, but got Unknown //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, collider); if ((int)self.zoneType != 0 || !IsItem(collider)) { return; } GameObject teleportEffectPrefab = Run.instance.GetTeleportEffectPrefab(((Component)collider).gameObject); InfiniteTowerRun component = ((Component)Run.instance).GetComponent<InfiniteTowerRun>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.safeWardController)) { Debug.Log((object)"it tp item back"); TeleportHelper.TeleportGameObject(((Component)collider).gameObject, ((Component)component.safeWardController).transform.position); if (Object.op_Implicit((Object)(object)teleportEffectPrefab)) { EffectManager.SimpleEffect(teleportEffectPrefab, ((Component)component.safeWardController).transform.position, Quaternion.identity, true); } return; } SpawnCard val = ScriptableObject.CreateInstance<SpawnCard>(); val.hullSize = (HullClassification)0; val.nodeGraphType = (GraphType)0; val.prefab = LegacyResourcesAPI.Load<GameObject>("SpawnCards/HelperPrefab"); DirectorPlacementRule val2 = new DirectorPlacementRule { placementMode = (PlacementMode)3, position = ((Component)collider).transform.position }; GameObject val3 = DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(val, val2, RoR2Application.rng)); if (Object.op_Implicit((Object)(object)val3)) { TeleportHelper.TeleportGameObject(((Component)collider).gameObject, val3.transform.position); if (Object.op_Implicit((Object)(object)teleportEffectPrefab)) { EffectManager.SimpleEffect(teleportEffectPrefab, val3.transform.position, Quaternion.identity, true); } Object.Destroy((Object)(object)val3); } Object.Destroy((Object)(object)val); } public static void LunarTeleporterBaseState_FixedUpdate(orig_FixedUpdate orig, LunarTeleporterBaseState self) { //IL_0062: Unknown result type (might be due to invalid IL or missing references) ((EntityState)self).fixedAge = ((EntityState)self).fixedAge + ((EntityState)self).GetDeltaTime(); if (NetworkServer.active && Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { if (TeleporterInteraction.instance.isCharging || TeleporterInteraction.instance.isInFinalSequence) { self.genericInteraction.Networkinteractability = (Interactability)0; } else { self.genericInteraction.Networkinteractability = self.preferredInteractability; } } } } public class GeyserLock { [CompilerGenerated] private static class <>O { public static Manipulator <0>__GenericCharacterMain_ProcessJump_bool; public static hook_OnEnter <1>__DodgeState_OnEnter; public static hook_OnEnter <2>__SlideState_OnEnter; public static hook_OnEnter <3>__BaseChargeFist_OnEnter; public static hook_OnExit <4>__Assaulter2_OnExit; public static hook_OnExit <5>__FocusedAssaultDash_OnExit; public static hook_OnExit <6>__EvisDash_OnExit; public static hook_OnEnter <7>__FlyUpState_OnEnter; public static hook_OnEnter <8>__VoidBlinkBase_OnEnter; public static hook_OnEnter <9>__OilSpillBase_OnEnter; public static hook_OnEnter <10>__StepBrothers_OnEnter; public static hook_OnEnter <11>__GhostUtilitySkillState_OnEnter; } public static void Start() { //IL_0028: 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_0033: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_006a: 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_0075: Expected O, but got Unknown //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Expected O, but got Unknown //IL_00ac: 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_00b7: Expected O, but got Unknown //IL_00cd: 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_00d8: Expected O, but got Unknown //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Expected O, but got Unknown //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Expected O, but got Unknown //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Expected O, but got Unknown if (WConfig.CancelGeyserLock_Skill.Value) { object obj = <>O.<0>__GenericCharacterMain_ProcessJump_bool; if (obj == null) { Manipulator val = GenericCharacterMain_ProcessJump_bool; <>O.<0>__GenericCharacterMain_ProcessJump_bool = val; obj = (object)val; } GenericCharacterMain.ProcessJump_bool += (Manipulator)obj; object obj2 = <>O.<1>__DodgeState_OnEnter; if (obj2 == null) { hook_OnEnter val2 = DodgeState_OnEnter; <>O.<1>__DodgeState_OnEnter = val2; obj2 = (object)val2; } DodgeState.OnEnter += (hook_OnEnter)obj2; object obj3 = <>O.<2>__SlideState_OnEnter; if (obj3 == null) { hook_OnEnter val3 = SlideState_OnEnter; <>O.<2>__SlideState_OnEnter = val3; obj3 = (object)val3; } SlideState.OnEnter += (hook_OnEnter)obj3; object obj4 = <>O.<3>__BaseChargeFist_OnEnter; if (obj4 == null) { hook_OnEnter val4 = BaseChargeFist_OnEnter; <>O.<3>__BaseChargeFist_OnEnter = val4; obj4 = (object)val4; } BaseChargeFist.OnEnter += (hook_OnEnter)obj4; object obj5 = <>O.<4>__Assaulter2_OnExit; if (obj5 == null) { hook_OnExit val5 = Assaulter2_OnExit; <>O.<4>__Assaulter2_OnExit = val5; obj5 = (object)val5; } Assaulter2.OnExit += (hook_OnExit)obj5; object obj6 = <>O.<5>__FocusedAssaultDash_OnExit; if (obj6 == null) { hook_OnExit val6 = FocusedAssaultDash_OnExit; <>O.<5>__FocusedAssaultDash_OnExit = val6; obj6 = (object)val6; } FocusedAssaultDash.OnExit += (hook_OnExit)obj6; object obj7 = <>O.<6>__EvisDash_OnExit; if (obj7 == null) { hook_OnExit val7 = EvisDash_OnExit; <>O.<6>__EvisDash_OnExit = val7; obj7 = (object)val7; } EvisDash.OnExit += (hook_OnExit)obj7; object obj8 = <>O.<7>__FlyUpState_OnEnter; if (obj8 == null) { hook_OnEnter val8 = FlyUpState_OnEnter; <>O.<7>__FlyUpState_OnEnter = val8; obj8 = (object)val8; } FlyUpState.OnEnter += (hook_OnEnter)obj8; object obj9 = <>O.<8>__VoidBlinkBase_OnEnter; if (obj9 == null) { hook_OnEnter val9 = VoidBlinkBase_OnEnter; <>O.<8>__VoidBlinkBase_OnEnter = val9; obj9 = (object)val9; } VoidBlinkBase.OnEnter += (hook_OnEnter)obj9; object obj10 = <>O.<9>__OilSpillBase_OnEnter; if (obj10 == null) { hook_OnEnter val10 = OilSpillBase_OnEnter; <>O.<9>__OilSpillBase_OnEnter = val10; obj10 = (object)val10; } OilSpillBase.OnEnter += (hook_OnEnter)obj10; object obj11 = <>O.<10>__StepBrothers_OnEnter; if (obj11 == null) { hook_OnEnter val11 = StepBrothers_OnEnter; <>O.<10>__StepBrothers_OnEnter = val11; obj11 = (object)val11; } StepBrothers.OnEnter += (hook_OnEnter)obj11; object obj12 = <>O.<11>__GhostUtilitySkillState_OnEnter; if (obj12 == null) { hook_OnEnter val12 = GhostUtilitySkillState_OnEnter; <>O.<11>__GhostUtilitySkillState_OnEnter = val12; obj12 = (object)val12; } GhostUtilitySkillState.OnEnter += (hook_OnEnter)obj12; } } private static void EvisDash_OnExit(orig_OnExit orig, EvisDash self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void Assaulter2_OnExit(orig_OnExit orig, Assaulter2 self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void FocusedAssaultDash_OnExit(orig_OnExit orig, FocusedAssaultDash self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void StepBrothers_OnEnter(orig_OnEnter orig, StepBrothers self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void OilSpillBase_OnEnter(orig_OnEnter orig, OilSpillBase self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void VoidBlinkBase_OnEnter(orig_OnEnter orig, VoidBlinkBase self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void BaseChargeFist_OnEnter(orig_OnEnter orig, BaseChargeFist self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void FlyUpState_OnEnter(orig_OnEnter orig, FlyUpState self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void DodgeState_OnEnter(orig_OnEnter orig, DodgeState self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void GhostUtilitySkillState_OnEnter(orig_OnEnter orig, GhostUtilitySkillState self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void SlideState_OnEnter(orig_OnEnter orig, SlideState self) { orig.Invoke(self); ((EntityState)self).characterMotor.disableAirControlUntilCollision = false; } private static void GenericCharacterMain_ProcessJump_bool(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.CharacterBody", "onJump") })) { val.EmitDelegate<Func<CharacterBody, CharacterBody>>((Func<CharacterBody, CharacterBody>)delegate(CharacterBody body) { if (WConfig.CancelGeyserLock_Jump.Value) { body.characterMotor.disableAirControlUntilCollision = false; } return body; }); } else { Debug.LogWarning((object)"IL Failed: PlayerPingsIL"); } } public static void AllUtilitiesRemoveGeyserLock(orig_OnSkillActivated orig, CharacterBody self, GenericSkill skill) { orig.Invoke(self, skill); if ((Object)(object)self.skillLocator.utility == (Object)(object)skill && Object.op_Implicit((Object)(object)self.characterMotor)) { self.characterMotor.disableAirControlUntilCollision = false; } } } public class PrismaticTrial { [CompilerGenerated] private static class <>O { public static hook_OverrideRuleChoices <0>__WeeklyRun_OverrideRuleChoices; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnEnable <>9__0_0; public static hook_GetCurrentSeedCycle <>9__0_1; public static hook_ClientSubmitLeaderboardScore <>9__0_2; public static hook_OnEnable <>9__0_3; internal void <AllowPrismaticTrials>b__0_0(orig_OnEnable orig, WeeklyRunScreenController self) { Object.Destroy((Object)(object)((Component)((Component)self.leaderboard).gameObject.transform.parent.parent).gameObject); ((Behaviour)self).enabled = false; } internal uint <AllowPrismaticTrials>b__0_1(orig_GetCurrentSeedCycle orig) { return (uint)((double)WeeklyRun.now.Ticks * WolfoMain.random.NextDouble()); } internal void <AllowPrismaticTrials>b__0_2(orig_ClientSubmitLeaderboardScore orig, WeeklyRun self, RunReport runReport) { } internal void <AllowPrismaticTrials>b__0_3(orig_OnEnable orig, DisableIfGameModded self) { } } public static void AllowPrismaticTrials() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown //IL_003a: 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_0045: Expected O, but got Unknown //IL_005f: 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_006a: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00a5: 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 object obj = <>c.<>9__0_0; if (obj == null) { hook_OnEnable val = delegate(orig_OnEnable orig, WeeklyRunScreenController self) { Object.Destroy((Object)(object)((Component)((Component)self.leaderboard).gameObject.transform.parent.parent).gameObject); ((Behaviour)self).enabled = false; }; <>c.<>9__0_0 = val; obj = (object)val; } WeeklyRunScreenController.OnEnable += (hook_OnEnable)obj; object obj2 = <>c.<>9__0_1; if (obj2 == null) { hook_GetCurrentSeedCycle val2 = (orig_GetCurrentSeedCycle orig) => (uint)((double)WeeklyRun.now.Ticks * WolfoMain.random.NextDouble()); <>c.<>9__0_1 = val2; obj2 = (object)val2; } WeeklyRun.GetCurrentSeedCycle += (hook_GetCurrentSeedCycle)obj2; object obj3 = <>c.<>9__0_2; if (obj3 == null) { hook_ClientSubmitLeaderboardScore val3 = delegate { }; <>c.<>9__0_2 = val3; obj3 = (object)val3; } WeeklyRun.ClientSubmitLeaderboardScore += (hook_ClientSubmitLeaderboardScore)obj3; object obj4 = <>c.<>9__0_3; if (obj4 == null) { hook_OnEnable val4 = delegate { }; <>c.<>9__0_3 = val4; obj4 = (object)val4; } DisableIfGameModded.OnEnable += (hook_OnEnable)obj4; object obj5 = <>O.<0>__WeeklyRun_OverrideRuleChoices; if (obj5 == null) { hook_OverrideRuleChoices val5 = WeeklyRun_OverrideRuleChoices; <>O.<0>__WeeklyRun_OverrideRuleChoices = val5; obj5 = (object)val5; } WeeklyRun.OverrideRuleChoices += (hook_OverrideRuleChoices)obj5; } private static void WeeklyRun_OverrideRuleChoices(orig_OverrideRuleChoices orig, WeeklyRun self, RuleChoiceMask mustInclude, RuleChoiceMask mustExclude, ulong runSeed) { orig.Invoke(self, mustInclude, mustExclude, runSeed); } } public class LookingGlassPresets { public enum Preset { Set, Default, AllOff, Simpler, Minimal } public static ConfigEntry<Preset> cfgLookingGlassPreset; public static void Start() { if (Chainloader.PluginInfos.TryGetValue("droppod.lookingglass", out var _)) { cfgLookingGlassPreset = WConfig.ConfigFile_Client.Bind<Preset>("Hud", "LookingGlass Preset", Preset.Set, "Some Presets for Looking Glass.\nWill overwrite your settings with a premade preset if changed in game, never on startup.\nProbably best to leave it alone if you already customized it."); cfgLookingGlassPreset.SettingChanged += CfgLookingGlassPreset_SettingChanged; } } private static void CfgLookingGlassPreset_SettingChanged(object sender, EventArgs e) { if (Chainloader.PluginInfos.TryGetValue("droppod.lookingglass", out var value)) { ConfigFile config = value.Instance.Config; ConfigEntryBase[] configEntries = config.GetConfigEntries(); ConfigEntryBase[] array = configEntries; foreach (ConfigEntryBase val in array) { if (cfgLookingGlassPreset.Value == Preset.Default) { val.BoxedValue = val.DefaultValue; } else if (cfgLookingGlassPreset.Value == Preset.AllOff) { if (val is ConfigEntry<bool>) { switch (val.Definition.Key) { case "Override Stats Display Height": case "Attach To Objective Panel": case "Use default colors": continue; } val.BoxedValue = false; } } else { if (cfgLookingGlassPreset.Value < Preset.Simpler) { continue; } switch (val.Definition.Key) { case "Stats Display String": if (cfgLookingGlassPreset.Value == Preset.Simpler) { val.BoxedValue = "<margin-left=0.6em><line-height=110%><align=center><size=120%>Stats:</size></align>\nDamage: [damage]\nCrit Chance: [critWithLuck]\nAttack Speed: [attackSpeed]\nArmor: [armor] | [armorDamageReduction]\nRegen: [regen]\nSpeed: [speed]\nJumps: [availableJumps]/[maxJumps]\nKills: [killCount]\n \n\n</line-height></margin>"; } else if (cfgLookingGlassPreset.Value == Preset.Minimal) { val.BoxedValue = string.Empty; } break; case "Secondary Stats Display String": if (cfgLookingGlassPreset.Value == Preset.Simpler) { val.BoxedValue = "<margin-left=0.6em><line-height=110%><align=center><size=120%>Stats:</size></align>\nDamage: [damage]\nCrit Chance: [critWithLuck]\nAttack Speed: [attackSpeed]\nArmor: [armor] | [armorDamageReduction]\nRegen: [regen]\nSpeed: [speed]\nJumps: [availableJumps]/[maxJumps]\nKills: [killCount]\nMountain Shrines: [mountainShrines]\nBazaar Portal: [shopPortal]\n \n\n</line-height></margin>"; } else if (cfgLookingGlassPreset.Value == Preset.Minimal) { val.BoxedValue = "<margin-left=0.6em><line-height=110%>Crit Chance: [critWithLuck]\nMountain Shrines: [mountainShrines]\nBazaar Portal: [shopPortal]</line-height></margin>"; } break; case "StatsDisplay": val.BoxedValue = true; break; case "Use Secondary StatsDisplay": val.BoxedValue = true; break; case "StatsDisplay font size": val.BoxedValue = 13f; break; case "StatsDisplay update interval": val.BoxedValue = 0.3f; break; case "Sort Scrapper": val.BoxedValue = true; break; case "Tier Sort": val.BoxedValue = val.DefaultValue; break; case "Stack Size Sort": val.BoxedValue = false; break; case "Sort Command Menu": val.BoxedValue = false; break; case "Command Menu Descending": val.BoxedValue = false; break; case "Disable Command Window Blur": val.BoxedValue = false; break; case "Hide Count If Zero": val.BoxedValue = true; break; case "Tier Order": val.BoxedValue = "Tier1 VoidTier1 Tier2 VoidTier2 Tier3 VoidTier3 Boss VoidBoss Lunar NoTier"; break; case "Full Item Description On Pickup": val.BoxedValue = false; break; case "Item Stats On Ping": val.BoxedValue = false; break; case "Permanent Cooldown Indicator For Skills": val.BoxedValue = false; break; case "Permanent Cooldown Indicator For Equip": if (cfgLookingGlassPreset.Value == Preset.Minimal) { val.BoxedValue = false; } else { val.BoxedValue = true; } break; case "Item Counters": if (cfgLookingGlassPreset.Value == Preset.Minimal) { val.BoxedValue = false; } else { val.BoxedValue = true; } break; } } } } cfgLookingGlassPreset.Value = Preset.Set; } } public class RandomMisc { public class InstantiateGameObjectAtLocation : MonoBehaviour { public GameObject objectToInstantiate; public void Start() { Object.Instantiate<GameObject>(objectToInstantiate, ((Component)this).transform); } } [CompilerGenerated] private static class <>O { public static Manipulator <0>__BiggerSaleStarRange; public static hook_GetBestBodyName <1>__MarriedLemurianNameHook; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnEnter <>9__0_0; public static hook_FixedUpdate <>9__0_1; public static Func<Instruction, bool> <>9__3_0; public static Func<Instruction, bool> <>9__3_8; public static Func<GameObject, InteractionDriver, GameObject> <>9__3_1; public static Func<Instruction, bool> <>9__3_2; public static Func<Instruction, bool> <>9__3_3; public static Func<Instruction, bool> <>9__3_4; public static Func<Instruction, bool> <>9__3_5; public static Func<Instruction, bool> <>9__3_6; public static Func<GameObject, GameObject> <>9__3_7; internal void <Start>b__0_0(orig_OnEnter orig, ReadyMegaBlaster self) { orig.Invoke(self); ((EntityState)self).characterBody.AddSpreadBloom(0.4f); } internal void <Start>b__0_1(orig_FixedUpdate orig, ReadyMegaBlaster self) { orig.Invoke(self); ((EntityState)self).characterBody.SetSpreadBloom(0.2f, true); } internal bool <BiggerSaleStarRange>b__3_0(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Items", "LowerPricedChests"); } internal bool <BiggerSaleStarRange>b__3_8(Instruction x) { return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "currentInteractable"); } internal GameObject <BiggerSaleStarRange>b__3_1(GameObject target, InteractionDriver interactionDriver) { //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_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00b8: 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_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) if (interactionDriver.networkIdentity.hasAuthority) { if (interactionDriver.characterBody.inventory.GetItemCount(Items.LowerPricedChests) > 0) { if ((Object)(object)target == (Object)null) { float num = 0f; float num2 = interactionDriver.interactor.maxInteractionDistance * 2f; Vector3 val = interactionDriver.inputBank.aimOrigin; Vector3 val2 = interactionDriver.inputBank.aimDirection; if (interactionDriver.useAimOffset) { Vector3 val3 = val + val2 * num2; val = interactionDriver.inputBank.aimOrigin + interactionDriver.aimOffset; val2 = (val3 - val) / num2; } Ray val4 = default(Ray); ((Ray)(ref val4))..ctor(val, val2); Ray val5 = CameraRigController.ModifyAimRayIfApplicable(val4, ((Component)interactionDriver).gameObject, ref num); target = interactionDriver.interactor.FindBestInteractableObject(val5, num2 + num, ((Ray)(ref val4)).origin, num2); } if (Object.op_Implicit((Object)(object)target)) { PurchaseInteraction component = target.GetComponent<PurchaseInteraction>(); if ((Object)(object)component != (Object)null && component.saleStarCompatible && !Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { interactionDriver.saleStarEffect = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow"), target.transform.position, Quaternion.identity, target.transform); return null; } } else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { Object.Destroy((Object)(object)interactionDriver.saleStarEffect); return null; } } else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { if (!Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect.GetComponent<ObjectScaleCurve>())) { AnimationCurve val6 = new AnimationCurve(); val6.keys = (Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 1f), new Keyframe(0.25f, 1.05f), new Keyframe(1f, 0f) }; val6.postWrapMode = (WrapMode)1; val6.preWrapMode = (WrapMode)1; AnimationCurve overallCurve = val6; interactionDriver.saleStarEffect.AddComponent<ObjectScaleCurve>(); ObjectScaleCurve val7 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(2)).gameObject.AddComponent<ObjectScaleCurve>(); val7.overallCurve = overallCurve; val7.useOverallCurveOnly = true; val7.timeMax = 1.1f; val7 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(3)).gameObject.AddComponent<ObjectScaleCurve>(); val7.overallCurve = overallCurve; val7.useOverallCurveOnly = true; val7.timeMax = 1.1f; val7 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(0)).gameObject.AddComponent<ObjectScaleCurve>(); val7.overallCurve = overallCurve; val7.useOverallCurveOnly = true; val7.timeMax = 1.1f; Object.Destroy((Object)(object)interactionDriver.saleStarEffect, 1.6f); } return null; } } return null; } internal bool <BiggerSaleStarRange>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"); } internal bool <BiggerSaleStarRange>b__3_3(Instruction x) { return ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy"); } internal bool <BiggerSaleStarRange>b__3_4(Instruction x) { return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"); } internal bool <BiggerSaleStarRange>b__3_5(Instruction x) { return ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy"); } internal bool <BiggerSaleStarRange>b__3_6(Instruction x) { return ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"); } internal GameObject <BiggerSaleStarRange>b__3_7(GameObject target) { return null; } } public static BodyIndex LemurianBruiser = (BodyIndex)(-1); public static void Start() { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Expected O, but got Unknown //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_0043: Expected O, but got Unknown //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_036a: 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_030a: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Expected O, but got Unknown //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Expected O, but got Unknown RandomMiscWithConfig.Start(); HoldoutZoneFlowers.FlowersForOtherHoldoutZones(); if (!Chainloader.PluginInfos.ContainsKey("0p41.Sots_Items_Reworked")) { object obj = <>O.<0>__BiggerSaleStarRange; if (obj == null) { Manipulator val = BiggerSaleStarRange; <>O.<0>__BiggerSaleStarRange = val; obj = (object)val; } InteractionDriver.MyFixedUpdate += (Manipulator)obj; } Material val2 = Addressables.LoadAssetAsync<Material>((object)"RoR2/DLC2/Child/matChild.mat").WaitForCompletion(); val2.SetFloat("_EliteBrightnessMax", 1.09f); val2.SetFloat("_EliteBrightnessMin", -0.7f); GameObject val3 = LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow"); val3.transform.GetChild(0).localPosition = new Vector3(0f, 0.6f, 0f); val3.transform.GetChild(1).localPosition = new Vector3(0f, 0.6f, 0f); val3.transform.GetChild(2).localPosition = new Vector3(0f, 0.4f, 0f); val3.transform.GetChild(3).localPosition = new Vector3(0f, 0.7f, 0f); val3.transform.GetChild(3).localScale = new Vector3(1f, 1.4f, 1f); ItemDefInfo val4 = default(ItemDefInfo); val4.itemDef = LegacyResourcesAPI.Load<ItemDef>("ItemDefs/LunarTrinket"); val4.count = 1; val4.dontExceedCount = true; ItemDefInfo val5 = val4; ItemDefInfo[] itemDefInfos = (ItemDefInfo[])(object)new ItemDefInfo[1] { val5 }; LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar1Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos; LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar2Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos; LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar3Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos; LegacyResourcesAPI.Load<GameObject>("Prefabs/charactermasters/ScavLunar4Master").AddComponent<GivePickupsOnStart>().itemDefInfos = itemDefInfos; GameObject val6 = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Hacking.prefab").WaitForCompletion().transform.GetChild(2).GetChild(0).GetChild(4)).gameObject, "ShockIndicator", false); Material val7 = Object.Instantiate<Material>(((Renderer)((Component)val6.transform.GetChild(0)).GetComponent<MeshRenderer>()).material); val7.SetColor("_TintColor", new Color(0f, 0.4f, 0.8f, 1f)); ((Renderer)((Component)val6.transform.GetChild(0)).GetComponent<MeshRenderer>()).material = val7; val6.transform.localScale = new Vector3(6.67f, 6.67f, 6.67f); GameObject val8 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Shocking.prefab").WaitForCompletion(); ((Component)val8.transform.GetChild(2).GetChild(0)).gameObject.AddComponent<InstantiateGameObjectAtLocation>().objectToInstantiate = val6; object obj2 = <>c.<>9__0_0; if (obj2 == null) { hook_OnEnter val9 = delegate(orig_OnEnter orig, ReadyMegaBlaster self) { orig.Invoke(self); ((EntityState)self).characterBody.AddSpreadBloom(0.4f); }; <>c.<>9__0_0 = val9; obj2 = (object)val9; } ReadyMegaBlaster.OnEnter += (hook_OnEnter)obj2; object obj3 = <>c.<>9__0_1; if (obj3 == null) { hook_FixedUpdate val10 = delegate(orig_FixedUpdate orig, ReadyMegaBlaster self) { orig.Invoke(self); ((EntityState)self).characterBody.SetSpreadBloom(0.2f, true); }; <>c.<>9__0_1 = val10; obj3 = (object)val10; } ReadyMegaBlaster.FixedUpdate += (hook_FixedUpdate)obj3; SceneDef val11 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/Base/rootjungle/rootjungle.asset").WaitForCompletion(); MusicTrackDef bossTrack = Addressables.LoadAssetAsync<MusicTrackDef>((object)"RoR2/DLC1/Common/muBossfightDLC1_12.asset").WaitForCompletion(); val11.bossTrack = bossTrack; GameObject val12 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/MiniGeodeBody.prefab").WaitForCompletion(); val12.transform.localScale = Vector3.one * 1.5f; Light component = ((Component)val12.transform.GetChild(0).GetChild(2)).GetComponent<Light>(); component.range = 25f; component.intensity = 8f; object obj4 = <>O.<1>__MarriedLemurianNameHook; if (obj4 == null) { hook_GetBestBodyName val13 = MarriedLemurianNameHook; <>O.<1>__MarriedLemurianNameHook = val13; obj4 = (object)val13; } Util.GetBestBodyName += (hook_GetBestBodyName)obj4; GameObject val14 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/KillEliteFrenzy/NoCooldownEffect.prefab").WaitForCompletion(); val14.GetComponentInChildren<PostProcessVolume>().priority = 19f; PostProcessProfile val15 = Addressables.LoadAssetAsync<PostProcessProfile>((object)"affc373eac3cb4c43b38adc2c7a61451").WaitForCompletion(); PostProcessEffectSettings obj5 = val15.settings[1]; ((ParameterOverride<float>)(object)((ColorGrading)((obj5 is ColorGrading) ? obj5 : null)).postExposure).value = 0.2f; val15.settings[2].active = false; } public static string MarriedLemurianNameHook(orig_GetBestBodyName orig, GameObject bodyObject) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)bodyObject)) { CharacterBody component = bodyObject.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && component.bodyIndex == LemurianBruiser && component.inventory.GetItemCount(Items.Clover) >= 20) { if (component.inventory.GetItemCount(Items.FireRing) > 0) { return "Kjaro"; } if (component.inventory.GetItemCount(Items.IceRing) > 0) { return "Runald"; } } } return orig.Invoke(bodyObject); } private static void BiggerSaleStarRange(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0070: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Items", "LowerPricedChests") }); if (val.TryGotoPrev((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "currentInteractable") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<GameObject, InteractionDriver, GameObject>>((Func<GameObject, InteractionDriver, GameObject>)delegate(GameObject target, InteractionDriver interactionDriver) { //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_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Expected O, but got Unknown //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00b8: 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_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) if (interactionDriver.networkIdentity.hasAuthority) { if (interactionDriver.characterBody.inventory.GetItemCount(Items.LowerPricedChests) > 0) { if ((Object)(object)target == (Object)null) { float num = 0f; float num2 = interactionDriver.interactor.maxInteractionDistance * 2f; Vector3 val2 = interactionDriver.inputBank.aimOrigin; Vector3 val3 = interactionDriver.inputBank.aimDirection; if (interactionDriver.useAimOffset) { Vector3 val4 = val2 + val3 * num2; val2 = interactionDriver.inputBank.aimOrigin + interactionDriver.aimOffset; val3 = (val4 - val2) / num2; } Ray val5 = default(Ray); ((Ray)(ref val5))..ctor(val2, val3); Ray val6 = CameraRigController.ModifyAimRayIfApplicable(val5, ((Component)interactionDriver).gameObject, ref num); target = interactionDriver.interactor.FindBestInteractableObject(val6, num2 + num, ((Ray)(ref val5)).origin, num2); } if (Object.op_Implicit((Object)(object)target)) { PurchaseInteraction component = target.GetComponent<PurchaseInteraction>(); if ((Object)(object)component != (Object)null && component.saleStarCompatible && !Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { interactionDriver.saleStarEffect = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/LowerPricedChestsGlow"), target.transform.position, Quaternion.identity, target.transform); return null; } } else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { Object.Destroy((Object)(object)interactionDriver.saleStarEffect); return null; } } else if (Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect)) { if (!Object.op_Implicit((Object)(object)interactionDriver.saleStarEffect.GetComponent<ObjectScaleCurve>())) { AnimationCurve val7 = new AnimationCurve(); val7.keys = (Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 1f), new Keyframe(0.25f, 1.05f), new Keyframe(1f, 0f) }; val7.postWrapMode = (WrapMode)1; val7.preWrapMode = (WrapMode)1; AnimationCurve overallCurve = val7; interactionDriver.saleStarEffect.AddComponent<ObjectScaleCurve>(); ObjectScaleCurve val8 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(2)).gameObject.AddComponent<ObjectScaleCurve>(); val8.overallCurve = overallCurve; val8.useOverallCurveOnly = true; val8.timeMax = 1.1f; val8 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(3)).gameObject.AddComponent<ObjectScaleCurve>(); val8.overallCurve = overallCurve; val8.useOverallCurveOnly = true; val8.timeMax = 1.1f; val8 = ((Component)interactionDriver.saleStarEffect.transform.GetChild(0)).gameObject.AddComponent<ObjectScaleCurve>(); val8.overallCurve = overallCurve; val8.useOverallCurveOnly = true; val8.timeMax = 1.1f; Object.Destroy((Object)(object)interactionDriver.saleStarEffect, 1.6f); } return null; } } return null; }); val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy") }); val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect"), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "Destroy") }); val.TryGotoPrev((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.InteractionDriver", "saleStarEffect") }); val.EmitDelegate<Func<GameObject, GameObject>>((Func<GameObject, GameObject>)((GameObject target) => null)); Debug.Log((object)"IL Found: Sale Star Range"); } else { Debug.LogWarning((object)"IL Failed: Sale Star Range"); } } } public class RandomMiscWithConfig { public static void Start() { } } public class BodyIcons { public class AllyBodyIconOverwrite : MonoBehaviour { public Texture2D portraitIcon; public void Start() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Invalid comparison between Unknown and I4 CharacterBody component = ((Component)this).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.teamComponent) && (int)component.teamComponent.teamIndex == 1) { component.portraitIcon = (Texture)(object)portraitIcon; } } } public static void Start() { if (WConfig.cfgIconsBodyIcons.Value) { NewBodyIcons(); } } public static void NewBodyIcons() { //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //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) LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BanditBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/Bandit1.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BrotherHurtBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyBrotherHurt.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BrotherHauntBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyBrotherHurt.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/EngiWalkerTurretBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyEngiWalkerTurret.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/RoboBallRedBuddyBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyRoboBallBuddyRed.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/RoboBallGreenBuddyBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyRoboBallBuddyGreen.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/BrotherBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyBrother.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/SquidTurretBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodySquidTurret.png"); LegacyResourcesAPI.Load<GameObject>("prefabs/characterbodies/WispSoulBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyWispSoul.png"); GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/CU8/DevotedLemurianBody.prefab").WaitForCompletion(); GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/CU8/DevotedLemurianBruiserBody.prefab").WaitForCompletion(); val.GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyDevotedLemurian.png"); val2.GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyDevotedElder.png"); Texture portraitIcon = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ArtifactShellBody").GetComponent<CharacterBody>().portraitIcon; LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ExplosivePotDestructibleBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/ClayPot.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/FusionCellDestructibleBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/FusionCell.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/TimeCrystalBody").GetComponent<CharacterBody>().portraitIcon = portraitIcon; LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/AltarSkeletonBody").GetComponent<CharacterBody>().portraitIcon = portraitIcon; LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/SulfurPodBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/SulfurPod.png"); Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/FalseSonBoss/LunarRain.prefab").WaitForCompletion().GetComponent<CharacterBody>() .portraitIcon = portraitIcon; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/CorruptionSpike/CorruptionSpike.prefab").WaitForCompletion().GetComponent<CharacterBody>() .portraitIcon = portraitIcon; LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/TitanGoldBody").AddComponent<AllyBodyIconOverwrite>().portraitIcon = Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texBodyTitanGoldAlly.png"); LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/ParentPodBody").GetComponent<CharacterBody>().portraitIcon = (Texture)(object)Assets.Bundle.LoadAsset<Texture2D>("Assets/WQoL/Body/texAncestralIncubatorIcon.png"); } } public class BuffIcons { public static void BuffColorChanger() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_007b: Unknown result type (might be due to invalid IL or missing references) LegacyResourcesAPI.Load<BuffDef>("buffdefs/AffixHauntedRecipient").buffColor = Color32.op_Implicit(new Color32((byte)148, (byte)215, (byte)214, byte.MaxValue)); LegacyResourcesAPI.Load<BuffDef>("buffdefs/SmallArmorBoost").buffColor = new Color(0.6784f, 0.6118f, 0.4118f, 1f); LegacyResourcesAPI.Load<BuffDef>("buffdefs/WhipBoost").buffColor = Color32.op_Implicit(new Color32((byte)245, (byte)158, (byte)73, byte.MaxValue)); } public static void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) if (WConfig.cfgBuff_RepeatColors.Value) { BuffColorChanger(); } BuffDef val = Addressables.LoadAssetAsync<BuffDef>((object)"RoR2/DLC1/ImmuneToDebuff/bdImmuneToDebuffReady.asset").WaitForCompletion(); if (((Object)val.iconSprite).name.StartsWith("texBuffImmune")) { val.iconSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/WQoL/Buffs/texBuffRaincoat.png"); } BuffDef val2 = Addressables.LoadAssetAsync<BuffDef>((object)"64016639a97b88f43b182dfebe9fee92").WaitForCompletion(); val2.isHidden = false; val2.canStack = false; BuffDef val3 = Addressables.LoadAssetAsync<BuffDef>((object)"RoR2/DLC2/Items/TeleportOnLowHealth/bdTeleportOnLowHealthActive.asset").WaitForCompletion(); val3.isHidden = false; val3.iconSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/WQoL/Buffs/texBuffTeleportOnLowHealthIcon.png"); } } public class LogbookStuff { [CompilerGenerated] private static class <>O { public static hook_BuildMonsterEntries <0>__AddMissingMonsters; public static hook_BuildMonsterEntries <1>__SortBossMonster; public static hook_BuildPickupEntries <2>__AddMissingEquipment; public static hook_BuildPickupEntries <3>__SortBossEquip_AddBG; public static hook_BuildSurvivorEntries <4>__SurvivorEntryColor; public static hook_GetPickupStatus <5>__EliteEquipmentViewable; public static Action <6>__Add; } public static void NormalLogbook() { //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_001c: Expected O, but got Unknown //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_003d: Expected O, but got Unknown //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_005e: Expected O, but got Unknown //IL_0074: 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_007f: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) object obj = <>O.<0>__AddMissingMonsters; if (obj == null) { hook_BuildMonsterEntries val = AddMissingMonsters; <>O.<0>__AddMissingMonsters = val; obj = (object)val; } LogBookController.BuildMonsterEntries += (hook_BuildMonsterEntries)obj; object obj2 = <>O.<1>__SortBossMonster; if (obj2 == null) { hook_BuildMonsterEntries val2 = SortBossMonster; <>O.<1>__SortBossMonster = val2; obj2 = (object)val2; } LogBookController.BuildMonsterEntries += (hook_BuildMonsterEntries)obj2; object obj3 = <>O.<2>__AddMissingEquipment; if (obj3 == null) { hook_BuildPickupEntries val3 = AddMissingEquipment; <>O.<2>__AddMissingEquipment = val3; obj3 = (object)val3; } LogBookController.BuildPickupEntries += (hook_BuildPickupEntries)obj3; object obj4 = <>O.<3>__SortBossEquip_AddBG; if (obj4 == null) { hook_BuildPickupEntries val4 = SortBossEquip_AddBG; <>O.<3>__SortBossEquip_AddBG = val4; obj4 = (object)val4; } LogBookController.BuildPickupEntries += (hook_BuildPickupEntries)obj4; object obj5 = <>O.<4>__SurvivorEntryColor; if (obj5 == null) { hook_BuildSurvivorEntries val5 = SurvivorEntryColor; <>O.<4>__SurvivorEntryColor = val5; obj5 = (object)val5; } LogBookController.BuildSurvivorEntries += (hook_BuildSurvivorEntries)obj5; object obj6 = <>O.<5>__EliteEquipmentViewable; if (obj6 == null) { hook_GetPickupStatus val6 = EliteEquipmentViewable; <>O.<5>__EliteEquipmentViewable = val6; obj6 = (object)val6; } LogBookController.GetPickupStatus += (hook_GetPickupStatus)obj6; ((ResourceAvailability)(ref SceneCatalog.availability)).CallWhenAvailable((Action)LogSimuStages.Add); Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/meridian/meridian.asset").WaitForCompletion().stageOrder = 80; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/goldshores").stageOrder = 81; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/bazaar").stageOrder = 90; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/arena").stageOrder = 91; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/voidstage").stageOrder = 92; Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/voidraid/voidraid.asset").WaitForCompletion().stageOrder = 93; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/mysteryspace").stageOrder = 110; LegacyResourcesAPI.Load<SceneDef>("SceneDefs/limbo").stageOrder = 111; } private static EntryStatus EliteEquipmentViewable(orig_GetPickupStatus orig, ref Entry entry, UserProfile viewerProfile) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Invalid comparison between Unknown and I4 //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_008d: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Invalid comparison between Unknown and I4 //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) EntryStatus val = orig.Invoke(ref entry, viewerProfile); if ((int)val == 4) { return val; } PickupIndex val2 = (PickupIndex)entry.extraData; PickupDef pickupDef = PickupCatalog.GetPickupDef(val2); EquipmentIndex val3 = (EquipmentIndex)((pickupDef == null) ? (-1) : ((int)pickupDef.equipmentIndex)); if ((int)val3 != -1) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(val3); if (Object.op_Implicit((Object)(object)equipmentDef.passiveBuffDef) && equipmentDef.passiveBuffDef.isElite) { if (viewerProfile.HasDiscoveredPickup(val2)) { return (EntryStatus)4; } bool flag = false; if ((Object)(object)equipmentDef == (Object)(object)Equipment.AffixLunar) { flag = viewerProfile.HasUnlockable(Items.LunarBadLuck.unlockableDef); } else if ((Object)(object)equipmentDef == (Object)(object)Equipment.EliteVoidEquipment) { flag = viewerProfile.HasAchievement("Characters.VoidSurvivor"); } else if ((Object)(object)equipmentDef == (Object)(object)Equipment.EliteAurelioniteEquipment) { flag = viewerProfile.HasUnlockable(Equipment.HealAndRevive.unlockableDef); } else { EliteDef eliteDef = equipmentDef.passiveBuffDef.eliteDef; flag = (((int)eliteDef.devotionLevel != 2) ? viewerProfile.HasUnlockable(Survivors.Captain.unlockableDef) : viewerProfile.HasUnlockable(Items.Clover.unlockableDef)); } if (flag) { return (EntryStatus)4; } return (EntryStatus)3; } } return val; } private static Entry[] SortBossMonster(orig_BuildMonsterEntries orig, Dictionary<ExpansionDef, bool> expansionAvailability) { if (!WConfig.cfgLogbook_SortBosses.Value) { return orig.Invoke(expansionAvailability); } Entry[] array = orig.Invoke(expansionAvailability); List<Entry> list = new List<Entry>(); List<Entry> list2 = new List<Entry>(); for (int i = 0; i < array.Length; i++) { object extraData = array[i].extraData; if (((CharacterBody)((extraData is CharacterBody) ? extraData : null)).isChampion) { list2.Add(array[i]); } else { list.Add(array[i]); } } list.AddRange(list2); return list.ToArray(); } public static Entry[] AddMissingMonsters(orig_BuildMonsterEntries orig, Dictionary<ExpansionDef, bool> expansionAvailability) { //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) if (!WConfig.cfgLogbook_More.Value) { return orig.Invoke(expansionAvailability); } GameObject val = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GupBody"); GameObject val2 = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GeepBody"); GameObject val3 = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/GipBody"); ModelPanelParameters val4 = ((Component)val2.transform.GetChild(0).GetChild(0)).gameObject.AddComponent<ModelPanelParameters>(); ModelPanelParameters val5 = ((Component)val3.transform.GetChild(0).GetChild(0)).gameObject.AddComponent<ModelPanelParameters>(); UnlockableDef logUnlockableDef = val.GetComponent<DeathRewards>().logUnlockableDef; val2.GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef; val3.GetComponent<DeathRewards>().logUnlockableDef = logUnlockableDef; UnlockableDef logUnlockableDef2 = LegacyResourcesAPI.Load<UnlockableDef>("UnlockableDefs/Logs.Stages.limbo"); GameObject val6 = Le