Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of WolfFixes v1.4.5
WolfoLibrary.dll
Decompiled 12 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 System.Threading; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.InfiniteTowerSafeWard; using EntityStates.MeridianEvent; using EntityStates.Missions.BrotherEncounter; using EntityStates.SolusHeart; using EntityStates.SolusWing2; using HG; using HG.Reflection; using IL.RoR2; using IL.RoR2.Networking; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using Newtonsoft.Json.Utilities; using On.EntityStates.MeridianEvent; using On.EntityStates.Missions.BrotherEncounter; using On.EntityStates.SolusHeart; using On.EntityStates.SolusWing2; using On.RoR2; using On.RoR2.EntitlementManagement; using On.RoR2.Networking; using On.RoR2.UI; using On.RoR2.UI.LogBook; using R2API; using R2API.Utils; using RoR2; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Hologram; using RoR2.Items; using RoR2.Networking; using RoR2.Stats; using RoR2.UI; using RoR2.UI.LogBook; using RoR2.UI.MainMenu; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.AddressableAssets.ResourceLocators; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.UI; using WolfoLibrary.Testing; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: NetworkCompatibility(/*Could not decode attribute arguments.*/)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Wolfo")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("A fix and library mod with various commands, methods and classes")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+76a4841cea7c75fa2c02e0fdd7fa6881f20c39f5")] [assembly: AssemblyProduct("WolfoLibrary")] [assembly: AssemblyTitle("WolfoLibrary")] [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] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 WolfoLibrary { internal static class FixesAlways { [CompilerGenerated] private static class <>O { public static hook_Start <0>__MoreValuesForClients; } 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 object obj = <>O.<0>__MoreValuesForClients; if (obj == null) { hook_Start val = MoreValuesForClients; <>O.<0>__MoreValuesForClients = val; obj = (object)val; } HalcyoniteShrineInteractable.Start += (hook_Start)obj; } private static void MoreValuesForClients(orig_Start orig, HalcyoniteShrineInteractable self) { orig.Invoke(self); if (!NetworkServer.active && self.automaticallyScaleCostWithDifficulty) { self.lowGoldCost = Run.instance.GetDifficultyScaledCost(self.lowGoldCost); self.midGoldCost = Run.instance.GetDifficultyScaledCost(self.midGoldCost); self.maxGoldCost = Run.instance.GetDifficultyScaledCost(self.maxGoldCost); self.goldDrainValue = Run.instance.GetDifficultyScaledCost(self.goldDrainValue); } } } internal static class Log { public static ManualLogSource log; public static void LogMessage(object message) { log.LogMessage(message); } public static void LogWarning(object message) { log.LogWarning(message); } public static void LogError(object message) { log.LogError(message); } } public static class Networker { public static readonly Dictionary<Type, byte> message_to_index = new Dictionary<Type, byte>(); public static readonly Dictionary<byte, Type> index_to_message = new Dictionary<byte, Type>(); public static byte wqol_startByte = 0; public static byte artifacts_startByte = 32; public static void SendWQoLMessage(ChatMessageBase message) { SendBroadcastChat(message, QosChannelIndex.chat.intVal); } public static void SendBroadcastChat(ChatMessageBase message, int channelIndex) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown if (WConfig.cfgTestMultiplayer.Value) { Debug.Log((object)"SendBroadcastChat"); } NetworkWriter val = new NetworkWriter(); val.StartMessage((short)20024); val.Write(message_to_index[((object)message).GetType()]); val.Write((MessageBase)(object)message); val.FinishMessage(); foreach (NetworkConnection connection in NetworkServer.connections) { if (connection != null) { connection.SendWriter(val, channelIndex); } } } public static ChatMessageBase InstantiateMessage(byte typeIndex) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Expected O, but got Unknown Type type = index_to_message[typeIndex]; if (ChatMessageBase.cvChatDebug.value) { Debug.LogFormat("Received chat message typeIndex={0} type={1}", new object[2] { typeIndex, (type != null) ? type.Name : null }); } if (type != null) { return (ChatMessageBase)Activator.CreateInstance(type); } return null; } [NetworkMessageHandler(msgType = 20024, client = true)] public static void HandleBroadcastChat(NetworkMessage netMsg) { if (WConfig.cfgTestMultiplayer.Value) { Debug.Log((object)"HandleBroadcastChat"); } ChatMessageBase val = InstantiateMessage(netMsg.reader.ReadByte()); if (val != null) { ((MessageBase)val).Deserialize(netMsg.reader); Chat.AddMessage(val); } } } internal static class VoidElite { public static void VoidAffix() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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) EquipmentDef val = Addressables.LoadAssetAsync<EquipmentDef>((object)"RoR2/DLC1/EliteVoid/EliteVoidEquipment.asset").WaitForCompletion(); GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab").WaitForCompletion(), "PickupAffixVoidW", false); val2.transform.GetChild(0).GetChild(2).SetAsFirstSibling(); val2.transform.GetChild(1).localPosition = new Vector3(0f, 0.7f, 0f); val2.transform.GetChild(1).GetChild(0).localPosition = new Vector3(0f, -0.5f, -0.6f); val2.transform.GetChild(1).GetChild(0).localScale = new Vector3(1.5f, 1.5f, 1.5f); ((Component)val2.transform.GetChild(1).GetChild(1)).gameObject.SetActive(false); ((Component)val2.transform.GetChild(1).GetChild(3)).gameObject.SetActive(false); val2.transform.GetChild(0).eulerAngles = new Vector3(310f, 0f, 0f); val2.transform.GetChild(0).localScale = new Vector3(0.75f, 0.75f, 0.75f); ItemDisplay component = val2.GetComponent<ItemDisplay>(); ArrayUtils.ArrayRemoveAtAndResize<RendererInfo>(ref component.rendererInfos, 4, 1); val2.AddComponent<ModelPanelParameters>(); val.pickupModelReference = new AssetReferenceT<GameObject>(""); val.pickupModelPrefab = val2; } } internal class VoidSuppressor { [CompilerGenerated] private static class <>O { public static hook_Init <0>__MakeTiered; public static Action<Run> <1>__MakeTieredAgain; public static hook_ctor <2>__RemoveFromCompletion; public static hook_PreStartClient <3>__AddPriceHologram; public static hook_RefreshPickupDisplays <4>__FixPickupDisplayTooSmallDueToLossyScale; } public static void SuppresedScrap() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown MissedContent.Items.ScrapWhiteSuppressed.pickupToken = "ITEM_SCRAPWHITE_PICKUP"; MissedContent.Items.ScrapGreenSuppressed.pickupToken = "ITEM_SCRAPGREEN_PICKUP"; MissedContent.Items.ScrapRedSuppressed.pickupToken = "ITEM_SCRAPRED_PICKUP"; MissedContent.Items.ScrapWhiteSuppressed.descriptionToken = "ITEM_SCRAPWHITE_DESC"; MissedContent.Items.ScrapGreenSuppressed.descriptionToken = "ITEM_SCRAPGREEN_DESC"; MissedContent.Items.ScrapRedSuppressed.descriptionToken = "ITEM_SCRAPRED_DESC"; object obj = <>O.<0>__MakeTiered; if (obj == null) { hook_Init val = MakeTiered; <>O.<0>__MakeTiered = val; obj = (object)val; } PickupCatalog.Init += (hook_Init)obj; Run.onRunStartGlobal += MakeTieredAgain; object obj2 = <>O.<2>__RemoveFromCompletion; if (obj2 == null) { hook_ctor val2 = RemoveFromCompletion; <>O.<2>__RemoveFromCompletion = val2; obj2 = (object)val2; } GameCompletionStatsHelper.ctor += (hook_ctor)obj2; } public static void FixInteractable() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Expected O, but got Unknown GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSuppressor/VoidSuppressor.prefab").WaitForCompletion(); VoidSuppressorBehavior component = val.GetComponent<VoidSuppressorBehavior>(); component.useRefreshDelay = 1.05f; val.GetComponent<PurchaseInteraction>().isShrine = true; val.GetComponent<VoidSuppressorBehavior>().effectColor.a = 0.85f; Transform child = val.transform.GetChild(0); ((Component)child.GetChild(7).GetChild(1).GetChild(1)).gameObject.SetActive(true); child.GetChild(7).localPosition = new Vector3(0f, -0.5f, -0.5f); child.GetChild(7).GetChild(1).GetChild(0) .localScale = new Vector3(1.2f, 1.2f, 1.2f); Renderer component2 = ((Component)child.GetChild(5)).GetComponent<Renderer>(); Bounds localBounds = default(Bounds); ((Bounds)(ref localBounds)).extents = new Vector3(5f, 5f, 5f); component2.localBounds = localBounds; GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/HUDSimple.prefab").WaitForCompletion(); try { Transform val3 = val2.GetComponent<ChildLocator>().FindChild("ScoreboardPanel").Find("Container/SuppressedItems"); ((Component)val3).GetComponent<LayoutElement>().minHeight = 96f; ((Component)val3).GetComponent<ItemInventoryDisplay>().verticalMargin = 16f; } catch (Exception ex) { Debug.LogException(ex); } object obj = <>O.<3>__AddPriceHologram; if (obj == null) { hook_PreStartClient val4 = AddPriceHologram; <>O.<3>__AddPriceHologram = val4; obj = (object)val4; } VoidSuppressorBehavior.PreStartClient += (hook_PreStartClient)obj; object obj2 = <>O.<4>__FixPickupDisplayTooSmallDueToLossyScale; if (obj2 == null) { hook_RefreshPickupDisplays val5 = FixPickupDisplayTooSmallDueToLossyScale; <>O.<4>__FixPickupDisplayTooSmallDueToLossyScale = val5; obj2 = (object)val5; } VoidSuppressorBehavior.RefreshPickupDisplays += (hook_RefreshPickupDisplays)obj2; } private static void MakeTieredAgain(Run obj) { MissedContent.Items.ScrapWhiteSuppressed.tier = (ItemTier)0; MissedContent.Items.ScrapGreenSuppressed.tier = (ItemTier)1; MissedContent.Items.ScrapRedSuppressed.tier = (ItemTier)2; Run.onRunStartGlobal -= MakeTieredAgain; } private static IEnumerator MakeTiered(orig_Init orig) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Invalid comparison between Unknown and I4 if ((int)MissedContent.Items.ScrapWhiteSuppressed.tier != 5) { return orig.Invoke(); } MissedContent.Items.ScrapWhiteSuppressed.tier = (ItemTier)0; MissedContent.Items.ScrapGreenSuppressed.tier = (ItemTier)1; MissedContent.Items.ScrapRedSuppressed.tier = (ItemTier)2; IEnumerator result = orig.Invoke(); MissedContent.Items.ScrapWhiteSuppressed.tier = (ItemTier)5; MissedContent.Items.ScrapGreenSuppressed.tier = (ItemTier)5; MissedContent.Items.ScrapRedSuppressed.tier = (ItemTier)5; return result; } private static void RemoveFromCompletion(orig_ctor orig, GameCompletionStatsHelper self) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_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) orig.Invoke(self); PickupDef pickupDef = PickupCatalog.GetPickupDef(PickupCatalog.FindPickupIndex(MissedContent.Items.ScrapWhiteSuppressed.itemIndex)); PickupDef pickupDef2 = PickupCatalog.GetPickupDef(PickupCatalog.FindPickupIndex(MissedContent.Items.ScrapGreenSuppressed.itemIndex)); PickupDef pickupDef3 = PickupCatalog.GetPickupDef(PickupCatalog.FindPickupIndex(MissedContent.Items.ScrapRedSuppressed.itemIndex)); self.encounterablePickups.Remove(pickupDef); self.encounterablePickups.Remove(pickupDef2); self.encounterablePickups.Remove(pickupDef3); } private static void FixPickupDisplayTooSmallDueToLossyScale(orig_RefreshPickupDisplays orig, VoidSuppressorBehavior self) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) Transform transform = ((Component)self.pickupDisplays[0]).transform; float num = 0.89628005f / transform.parent.localScale.x; transform.localScale = new Vector3(num, num, num); orig.Invoke(self); } private static void AddPriceHologram(orig_PreStartClient orig, VoidSuppressorBehavior self) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown //IL_003c: 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) orig.Invoke(self); GameObject val = new GameObject("PriceTransform"); val.transform.SetParent(((Component)self).transform, false); val.transform.localPosition = new Vector3(0.2f, 1f, 2f); HologramProjector val2 = ((Component)self).GetComponent<HologramProjector>(); if ((Object)(object)val2 == (Object)null) { val2 = ((Component)self).gameObject.AddComponent<HologramProjector>(); } val2.disableHologramRotation = true; val.transform.localEulerAngles = new Vector3(0f, 180f, 0f); val2.hologramPivot = val.transform; } } public class WConfig { public static ConfigFile ConfigFile = new ConfigFile(Paths.ConfigPath + "\\Wolfo.WolfoFixes.cfg", true); public static ConfigEntry<bool> cfgTestMultiplayer; public static ConfigEntry<bool> cfgTestLogbook; public static ConfigEntry<bool> cfgLoadOrder; public static void Awake() { InitConfig(); } public static void InitConfig() { cfgTestLogbook = ConfigFile.Bind<bool>("Testing", "Everything Logbook", false, "Add all items, equipments and mobs to logbook, including untiered and cut."); cfgTestMultiplayer = ConfigFile.Bind<bool>("Testing", "Multiplayer Test", false, "Allows you to join yourself via connect localhost:7777"); cfgLoadOrder = ConfigFile.Bind<bool>("Testing", "Debugging", false, "Log prints when certain events happen"); } } [BepInPlugin("com.Wolfo.WolfoLibrary", "WolfoLibrary", "1.3.4")] public class WolfoLib : BaseUnityPlugin { public void Awake() { Log.log = ((BaseUnityPlugin)this).Logger; Commands.Awake(); Test.Awake(); SkinStuff.Start(); } public void Start() { //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) Commands.cheatsEnabled = Chainloader.PluginInfos.ContainsKey("iHarbHD.DebugToolkit"); WConfig.Awake(); Test.Start(); ExtraActions.Start(); Tags.Start(); FixesAlways.Start(); VoidElite.VoidAffix(); VoidSuppressor.SuppresedScrap(); VoidSuppressor.FixInteractable(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(CallLate)); Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/OptionPickup/OptionPickerPanel.prefab").WaitForCompletion().GetComponent<PickupPickerPanel>() .maxColumnCount = 3; } public void CallLate() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) Equipment.GroundEnemies.colorIndex = (ColorIndex)5; } } public static class ArrayUtil { public static T[] Remove<T>(this T[] array, params T[] items) { return (array ?? Enumerable.Empty<T>()).Except(items).ToArray(); } } public class AssetUtils { public static string GetPathToFile(string assemblyDir, string modFolder, string assetFolder) { if (Directory.Exists(Path.Combine(assemblyDir, modFolder + assetFolder))) { return Path.Combine(assemblyDir, modFolder + assetFolder); } if (Directory.Exists(Path.Combine(assemblyDir, "plugins\\" + modFolder + assetFolder))) { return Path.Combine(assemblyDir, assetFolder); } Debug.LogError((object)("COULD NOT FIND " + assetFolder + " FOLDER")); return assemblyDir; } public static string GetPathToFile(string assemblyDir, string modFolder, string assetFolder, string fileName) { return Path.Combine(GetPathToFile(assemblyDir, modFolder, assetFolder), fileName); } } public static class ExtraActions { [CompilerGenerated] private static class <>O { public static hook_OnEnter <0>__BrotherPhase1; public static hook_Start <1>__VoidlingStart; public static hook_OnEnter <2>__FalseSonPhase1; public static hook_OnExit <3>__Mission1Tunnel_OnExit; public static hook_OnEnter <4>__CutsceneTransformation_OnEnter; public static hook_PreStartClient <5>__Stage_PreStartClient; public static Manipulator <6>__MonsterDCCSGenerateHook; public static hook_OnDisable <7>__ScoreboardController_OnDisable; } public static Action onMithrixPhase1; public static Action onVoidlingPhase1; public static Action onFalseSonPhase1; public static Action onSolusWing; public static Action onSolusHeart; public static Action onStagePreStartClient; public static Action<DirectorCardCategorySelection> onMonsterDCCS; [CompilerGenerated] [DebuggerBrowsable(DebuggerBrowsableState.Never)] private static UnityAction m_onScoreboardClosed; public static event UnityAction onScoreboardClosed { [CompilerGenerated] add { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown UnityAction val = ExtraActions.m_onScoreboardClosed; UnityAction val2; do { val2 = val; UnityAction value2 = (UnityAction)Delegate.Combine((Delegate?)(object)val2, (Delegate?)(object)value); val = Interlocked.CompareExchange(ref ExtraActions.m_onScoreboardClosed, value2, val2); } while (val != val2); } [CompilerGenerated] remove { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown UnityAction val = ExtraActions.m_onScoreboardClosed; UnityAction val2; do { val2 = val; UnityAction value2 = (UnityAction)Delegate.Remove((Delegate?)(object)val2, (Delegate?)(object)value); val = Interlocked.CompareExchange(ref ExtraActions.m_onScoreboardClosed, value2, val2); } while (val != val2); } } 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 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Expected O, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Expected O, but got Unknown object obj = <>O.<0>__BrotherPhase1; if (obj == null) { hook_OnEnter val = BrotherPhase1; <>O.<0>__BrotherPhase1 = val; obj = (object)val; } Phase1.OnEnter += (hook_OnEnter)obj; object obj2 = <>O.<1>__VoidlingStart; if (obj2 == null) { hook_Start val2 = VoidlingStart; <>O.<1>__VoidlingStart = val2; obj2 = (object)val2; } VoidRaidGauntletController.Start += (hook_Start)obj2; object obj3 = <>O.<2>__FalseSonPhase1; if (obj3 == null) { hook_OnEnter val3 = FalseSonPhase1; <>O.<2>__FalseSonPhase1 = val3; obj3 = (object)val3; } Phase1.OnEnter += (hook_OnEnter)obj3; object obj4 = <>O.<3>__Mission1Tunnel_OnExit; if (obj4 == null) { hook_OnExit val4 = Mission1Tunnel_OnExit; <>O.<3>__Mission1Tunnel_OnExit = val4; obj4 = (object)val4; } Mission1Tunnel.OnExit += (hook_OnExit)obj4; object obj5 = <>O.<4>__CutsceneTransformation_OnEnter; if (obj5 == null) { hook_OnEnter val5 = CutsceneTransformation_OnEnter; <>O.<4>__CutsceneTransformation_OnEnter = val5; obj5 = (object)val5; } CutsceneTransformation.OnEnter += (hook_OnEnter)obj5; object obj6 = <>O.<5>__Stage_PreStartClient; if (obj6 == null) { hook_PreStartClient val6 = Stage_PreStartClient; <>O.<5>__Stage_PreStartClient = val6; obj6 = (object)val6; } Stage.PreStartClient += (hook_PreStartClient)obj6; object obj7 = <>O.<6>__MonsterDCCSGenerateHook; if (obj7 == null) { Manipulator val7 = MonsterDCCSGenerateHook; <>O.<6>__MonsterDCCSGenerateHook = val7; obj7 = (object)val7; } ClassicStageInfo.RebuildCards += (Manipulator)obj7; object obj8 = <>O.<7>__ScoreboardController_OnDisable; if (obj8 == null) { hook_OnDisable val8 = ScoreboardController_OnDisable; <>O.<7>__ScoreboardController_OnDisable = val8; obj8 = (object)val8; } ScoreboardController.OnDisable += (hook_OnDisable)obj8; } private static void ScoreboardController_OnDisable(orig_OnDisable orig, ScoreboardController self) { orig.Invoke(self); UnityAction val = ExtraActions.onScoreboardClosed; if (val != null) { val.Invoke(); } } private static void Stage_PreStartClient(orig_PreStartClient orig, Stage self) { orig.Invoke(self); onStagePreStartClient?.Invoke(); } private static void CutsceneTransformation_OnEnter(orig_OnEnter orig, CutsceneTransformation self) { orig.Invoke(self); onSolusHeart?.Invoke(); } private static void Mission1Tunnel_OnExit(orig_OnExit orig, Mission1Tunnel self) { orig.Invoke(self); onSolusWing?.Invoke(); } private static void VoidlingStart(orig_Start orig, VoidRaidGauntletController self) { orig.Invoke(self); onVoidlingPhase1?.Invoke(); } public static void MonsterDCCSGenerateHook(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.MatchStfld(x, "RoR2.ClassicStageInfo", "modifiableMonsterCategories") })) { val.EmitDelegate<Func<DirectorCardCategorySelection, DirectorCardCategorySelection>>((Func<DirectorCardCategorySelection, DirectorCardCategorySelection>)delegate(DirectorCardCategorySelection dccs) { if (Object.op_Implicit((Object)(object)dccs) && !(dccs is FamilyDirectorCardCategorySelection)) { onMonsterDCCS?.Invoke(dccs); } return dccs; }); } else { Debug.LogWarning((object)"IL Failed: SotV_EnemyRemovals"); } } private static void FalseSonPhase1(orig_OnEnter orig, Phase1 self) { orig.Invoke(self); onFalseSonPhase1?.Invoke(); } private static void BrotherPhase1(orig_OnEnter orig, Phase1 self) { orig.Invoke(self); onMithrixPhase1?.Invoke(); } } public class InstantiateModelParams : MonoBehaviour { public Vector3 CameraPosition = new Vector3(-1.5f, 1f, 3f); public Vector3 FocusPosition = new Vector3(0f, 1f, 0f); } public class DccsUtil { public static void RemoveCard(DirectorCardCategorySelection dccs, int cat, string card) { string text = ""; switch (cat) { case 2: text = "Basic Monsters"; break; case 1: text = "Minibosses"; break; case 0: text = "Champions"; break; } cat = dccs.FindCategoryIndexByName(text); if (cat != -1) { int num = FindSpawnCard(ref dccs.categories[cat].cards, card); if (num != -1) { Log.LogMessage("Removed " + card + " from " + (object)SceneInfo.instance.sceneDef); ArrayUtils.ArrayRemoveAtAndResize<DirectorCard>(ref dccs.categories[cat].cards, num, 1); return; } } Log.LogWarning("Failed to remove " + card + " from " + (object)SceneInfo.instance.sceneDef); } public static int FindSpawnCard(ref DirectorCard[] insert, string LookingFor) { for (int i = 0; i < insert.Length; i++) { if (Object.op_Implicit((Object)(object)insert[i].GetSpawnCard()) && ((Object)insert[i].GetSpawnCard()).name.EndsWith(LookingFor)) { return i; } } return -1; } public static DirectorCard GetDirectorCard(ref DirectorCard[] insert, string LookingFor) { for (int i = 0; i < insert.Length; i++) { if (Object.op_Implicit((Object)(object)insert[i].GetSpawnCard()) && ((Object)insert[i].GetSpawnCard()).name.EndsWith(LookingFor)) { return insert[i]; } } return null; } } public class HLang { } public class AdvancedPickupDropTable : BasicPickupDropTable { private bool generated; public bool clearAfterGenerating; public bool unbiasedByItemCount = false; public float eliteEquipmentWeight; public override UniquePickup GeneratePickupPreReplacement(Xoroshiro128Plus rng) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) RegenerateReal(); return PickupDropTable.GeneratePickupFromWeightedSelection(rng, base.selector); } public override void GenerateDistinctPickupsPreReplacement(List<UniquePickup> dest, int desiredCount, Xoroshiro128Plus rng) { RegenerateReal(); PickupDropTable.GenerateDistinctFromWeightedSelection<UniquePickup>(dest, desiredCount, rng, base.selector); } public override void Regenerate(Run run) { generated = false; } public void RegenerateReal() { if (!generated) { generated = true; if (unbiasedByItemCount) { GenerateUnbiased(Run.instance); } else { ((BasicPickupDropTable)this).RegenerateDropTable(Run.instance); } AddEliteEquip(Run.instance); } } private void GenerateUnbiased(Run run) { base.selector.Clear(); AddUnbiased(run.availableTier1DropList, base.tier1Weight); AddUnbiased(run.availableTier2DropList, base.tier2Weight); AddUnbiased(run.availableTier3DropList, base.tier3Weight); AddUnbiased(run.availableBossDropList, base.bossWeight); AddUnbiased(run.availableLunarItemDropList, base.lunarItemWeight); AddUnbiased(run.availableLunarEquipmentDropList, base.lunarEquipmentWeight); AddUnbiased(run.availableLunarCombinedDropList, base.lunarCombinedWeight); AddUnbiased(run.availableEquipmentDropList, base.equipmentWeight); AddUnbiased(run.availableVoidTier1DropList, base.voidTier1Weight); AddUnbiased(run.availableVoidTier2DropList, base.voidTier2Weight); AddUnbiased(run.availableVoidTier3DropList, base.voidTier3Weight); AddUnbiased(run.availableVoidBossDropList, base.voidBossWeight); AddUnbiased(run.availableFoodTierDropList, base.foodTierWeight); } private void AddUnbiased(List<PickupIndex> sourceDropList, float chance) { //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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (chance <= 0f || sourceDropList.Count == 0) { return; } float num = chance / (float)sourceDropList.Count; foreach (PickupIndex sourceDrop in sourceDropList) { if (!((BasicPickupDropTable)this).IsFilterRequired() || ((BasicPickupDropTable)this).PassesFilter(sourceDrop)) { base.selector.AddChoice(new UniquePickup { pickupIndex = sourceDrop }, chance); } } } private void AddEliteEquip(Run run) { //IL_0047: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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) if (eliteEquipmentWeight == 0f) { return; } List<EquipmentIndex> eliteEquipment = ModUtil.GetEliteEquipment(); float num = (unbiasedByItemCount ? (eliteEquipmentWeight / (float)eliteEquipment.Count) : eliteEquipmentWeight); foreach (EquipmentIndex item in eliteEquipment) { base.selector.AddChoice(new UniquePickup { pickupIndex = PickupCatalog.FindPickupIndex(item) }, num); } } } public class ForcedTeamCSC : CharacterSpawnCard { public TeamIndex teamIndexOverride = (TeamIndex)2; public override void Spawn(Vector3 position, Quaternion rotation, DirectorSpawnRequest directorSpawnRequest, ref SpawnResult result) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) directorSpawnRequest.teamIndexOverride = teamIndexOverride; ((CharacterSpawnCard)this).Spawn(position, rotation, directorSpawnRequest, ref result); } } public class SkinStuff { public static void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0076: 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_0088: 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) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) SkinDefParams val = Addressables.LoadAssetAsync<SkinDefParams>((object)"6517af04dc3e7ce45a55f09e04c96772").WaitForCompletion(); SkinDefParams val2 = Addressables.LoadAssetAsync<SkinDefParams>((object)"4c92b69e995926b46876ed3c644a2e81").WaitForCompletion(); val.minionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[3] { new MinionSkinReplacement { minionBodyPrefab = Addressables.LoadAssetAsync<GameObject>((object)"2340146f44941cc45aa8edc354ad77ae").WaitForCompletion(), minionSkin = Addressables.LoadAssetAsync<SkinDef>((object)"510231c58a9944e45be8b90f5b41a4d0").WaitForCompletion() }, new MinionSkinReplacement { minionBodyPrefab = Addressables.LoadAssetAsync<GameObject>((object)"521223397dd4da74694c073e63c3183b").WaitForCompletion(), minionSkin = Addressables.LoadAssetAsync<SkinDef>((object)"37af658961eb1d64b91d03d8098da0f2").WaitForCompletion() }, new MinionSkinReplacement { minionBodyPrefab = Addressables.LoadAssetAsync<GameObject>((object)"442aea01d301dec41a4a7c28e112d737").WaitForCompletion(), minionSkin = Addressables.LoadAssetAsync<SkinDef>((object)"a725c698056caf04790c1f808f62d948").WaitForCompletion() } }; val2.minionSkinReplacements = ArrayUtils.Clone<MinionSkinReplacement>(val.minionSkinReplacements); ((Component)Addressables.LoadAssetAsync<GameObject>((object)"ff7711aebac29b148a7312a3cae20572").WaitForCompletion().transform.GetChild(0).GetChild(0)).gameObject.AddComponent<OperatorGunColorReplacer>(); Addressables.LoadAssetAsync<GameObject>((object)"de1037cdfdf9bdc4f833708daffdf33d").WaitForCompletion().AddComponent<OperatorLobbySyncDroneSkinToMainSkin>(); } } public class OperatorLobbySyncDroneSkinToMainSkin : MonoBehaviour { private Transform droneSlotL; private Transform droneSlotR; private ModelSkinController controller; private Material mat1 = Addressables.LoadAssetAsync<Material>((object)"a5e2282a0ad1c474696de2fe1ddd09d4").WaitForCompletion(); private Material mat2 = Addressables.LoadAssetAsync<Material>((object)"4172ed2e16de6f04b8be2f6377521abb").WaitForCompletion(); private Material mat3 = Addressables.LoadAssetAsync<Material>((object)"448eba93c01ca6046970593a3cc2d234").WaitForCompletion(); public void OnEnable() { controller = ((Component)this).GetComponentInChildren<ModelSkinController>(); controller.onSkinApplied += Controller_onSkinApplied; Transform child = ((Component)this).transform.GetChild(0).GetChild(0).GetChild(0) .GetChild(1); droneSlotL = child.GetChild(0).GetChild(0); droneSlotR = child.GetChild(1).GetChild(0); } public void OnDisable() { controller.onSkinApplied -= Controller_onSkinApplied; } private void Controller_onSkinApplied(int index) { //IL_006e: 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_007a: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_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_00b3: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) if (controller.skins[index]._runtimeSkin == null) { Debug.LogWarning((object)"No runtime skin"); return; } Material material = mat1; Material material2 = mat2; Material material3 = mat3; if (controller.skins[index].runtimeSkin.minionSkinTemplates.Length != 0) { BodyIndex val = BodyCatalog.FindBodyIndex("DTGunnerDroneBody"); BodyIndex val2 = BodyCatalog.FindBodyIndex("DTHealingDroneBody"); BodyIndex val3 = BodyCatalog.FindBodyIndex("DTHaulerDroneBody"); Enumerator<MinionSkinTemplate> enumerator = controller.skins[index].runtimeSkin.minionSkinTemplates.GetEnumerator(); try { while (enumerator.MoveNext()) { MinionSkinTemplate current = enumerator.Current; if (current.minionSkin._runtimeSkin == null) { current.minionSkin.Bake(); } Material defaultMaterial = ((RendererInfoTemplate)current.minionSkin.runtimeSkin.rendererInfoTemplates[0]).data.defaultMaterial; if ((Object)(object)defaultMaterial != (Object)null) { if (current.minionBodyIndex == val) { material = defaultMaterial; } else if (current.minionBodyIndex == val2) { material2 = defaultMaterial; } else if (current.minionBodyIndex == val3) { material3 = defaultMaterial; } } } } finally { ((IDisposable)enumerator/*cast due to .constrained prefix*/).Dispose(); } } ((Renderer)((Component)droneSlotL.GetChild(2).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material; ((Renderer)((Component)droneSlotR.GetChild(2).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material; ((Renderer)((Component)droneSlotL.GetChild(1).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material2; ((Renderer)((Component)droneSlotR.GetChild(1).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material2; ((Renderer)((Component)droneSlotL.GetChild(3).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material3; ((Renderer)((Component)droneSlotR.GetChild(3).GetChild(1)).GetComponent<SkinnedMeshRenderer>()).material = material3; } } public class OperatorGunColorReplacer : MonoBehaviour { public static Dictionary<SkinDef, Color> skinDefDic = new Dictionary<SkinDef, Color>(); public ModelSkinController skinController; public void Awake() { skinController = ((Component)this).GetComponent<ModelSkinController>(); skinController.onSkinApplied += Apply; } public void OnDisable() { skinController.onSkinApplied -= Apply; } public void Apply(int index) { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) if (skinDefDic.TryGetValue(skinController.skins[index], out var value)) { ChildLocator component = ((Component)this).GetComponent<ChildLocator>(); Transform val = component.FindChild("ChargeVFX"); Transform child = val.GetChild(0); ((Component)child.GetChild(0)).GetComponent<ParticleSystem>().startColor = ((Color)(ref value)).AlphaMultiplied(0.2667f); ((Component)child.GetChild(1)).GetComponent<ParticleSystem>().startColor = value; ParticleSystemRenderer component2 = ((Component)child.GetChild(2)).GetComponent<ParticleSystemRenderer>(); ((Renderer)component2).material = Object.Instantiate<Material>(((Renderer)component2).material); ((Renderer)component2).material.SetColor("_TintColor", value); TrailRenderer component3 = ((Component)child.GetChild(2)).GetComponent<TrailRenderer>(); ((Renderer)component3).material = Object.Instantiate<Material>(((Renderer)component3).material); ((Renderer)component3).material.SetColor("_TintColor", value); } } } public class SandyInteractableMaterialOverrider : MonoBehaviour { public SceneDef sceneDef; public Material material; public void OnEnable() { if (!((Object)(object)SceneCatalog.mostRecentSceneDef == (Object)(object)sceneDef)) { } } } public static class Tags { public static ItemTag EvolutionBlacklist = (ItemTag)94; public static ItemTag ScavengerBlacklist = (ItemTag)95; public static BasicPickupDropTable dtMonsterTeamLunar; public static BasicPickupDropTable dtAISafeBoss; public static void AddTag(ItemDef def, ItemTag tag) { ArrayUtils.ArrayAppend<ItemTag>(ref def.tags, ref tag); } public static void RemoveTag(ItemDef def, ItemTag tag) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) int num = Array.IndexOf(def.tags, tag); if (num != -1) { ArrayUtils.ArrayRemoveAtAndResize<ItemTag>(ref def.tags, num, 1); } } public static void RemoveTag(ItemDef def, int index) { ArrayUtils.ArrayRemoveAtAndResize<ItemTag>(ref def.tags, index, 1); } public static void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_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) //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_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Expected I4, but got Unknown //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Expected I4, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Expected I4, but got Unknown //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Expected I4, but got Unknown BasicPickupDropTable val = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/MonsterTeamGainsItems/dtMonsterTeamTier1Item.asset").WaitForCompletion(); BasicPickupDropTable val2 = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/MonsterTeamGainsItems/dtMonsterTeamTier2Item.asset").WaitForCompletion(); BasicPickupDropTable val3 = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/MonsterTeamGainsItems/dtMonsterTeamTier3Item.asset").WaitForCompletion(); dtMonsterTeamLunar = ScriptableObject.CreateInstance<BasicPickupDropTable>(); ((Object)dtMonsterTeamLunar).name = "dtMonsterTeamLunar"; dtMonsterTeamLunar.tier1Weight = 0f; dtMonsterTeamLunar.tier2Weight = 0f; dtMonsterTeamLunar.tier3Weight = 0f; dtMonsterTeamLunar.lunarItemWeight = 1f; ArenaMonsterItemDropTable val4 = Addressables.LoadAssetAsync<ArenaMonsterItemDropTable>((object)"RoR2/Base/arena/dtArenaMonsterTier1.asset").WaitForCompletion(); ArenaMonsterItemDropTable val5 = Addressables.LoadAssetAsync<ArenaMonsterItemDropTable>((object)"RoR2/Base/arena/dtArenaMonsterTier2.asset").WaitForCompletion(); ArenaMonsterItemDropTable val6 = Addressables.LoadAssetAsync<ArenaMonsterItemDropTable>((object)"RoR2/Base/arena/dtArenaMonsterTier3.asset").WaitForCompletion(); BasicPickupDropTable val7 = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/Common/dtAISafeTier1Item.asset").WaitForCompletion(); BasicPickupDropTable val8 = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/Common/dtAISafeTier2Item.asset").WaitForCompletion(); BasicPickupDropTable val9 = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/Common/dtAISafeTier3Item.asset").WaitForCompletion(); dtAISafeBoss = ScriptableObject.CreateInstance<BasicPickupDropTable>(); ((Object)dtAISafeBoss).name = "dtAISafeBoss"; dtAISafeBoss.tier1Weight = 0f; dtAISafeBoss.tier2Weight = 0f; dtAISafeBoss.tier3Weight = 0f; dtAISafeBoss.bossWeight = 1f; ItemTag[] array = new ItemTag[6]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); array[5] = (ItemTag)(int)ScavengerBlacklist; ItemTag[] bannedItemTags = (ItemTag[])(object)array; ItemTag[] array2 = new ItemTag[10]; RuntimeHelpers.InitializeArray(array2, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); array2[4] = (ItemTag)(int)EvolutionBlacklist; array2[5] = (ItemTag)(int)ScavengerBlacklist; ItemTag[] bannedItemTags2 = (ItemTag[])(object)array2; ItemTag[] array3 = new ItemTag[9]; RuntimeHelpers.InitializeArray(array3, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); array3[4] = (ItemTag)(int)ScavengerBlacklist; ItemTag[] bannedItemTags3 = (ItemTag[])(object)array3; val.bannedItemTags = bannedItemTags2; val2.bannedItemTags = bannedItemTags2; val3.bannedItemTags = bannedItemTags2; dtMonsterTeamLunar.bannedItemTags = bannedItemTags2; val4.bannedItemTags = bannedItemTags3; val5.bannedItemTags = bannedItemTags3; val6.bannedItemTags = bannedItemTags3; val7.bannedItemTags = bannedItemTags; val8.bannedItemTags = bannedItemTags; val9.bannedItemTags = bannedItemTags; dtAISafeBoss.bannedItemTags = bannedItemTags; } } public static class ModUtil { public enum SkinVariant { Default, Snow, Sand } public static List<EquipmentIndex> GetEliteEquipment(bool droppableOnly = true) { //IL_00b3: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) List<EquipmentIndex> list = new List<EquipmentIndex>(); try { for (int i = 0; i < EquipmentCatalog.equipmentDefs.Length; i++) { EquipmentDef val = EquipmentCatalog.equipmentDefs[i]; if (Object.op_Implicit((Object)(object)val.passiveBuffDef) && Object.op_Implicit((Object)(object)val.passiveBuffDef.eliteDef) && ((val.dropOnDeathChance > 0f && (!Object.op_Implicit((Object)(object)Run.instance) || !Run.instance.expansionLockedEquipment.Contains(val.equipmentIndex))) || !droppableOnly)) { list.Add(val.equipmentIndex); } } if (!droppableOnly) { list.Remove(Equipment.EliteYellowEquipment.equipmentIndex); list.Remove(Equipment.EliteGoldEquipment.equipmentIndex); } } catch (Exception ex) { Debug.LogWarning((object)ex); } return list; } public static SkinVariant GetInteractableSkinFromStage(SceneDef scene) { switch (scene.baseSceneName) { case "snowyforest": case "nest": case "frozenwall": case "itfrozenwall": return SkinVariant.Snow; case "goolake": case "itgoolake": case "lemuriantemple": case "ironalluvium": case "ironalluvium2": case "repurposedcrater": return SkinVariant.Sand; default: return SkinVariant.Default; } } } public static class DLCS { public static ExpansionDef DLC1 = Addressables.LoadAssetAsync<ExpansionDef>((object)"d4f30c23b971a9b428e2796dc04ae099").WaitForCompletion(); public static ExpansionDef DLC2 = Addressables.LoadAssetAsync<ExpansionDef>((object)"851f234056d389b42822523d1be6a167").WaitForCompletion(); public static ExpansionDef DLC3 = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC3/DLC3.asset").WaitForCompletion(); public static ExpansionDef DLC4 = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC4/DLC4.asset").WaitForCompletion(); public static EntitlementDef entitlementDLC1 = Addressables.LoadAssetAsync<EntitlementDef>((object)"0166774839e0bd345bb11554aecbfd32").WaitForCompletion(); public static EntitlementDef entitlementDLC2 = Addressables.LoadAssetAsync<EntitlementDef>((object)"68fcfaddae5157f4581a1fc209e4eac6").WaitForCompletion(); public static EntitlementDef entitlementDLC3 = Addressables.LoadAssetAsync<EntitlementDef>((object)"6673dacf8c8aa87409fc73e6da34684b").WaitForCompletion(); public static EntitlementDef entitlementDLC4 = Addressables.LoadAssetAsync<EntitlementDef>((object)"RoR2/DLC4/entitlementDLC4.asset").WaitForCompletion(); } public static class SceneList { public static SceneDef Blackbeach = Addressables.LoadAssetAsync<SceneDef>((object)"c129d2b9e62c31b4ba165091d1ae2c50").WaitForCompletion(); public static SceneDef Blackbeach2 = Addressables.LoadAssetAsync<SceneDef>((object)"f87198140bf9b5a4f82e206231df9091").WaitForCompletion(); public static SceneDef Golemplains = Addressables.LoadAssetAsync<SceneDef>((object)"8ba24a95e46b3944280a4b66afd0c4dc").WaitForCompletion(); public static SceneDef Golemplains2 = Addressables.LoadAssetAsync<SceneDef>((object)"657a62eb3e4c409429c91ba6fdb7d921").WaitForCompletion(); public static SceneDef SulfurPools = Addressables.LoadAssetAsync<SceneDef>((object)"796f9b67682b3db4c8c5af7294d0490c").WaitForCompletion(); public static SceneDef RootJungle = Addressables.LoadAssetAsync<SceneDef>((object)"ced489f798226594db0d115af2101a9b").WaitForCompletion(); public static SceneDef Habitat = Addressables.LoadAssetAsync<SceneDef>((object)"0b33829c6cdfad34a8160c6ae17edfcc").WaitForCompletion(); public static SceneDef HabitatFall = Addressables.LoadAssetAsync<SceneDef>((object)"962a6a8a56f584b468a4835c82c11951").WaitForCompletion(); public static SceneDef itGolemPlains = Addressables.LoadAssetAsync<SceneDef>((object)"dda7dbdf013275747949dfc522842635").WaitForCompletion(); public static SceneDef itGoolake = Addressables.LoadAssetAsync<SceneDef>((object)"0a35bec906d067941a8a378b963e9e9d").WaitForCompletion(); public static SceneDef itAncientLoft = Addressables.LoadAssetAsync<SceneDef>((object)"568295b69af09c241968fa18ca37b56d").WaitForCompletion(); public static SceneDef itFrozenwall = Addressables.LoadAssetAsync<SceneDef>((object)"0ab15976715ddd6438e2e5bd6ddbe224").WaitForCompletion(); public static SceneDef itDampCave = Addressables.LoadAssetAsync<SceneDef>((object)"c33b24f6ebf27db49a5cfb88dbe9b8ff").WaitForCompletion(); public static SceneDef itSkyMeadow = Addressables.LoadAssetAsync<SceneDef>((object)"6a2712b5c8cf36f44b34c128f2759522").WaitForCompletion(); public static SceneDef itMoon = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/itmoon/itmoon.asset").WaitForCompletion(); public static SceneDef Moon2 = Addressables.LoadAssetAsync<SceneDef>((object)"5d69f3396feb7ba428d1e53a44479594").WaitForCompletion(); public static SceneDef MysterySpace = Addressables.LoadAssetAsync<SceneDef>((object)"1303cd0450cbaf140970e7afd5162314").WaitForCompletion(); public static SceneDef VoidStage = Addressables.LoadAssetAsync<SceneDef>((object)"66e0cfba315981a40afae481363ea0da").WaitForCompletion(); public static SceneDef VoidRaid = Addressables.LoadAssetAsync<SceneDef>((object)"223a0f0a86052654a9e473d13f77cb41").WaitForCompletion(); } public static class MissedContent { public static class Items { public static ItemDef ScrapWhiteSuppressed = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/DLC1/ScrapVoid/ScrapWhiteSuppressed.asset").WaitForCompletion(); public static ItemDef ScrapGreenSuppressed = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/DLC1/ScrapVoid/ScrapGreenSuppressed.asset").WaitForCompletion(); public static ItemDef ScrapRedSuppressed = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/DLC1/ScrapVoid/ScrapRedSuppressed.asset").WaitForCompletion(); } public static class Equipment { public static EquipmentDef EliteEarthEquipment = Addressables.LoadAssetAsync<EquipmentDef>((object)"463f8f6917dd8af40860b023a520f051").WaitForCompletion(); } public static class BodyPrefabs { public static CharacterBody SquidTurretBody = Addressables.LoadAssetAsync<GameObject>((object)"5290eaf612d386740ac26f289e06b62f").WaitForCompletion().GetComponent<CharacterBody>(); public static CharacterBody BeetleGuardAllyBody = Addressables.LoadAssetAsync<GameObject>((object)"e21e3b9cdc2802148986eda1c923c9a1").WaitForCompletion().GetComponent<CharacterBody>(); public static CharacterBody RoboBallGreenBuddyBody = Addressables.LoadAssetAsync<GameObject>((object)"d64335d9c1517cb4a8764a0de1d01a03").WaitForCompletion().GetComponent<CharacterBody>(); public static CharacterBody RoboBallRedBuddyBody = Addressables.LoadAssetAsync<GameObject>((object)"e8a603acea1fa2249a83c0257a9f5f10").WaitForCompletion().GetComponent<CharacterBody>(); } public static class GameEndings { public static GameEndingDef EscapeSequenceFailed = Addressables.LoadAssetAsync<GameEndingDef>((object)"RoR2/Base/ClassicRun/EscapeSequenceFailed.asset").WaitForCompletion(); } public static class Survivors { public static SurvivorDef VoidSurvivor = Addressables.LoadAssetAsync<SurvivorDef>((object)"dc32bd426643dce478dd1b04fd07cdf6").WaitForCompletion(); } public static class Elites { public static EliteDef edSecretSpeed = Addressables.LoadAssetAsync<EliteDef>((object)"9752d818bdea9b449845fc4df8aed07a").WaitForCompletion(); public static EliteDef CollectiveWeak = Addressables.LoadAssetAsync<EliteDef>((object)"5834fbe05a0d4ce4eae57f87aae57920").WaitForCompletion(); } } } namespace WolfoLibrary.Testing { internal class Commands { [CompilerGenerated] private static class <>O { public static hook_VerifyLocalSteamUser <0>__EntitlementAbstractions_VerifyLocalSteamUser; public static Action<Inventory> <1>__OnInventoryChangedGlobal; } public static bool cheatsEnabled = false; public static List<EntitlementDef> disabledDefs; public static bool voidItems = true; public static void Awake() { //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 object obj = <>O.<0>__EntitlementAbstractions_VerifyLocalSteamUser; if (obj == null) { hook_VerifyLocalSteamUser val = EntitlementAbstractions_VerifyLocalSteamUser; <>O.<0>__EntitlementAbstractions_VerifyLocalSteamUser = val; obj = (object)val; } EntitlementAbstractions.VerifyLocalSteamUser += (hook_VerifyLocalSteamUser)obj; } private static bool EntitlementAbstractions_VerifyLocalSteamUser(orig_VerifyLocalSteamUser orig, EntitlementDef entitlementDef) { if (disabledDefs != null && disabledDefs.Contains(entitlementDef)) { return false; } return orig.Invoke(entitlementDef); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCToggleVoidFiend(ConCommandArgs args) { if (!Object.op_Implicit((Object)(object)((ConCommandArgs)(ref args)).senderBody)) { Debug.Log((object)"No Body"); return; } VoidSurvivorController component = ((Component)((ConCommandArgs)(ref args)).senderBody).GetComponent<VoidSurvivorController>(); if (!Object.op_Implicit((Object)(object)component)) { Debug.Log((object)"No Void Fiend"); return; } component.corruptionPerCrit *= -1f; component.corruptionForFullDamage *= -1f; component.corruptionPerSecondOutOfCombat *= -1f; component.corruptionPerSecondInCombat *= -1f; component._corruption = 0f; Debug.Log((object)((component.corruptionPerCrit > 0f) ? "Enabled" : "DisabledVoid Fiend Corruption")); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCToggleVoidItems(ConCommandArgs args) { if (voidItems) { Inventory.onInventoryChangedGlobal -= ContagiousItemManager.OnInventoryChangedGlobal; } else { Inventory.onInventoryChangedGlobal += ContagiousItemManager.OnInventoryChangedGlobal; } Debug.Log((object)(voidItems ? "Enabled" : "DisabledVoid Item Corruption")); } [ConCommand(/*Could not decode attribute arguments.*/)] private static void CCToggleDLC(ConCommandArgs args) { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) int num = ((ConCommandArgs)(ref args)).TryGetArgInt(0) ?? 0; num--; if (num == -1) { Debug.Log((object)"Need expansion number"); return; } if (disabledDefs == null) { disabledDefs = new List<EntitlementDef>(); } EntitlementDef entitlementDef = EntitlementCatalog.GetEntitlementDef((EntitlementIndex)num); if (disabledDefs.Contains(entitlementDef)) { disabledDefs.Remove(entitlementDef); Debug.Log((object)("Reallowing" + Language.GetString(entitlementDef.nameToken))); } else { disabledDefs.Add(entitlementDef); Debug.Log((object)("Disabling" + Language.GetString(entitlementDef.nameToken))); } EntitlementManager.CCEntitlementForceRefresh(args); } [ConCommand(/*Could not decode attribute arguments.*/)] private static void CCLoad(ConCommandArgs args) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) Debug.Log((object)("Loading: " + ((ConCommandArgs)(ref args)).TryGetArgString(0))); Debug.Log((object)Addressables.LoadAssetAsync<Object>((object)((ConCommandArgs)(ref args)).TryGetArgString(0)).WaitForCompletion()); } [ConCommand(/*Could not decode attribute arguments.*/)] private static void CCRandomUnlock(ConCommandArgs args) { if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); return; } int num = ((ConCommandArgs)(ref args)).TryGetArgInt(0) ?? 1; int num2 = 0; while (num2 < num) { int num3 = Run.instance.runRNG.RangeInt(0, UnlockableCatalog.unlockableCount); UnlockableDef unlockableDef = UnlockableCatalog.GetUnlockableDef((UnlockableIndex)num3); if (unlockableDef.hidden) { continue; } num2++; foreach (NetworkUser readOnlyInstances in NetworkUser.readOnlyInstancesList) { if (readOnlyInstances.isParticipating) { readOnlyInstances.ServerHandleUnlock(unlockableDef); Debug.Log((object)("Granting " + Language.GetString(unlockableDef.nameToken))); } } } } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CC_clear_notifs(ConCommandArgs args) { LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); UserProfile userProfile = firstLocalUser.userProfile; StatSheet statSheet = userProfile.statSheet; if (userProfile != null) { userProfile.ClearAllAchievementNotifications(); } } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CC_AllUnlocks(ConCommandArgs args) { //IL_00ff: Unknown result type (might be due to invalid IL or missing references) if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); return; } LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); UserProfile userProfile = firstLocalUser.userProfile; StatSheet statSheet = userProfile.statSheet; if (userProfile != null) { for (int i = 0; AchievementManager.achievementDefs.Length > i; i++) { userProfile.AddAchievement(AchievementManager.achievementDefs[i].identifier, false); } for (int j = 0; UnlockableCatalog.unlockableCount > j; j++) { statSheet.AddUnlockable((UnlockableIndex)j); } for (int k = 0; BodyCatalog.bodyCount > k; k++) { statSheet.PushStatValue(PerBodyStatDef.timesSummoned, (BodyIndex)k, 1uL); } for (int l = 0; SurvivorCatalog.survivorCount > l; l++) { statSheet.PushStatValue(PerBodyStatDef.totalWins, SurvivorCatalog.survivorIndexToBodyIndex[l], 1uL); } for (int m = 0; PickupCatalog.pickupCount > m; m++) { userProfile.SetPickupDiscovered(new PickupIndex(m), true); } userProfile.ClearAllAchievementNotifications(); userProfile.RequestEventualSave(); } } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CC_RemoveUnlocks(ConCommandArgs args) { if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); return; } LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); UserProfile userProfile = firstLocalUser.userProfile; StatSheet statSheet = userProfile.statSheet; if (userProfile != null) { for (int i = 0; UnlockableCatalog.unlockableCount > i; i++) { statSheet.RemoveUnlockable((UnlockableIndex)i); } int num = userProfile.achievementsList.Count - 1; while (0 <= num) { userProfile.RevokeAchievement(userProfile.achievementsList[num]); num--; } userProfile.RequestEventualSave(); } } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCSimuSoftlock(ConCommandArgs args) { //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Expected O, but got Unknown //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); return; } if (!Object.op_Implicit((Object)(object)Run.instance)) { Debug.LogWarning((object)"No Run"); } if (!(Run.instance is InfiniteTowerRun)) { Debug.LogWarning((object)"No Simu Run"); } InfiniteTowerRun val = (InfiniteTowerRun)Run.instance; try { if (Object.op_Implicit((Object)(object)val.waveController)) { val.waveController.OnAllEnemiesDefeatedServer(); val.waveController.ForceFinish(); } else { val.OnWaveAllEnemiesDefeatedServer((InfiniteTowerWaveController)null); val.CleanUpCurrentWave(); if (Object.op_Implicit((Object)(object)val.waveInstance)) { Object.Destroy((Object)(object)val.waveInstance); } if (!val.IsStageTransitionWave()) { val.BeginNextWave(); } } if (Object.op_Implicit((Object)(object)val.safeWardController) && !(val.safeWardController.wardStateMachine.state is Active)) { val.safeWardController.wardStateMachine.SetState((EntityState)new Active()); } } catch (Exception ex) { ((Run)val).PickNextStageSceneFromCurrentSceneDestinations(); DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest((SpawnCard)(object)val.stageTransitionPortalCard, new DirectorPlacementRule { minDistance = 0f, maxDistance = val.stageTransitionPortalMaxDistance, placementMode = (PlacementMode)1, position = ((Component)val.safeWardController).transform.position, spawnOnTarget = ((Component)val.safeWardController).transform }, val.safeWardRng)); Chat.AddMessage((ChatMessageBase)new SimpleChatMessage { baseToken = val.stageTransitionChatToken }); if (Object.op_Implicit((Object)(object)val.safeWardController)) { val.safeWardController.WaitForPortal(); } Debug.LogWarning((object)ex.ToString()); } Debug.LogWarning((object)"Report any errors"); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCAllItems(ConCommandArgs args) { //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: 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: Invalid comparison between Unknown and I4 //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Invalid comparison between Unknown and I4 //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Invalid comparison between Unknown and I4 //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Invalid comparison between Unknown and I4 //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Invalid comparison between Unknown and I4 //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Invalid comparison between Unknown and I4 if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); return; } int num = ((ConCommandArgs)(ref args)).TryGetArgInt(0) ?? 0; if (!Object.op_Implicit((Object)(object)((ConCommandArgs)(ref args)).senderMaster) || !NetworkServer.active) { return; } if (num == 1) { for (int i = 0; i < ItemCatalog.itemCount; i++) { try { ((ConCommandArgs)(ref args)).senderMaster.inventory.GiveItemPermanent((ItemIndex)i, 1); } catch (Exception) { } } ((ConCommandArgs)(ref args)).senderMaster.inventory.GiveItemPermanent(Items.HealthDecay, 999999); ContagiousItemManager.originalToTransformed = Array.Empty<ItemIndex>(); ContagiousItemManager.transformationInfos = ReadOnlyArray<TransformationInfo>.op_Implicit(Array.Empty<TransformationInfo>()); } else { for (int j = 0; j < ItemCatalog.itemCount; j++) { ItemDef itemDef = ItemCatalog.GetItemDef((ItemIndex)j); if ((int)itemDef.tier == 5) { continue; } if (num != 2 && (int)itemDef.tier != 5 && (int)itemDef.tier != 9 && (int)itemDef.tier != 6 && (int)itemDef.tier != 7 && (int)itemDef.tier != 8) { try { ((ConCommandArgs)(ref args)).senderMaster.inventory.GiveItemPermanent((ItemIndex)j, 1); } catch (Exception) { } } try { ((ConCommandArgs)(ref args)).senderMaster.inventory.GiveItemPermanent((ItemIndex)j, 1); } catch (Exception) { } } } Object.Destroy((Object)(object)((Component)((ConCommandArgs)(ref args)).senderMaster).GetComponent<MasterSuicideOnTimer>()); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCALLBuffs(ConCommandArgs args) { if (!cheatsEnabled) { Debug.Log((object)"WolfoLibrary commands are only available with DebugToolkit installed"); } else if (Object.op_Implicit((Object)(object)((ConCommandArgs)(ref args)).senderBody) && NetworkServer.active) { CharacterBody senderBody = ((ConCommandArgs)(ref args)).senderBody; for (int i = 0; i < BuffCatalog.buffCount; i++) { ((ConCommandArgs)(ref args)).senderBody.AddBuff((BuffIndex)i); } } } } internal class Commands_Lists { [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_CurrentStats(ConCommandArgs args) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Invalid comparison between Unknown and I4 //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Invalid comparison between Unknown and I4 StatSheet val = null; if (PlayerCharacterMasterController.instances.Count != 0) { val = PlayerCharacterMasterController.instances[0].master.playerStatsComponent.currentStats; } else { LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); UserProfile userProfile = firstLocalUser.userProfile; val = userProfile.statSheet; } if (val == null) { Debug.Log((object)"No Players"); return; } string text = ""; for (int i = 0; i < val.fields.Length; i++) { StatDef statDef = val.fields[i].statDef; if ((int)statDef.dataType == 0) { if (((StatField)(ref val.fields[i])).ulongValue != 0) { text += string.Format("\n[{0}] {1} | {2}", new object[3] { i, statDef.name, ((StatField)(ref val.fields[i])).ulongValue }); } } else if ((int)statDef.dataType == 1 && ((StatField)(ref val.fields[i])).doubleValue > 0.0) { text += string.Format("\n[{0}] {1} | {2}", new object[3] { i, statDef.name, ((StatField)(ref val.fields[i])).doubleValue }); } } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_StatDef(ConCommandArgs args) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) string text = ""; StatField[] fieldsTemplate = StatSheet.fieldsTemplate; foreach (StatField val in fieldsTemplate) { text = text + "\n" + val.statDef.name + " | " + Language.GetString(val.statDef.displayToken); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public unsafe static void CCList_SceneDef(ConCommandArgs args) { //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_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) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) string text = ""; Enumerator<SceneDef> enumerator = SceneCatalog.allSceneDefs.GetEnumerator(); try { while (enumerator.MoveNext()) { SceneDef current = enumerator.Current; if (!current.isOfflineScene) { string[] obj = new string[5] { text, "\n", current.cachedName, " | ", null }; Color environmentColor = current.environmentColor; obj[4] = ((object)(*(Color*)(&environmentColor))/*cast due to .constrained prefix*/).ToString(); text = string.Concat(obj); } } } finally { ((IDisposable)enumerator/*cast due to .constrained prefix*/).Dispose(); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCListCategoriesInPercent(ConCommandArgs args) { //IL_007e: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)ClassicStageInfo.instance)) { Debug.Log((object)"Must be on stage"); } DirectorCardCategorySelection interactableCategories = ClassicStageInfo.instance.interactableCategories; if (!Object.op_Implicit((Object)(object)interactableCategories)) { Debug.Log((object)"No DCCS"); } float num = interactableCategories.SumOfAllCategories(); string text = "--" + SceneInfo.instance.sceneDef.cachedName + "--\n"; Category[] categories = interactableCategories.categories; foreach (Category val in categories) { text = text + val.name + " | " + val.selectionWeight / num * 100f + "%\n"; } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_RuleDef(ConCommandArgs args) { string text = ""; foreach (RuleDef allRuleDef in RuleCatalog.allRuleDefs) { text = text + "\n" + allRuleDef.globalName; foreach (RuleChoiceDef choice in allRuleDef.choices) { text = text + "\n-" + choice.globalName; } } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_EffectDef(ConCommandArgs args) { string text = ""; EffectDef[] entries = EffectCatalog.entries; foreach (EffectDef val in entries) { text = text + "\n" + val.prefabName; } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_CombatDirector(ConCommandArgs args) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006b: 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) SceneDirector val = Object.FindFirstObjectByType<SceneDirector>(); if (!Object.op_Implicit((Object)(object)ClassicStageInfo.instance)) { Debug.Log((object)"No SceneDirector"); return; } string text = string.Empty; float num = ClassicStageInfo.instance.modifiableMonsterCategories.SumOfAllCategories(); for (int i = 0; i < ClassicStageInfo.instance.monsterSelection.Count; i++) { ChoiceInfo<DirectorCard> val2 = ClassicStageInfo.instance.monsterSelection.choices[i]; text += string.Format("\n{0} | {1}", new object[2] { ((Object)val2.value.spawnCard).name, val2.weight / num * 100f + "%" }); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_SceneDirector(ConCommandArgs args) { //IL_0052: 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_0067: 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) SceneDirector val = Object.FindFirstObjectByType<SceneDirector>(); if (!Object.op_Implicit((Object)(object)val)) { Debug.Log((object)"No SceneDirector"); return; } string text = string.Empty; float num = ClassicStageInfo.instance.interactableCategories.SumOfAllCategories(); WeightedSelection<DirectorCard> val2 = val.GenerateInteractableCardSelection(); for (int i = 0; i < val2.Count; i++) { ChoiceInfo<DirectorCard> val3 = val2.choices[i]; text += string.Format("\n{0} | {1}", new object[2] { ((Object)val3.value.spawnCard).name, val3.weight / num * 100f + "%" }); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_PickupDef(ConCommandArgs args) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) string text = ""; for (int i = 0; i < PickupCatalog.entries.Length; i++) { PickupDef val = PickupCatalog.entries[i]; text += string.Format("{3}|{0} | <color=#{2}>{1}</color>\n", val.internalName, Language.GetString(val.nameToken), ColorUtility.ToHtmlStringRGB(val.baseColor), i); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_MusicDef(ConCommandArgs args) { string text = ""; for (int i = 0; i < MusicTrackCatalog.musicTrackDefs.Length; i++) { MusicTrackDef val = MusicTrackCatalog.musicTrackDefs[i]; text += string.Format("{0} | {1}\n", new object[2] { val.cachedName, val.comment }); } Debug.Log((object)text); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_BuffDefFlags(ConCommandArgs args) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) string text = "\n--HiddenBuffs--"; string text2 = "\n--IgnoredByNectar--"; string text3 = "\n--IgnoredByNoxThorn--"; BuffDef[] buffDefs = BuffCatalog.buffDefs; foreach (BuffDef val in buffDefs) { if (val.isHidden) { text = text + "\n" + ((Object)val).name; continue; } if (((Enum)val.flags).HasFlag((Enum)(object)(Flags)1)) { text3 = text3 + "\n" + ((Object)val).name; } if (val.ignoreGrowthNectar && !val.isDebuff && !val.isCooldown && !val.isDOT) { text2 = text2 + "\n" + ((Object)val).name; } } Debug.Log((object)text); Debug.Log((object)text2); Debug.Log((object)text3); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_BodyFlags(ConCommandArgs args) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) string empty = string.Empty; CharacterBody[] bodyPrefabBodyComponents = BodyCatalog.bodyPrefabBodyComponents; foreach (CharacterBody val in bodyPrefabBodyComponents) { Debug.LogFormat("\n{0}\n{1}", new object[2] { ((Object)val).name, val.bodyFlags }); } Debug.LogFormat(empty, Array.Empty<object>()); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_SimuWaves(ConCommandArgs args) { //IL_0166: 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) List<DetachParticleOnDestroyAndEndEmission> list = Resources.FindObjectsOfTypeAll<DetachParticleOnDestroyAndEndEmission>().ToList(); foreach (DetachParticleOnDestroyAndEndEmission item in list) { if (Object.op_Implicit((Object)(object)((Component)item).GetComponent<EffectComponent>())) { if (((Behaviour)item).enabled && (Object)(object)item.particleSystem != (Object)null) { Debug.LogWarning((object)((Object)((Component)item).transform.root).name); } else { Debug.Log((object)((Object)((Component)item).transform.root).name); } } } List<InfiniteTowerWaveCategory> list2 = Resources.FindObjectsOfTypeAll<InfiniteTowerWaveCategory>().ToList(); foreach (InfiniteTowerWaveCategory item2 in list2) { string text = "_____\n" + ((Object)item2).name; for (int i = 0; i < item2.wavePrefabs.Length; i++) { Transform child = item2.wavePrefabs[i].wavePrefab.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab.transform.GetChild(0).GetChild(1); text += string.Format("\n<color=#{2}>{0}</color>\n<color=#{3}>{1}</color>\nWeight:{4}", Language.GetString(((Component)child.GetChild(0)).GetComponent<InfiniteTowerWaveCounter>().token), Language.GetString(((Component)child.GetChild(1)).GetComponent<LanguageTextMeshController>().token), ColorUtility.ToHtmlStringRGB(((Graphic)((Component)child.GetChild(0)).GetComponent<TextMeshProUGUI>()).color), ColorUtility.ToHtmlStringRGB(((Graphic)((Component)child.GetChild(1)).GetComponent<TextMeshProUGUI>()).color), item2.wavePrefabs[i].weight); } Debug.Log((object)text); } } [ConCommand(/*Could not decode attribute arguments.*/)] public unsafe static void CCList_ItemTags(ConCommandArgs args) { //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < ItemCatalog.allItemDefs.Length; i++) { ItemDef val = (ItemDef)Unsafe.Read<object>((void*)ItemCatalog.allItemDefs[i]); string text = "\n__" + ((Object)val).name + " | " + Language.GetString(val.nameToken) + "__"; for (int j = 0; j < val.tags.Length; j++) { text = text + "\n" + ((object)Unsafe.As<ItemTag, ItemTag>(ref val.tags[j])/*cast due to .constrained prefix*/).ToString(); } Debug.Log((object)text); } } [ConCommand(/*Could not decode attribute arguments.*/)] public unsafe static void CCList_ItemCategory(ConCommandArgs args) { //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 //IL_0070: Unknown result type (might be due to invalid IL or missing references) string text = "______\nItems tagged as Damage"; string text2 = "______\nItems tagged as Healing"; string text3 = "______\nItems tagged as Utility"; string text4 = "______\nItems tagged as AIBlacklist"; string text5 = "______\nItems tagged as CannotDuplicate"; for (int i = 0; i < ItemCatalog.allItemDefs.Length; i++) { ItemDef val = (ItemDef)Unsafe.Read<object>((void*)ItemCatalog.allItemDefs[i]); if ((int)val.tier != 5) { string text6 = string.Format("\n<color=#{1}>{0}</color>", new object[2] { Language.GetString(val.nameToken), ColorCatalog.GetColorHexString(val.colorIndex) }); if (Array.IndexOf(val.tags, (ItemTag)1) != -1) { text += text6; } if (Array.IndexOf(val.tags, (ItemTag)2) != -1) { text2 += text6; } if (Array.IndexOf(val.tags, (ItemTag)3) != -1) { text3 += text6; } if (Array.IndexOf(val.tags, (ItemTag)4) != -1) { text4 += text6; } if (Array.IndexOf(val.tags, (ItemTag)15) != -1) { text5 += text6; } } } Debug.Log((object)text); Debug.Log((object)text2); Debug.Log((object)text3); Debug.Log((object)text4); Debug.Log((object)text5); } [ConCommand(/*Could not decode attribute arguments.*/)] public static void CCList_DCCS(ConCommandArgs args) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_007c: 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) List<DirectorCardCategorySelection> list = new List<DirectorCardCategorySelection>(); foreach (IResourceLocator resourceLocator in Addressables.ResourceLocators) { foreach (object key in resourceLocator.Keys) { DirectorCardCategorySelection val = Addressables.LoadAssetAsync<DirectorCardCategorySelection>(key).WaitForCompletion(); if ((Object)(object)val != (Object)null) { CollectionUtils.AddDistinct<DirectorCardCategorySelection>((IList<DirectorCardCategorySelection>)list, val); } Addressables.LoadAssetAsync<SpawnCard>(key).WaitForCompletion(); Addressables.LoadAssetAsync<DccsPool>(key).WaitForCompletion(); } } List<DirectorCardCategorySelection> list2 = new List<DirectorCardCategorySelection>(); List<DirectorCardCategorySelection> list3 = new List<DirectorCardCategorySelection>(); List<DirectorCardCategorySelection> list4 = new List<DirectorCardCategorySelection>(); List<DirectorCardCategorySelection> list5 = new List<DirectorCardCategorySelection>(); List<DirectorCardCategorySelection> list6 = Resources.FindObjectsOfTypeAll<DirectorCardCategorySelection>().ToList(); List<DccsPool> list7 = Resources.FindObjectsOfTypeAll<DccsPool>().OfType<DccsPool>().ToList(); List<CharacterSpawnCard> list8 = Resources.FindObjectsOfTypeAll<CharacterSpawnCard>().OfType<CharacterSpawnCard>().ToList(); List<InteractableSpawnCard> list9 = Resources.FindObjectsOfTypeAll<InteractableSpawnCard>().OfType<InteractableSpawnCard>().ToList(); foreach (DirectorCardCategorySelection item in list) { list6.Remove(item); if (item is FamilyDirectorCardCategorySelection) { list4.Add(item); } else if (((Object)item).name.Contains("Interactables")) { list2.Add(item); } else if (((Object)item).name.Contains("Monsters")) { list3.Add(item); } else { list5.Add(item); } } list3.Sort((DirectorCardCategorySelection x, DirectorCardCategorySelection y) => string.Compare(((Object)x).name, ((Object)y).name)); list2.Sort((DirectorCardCategorySelection x, DirectorCardCategorySelection y) => string.Compare(((Object)x).name, ((Object)y).name)); list4.Sort((DirectorCardCategorySelection x, DirectorCardCategorySelection y) => string.Compare(((Object)x).name, ((Object)y).name)); list5.Sort((DirectorCardCategorySelection x, DirectorCardCategorySelection y) => string.Compare(((Object)x).name, ((Object)y).name)); list6.Sort((DirectorCardCategorySelection x, DirectorCardCategorySelection y) => string.Compare(((Object)x).name, ((Object)y).name)); list7.Sort((DccsPool x, DccsPool y) => string.Compare(((Object)x).name, ((Object)y).name)); list8.Sort((CharacterSpawnCard x, CharacterSpawnCard y) => string.Compare(((Object)x).name, ((Object)y).name)); list9.Sort((InteractableSpawnCard x, InteractableSpawnCard y) => string.Compare(((Object)x).name, ((Object)y).name)); Debug.Log((object)"\nDCCS | All Interactables"); DumpDCCSList(list2); Debug.Log((object)"\nDCCS | All Monsters"); DumpDCCSList(list3); Debug.Log((object)"\nDCCS | All Families"); DumpDCCSList(list4); Debug.Log((object)"\nDCCS | Misc"); DumpDCCSList(list5); Debug.Log((object)"\nDCCS | Not Vanilla"); DumpDCCSList(list6); Debug.Log((object)"\nDP | All DccsPools"); for (int num = 0; list7.Count > num; num++) { string text = "\n--------------------\n"; text += ((Object)list7[num]).name; for (int num2 = 0; list7[num].poolCategories.Length > num2; num2++) { Category val2 = list7[num].poolCategories[num2]; text = text + "\n--[" + num2 + "]--" + val2.name; for (int num3 = 0; val2.alwaysIncluded.Length > num3; num3++) { text = text + "\n[" + num3 + "] " + ((Object)val2.alwaysIncluded[num3].dccs).name + " wt:" + val2.alwaysIncluded[num3].weight; } for (int num4 = 0; val2.includedIfConditionsMet.Length > num4; num4++) { text = text + "\n[" + num4 + "] " + ((Object)((PoolEntry)val2.includedIfConditionsMet[num4]).dccs).name + " wt:" + ((PoolEntry)val2.includedIfConditionsMet[num4]).weight; } for (int num5 = 0; val2.includedIfNoConditionsMet.Length > num5; num5++) { text = text + "\n[" + num5 + "] " + ((Object)val2.includedIfNoConditionsMet[num5].dccs).name + " wt:" + val2.includedIfNoConditionsMet[num5].weight; } } Debug.Log((object)text); } Debug.Log((object)"--\nCharacterSpawnCards\n--"); for (int num6 = 0; list8.Count > num6; num6++) { Debug.Log((object)(((Object)list8[num6]).name + " Cost:" + ((SpawnCard)list8[num6]).directorCreditCost)); } Debug.Log((object)"--\nInteractableSpawnCards\n--"); for (int num7 = 0; list9.Count > num7; num7++) { Debug.Log((object)(((Object)list9[num7]).name + " Cost:" + ((SpawnCard)list9[num7]).directorCreditCost)); } } public static void DumpDCCSList(List<DirectorCardCategorySelection> allDCCS) { //IL_0080: 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_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; allDCCS.Count > i; i++) { string text = "\n-------------------\n"; text += ((Object)allDCCS[i]).name; DirectorCardCategorySelection obj = allDCCS[i]; FamilyDirectorCardCategorySelection val = (FamilyDirectorCardCategorySelection)(object)((obj is FamilyDirectorCardCategorySelection) ? obj : null); if (Object.op_Implicit((Object)(object)val)) { text = text + "\nfamilyStart: " + val.minimumStageCompletion; text = text + "\nfamilyEnd: " + val.maximumStageCompletion; } for (int j = 0; allDCCS[i].categories.Length > j; j++) { Category val2 = allDCCS[i].categories[j]; text = text + "\n--[" + j + "]--" + val2.name + "-- wt:" + allDCCS[i].categories[j].selectionWeight; for (int k = 0; val2.cards.Length > k; k++) { text = text + "\n[" + k + "] "; text = (Object.op_Implicit((Object)(object)val2.cards[k].spawnCard) ? (text + ((Object)val2.cards[k].spawnCard).name) : (text + "NULL Spawn Card")); text = text + " wt:" + val2.cards[k].selectionWeight + " minStage:" + val2.cards[k].minimumStageCompletions; if (Object.op_Implicit((Object)(object)val2.cards[k].forbiddenUnlockableDef) || !string.IsNullOrEmpty(val2.cards[k].forbiddenUnlockable)) { text = text + " forbiddenWhen: " + val2.cards[k].forbiddenUnlockable + (object)val2.cards[k].forbiddenUnlockableDef; } } } Debug.Log((object)text); } } } internal class Test { [CompilerGenerated] private static class <>O { public static hook_GetOptionsFromPickupState <0>__CommandWithEveryItem; public static Manipulator <1>__ServerAuthManager_HandleSetClientAuth; public static hook_GetUserMaster <2>__Run_GetUserMaster; public static hook_OnLobbyJoined_bool_string <3>__SteamworksLobbyManager_OnLobbyJoined_bool_string; } public static void Awake() { } public static void Start() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_007b: 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_0086: Expected O, but got Unknown //IL_009c: 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_00a7: Expected O, but got Unknown if (WConfig.cfgTestLogbook.Value) { Test_Logbook.CheatLogbook(); } if (WConfig.cfgTestMultiplayer.Value) { object obj = <>O.<0>__CommandWithEveryItem; if (obj == null) { hook_GetOptionsFromPickupState val = CommandWithEveryItem; <>O.<0>__CommandWithEveryItem = val; obj = (object)val; } PickupPickerController.GetOptionsFromPickupState += (hook_GetOptionsFromPickupState)obj; object obj2 = <>O.<1>__ServerAuthManager_HandleSetClientAuth; if (obj2 == null) { Manipulator val2 = ServerAuthManager_HandleSetClientAuth; <>O.<1>__ServerAuthManager_HandleSetClientAuth = val2; obj2 = (object)val2; } ServerAuthManager.HandleSetClientAuth += (Manipulator)obj2; object obj3 = <>O.<2>__Run_GetUserMaster; if (obj3 == null) { hook_GetUserMaster val3 = Run_GetUserMaster; <>O.<2>__Run_GetUserMaster = val3; obj3 = (object)val3; } Run.GetUserMaster += (hook_GetUserMaster)obj3; object obj4 = <>O.<3>__SteamworksLobbyManager_OnLobbyJoined_bool_string; if (obj4 == null) { hook_OnLobbyJoined_bool_string val4 = SteamworksLobbyManager_OnLobbyJoined_bool_string; <>O.<3>__SteamworksLobbyManager_OnLobbyJoined_bool_string = val4; obj4 = (object)val4; } SteamworksLobbyManager.OnLobbyJoined_bool_string += (hook_OnLobbyJoined_bool_string)obj4; } if (WConfig.cfgLoadOrder.Value) { TestLoadOrder.Start(); } } private static NetworkConnection ServerAuthManager_FindConnectionForSteamID(orig_FindConnectionForSteamID orig, PlatformID steamId) { throw new NotImplementedException(); } private static void SteamworksLobbyManager_OnLobbyJoined_bool_string(orig_OnLobbyJoined_bool_string orig, SteamworksLobbyManager self, bool success, string tokenReasonFailed) { if (string.IsNullOrEmpty(tokenReasonFailed)) { success = true; } orig.Invoke(self, success, tokenReasonFailed); } public static CharacterMaster Run_GetUserMaster(orig_GetUserMaster orig, Run self, NetworkUserId networkUserId) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) if (WConfig.cfgTestMultiplayer.Value) { return null; } return orig.Invoke(self, networkUserId); } public static void ServerAuthManager_HandleSetClientAuth(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.MatchStloc(x, 3) }))
WolfoFixes.dll
Decompiled 12 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.DroneCombiner; using EntityStates.Engi.SpiderMine; using EntityStates.Fauna; using EntityStates.GlobalSkills.LunarDetonator; using EntityStates.InfiniteTowerSafeWard; using EntityStates.LemurianBruiserMonster; using EntityStates.LemurianMonster; using EntityStates.QuestVolatileBattery; using EntityStates.ScavMonster; using EntityStates.VagrantNovaItem; using HG; using IL.EntityStates.CaptainSupplyDrop; using IL.EntityStates.ShrineHalcyonite; using IL.RoR2; using IL.RoR2.Artifacts; using IL.RoR2.UI; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On; using On.EntityStates.DroneCombiner; using On.EntityStates.Engi.SpiderMine; using On.EntityStates.Fauna; using On.EntityStates.GlobalSkills.LunarDetonator; using On.EntityStates.InfiniteTowerSafeWard; using On.EntityStates.LemurianBruiserMonster; using On.EntityStates.LemurianMonster; using On.EntityStates.QuestVolatileBattery; using On.EntityStates.ScavMonster; using On.EntityStates.VagrantNovaItem; using On.RoR2; using On.RoR2.Artifacts; using On.RoR2.CharacterAI; using On.RoR2.Items; using On.RoR2.Stats; using On.RoR2.UI; using R2API; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.CharacterAI; using RoR2.CharacterSpeech; using RoR2.ExpansionManagement; using RoR2.Items; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.Stats; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; using WolfoLibrary; [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("Wolfo")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("A fix and library mod with various commands, methods and classes")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+76a4841cea7c75fa2c02e0fdd7fa6881f20c39f5")] [assembly: AssemblyProduct("WolfoFixes")] [assembly: AssemblyTitle("WolfoFixes")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 WolfoFixes { internal class ArtifactFixes { [CompilerGenerated] private static class <>O { public static hook_CreateDoppelganger <0>__Vengence_NoUmbraForRemoteOpPlayers; public static hook_FindAiMasterIndexForBody <1>__Vengence_BreakingWithRemoteOp; public static hook_OnDestroy <2>__MetaMorph_StopDronesFollowingOperatorIfOperatorGone; public static Manipulator <3>__SwarmsVengenceGooboFix; } 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 object obj = <>O.<0>__Vengence_NoUmbraForRemoteOpPlayers; if (obj == null) { hook_CreateDoppelganger val = Vengence_NoUmbraForRemoteOpPlayers; <>O.<0>__Vengence_NoUmbraForRemoteOpPlayers = val; obj = (object)val; } DoppelgangerInvasionManager.CreateDoppelganger += (hook_CreateDoppelganger)obj; object obj2 = <>O.<1>__Vengence_BreakingWithRemoteOp; if (obj2 == null) { hook_FindAiMasterIndexForBody val2 = Vengence_BreakingWithRemoteOp; <>O.<1>__Vengence_BreakingWithRemoteOp = val2; obj2 = (object)val2; } MasterCatalog.FindAiMasterIndexForBody += (hook_FindAiMasterIndexForBody)obj2; object obj3 = <>O.<2>__MetaMorph_StopDronesFollowingOperatorIfOperatorGone; if (obj3 == null) { hook_OnDestroy val3 = MetaMorph_StopDronesFollowingOperatorIfOperatorGone; <>O.<2>__MetaMorph_StopDronesFollowingOperatorIfOperatorGone = val3; obj3 = (object)val3; } DroneTechController.OnDestroy += (hook_OnDestroy)obj3; object obj4 = <>O.<3>__SwarmsVengenceGooboFix; if (obj4 == null) { Manipulator val4 = SwarmsVengenceGooboFix; <>O.<3>__SwarmsVengenceGooboFix = val4; obj4 = (object)val4; } SwarmsArtifactManager.OnSpawnCardOnSpawnedServerGlobal += (Manipulator)obj4; } private static void SwarmsVengenceGooboFix(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.SpawnCard/SpawnResult", "spawnRequest"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.DirectorCore", "TrySpawnObject") })) { val.EmitDelegate<Func<SpawnResult, SpawnResult>>((Func<SpawnResult, SpawnResult>)delegate(SpawnResult result) { //IL_0001: 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_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_004d: 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_002f: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)result.spawnedInstance) && result.spawnRequest.spawnCard is MasterCopySpawnCard) { result.spawnRequest.spawnCard = (SpawnCard)(object)MasterCopySpawnCard.FromMaster(result.spawnedInstance.GetComponent<CharacterMaster>(), true, true, (Action<CharacterMaster>)null); } return result; }); } else { WolfFixes.log.LogError((object)"IL Failed: SwarmsArtifactManager_OnSpawnCardOnSpawnedServerGlobal"); } } private static void EliteOnlyArtifactManager_PromoteIfHonor(orig_PromoteIfHonor orig, CharacterMaster instanceMaster, Xoroshiro128Plus rng, EliteDef[] eliteDefs) { if (Run.instance.spawnRng != null) { orig.Invoke(instanceMaster, Run.instance.spawnRng, eliteDefs); } orig.Invoke(instanceMaster, rng, eliteDefs); } private static void MetaMorph_StopDronesFollowingOperatorIfOperatorGone(orig_OnDestroy orig, DroneTechController self) { orig.Invoke(self); self.followActive = false; foreach (DroneInfo allDrone in self.AllDrones) { if (Object.op_Implicit((Object)(object)allDrone.commandReceiver)) { allDrone.commandReceiver.CommandFollow(false); allDrone.bodyStateMachine.SetNextStateToMain(); } } } private static void Vengence_NoUmbraForRemoteOpPlayers(orig_CreateDoppelganger orig, CharacterMaster srcCharacterMaster, Xoroshiro128Plus rng) { if (!Object.op_Implicit((Object)(object)srcCharacterMaster) || !srcCharacterMaster.GetInRemoteOp()) { orig.Invoke(srcCharacterMaster, rng); } } private static MasterIndex Vengence_BreakingWithRemoteOp(orig_FindAiMasterIndexForBody orig, BodyIndex bodyIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_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_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Invalid comparison between Unknown and I4 //IL_003e: 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_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) DroneIndex droneIndexFromBodyIndex = DroneCatalog.GetDroneIndexFromBodyIndex(bodyIndex); if ((int)droneIndexFromBodyIndex != -1) { BodyIndex bodyIndexFromDroneIndex = DroneCatalog.GetBodyIndexFromDroneIndex(droneIndexFromBodyIndex); if ((int)bodyIndexFromDroneIndex != -1) { return orig.Invoke(bodyIndexFromDroneIndex); } } return orig.Invoke(bodyIndex); } } internal class BodyFixes { [CompilerGenerated] private static class <>O { public static hook_OnEnter <0>__FixDumbFruit; public static Manipulator <1>__FixCaptainBeaconNoCrit; public static hook_CheckDroneHasItems <2>__CharacterBody_CheckDroneHasItems; public static hook_InheritMovementItems <3>__RequestedWarbannerBehavior; } public static void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_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) //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_0057: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown CharacterBody component = Addressables.LoadAssetAsync<GameObject>((object)"1336d77e77299964884c3bd02757fde7").WaitForCompletion().GetComponent<CharacterBody>(); component.baseNameToken = "EQUIPMENT_DEATHPROJECTILE_NAME"; component.portraitIcon = (Texture)(object)Addressables.LoadAssetAsync<Texture2D>((object)"dda5febead506894fa6e053cea042ddc").WaitForCompletion(); object obj = <>O.<0>__FixDumbFruit; if (obj == null) { hook_OnEnter val = FixDumbFruit; <>O.<0>__FixDumbFruit = val; obj = (object)val; } HabitatFruitDeathState.OnEnter += (hook_OnEnter)obj; HabitatFruitDeathState.deathSoundString = "Play_jellyfish_death"; HabitatFruitDeathState.healPackMaxVelocity = 60f; HabitatFruitDeathState.fractionalHealing = 0.15f; HabitatFruitDeathState.scale = 1f; object obj2 = <>O.<1>__FixCaptainBeaconNoCrit; if (obj2 == null) { Manipulator val2 = FixCaptainBeaconNoCrit; <>O.<1>__FixCaptainBeaconNoCrit = val2; obj2 = (object)val2; } HitGroundState.OnEnter += (Manipulator)obj2; Addressables.LoadAssetAsync<EntityStateConfiguration>((object)"04deef0aeeb41dc4aa4ad14f7f967526").WaitForCompletion().serializedFieldsCollection.serializedFields[3].fieldName = "baseDuration"; Addressables.LoadAssetAsync<GameObject>((object)"c00152ae354576245849336ff7e67ba6").WaitForCompletion().GetComponent<ProjectileExplosion>() .childrenDamageCoefficient = 1f / 35f; CharacterBody component2 = Addressables.LoadAssetAsync<GameObject>((object)"746b53f076ca9af4d89f67c981d2bbf9").WaitForCompletion().GetComponent<CharacterBody>(); component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 0x800); CharacterBody component3 = Addressables.LoadAssetAsync<GameObject>((object)"a0a8fa4272069874b9e538c59bbda5ed").WaitForCompletion().GetComponent<CharacterBody>(); component3.bodyFlags = (BodyFlags)(component3.bodyFlags | 0x800); CharacterBody component4 = Addressables.LoadAssetAsync<GameObject>((object)"7dfb4548829852a49a4b2840046787ed").WaitForCompletion().GetComponent<CharacterBody>(); component4.bodyFlags = (BodyFlags)(component4.bodyFlags | 0x800); CharacterBody component5 = Addressables.LoadAssetAsync<GameObject>((object)"769510dc6be546b40aa3aca3cf93945c").WaitForCompletion().GetComponent<CharacterBody>(); component5.bodyFlags = (BodyFlags)(component5.bodyFlags | 0x800); DLC3Fixes(); } private static void ReplaceDroneCheckWithRemoteOpDroneCheck(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.MatchCallvirt(x, "RoR2.CharacterBody", "get_IsDrone") })) { val.Remove(); val.EmitDelegate<Func<CharacterBody, bool>>((Func<CharacterBody, bool>)((CharacterBody body) => body.isRemoteOp)); } else { WolfFixes.log.LogError((object)"IL Failed : IsDeadAndOutOfLivesServer"); } } public static void DLC3Fixes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown SkillDef val = Addressables.LoadAssetAsync<SkillDef>((object)"1df669ea25cc9cc408ff56b4a2571af9").WaitForCompletion(); ((SerializableEntityStateType)(ref val.activationState)).typeName = "EntityStates.Drone.DroneJailer.AssumePosition"; object obj = <>O.<2>__CharacterBody_CheckDroneHasItems; if (obj == null) { hook_CheckDroneHasItems val2 = CharacterBody_CheckDroneHasItems; <>O.<2>__CharacterBody_CheckDroneHasItems = val2; obj = (object)val2; } CharacterBody.CheckDroneHasItems += (hook_CheckDroneHasItems)obj; object obj2 = <>O.<3>__RequestedWarbannerBehavior; if (obj2 == null) { hook_InheritMovementItems val3 = RequestedWarbannerBehavior; <>O.<3>__RequestedWarbannerBehavior = val3; obj2 = (object)val3; } PhysicsProjectileBehavior.InheritMovementItems += (hook_InheritMovementItems)obj2; } private static void RequestedWarbannerBehavior(orig_InheritMovementItems orig, PhysicsProjectileBehavior self, Inventory friendInventory) { orig.Invoke(self, friendInventory); if (Object.op_Implicit((Object)(object)friendInventory) && Run.instance.ambientLevel > 99f) { friendInventory.ResetItemPermanent(Items.WardOnLevel); } } private static bool CharacterBody_CheckDroneHasItems(orig_CheckDroneHasItems orig, CharacterBody self) { //IL_0022: 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_002a: Invalid comparison between Unknown and I4 //IL_00a0: 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_00ac: Invalid comparison between Unknown and I4 //IL_00ff: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) bool flag = orig.Invoke(self); if ((Object)(object)self.inventory == (Object)null) { return flag; } if ((self.bodyFlags & 2) > 0) { if (self.inventory.GetItemCountPermanent(Items.CaptainDefenseMatrix) > 0 || self.inventory.GetItemCountPermanent(Items.DroneWeaponsBoost) > 0 || self.inventory.GetItemCountPermanent(Items.DroneDynamiteDisplay) > 0 || self.inventory.GetItemCountPermanent(Items.TransferDebuffOnHit) > 0) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 0x200000); flag = true; } } else if ((self.bodyFlags & 0x2000) > 0 && (self.inventory.GetItemCountPermanent(Items.DroneWeaponsBoost) > 0 || self.inventory.GetItemCountPermanent(Items.DroneDynamiteDisplay) > 0)) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 0x200000); flag = true; } if (!flag && ((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)2097152)) { self.bodyFlags = (BodyFlags)(self.bodyFlags & -2097153); } return flag; } public static void CallLate() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) CharacterBody childBody = BodyPrefabs.ChildBody; childBody.bodyFlags = (BodyFlags)(childBody.bodyFlags | 0x200); GameObject val = null; val = Addressables.LoadAssetAsync<GameObject>((object)"1fb51531942733b469329cbcd0647a68").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; val = Addressables.LoadAssetAsync<GameObject>((object)"40316250be8e9a049b87745e197820e2").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; val = Addressables.LoadAssetAsync<GameObject>((object)"40316250be8e9a049b87745e197820e2").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; val = Addressables.LoadAssetAsync<GameObject>((object)"fa0f995f3a42e244db914ac7d61cab47").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; val = Addressables.LoadAssetAsync<GameObject>((object)"efcf575c05e1ea543be85f5cac0c12fd").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; val = Addressables.LoadAssetAsync<GameObject>((object)"d59e337394dd72f418dbb1b622d2480d").WaitForCompletion(); val.GetComponent<ProjectileController>().owner = val; } private static void FixCaptainBeaconNoCrit(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStfld(x, "RoR2.BulletAttack", "isCrit") })) { val.Emit(OpCodes.Ldloc_1); val.EmitDelegate<Func<bool, ProjectileDamage, bool>>((Func<bool, ProjectileDamage, bool>)((bool a, ProjectileDamage projectileDamage) => projectileDamage.crit)); } else { WolfFixes.log.LogError((object)"IL Failed : FixCaptainBeaconNoCrit"); } } private static void FixDumbFruit(orig_OnEnter orig, HabitatFruitDeathState self) { //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_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_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_0095: 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_00b0: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); Transform transform = ((Component)((EntityState)self).characterBody.mainHurtBox).transform; EffectManager.SimpleImpactEffect(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Jellyfish/JellyfishDeath.prefab").WaitForCompletion(), transform.position, Vector3.up, false); if (NetworkServer.active) { GameObject val = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Prefabs/NetworkedObjects/HealPack"), transform.position, Random.rotation); val.GetComponent<TeamFilter>().teamIndex = (TeamIndex)1; val.GetComponentInChildren<HealthPickup>().fractionalHealing = HabitatFruitDeathState.fractionalHealing; val.transform.localScale = new Vector3(HabitatFruitDeathState.scale, HabitatFruitDeathState.scale, HabitatFruitDeathState.scale); val.GetComponent<Rigidbody>().AddForce(Random.insideUnitSphere * HabitatFruitDeathState.healPackMaxVelocity, (ForceMode)2); NetworkServer.Spawn(val); } } } internal class MithrixPhase4Fix : MonoBehaviour { public bool stoleItems = false; public void Start() { SetStateOnHurt component = ((Component)this).GetComponent<SetStateOnHurt>(); if (Object.op_Implicit((Object)(object)component)) { component.canBeHitStunned = true; } HurtBoxGroup component2 = ((Component)this).GetComponent<HurtBoxGroup>(); if (Object.op_Implicit((Object)(object)component2) && component2.hurtBoxesDeactivatorCounter == 0) { component2.SetHurtboxesActive(true); } } } internal class DCCS_SpawnPool { [CompilerGenerated] private static class <>O { public static hook_IsUnlockedBeforeLooping <0>__NoPreLoopPostLoop; public static hook_PreStartClient <1>__FixRareStagesWithoutNodesWhenCalledFor; public static hook_GetBlendedDCCS <2>__DCCSBlender_GetBlendedDCCS; } public static void Main() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0049: 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 DCCSFixes(); SpawnCardFixes(); object obj = <>O.<0>__NoPreLoopPostLoop; if (obj == null) { hook_IsUnlockedBeforeLooping val = NoPreLoopPostLoop; <>O.<0>__NoPreLoopPostLoop = val; obj = (object)val; } BazaarController.IsUnlockedBeforeLooping += (hook_IsUnlockedBeforeLooping)obj; object obj2 = <>O.<1>__FixRareStagesWithoutNodesWhenCalledFor; if (obj2 == null) { hook_PreStartClient val2 = FixRareStagesWithoutNodesWhenCalledFor; <>O.<1>__FixRareStagesWithoutNodesWhenCalledFor = val2; obj2 = (object)val2; } Stage.PreStartClient += (hook_PreStartClient)obj2; object obj3 = <>O.<2>__DCCSBlender_GetBlendedDCCS; if (obj3 == null) { hook_GetBlendedDCCS val3 = DCCSBlender_GetBlendedDCCS; <>O.<2>__DCCSBlender_GetBlendedDCCS = val3; obj3 = (object)val3; } DCCSBlender.GetBlendedDCCS += (hook_GetBlendedDCCS)obj3; } private static DirectorCardCategorySelection DCCSBlender_GetBlendedDCCS(orig_GetBlendedDCCS orig, Category dccsPoolCategory, ref Xoroshiro128Plus rng, ClassicStageInfo stageInfo, int contentSourceMixLimit, List<ExpansionDef> acceptableExpansionList) { if (WConfig.cfgRemoveContentSourceLimit.Value) { contentSourceMixLimit = int.MaxValue; } return orig.Invoke(dccsPoolCategory, ref rng, stageInfo, contentSourceMixLimit, acceptableExpansionList); } private static void AccessNode_RepurposedCrater_EvenAfterSolusWing(orig_OnStartServer orig, AccessCodesMissionController self) { if (SceneInfo.instance.sceneDef.baseSceneName == "repurposedcrater") { self.ignoreSolusWingDeath = true; } orig.Invoke(self); } private static void FixRareStagesWithoutNodesWhenCalledFor(orig_PreStartClient orig, Stage self) { //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_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (!NetworkServer.active || !Object.op_Implicit((Object)(object)SceneInfo.instance)) { return; } string baseSceneName = SceneInfo.instance.sceneDef.baseSceneName; string text = baseSceneName; string text2 = text; if (!(text2 == "itancientloft")) { if (text2 == "itmoon") { NodeGraph val = Addressables.LoadAssetAsync<NodeGraph>((object)"RoR2/DLC1/itmoon/itmoon_GroundNodeGraph.asset").WaitForCompletion(); for (int i = 0; i < val.nodes.Length; i += 10) { ref NodeFlags flags = ref val.nodes[i].flags; flags = (NodeFlags)((uint)flags | 1u); } } } else { NodeGraph val2 = Addressables.LoadAssetAsync<NodeGraph>((object)"RoR2/DLC1/itancientloft/itancientloft_GroundNodeGraph.asset").WaitForCompletion(); for (int j = 0; j < val2.nodes.Length; j += 10) { ref NodeFlags flags2 = ref val2.nodes[j].flags; flags2 = (NodeFlags)((uint)flags2 | 1u); } } } public static bool NoPreLoopPostLoop(orig_IsUnlockedBeforeLooping orig, BazaarController self, SceneDef sceneDef) { if (WConfig.cfgLoopSeers.Value && Object.op_Implicit((Object)(object)sceneDef.loopedSceneDef) && Run.instance.stageClearCount >= 5) { return false; } return orig.Invoke(self, sceneDef); } public static void DCCSFixes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Expected O, but got Unknown //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: 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_0120: Expected O, but got Unknown DccsPool val = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/artifactworld02/dpArtifactWorld02Monsters.asset").WaitForCompletion(); ((PoolEntry)val.poolCategories[0].includedIfConditionsMet[0]).dccs = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC2/artifactworld02/dccsArtifactWorld02Monsters_DLC1.asset").WaitForCompletion(); DirectorCardCategorySelection val2 = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"eca601c0708cfe940b371b5cae6a4872").WaitForCompletion(); val2.categories[0].cards[0].spawnCard = null; val2.categories[1].cards[0].spawnCard = null; val2.categories[0].cards[0].spawnCardReference = new AssetReferenceT<SpawnCard>("cf55a1f0cb720ec4eb136a5976013bd0"); val2.categories[1].cards[0].spawnCardReference = new AssetReferenceT<SpawnCard>("0ca64dc7fa66f4e4a88352d08bf15e66"); DirectorCardCategorySelection val3 = Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"359a1dff413474745a1d4076c1b26aa7").WaitForCompletion(); val3.AddCard(0, new DirectorCard { spawnCardReference = new AssetReferenceT<SpawnCard>("1d23f78593a91a04f818ca9895f4e7d7"), selectionWeight = 1 }); val3.AddCard(0, new DirectorCard { spawnCardReference = new AssetReferenceT<SpawnCard>("db1a26c64dfaf5043949b2aedf193269"), selectionWeight = 1 }); } public static void SpawnCardFixes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_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) CharacterSpawnCard obj = Addressables.LoadAssetAsync<CharacterSpawnCard>((object)"f7aba48d470b1594281c0eab455a12dd").WaitForCompletion(); ((SpawnCard)obj).forbiddenFlags = (NodeFlags)(((SpawnCard)obj).forbiddenFlags & 0xFE); Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"32c40c2b1da4a4244871ef499447ac1a").WaitForCompletion().maxSpawnsPerStage = 1; Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"2eaec01927ea16245822dcb50080cba3").WaitForCompletion().skipSpawnWhenDevotionArtifactEnabled = true; Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"5a86990b032424e48b4b8456f7d684c9").WaitForCompletion().skipSpawnWhenSacrificeArtifactEnabled = false; Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"5a86990b032424e48b4b8456f7d684c9").WaitForCompletion().orientToFloor = true; } } internal class DevotionFixes { [CompilerGenerated] private static class <>O { public static hook_OnDevotionArtifactDisabled <0>__Fix_EliteListBeingBlank; public static hook_CreateItemTakenOrb <1>__Fix_NullrefWhenOrb; public static hook_UpdateAllMinions <2>__AddItemToAllFirst; public static Manipulator <3>__RemoveNormalItemGiving; public static Manipulator <4>__CheckIfNullBody; public static hook_OnDevotedBodyDead <5>__CheckIfInventoryNull; public static hook_GetOrCreateDevotionInventoryController <6>__CheckIfRandomlyPlayerMasterNull; public static hook_EvolveDevotedLumerian <7>__FixEvolveWithoutBody; public static Action<Run> <8>__OnRunDestroy; public static hook_OnEnter <9>__SoundBugged; public static hook_OnEnter <10>__NoSoundEven; } 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 //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Expected O, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Expected O, but got Unknown //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Expected O, but got Unknown //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Expected O, but got Unknown object obj = <>O.<0>__Fix_EliteListBeingBlank; if (obj == null) { hook_OnDevotionArtifactDisabled val = Fix_EliteListBeingBlank; <>O.<0>__Fix_EliteListBeingBlank = val; obj = (object)val; } DevotionInventoryController.OnDevotionArtifactDisabled += (hook_OnDevotionArtifactDisabled)obj; object obj2 = <>O.<1>__Fix_NullrefWhenOrb; if (obj2 == null) { hook_CreateItemTakenOrb val2 = Fix_NullrefWhenOrb; <>O.<1>__Fix_NullrefWhenOrb = val2; obj2 = (object)val2; } LemurianEggController.CreateItemTakenOrb += (hook_CreateItemTakenOrb)obj2; object obj3 = <>O.<2>__AddItemToAllFirst; if (obj3 == null) { hook_UpdateAllMinions val3 = AddItemToAllFirst; <>O.<2>__AddItemToAllFirst = val3; obj3 = (object)val3; } DevotionInventoryController.UpdateAllMinions += (hook_UpdateAllMinions)obj3; object obj4 = <>O.<3>__RemoveNormalItemGiving; if (obj4 == null) { Manipulator val4 = RemoveNormalItemGiving; <>O.<3>__RemoveNormalItemGiving = val4; obj4 = (object)val4; } DevotionInventoryController.UpdateMinionInventory += (Manipulator)obj4; object obj5 = <>O.<4>__CheckIfNullBody; if (obj5 == null) { Manipulator val5 = CheckIfNullBody; <>O.<4>__CheckIfNullBody = val5; obj5 = (object)val5; } DevotionInventoryController.UpdateMinionInventory += (Manipulator)obj5; object obj6 = <>O.<5>__CheckIfInventoryNull; if (obj6 == null) { hook_OnDevotedBodyDead val6 = CheckIfInventoryNull; <>O.<5>__CheckIfInventoryNull = val6; obj6 = (object)val6; } DevotedLemurianController.OnDevotedBodyDead += (hook_OnDevotedBodyDead)obj6; object obj7 = <>O.<6>__CheckIfRandomlyPlayerMasterNull; if (obj7 == null) { hook_GetOrCreateDevotionInventoryController val7 = CheckIfRandomlyPlayerMasterNull; <>O.<6>__CheckIfRandomlyPlayerMasterNull = val7; obj7 = (object)val7; } DevotionInventoryController.GetOrCreateDevotionInventoryController += (hook_GetOrCreateDevotionInventoryController)obj7; object obj8 = <>O.<7>__FixEvolveWithoutBody; if (obj8 == null) { hook_EvolveDevotedLumerian val8 = FixEvolveWithoutBody; <>O.<7>__FixEvolveWithoutBody = val8; obj8 = (object)val8; } DevotionInventoryController.EvolveDevotedLumerian += (hook_EvolveDevotedLumerian)obj8; Run.onRunDestroyGlobal += DevotionInventoryController.OnRunDestroy; if (WConfig.cfgDevotionSpareDroneParts.Value) { GameObject val9 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/CU8/DevotedLemurianBody.prefab").WaitForCompletion(); GameObject val10 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/CU8/DevotedLemurianBruiserBody.prefab").WaitForCompletion(); CharacterBody component = val9.GetComponent<CharacterBody>(); component.bodyFlags = (BodyFlags)(component.bodyFlags | 0x2000); CharacterBody component2 = val10.GetComponent<CharacterBody>(); component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 0x2000); } object obj9 = <>O.<9>__SoundBugged; if (obj9 == null) { hook_OnEnter val11 = SoundBugged; <>O.<9>__SoundBugged = val11; obj9 = (object)val11; } SpawnState.OnEnter += (hook_OnEnter)obj9; object obj10 = <>O.<10>__NoSoundEven; if (obj10 == null) { hook_OnEnter val12 = NoSoundEven; <>O.<10>__NoSoundEven = val12; obj10 = (object)val12; } SpawnState.OnEnter += (hook_OnEnter)obj10; } private static void NoSoundEven(orig_OnEnter orig, SpawnState self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)((Component)((EntityState)self).characterBody.master).GetComponent<DevotedLemurianController>())) { Util.PlaySound(SpawnState.devotionHissSoundString, ((EntityState)self).gameObject); Util.PlaySound(SpawnState.devotionSpawnSoundString, ((EntityState)self).gameObject); } } private static void SoundBugged(orig_OnEnter orig, SpawnState self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)((Component)((EntityState)self).characterBody.master).GetComponent<DevotedLemurianController>())) { Util.PlaySound(SpawnState.devotionHissSoundString, ((EntityState)self).gameObject); Util.PlaySound(SpawnState.devotionSpawnSoundString, ((EntityState)self).gameObject); } } private static void FixEvolveWithoutBody(orig_EvolveDevotedLumerian orig, DevotionInventoryController self, DevotedLemurianController devotedLemurianController) { //IL_005f: 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) if ((Object)(object)devotedLemurianController.LemurianBody == (Object)null && Object.op_Implicit((Object)(object)devotedLemurianController._lemurianMaster)) { switch (devotedLemurianController.DevotedEvolutionLevel) { case 1: devotedLemurianController.LemurianInventory.SetEquipmentIndex(DevotionInventoryController.lowLevelEliteBuffs[Random.Range(0, DevotionInventoryController.lowLevelEliteBuffs.Count)]); break; case 2: devotedLemurianController.LemurianInventory.SetEquipmentIndex((EquipmentIndex)(-1)); devotedLemurianController._lemurianMaster.bodyPrefab = BodyCatalog.FindBodyPrefab("DevotedLemurianBruiserBody"); break; case 3: devotedLemurianController.LemurianInventory.SetEquipmentIndex(DevotionInventoryController.highLevelEliteBuffs[Random.Range(0, DevotionInventoryController.highLevelEliteBuffs.Count)]); break; } } else { orig.Invoke(self, devotedLemurianController); } } private static DevotionInventoryController CheckIfRandomlyPlayerMasterNull(orig_GetOrCreateDevotionInventoryController orig, Interactor summoner) { foreach (DevotionInventoryController instance in DevotionInventoryController.InstanceList) { if ((Object)(object)instance._summonerMaster == (Object)null) { Object.Destroy((Object)(object)instance); } } return orig.Invoke(summoner); } private static void CheckIfInventoryNull(orig_OnDevotedBodyDead orig, DevotedLemurianController self) { if (Object.op_Implicit((Object)(object)self) && (Object)(object)self._devotionInventoryController != (Object)null) { orig.Invoke(self); } } private static void CheckIfNullBody(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DevotionInventoryController", "activationSoundEventDef") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<GameObject, DevotedLemurianController, GameObject>>((Func<GameObject, DevotedLemurianController, GameObject>)((GameObject obj, DevotedLemurianController lem) => ((Object)(object)lem.LemurianBody == (Object)null) ? null : obj)); } else { WolfFixes.log.LogError((object)"IL Failed : CheckIfNullBody"); } } private static void RemoveNormalItemGiving(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0042: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.Inventory", "GiveItemPermanent") })) { val.Prev.OpCode = OpCodes.Ldc_I4_0; } else { WolfFixes.log.LogError((object)"IL Failed: FixOneBehindRemoveItemHerel"); } } private static void FixBodyComponentsSometimesJustNotBeingThere(orig_UpdateMinionInventory orig, DevotionInventoryController self, DevotedLemurianController devotedLemurianController, bool shouldEvolve) { orig.Invoke(self, devotedLemurianController, shouldEvolve); if (Object.op_Implicit((Object)(object)devotedLemurianController.LemurianBody) && Object.op_Implicit((Object)(object)devotedLemurianController.LemurianBody.inventory)) { devotedLemurianController.LemurianBody.OnInventoryChanged(); } } private static void AddItemToAllFirst(orig_UpdateAllMinions orig, DevotionInventoryController self, bool shouldEvolve) { //IL_0020: 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) if (shouldEvolve && Object.op_Implicit((Object)(object)self._summonerMaster)) { MinionGroup val = MinionGroup.FindGroup(((NetworkBehaviour)self._summonerMaster).netId); if (val != null) { MinionOwnership[] members = val.members; DevotedLemurianController val3 = default(DevotedLemurianController); foreach (MinionOwnership val2 in members) { if (Object.op_Implicit((Object)(object)val2) && ((Component)((Component)val2).GetComponent<CharacterMaster>()).TryGetComponent<DevotedLemurianController>(ref val3)) { self._devotionMinionInventory.GiveItem(val3.DevotionItem, 1); } } } } orig.Invoke(self, shouldEvolve); ((MonoBehaviour)self).StartCoroutine(FixItemComponentsBeingDeleted(self)); } public static IEnumerator FixItemComponentsBeingDeleted(DevotionInventoryController self) { yield return (object)new WaitForSeconds(1f); if (!Object.op_Implicit((Object)(object)self._summonerMaster)) { yield break; } MinionGroup minionGroup = MinionGroup.FindGroup(((NetworkBehaviour)self._summonerMaster).netId); if (minionGroup == null) { yield break; } MinionOwnership[] members = minionGroup.members; DevotedLemurianController devotedLemurianController = default(DevotedLemurianController); foreach (MinionOwnership minionOwnership in members) { if (Object.op_Implicit((Object)(object)minionOwnership) && ((Component)((Component)minionOwnership).GetComponent<CharacterMaster>()).TryGetComponent<DevotedLemurianController>(ref devotedLemurianController) && Object.op_Implicit((Object)(object)devotedLemurianController.LemurianBody) && Object.op_Implicit((Object)(object)devotedLemurianController.LemurianBody.inventory)) { devotedLemurianController.LemurianBody.OnInventoryChanged(); } devotedLemurianController = null; } } private static void Fix_EliteListBeingBlank(orig_OnDevotionArtifactDisabled orig, RunArtifactManager runArtifactManager, ArtifactDef artifactDef) { if ((Object)(object)artifactDef == (Object)(object)Artifacts.Devotion) { List<EquipmentIndex> lowLevelEliteBuffs = new List<EquipmentIndex>(DevotionInventoryController.lowLevelEliteBuffs); List<EquipmentIndex> highLevelEliteBuffs = new List<EquipmentIndex>(DevotionInventoryController.highLevelEliteBuffs); orig.Invoke(runArtifactManager, artifactDef); DevotionInventoryController.lowLevelEliteBuffs = lowLevelEliteBuffs; DevotionInventoryController.highLevelEliteBuffs = highLevelEliteBuffs; } else { orig.Invoke(runArtifactManager, artifactDef); } } private static void Fix_NullrefWhenOrb(orig_CreateItemTakenOrb orig, LemurianEggController self, Vector3 effectOrigin, GameObject targetObject, ItemIndex itemIndex) { //IL_003c: 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) if (!Object.op_Implicit((Object)(object)DevotionInventoryController.s_effectPrefab)) { DevotionInventoryController.OnDevotionArtifactEnabled(RunArtifactManager.instance, Artifacts.Devotion); Items.BoostDamage.hidden = true; Items.BoostHp.hidden = true; } orig.Invoke(self, effectOrigin, targetObject, itemIndex); } } internal class EquipmentFixes { [CompilerGenerated] private static class <>O { public static hook_SetupWings <0>__BugWingsAlways_SetupWings; public static hook_OnDisable <1>__BugWingsAlways_OnDisable; public static hook_OnEnter <2>__FallbackIfNoItemDisplay; public static Manipulator <3>__FixSawmarang; } public static void VisualFixes() { //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 object obj = <>O.<0>__BugWingsAlways_SetupWings; if (obj == null) { hook_SetupWings val = BugWingsAlways_SetupWings; <>O.<0>__BugWingsAlways_SetupWings = val; obj = (object)val; } JetpackController.SetupWings += (hook_SetupWings)obj; object obj2 = <>O.<1>__BugWingsAlways_OnDisable; if (obj2 == null) { hook_OnDisable val2 = BugWingsAlways_OnDisable; <>O.<1>__BugWingsAlways_OnDisable = val2; obj2 = (object)val2; } JetpackController.OnDisable += (hook_OnDisable)obj2; object obj3 = <>O.<2>__FallbackIfNoItemDisplay; if (obj3 == null) { hook_OnEnter val3 = FallbackIfNoItemDisplay; <>O.<2>__FallbackIfNoItemDisplay = val3; obj3 = (object)val3; } CountDown.OnEnter += (hook_OnEnter)obj3; } public static void GameplayFixes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown EquipmentDef val = Addressables.LoadAssetAsync<EquipmentDef>((object)"f2ddbb7586240e648945ad494ebe3984").WaitForCompletion(); if (val.cooldown == 0.1f) { val.cooldown -= 0.1f; } Addressables.LoadAssetAsync<GameObject>((object)"9ca7d392fa3bb444b827d475b36b9253").WaitForCompletion().AddComponent<ThisIsASawmarang>(); object obj = <>O.<3>__FixSawmarang; if (obj == null) { Manipulator val2 = FixSawmarang; <>O.<3>__FixSawmarang = val2; obj = (object)val2; } GlobalEventManager.ProcessHitEnemy += (Manipulator)obj; } private static void FallbackIfNoItemDisplay(orig_OnEnter orig, CountDown self) { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (self.vfxInstances.Length == 0 && Object.op_Implicit((Object)(object)((QuestVolatileBatteryBaseState)self).networkedBodyAttachment.attachedBody) && Object.op_Implicit((Object)(object)CountDown.vfxPrefab) && Object.op_Implicit((Object)(object)((QuestVolatileBatteryBaseState)self).attachedCharacterModel)) { self.vfxInstances = (GameObject[])(object)new GameObject[1]; GameObject val = Object.Instantiate<GameObject>(CountDown.vfxPrefab, ((QuestVolatileBatteryBaseState)self).networkedBodyAttachment.attachedBody.coreTransform); val.transform.localPosition = Vector3.zero; val.transform.localRotation = Quaternion.identity; val.transform.localScale = new Vector3(2.5f / val.transform.lossyScale.x, 2.5f / val.transform.lossyScale.y, 2.5f / val.transform.lossyScale.z); if (val.transform.localScale.z < 1f) { val.transform.localScale = new Vector3(1f, 1f, 1f); } Light component = ((Component)val.transform.GetChild(0)).GetComponent<Light>(); component.range *= 3f; Light component2 = ((Component)val.transform.GetChild(0)).GetComponent<Light>(); component2.intensity *= 3f; LightIntensityCurve component3 = ((Component)val.transform.GetChild(0)).GetComponent<LightIntensityCurve>(); component3.timeMax /= 2f; self.vfxInstances[0] = val; } } private static void FixSawmarang(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_005f: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.RoR2Content/Equipment", "Saw"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.EquipmentDef", "get_equipmentIndex") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<EquipmentIndex, DamageInfo, EquipmentIndex>>((Func<EquipmentIndex, DamageInfo, EquipmentIndex>)((EquipmentIndex eq, DamageInfo damageInfo) => Object.op_Implicit((Object)(object)damageInfo.inflictor.GetComponent<ThisIsASawmarang>()) ? Equipment.Saw.equipmentIndex : eq)); } else { WolfFixes.log.LogError((object)"IL Failed : FixSawmarang"); } } private static void BugWingsAlways_SetupWings(orig_SetupWings orig, JetpackController self) { //IL_004a: 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_006e: 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_0078: 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) //IL_0083: Unknown result type (might be due to invalid IL or missing references) CharacterModel val = null; if (Object.op_Implicit((Object)(object)self.targetBody) && self.targetBody.isPlayerControlled) { val = ((Component)self.targetBody.modelLocator.modelTransform).GetComponent<CharacterModel>(); if (Object.op_Implicit((Object)(object)val.itemDisplayRuleSet) && val.currentEquipmentDisplayIndex != Equipment.Jetpack.equipmentIndex) { DisplayRuleGroup equipmentDisplayRuleGroup = val.itemDisplayRuleSet.GetEquipmentDisplayRuleGroup(Equipment.Jetpack.equipmentIndex); val.InstantiateDisplayRuleGroup(equipmentDisplayRuleGroup, (ItemIndex)(-1), Equipment.Jetpack.equipmentIndex, (KeyItemIndex)(-1)); } } orig.Invoke(self); if ((Object)(object)val != (Object)null) { DontDestroyIfJetpack dontDestroyIfJetpack = ((Component)val).GetComponent<DontDestroyIfJetpack>(); if (!Object.op_Implicit((Object)(object)dontDestroyIfJetpack)) { dontDestroyIfJetpack = ((Component)val).gameObject.AddComponent<DontDestroyIfJetpack>(); } dontDestroyIfJetpack.characterModel = val; dontDestroyIfJetpack.Setup(); } } private static void BugWingsAlways_OnDisable(orig_OnDisable orig, JetpackController self) { orig.Invoke(self); if (!Object.op_Implicit((Object)(object)self.targetBody) || !self.targetBody.isPlayerControlled) { return; } CharacterModel component = ((Component)self.targetBody.modelLocator.modelTransform).GetComponent<CharacterModel>(); if (Object.op_Implicit((Object)(object)component.itemDisplayRuleSet)) { DontDestroyIfJetpack component2 = ((Component)component).GetComponent<DontDestroyIfJetpack>(); if (Object.op_Implicit((Object)(object)component2)) { component2.UnSetup(); } } } } internal class ThisIsASawmarang : MonoBehaviour { } internal class DontDestroyIfJetpack : MonoBehaviour { public CharacterModel characterModel; public ParentedPrefabDisplay storedDisplay; public EquipmentIndex index; public void Setup() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_003e: 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_005c: Unknown result type (might be due to invalid IL or missing references) index = Equipment.Jetpack.equipmentIndex; for (int num = characterModel.parentedPrefabDisplays.Count - 1; num >= 0; num--) { if (characterModel.parentedPrefabDisplays[num].equipmentIndex == index) { storedDisplay = characterModel.parentedPrefabDisplays[num]; characterModel.parentedPrefabDisplays.RemoveAt(num); break; } } } public void UnSetup() { //IL_0007: 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_0025: Unknown result type (might be due to invalid IL or missing references) if (characterModel.currentEquipmentDisplayIndex == index) { characterModel.parentedPrefabDisplays.Add(storedDisplay); } else { ((ParentedPrefabDisplay)(ref storedDisplay)).Undo(); } } } internal class GameplayMisc { [CompilerGenerated] private static class <>O { public static hook_HandlePostRunDestination <0>__FixEclipseRunsKickingOutOfLobby; } public static void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //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_005d: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown SceneDef val = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/habitat/habitat.asset").WaitForCompletion(); val.validForRandomSelection = true; val = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/helminthroost/helminthroost.asset").WaitForCompletion(); val.validForRandomSelection = true; GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)"e075b1933eaeb214180184c6d242f13a").WaitForCompletion(); val2.GetComponent<ProjectileSimple>().lifetime = 3f; Object.Destroy((Object)(object)Addressables.LoadAssetAsync<GameObject>((object)"5459e8ded89cd0f4d84219750a7e10ac").WaitForCompletion().GetComponent<Deployable>()); object obj = <>O.<0>__FixEclipseRunsKickingOutOfLobby; if (obj == null) { hook_HandlePostRunDestination val3 = FixEclipseRunsKickingOutOfLobby; <>O.<0>__FixEclipseRunsKickingOutOfLobby = val3; obj = (object)val3; } EclipseRun.HandlePostRunDestination += (hook_HandlePostRunDestination)obj; } private static void FixEclipseRunsKickingOutOfLobby(orig_HandlePostRunDestination orig, EclipseRun self) { if (NetworkServer.active) { NetworkManager.singleton.ServerChangeScene("lobby"); } } } internal class InteractableFixes { [CompilerGenerated] private static class <>O { public static hook_SetUpSeerStations <0>__FixDuplicateAndEmptyThirdSeers; public static hook_SetRunNextStageToTarget <1>__BazaarDisableAllSeers; public static hook_OnDeserialize <2>__FixBrokenAH_DroneCombinerCombining_OnDeserialize; public static hook_GetTeamBalancedPageCount <3>__FixPageCountRequirement; } public static void VisualFixes() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //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) //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_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_0094: Expected O, but got Unknown //IL_00aa: 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_00b5: Expected O, but got Unknown ShrineShapingFixes.Start(); object obj = <>O.<0>__FixDuplicateAndEmptyThirdSeers; if (obj == null) { hook_SetUpSeerStations val = FixDuplicateAndEmptyThirdSeers; <>O.<0>__FixDuplicateAndEmptyThirdSeers = val; obj = (object)val; } BazaarController.SetUpSeerStations += (hook_SetUpSeerStations)obj; object obj2 = <>O.<1>__BazaarDisableAllSeers; if (obj2 == null) { hook_SetRunNextStageToTarget val2 = BazaarDisableAllSeers; <>O.<1>__BazaarDisableAllSeers = val2; obj2 = (object)val2; } SeerStationController.SetRunNextStageToTarget += (hook_SetRunNextStageToTarget)obj2; Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"749e2ff7e1839074885efb0f82197ba7").WaitForCompletion().slightlyRandomizeOrientation = false; Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"592ddd0e913440844b42eff65663abda").WaitForCompletion().slightlyRandomizeOrientation = false; object obj3 = <>O.<2>__FixBrokenAH_DroneCombinerCombining_OnDeserialize; if (obj3 == null) { hook_OnDeserialize val3 = FixBrokenAH_DroneCombinerCombining_OnDeserialize; <>O.<2>__FixBrokenAH_DroneCombinerCombining_OnDeserialize = val3; obj3 = (object)val3; } DroneCombinerCombining.OnDeserialize += (hook_OnDeserialize)obj3; object obj4 = <>O.<3>__FixPageCountRequirement; if (obj4 == null) { hook_GetTeamBalancedPageCount val4 = FixPageCountRequirement; <>O.<3>__FixPageCountRequirement = val4; obj4 = (object)val4; } DLC4CatastropheProvider.GetTeamBalancedPageCount += (hook_GetTeamBalancedPageCount)obj4; } private static int FixPageCountRequirement(orig_GetTeamBalancedPageCount orig) { return Util.GetTotalPageCountFromTeam((TeamIndex)1, true, true); } public static void MissingDLCRequirements() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00b0: Unknown result type (might be due to invalid IL or missing references) Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidCoinBarrel/VoidCoinBarrel.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC1; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/ShrineColossusAccess.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC2; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC3/DroneCombinerStation/DroneCombinerStation.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC3; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC3/DroneScrapper/DroneScrapper.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC3; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC3/TripleDroneShop/TripleDroneShop.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC3; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC3/TemporaryItemsDistributor/TemporaryItemsShopTerminal.prefab").WaitForCompletion().AddComponent<ExpansionRequirementComponent>() .requiredExpansion = DLCS.DLC3; } private static void FixBrokenAH_DroneCombinerCombining_OnDeserialize(orig_OnDeserialize orig, DroneCombinerCombining self, NetworkReader reader) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: 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) NetworkInstanceId val = reader.ReadNetworkId(); NetworkInstanceId val2 = reader.ReadNetworkId(); GameObject val3 = ClientScene.FindLocalObject(val); GameObject val4 = ClientScene.FindLocalObject(val2); if (Object.op_Implicit((Object)(object)val3)) { self.toUpgrade = val3.GetComponent<CharacterBody>(); } if (Object.op_Implicit((Object)(object)val4)) { self.toDestroy = val4.GetComponent<CharacterBody>(); } self._controller = ((EntityState)self).gameObject.GetComponent<DroneCombinerController>(); } private static void BazaarDisableAllSeers(orig_SetRunNextStageToTarget orig, SeerStationController self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)BazaarController.instance)) { for (int i = 0; i < BazaarController.instance.seerStations.Length; i++) { ((Component)BazaarController.instance.seerStations[i]).GetComponent<PurchaseInteraction>().SetAvailable(false); } } } private static void FixDuplicateAndEmptyThirdSeers(orig_SetUpSeerStations orig, BazaarController self) { //IL_00d0: 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_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); List<string> list = new List<string>(); List<SeerStationController> list2 = new List<SeerStationController>(); SeerStationController[] seerStations = self.seerStations; foreach (SeerStationController val in seerStations) { if (val.targetSceneDefIndex != -1) { string baseSceneName = SceneCatalog.indexToSceneDef[val.targetSceneDefIndex].baseSceneName; if (list.Contains(baseSceneName)) { list2.Add(val); } else { list.Add(baseSceneName); } } else { list2.Add(val); } } if (list2.Count <= 0) { return; } SceneDef nextStageScene = Run.instance.nextStageScene; List<SceneDef> list3 = new List<SceneDef>(); if ((Object)(object)nextStageScene != (Object)null) { int stageOrder = nextStageScene.stageOrder; Enumerator<SceneDef> enumerator = SceneCatalog.allSceneDefs.GetEnumerator(); try { while (enumerator.MoveNext()) { SceneDef current = enumerator.Current; if (current.stageOrder == stageOrder && ((Object)(object)current.requiredExpansion == (Object)null || Run.instance.IsExpansionEnabled(current.requiredExpansion)) && self.IsUnlockedBeforeLooping(current) && !list.Contains(current.baseSceneName)) { list3.Add(current); } } } finally { ((IDisposable)enumerator/*cast due to .constrained prefix*/).Dispose(); } } if (list3.Count <= 0) { return; } foreach (SeerStationController item in list2) { Util.ShuffleList<SceneDef>(list3, self.rng); int index = list3.Count - 1; item.SetTargetScene(list3[index]); list3.RemoveAt(index); ((Component)item).GetComponent<PurchaseInteraction>().SetAvailable(true); } } } internal class ItemFixes { [CompilerGenerated] private static class <>O { public static Manipulator <0>__FixBolsteringLanternBeingPlus10; public static Manipulator <1>__FixStoneFluxBeingAppliedTwice; public static Manipulator <2>__FixChargedPerferatorCrit; public static Manipulator <3>__Antler_FixWrongAuth; public static hook_RpcRequestShardInfoClient <4>__Antler_FixNullRefOnNullMotor; public static Manipulator <5>__Bandolier_WrongAuthCheck; public static Manipulator <6>__RemoveOSPEntirelyIfYouAreBelowOSPThreshold; public static Manipulator <7>__FixWEchoDamageNotProccingPlanulaAnymoreAC141; public static Manipulator <8>__FixWEchoDamageDoubleDippingEnemyWatches; public static Manipulator <9>__FixWEchoDoubleDippingLunarRuin; public static Manipulator <10>__FixParryConsumedOn0Damage0ProcAttacks; } 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 //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0179: 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_0184: Expected O, but got Unknown //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) //IL_0162: Expected O, but got Unknown object obj = <>O.<0>__FixBolsteringLanternBeingPlus10; if (obj == null) { Manipulator val = FixBolsteringLanternBeingPlus10; <>O.<0>__FixBolsteringLanternBeingPlus10 = val; obj = (object)val; } CharacterBody.RecalculateStats += (Manipulator)obj; object obj2 = <>O.<1>__FixStoneFluxBeingAppliedTwice; if (obj2 == null) { Manipulator val2 = FixStoneFluxBeingAppliedTwice; <>O.<1>__FixStoneFluxBeingAppliedTwice = val2; obj2 = (object)val2; } CharacterBody.RecalculateStats += (Manipulator)obj2; object obj3 = <>O.<2>__FixChargedPerferatorCrit; if (obj3 == null) { Manipulator val3 = FixChargedPerferatorCrit; <>O.<2>__FixChargedPerferatorCrit = val3; obj3 = (object)val3; } GlobalEventManager.ProcessHitEnemy += (Manipulator)obj3; object obj4 = <>O.<3>__Antler_FixWrongAuth; if (obj4 == null) { Manipulator val4 = Antler_FixWrongAuth; <>O.<3>__Antler_FixWrongAuth = val4; obj4 = (object)val4; } CharacterBody.RpcRequestShardInfoClient += (Manipulator)obj4; object obj5 = <>O.<4>__Antler_FixNullRefOnNullMotor; if (obj5 == null) { hook_RpcRequestShardInfoClient val5 = Antler_FixNullRefOnNullMotor; <>O.<4>__Antler_FixNullRefOnNullMotor = val5; obj5 = (object)val5; } CharacterBody.RpcRequestShardInfoClient += (hook_RpcRequestShardInfoClient)obj5; object obj6 = <>O.<5>__Bandolier_WrongAuthCheck; if (obj6 == null) { Manipulator val6 = Bandolier_WrongAuthCheck; <>O.<5>__Bandolier_WrongAuthCheck = val6; obj6 = (object)val6; } SkillLocator.ApplyAmmoPack += (Manipulator)obj6; if (WConfig.cfgFixWarpedOSP.Value) { object obj7 = <>O.<6>__RemoveOSPEntirelyIfYouAreBelowOSPThreshold; if (obj7 == null) { Manipulator val7 = RemoveOSPEntirelyIfYouAreBelowOSPThreshold; <>O.<6>__RemoveOSPEntirelyIfYouAreBelowOSPThreshold = val7; obj7 = (object)val7; } HealthComponent.TakeDamageProcess += (Manipulator)obj7; } object obj8 = <>O.<7>__FixWEchoDamageNotProccingPlanulaAnymoreAC141; if (obj8 == null) { Manipulator val8 = FixWEchoDamageNotProccingPlanulaAnymoreAC141; <>O.<7>__FixWEchoDamageNotProccingPlanulaAnymoreAC141 = val8; obj8 = (object)val8; } HealthComponent.TakeDamageProcess += (Manipulator)obj8; object obj9 = <>O.<8>__FixWEchoDamageDoubleDippingEnemyWatches; if (obj9 == null) { Manipulator val9 = FixWEchoDamageDoubleDippingEnemyWatches; <>O.<8>__FixWEchoDamageDoubleDippingEnemyWatches = val9; obj9 = (object)val9; } HealthComponent.TakeDamageProcess += (Manipulator)obj9; if (!WolfFixes.riskyTweaks) { object obj10 = <>O.<9>__FixWEchoDoubleDippingLunarRuin; if (obj10 == null) { Manipulator val10 = FixWEchoDoubleDippingLunarRuin; <>O.<9>__FixWEchoDoubleDippingLunarRuin = val10; obj10 = (object)val10; } HealthComponent.TakeDamageProcess += (Manipulator)obj10; } object obj11 = <>O.<10>__FixParryConsumedOn0Damage0ProcAttacks; if (obj11 == null) { Manipulator val11 = FixParryConsumedOn0Damage0ProcAttacks; <>O.<10>__FixParryConsumedOn0Damage0ProcAttacks = val11; obj11 = (object)val11; } HealthComponent.TakeDamageProcess += (Manipulator)obj11; HoldoutZoneController component = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC4/SpawnAltar/SpawnAltar.prefab").WaitForCompletion().GetComponent<HoldoutZoneController>(); component.ignoreRadiusModifiers = true; component.applyFocusConvergence = false; } private static void FixBolsteringLanternBeingPlus10(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); bool flag = val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Buffs", "AttackSpeedPerNearbyAllyOrEnemyBuff"), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "RoR2.CharacterBody", "GetBuffCount") }); bool flag2 = val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Buffs", "AttackSpeedPerNearbyAllyOrEnemyBuff"), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "RoR2.CharacterBody", "GetBuffCount") }); if (flag && flag2) { val.EmitDelegate<Func<int, int>>((Func<int, int>)((int buffcount) => 0)); } else { WolfFixes.log.LogError((object)"IL Failed : FixBolsteringLanternBeingPlus10"); } } private static void FixWEchoDoubleDippingLunarRuin(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC2Content/Buffs", "lunarruin"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.CharacterBody", "HasBuff") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<bool, DamageInfo, bool>>((Func<bool, DamageInfo, bool>)((bool var, DamageInfo self) => !self.delayedDamageSecondHalf && var)); } else { WolfFixes.log.LogError((object)"IL Failed : FixWEchoDoubleDippingLunarRuin"); } } private static void FixParryConsumedOn0Damage0ProcAttacks(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, "RoR2.DLC3Content/Buffs", "SureProc"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.CharacterBody", "HasBuff") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<bool, DamageInfo, bool>>((Func<bool, DamageInfo, bool>)((bool var, DamageInfo self) => self.procCoefficient != 0f && self.damage != 0f && var)); } else { WolfFixes.log.LogError((object)"IL Failed : FixParryConsuemdOn0Damage0ProcAttacks"); } } private static void RemoveOSPEntirelyIfYouAreBelowOSPThreshold(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.CharacterBody", "get_hasOneShotProtection") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<bool, HealthComponent, bool>>((Func<bool, HealthComponent, bool>)((bool var, HealthComponent self) => !(self.combinedHealthFraction <= 1f - self.body.oneShotProtectionFraction) && var)); } else { WolfFixes.log.LogError((object)"IL Failed : RemoveOSPEntirelyIfYouAreBelowOSPThreshold"); } } private static void FixWEchoDamageDoubleDippingEnemyWatches(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_008a: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); bool flag = val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.CharacterBody", "get_canPerformBackstab") }); bool flag2 = val.TryGotoPrev((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Object", "op_Implicit") }); if (!flag || !flag2) { WolfFixes.log.LogError((object)"IL Failed : FixWEchoDamageDoubleDippingEnemyWatches Part 1"); return; } val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<bool, DamageInfo, bool>>((Func<bool, DamageInfo, bool>)((bool var, DamageInfo damageInfo) => !damageInfo.delayedDamageSecondHalf && var)); } private static void FixWEchoDamageNotProccingPlanulaAnymoreAC141(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_00bf: 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) ILCursor val = new ILCursor(il); bool flag = false; ILLabel val2 = default(ILLabel); if (!val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[4] { (Instruction x) => ILPatternMatchingExt.MatchBrtrue(x, ref val2), (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.HealthComponent", "body"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.CharacterBody", "get_armor") })) { WolfFixes.log.LogError((object)"IL Failed : FixWEchoDamageNotProccingPlanulaAnymoreAC141 Part 1"); return; } val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<bool, DamageInfo, bool>>((Func<bool, DamageInfo, bool>)((bool var, DamageInfo damageInfo) => !damageInfo.delayedDamageSecondHalf && var)); if (!val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchMul(x), (Instruction x) => ILPatternMatchingExt.MatchCall(x, "UnityEngine.Mathf", "Max"), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, 12) })) { WolfFixes.log.LogError((object)"IL Failed : FixWEchoDamageNotProccingPlanulaAnymoreAC141 Part 2"); return; } val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<float, DamageInfo, float>>((Func<float, DamageInfo, float>)((float var, DamageInfo damageInfo) => damageInfo.delayedDamageSecondHalf ? 1f : var)); } private static void FixStoneFluxBeingAppliedTwice(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>[5] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 136), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 47), (Instruction x) => ILPatternMatchingExt.MatchConvR4(x), (Instruction x) => ILPatternMatchingExt.MatchAdd(x), (Instruction x) => ILPatternMatchingExt.MatchStloc(x, 136) }) && val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 136), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 47) })) { val.EmitDelegate<Func<int, int>>((Func<int, int>)((int skill) => 0)); } else { WolfFixes.log.LogError((object)"IL Failed : FixStoneFluxBeingAppliedTwice"); } } private static void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); self.hasOneShotProtection = self.hasOneShotProtection && self.oneShotProtectionFraction > 0f; } private static void Bandolier_WrongAuthCheck(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "UnityEngine.Networking.NetworkIdentity", "get_hasAuthority") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<bool, SkillLocator, bool>>((Func<bool, SkillLocator, bool>)((bool has, SkillLocator skill) => skill.hasEffectiveAuthority)); } else { WolfFixes.log.LogError((object)"IL Failed : Bandolier_WrongAuthCheck"); } } private static void Antler_FixNullRefOnNullMotor(orig_RpcRequestShardInfoClient orig, CharacterBody self) { //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_0046: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.characterMotor)) { orig.Invoke(self); return; } Quaternion val = Quaternion.Euler(0f, Random.Range(-45f, 45f), 0f); Vector3 val2 = default(Vector3); ((Vector3)(ref val2))..ctor(self.inputBank.aimDirection.x, 0f, self.inputBank.aimDirection.z); Vector3 val3 = val * val2; Vector3 val4 = ((Component)self).gameObject.transform.position + val3 * Random.Range(15f, 30f); NodeGraph groundNodes = SceneInfo.instance.groundNodes; NodeIndex val5 = groundNodes.FindClosestNode(val4, (HullClassification)0, float.PositiveInfinity); if (groundNodes.GetNodePosition(val5, ref val4)) { float num = HullDef.Find((HullClassification)0).radius * 0.7f; if (!HGPhysics.DoesOverlapSphere(val4 + Vector3.up * (num + 0.25f), num, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.defaultLayer)).mask) | LayerMask.op_Implicit(CommonMasks.fakeActorLayers) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.debris)).mask), (QueryTriggerInteraction)0)) { self.CallCmdSpawnShard(val4); } } } private static void Antler_FixWrongAuth(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.MatchCall(x, "UnityEngine.Networking.NetworkBehaviour", "get_hasAuthority") })) { val.Remove(); val.EmitDelegate<Func<CharacterBody, bool>>((Func<CharacterBody, bool>)((CharacterBody body) => body.hasEffectiveAuthority)); } else { WolfFixes.log.LogError((object)"IL Failed : Antler_FixWrongAuth"); } } public static void FixChargedPerferatorCrit(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_009d: 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.RoR2Content/Items", "LightningStrikeOnHit") }); val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchNewobj(x, "RoR2.Orbs.SimpleLightningStrikeOrb") }); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStfld(x, "RoR2.Orbs.GenericDamageOrb", "isCrit") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate<Func<bool, DamageInfo, bool>>((Func<bool, DamageInfo, bool>)((bool isCrit, DamageInfo damageInfo) => damageInfo.crit)); } else { WolfFixes.log.LogError((object)"IL Failed : FixChargedPerferatorCrit"); } } private static void FixWarpedEchoE8(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); val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3] { (Instruction x) => ILPatternMatchingExt.MatchCall(x, "RoR2.Run", "get_instance"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "RoR2.Run", "get_selectedDifficulty"), (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 10) }); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdfld(x, "RoR2.DamageInfo", "delayedDamageSecondHalf") })) { val.Remove(); val.EmitDelegate<Func<DamageInfo, bool>>((Func<DamageInfo, bool>)((DamageInfo damageInfo) => false)); } else { WolfFixes.log.LogError((object)"IL Failed : FixWarpedEchoE8"); } } } internal class ItemTags { public static void CallLate() { //IL_0156: 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_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01de: 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_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) Tags.RemoveTag(Items.CaptainDefenseMatrix, (ItemTag)34); Tags.AddTag(Items.BoostHp, (ItemTag)34); Tags.AddTag(Items.BoostDamage, (ItemTag)34); Tags.AddTag(Items.BoostAttackSpeed, (ItemTag)34); Tags.AddTag(Items.HealthDecay, (ItemTag)34); Tags.AddTag(Items.Ghost, (ItemTag)34); Tags.AddTag(Items.TeamSizeDamageBonus, (ItemTag)34); Tags.AddTag(Items.CutHp, (ItemTag)34); Tags.AddTag(Items.DrizzlePlayerHelper, (ItemTag)34); Tags.AddTag(Items.MonsoonPlayerHelper, (ItemTag)34); Tags.AddTag(Items.GummyCloneIdentifier, (ItemTag)34); Tags.AddTag(Items.CloverVoid, (ItemTag)23); Tags.RemoveTag(Items.FlatHealth, (ItemTag)6); Tags.AddTag(Items.MoveSpeedOnKill, (ItemTag)6); Tags.AddTag(Items.MushroomVoid, (ItemTag)8); Items.ParentEgg.tags[0] = (ItemTag)2; Tags.AddTag(Items.BonusGoldPackOnKill, (ItemTag)4); Tags.AddTag(Items.MonstersOnShrineUse, (ItemTag)4); Tags.AddTag(Items.GoldOnHit, (ItemTag)4); Tags.AddTag(Items.LunarTrinket, (ItemTag)4); Tags.AddTag(Items.FocusConvergence, (ItemTag)4); Tags.AddTag(Items.OnLevelUpFreeUnlock, (ItemTag)4); if (WConfig.cfgItemTags.Value) { Tags.RemoveTag(Items.EquipmentMagazine, (ItemTag)4); Tags.RemoveTag(Items.EnergizedOnEquipmentUse, (ItemTag)4); Tags.RemoveTag(Items.Talisman, (ItemTag)4); Tags.AddTag(Items.FlatHealth, Tags.EvolutionBlacklist); Tags.AddTag(Items.Infusion, (ItemTag)4); Tags.AddTag(Items.PrimarySkillShuriken, Tags.EvolutionBlacklist); Tags.AddTag(Items.ShieldBooster, (ItemTag)4); Tags.AddTag(Items.BarrierOnOverHeal, Tags.EvolutionBlacklist); Tags.AddTag(Items.MoreMissile, Tags.EvolutionBlacklist); Tags.AddTag(Items.TitanGoldDuringTP, (ItemTag)4); Tags.AddTag(Items.SprintWisp, (ItemTag)4); Tags.AddTag(Items.MinorConstructOnKill, (ItemTag)4); Tags.AddTag(Items.SiphonOnLowHealth, (ItemTag)4); Tags.AddTag(Items.RoboBallBuddy, Tags.ScavengerBlacklist); Tags.AddTag(Items.RoboBallBuddy, Tags.EvolutionBlacklist); Tags.AddTag(Items.LunarSun, (ItemTag)4); Tags.AddTag(Items.RandomlyLunar, (ItemTag)4); Tags.AddTag(Items.ElementalRingVoid, Tags.EvolutionBlacklist); Tags.AddTag(Items.ExplodeOnDeathVoid, Tags.EvolutionBlacklist); Tags.AddTag(Items.ExplodeOnDeathVoid, Tags.ScavengerBlacklist); ItemDef itemDef = ItemCatalog.GetItemDef(ItemCatalog.FindItemIndex("WatchMetronome")); if ((Object)(object)itemDef != (Object)null) { Tags.AddTag(itemDef, (ItemTag)4); } itemDef = ItemCatalog.GetItemDef(ItemCatalog.FindItemIndex("VV_ITEM_EHANCE_VIALS_ITEM")); if ((Object)(object)itemDef != (Object)null) { Tags.AddTag(itemDef, (ItemTag)4); } Tags.RemoveTag(Items.Infusion, 0); Tags.AddTag(Items.TeleportOnLowHealth, (ItemTag)2); Tags.AddTag(Items.JumpDamageStrike, (ItemTag)3); Tags.RemoveTag(Items.Knurl, 0); Tags.AddTag(Items.MinorConstructOnKill, (ItemTag)3); Tags.AddTag(Items.ExtraEquipment, (ItemTag)3); Items.RandomDamageZone.tags[0] = (ItemTag)1; Items.HalfSpeedDoubleHealth.tags[0] = (ItemTag)2; Items.LunarSun.tags[0] = (ItemTag)1; Items.LunarUtilityReplacement.tags[0] = (ItemTag)2; Tags.AddTag(Items.ShieldOnly, (ItemTag)2); } } } public class PrayerBeadsStorage : MonoBehaviour { public int lastSeenBeadAmount; } internal class PrayerBeads { [CompilerGenerated] private static class <>O { public static hook_Awake <0>__BuffTracker_ClientFix; public static Manipulator <1>__BuffTracker_SetBuffCount_FixAmount; public static hook_OnBeadReset <2>__CharacterMaster_OnBeadReset; } 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 object obj = <>O.<0>__BuffTracker_ClientFix; if (obj == null) { hook_Awake val = BuffTracker_ClientFix; <>O.<0>__BuffTracker_ClientFix = val; obj = (object)val; } CharacterBody.Awake += (hook_Awake)obj; object obj2 = <>O.<1>__BuffTracker_SetBuffCount_FixAmount; if (obj2 == null) { Manipulator val2 = BuffTracker_SetBuffCount_FixAmount; <>O.<1>__BuffTracker_SetBuffCount_FixAmount = val2; obj2 = (object)val2; } CharacterBody.RecalculateStats += (Manipulator)obj2; object obj3 = <>O.<2>__CharacterMaster_OnBeadReset; if (obj3 == null) { hook_OnBeadReset val3 = CharacterMaster_OnBeadReset; <>O.<2>__CharacterMaster_OnBeadReset = val3; obj3 = (object)val3; } CharacterMaster.OnBeadReset += (hook_OnBeadReset)obj3; } private static void CharacterMaster_OnBeadReset(orig_OnBeadReset orig, CharacterMaster self, bool gainedStats) { orig.Invoke(self, gainedStats); GameObject bodyObject = self.GetBodyObject(); if ((Object)(object)bodyObject != (Object)null) { bodyObject.GetComponent<PrayerBeadsStorage>().lastSeenBeadAmount = 0; } } private static void BuffTracker_ClientFix(orig_Awake orig, Characte