Decompiled source of RiskOfTheAncients2 v2.0.2
ROTA2.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using HG; using KinematicCharacterController; using LookingGlass.ItemStatsNameSpace; using Microsoft.CodeAnalysis; using On.RoR2; using On.RoR2.Items; using On.RoR2.UI; using R2API; using ROTA2.Buffs; using ROTA2.Equipment; using ROTA2.Items; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Skills; using RoR2.UI; using RoR2BepInExPack.GameAssetPaths; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.ResourceManagement.AsyncOperations; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ROTA2")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+e568045bb0a6ac5d9c04ea45798c72b0f7144753")] [assembly: AssemblyProduct("ROTA2")] [assembly: AssemblyTitle("ROTA2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } internal class Utils { public static float CalculateChanceWithLuck(float baseChance, float luckIn) { float num = Mathf.Floor(baseChance); float num2 = baseChance % 1f; int num3 = Mathf.CeilToInt(luckIn); if (num3 > 0) { return num + (1f - Mathf.Pow(1f - num2, (float)(num3 + 1))); } if (num3 < 0) { return num + Mathf.Pow(num2, (float)(Mathf.Abs(num3) + 1)); } return baseChance; } public static float GetExponentialRechargeTime(float baseCooldown, float extraPercent, int count) { return baseCooldown * Mathf.Pow(1f - extraPercent, (float)(count - 1)); } public static float GetExponentialStacking(float basePercent, float extraPercent, int count) { return 1f - (1f - basePercent) * Mathf.Pow(1f - extraPercent, (float)(count - 1)); } public static float GetHyperbolicStacking(float basePercent, float extraPercent, int count) { return 1f - 1f / (1f + basePercent + extraPercent * (float)(count - 1)); } } namespace ROTA2 { public static class Compatibility { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void LookingGlassCompatibility() { //IL_001b: 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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: 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_00ae: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007c: 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: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Expected O, but got Unknown //IL_0174: 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_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: 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_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: 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_0160: Expected O, but got Unknown //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Expected O, but got Unknown //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Expected O, but got Unknown //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Expected O, but got Unknown //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_03aa: Unknown result type (might be due to invalid IL or missing references) //IL_03b4: Expected O, but got Unknown //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Expected O, but got Unknown //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04d9: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_04b9: Unknown result type (might be due to invalid IL or missing references) //IL_04c3: Expected O, but got Unknown //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0576: Unknown result type (might be due to invalid IL or missing references) //IL_0586: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_059e: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Expected O, but got Unknown //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05fb: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0623: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_063b: Unknown result type (might be due to invalid IL or missing references) //IL_0642: Unknown result type (might be due to invalid IL or missing references) //IL_0644: Unknown result type (might be due to invalid IL or missing references) //IL_0649: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Expected O, but got Unknown //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_06a3: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_06bb: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_067d: Expected O, but got Unknown //IL_0700: Unknown result type (might be due to invalid IL or missing references) //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0721: Unknown result type (might be due to invalid IL or missing references) //IL_072d: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Expected O, but got Unknown //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Expected O, but got Unknown //IL_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_07ec: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Expected O, but got Unknown //IL_0884: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_08a5: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08cd: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_0870: Expected O, but got Unknown //IL_0921: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_094e: Unknown result type (might be due to invalid IL or missing references) //IL_095e: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_0903: Unknown result type (might be due to invalid IL or missing references) //IL_090d: Expected O, but got Unknown //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09d3: Unknown result type (might be due to invalid IL or missing references) //IL_09df: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Unknown result type (might be due to invalid IL or missing references) //IL_09fb: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Unknown result type (might be due to invalid IL or missing references) //IL_0a1a: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Expected O, but got Unknown //IL_0a69: Unknown result type (might be due to invalid IL or missing references) //IL_0a6e: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Unknown result type (might be due to invalid IL or missing references) //IL_0a8a: Unknown result type (might be due to invalid IL or missing references) //IL_0a96: Unknown result type (might be due to invalid IL or missing references) //IL_0aa6: Unknown result type (might be due to invalid IL or missing references) //IL_0ab2: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a55: Expected O, but got Unknown //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b1b: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b33: Unknown result type (might be due to invalid IL or missing references) //IL_0b43: Unknown result type (might be due to invalid IL or missing references) //IL_0b4f: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0ae8: Unknown result type (might be due to invalid IL or missing references) //IL_0af2: Expected O, but got Unknown //IL_0ba0: Unknown result type (might be due to invalid IL or missing references) //IL_0ba5: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Unknown result type (might be due to invalid IL or missing references) //IL_0bcd: Unknown result type (might be due to invalid IL or missing references) //IL_0b85: Unknown result type (might be due to invalid IL or missing references) //IL_0b8f: Expected O, but got Unknown //IL_0c12: Unknown result type (might be due to invalid IL or missing references) //IL_0c17: Unknown result type (might be due to invalid IL or missing references) //IL_0c27: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c3f: Unknown result type (might be due to invalid IL or missing references) //IL_0bf7: Unknown result type (might be due to invalid IL or missing references) //IL_0c01: Expected O, but got Unknown //IL_0c84: Unknown result type (might be due to invalid IL or missing references) //IL_0c89: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0ca5: Unknown result type (might be due to invalid IL or missing references) //IL_0cb1: Unknown result type (might be due to invalid IL or missing references) //IL_0c69: Unknown result type (might be due to invalid IL or missing references) //IL_0c73: Expected O, but got Unknown //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d0e: Unknown result type (might be due to invalid IL or missing references) //IL_0d1a: Unknown result type (might be due to invalid IL or missing references) //IL_0d26: Unknown result type (might be due to invalid IL or missing references) //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d42: Unknown result type (might be due to invalid IL or missing references) //IL_0d4e: Unknown result type (might be due to invalid IL or missing references) //IL_0cdb: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Expected O, but got Unknown //IL_0d96: Unknown result type (might be due to invalid IL or missing references) //IL_0d9b: Unknown result type (might be due to invalid IL or missing references) //IL_0dab: Unknown result type (might be due to invalid IL or missing references) //IL_0db7: Unknown result type (might be due to invalid IL or missing references) //IL_0dc3: Unknown result type (might be due to invalid IL or missing references) //IL_0dd3: Unknown result type (might be due to invalid IL or missing references) //IL_0ddf: Unknown result type (might be due to invalid IL or missing references) //IL_0deb: Unknown result type (might be due to invalid IL or missing references) //IL_0d78: Unknown result type (might be due to invalid IL or missing references) //IL_0d82: Expected O, but got Unknown //IL_0e33: Unknown result type (might be due to invalid IL or missing references) //IL_0e38: Unknown result type (might be due to invalid IL or missing references) //IL_0e48: Unknown result type (might be due to invalid IL or missing references) //IL_0e54: Unknown result type (might be due to invalid IL or missing references) //IL_0e60: Unknown result type (might be due to invalid IL or missing references) //IL_0e70: Unknown result type (might be due to invalid IL or missing references) //IL_0e7c: Unknown result type (might be due to invalid IL or missing references) //IL_0e88: Unknown result type (might be due to invalid IL or missing references) //IL_0e15: Unknown result type (might be due to invalid IL or missing references) //IL_0e1f: Expected O, but got Unknown //IL_0ecd: Unknown result type (might be due to invalid IL or missing references) //IL_0ed2: Unknown result type (might be due to invalid IL or missing references) //IL_0ee2: Unknown result type (might be due to invalid IL or missing references) //IL_0eee: Unknown result type (might be due to invalid IL or missing references) //IL_0efa: Unknown result type (might be due to invalid IL or missing references) //IL_0eb2: Unknown result type (might be due to invalid IL or missing references) //IL_0ebc: Expected O, but got Unknown //IL_0f3f: Unknown result type (might be due to invalid IL or missing references) //IL_0f44: Unknown result type (might be due to invalid IL or missing references) //IL_0f54: Unknown result type (might be due to invalid IL or missing references) //IL_0f60: Unknown result type (might be due to invalid IL or missing references) //IL_0f6c: Unknown result type (might be due to invalid IL or missing references) //IL_0f24: Unknown result type (might be due to invalid IL or missing references) //IL_0f2e: Expected O, but got Unknown //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fb6: Unknown result type (might be due to invalid IL or missing references) //IL_0fc6: Unknown result type (might be due to invalid IL or missing references) //IL_0fd3: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: Unknown result type (might be due to invalid IL or missing references) //IL_0f96: Unknown result type (might be due to invalid IL or missing references) //IL_0fa0: Expected O, but got Unknown //IL_1024: Unknown result type (might be due to invalid IL or missing references) //IL_1029: Unknown result type (might be due to invalid IL or missing references) //IL_1039: Unknown result type (might be due to invalid IL or missing references) //IL_1045: Unknown result type (might be due to invalid IL or missing references) //IL_1051: Unknown result type (might be due to invalid IL or missing references) //IL_1058: Unknown result type (might be due to invalid IL or missing references) //IL_105a: Unknown result type (might be due to invalid IL or missing references) //IL_105f: Unknown result type (might be due to invalid IL or missing references) //IL_1009: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Expected O, but got Unknown //IL_10a4: Unknown result type (might be due to invalid IL or missing references) //IL_10a9: Unknown result type (might be due to invalid IL or missing references) //IL_10b9: Unknown result type (might be due to invalid IL or missing references) //IL_10c5: Unknown result type (might be due to invalid IL or missing references) //IL_10d1: Unknown result type (might be due to invalid IL or missing references) //IL_1089: Unknown result type (might be due to invalid IL or missing references) //IL_1093: Expected O, but got Unknown //IL_1116: Unknown result type (might be due to invalid IL or missing references) //IL_111b: Unknown result type (might be due to invalid IL or missing references) //IL_112b: Unknown result type (might be due to invalid IL or missing references) //IL_1137: Unknown result type (might be due to invalid IL or missing references) //IL_1143: Unknown result type (might be due to invalid IL or missing references) //IL_10fb: Unknown result type (might be due to invalid IL or missing references) //IL_1105: Expected O, but got Unknown //IL_118b: Unknown result type (might be due to invalid IL or missing references) //IL_1190: Unknown result type (might be due to invalid IL or missing references) //IL_11a0: Unknown result type (might be due to invalid IL or missing references) //IL_11ac: Unknown result type (might be due to invalid IL or missing references) //IL_11b8: Unknown result type (might be due to invalid IL or missing references) //IL_11c8: Unknown result type (might be due to invalid IL or missing references) //IL_11d4: Unknown result type (might be due to invalid IL or missing references) //IL_11e0: Unknown result type (might be due to invalid IL or missing references) //IL_11f0: Unknown result type (might be due to invalid IL or missing references) //IL_11fc: Unknown result type (might be due to invalid IL or missing references) //IL_1208: Unknown result type (might be due to invalid IL or missing references) //IL_1218: Unknown result type (might be due to invalid IL or missing references) //IL_1224: Unknown result type (might be due to invalid IL or missing references) //IL_1230: Unknown result type (might be due to invalid IL or missing references) //IL_116d: Unknown result type (might be due to invalid IL or missing references) //IL_1177: Expected O, but got Unknown //IL_1278: Unknown result type (might be due to invalid IL or missing references) //IL_127d: Unknown result type (might be due to invalid IL or missing references) //IL_128d: Unknown result type (might be due to invalid IL or missing references) //IL_1299: Unknown result type (might be due to invalid IL or missing references) //IL_12a5: Unknown result type (might be due to invalid IL or missing references) //IL_12b5: Unknown result type (might be due to invalid IL or missing references) //IL_12c1: Unknown result type (might be due to invalid IL or missing references) //IL_12cd: Unknown result type (might be due to invalid IL or missing references) //IL_12dd: Unknown result type (might be due to invalid IL or missing references) //IL_12e9: Unknown result type (might be due to invalid IL or missing references) //IL_12f5: Unknown result type (might be due to invalid IL or missing references) //IL_125a: Unknown result type (might be due to invalid IL or missing references) //IL_1264: Expected O, but got Unknown //IL_133d: Unknown result type (might be due to invalid IL or missing references) //IL_1342: Unknown result type (might be due to invalid IL or missing references) //IL_1352: Unknown result type (might be due to invalid IL or missing references) //IL_135e: Unknown result type (might be due to invalid IL or missing references) //IL_136a: Unknown result type (might be due to invalid IL or missing references) //IL_137a: Unknown result type (might be due to invalid IL or missing references) //IL_1386: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_131f: Unknown result type (might be due to invalid IL or missing references) //IL_1329: Expected O, but got Unknown //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13df: Unknown result type (might be due to invalid IL or missing references) //IL_13ef: Unknown result type (might be due to invalid IL or missing references) //IL_13fb: Unknown result type (might be due to invalid IL or missing references) //IL_1407: Unknown result type (might be due to invalid IL or missing references) //IL_1417: Unknown result type (might be due to invalid IL or missing references) //IL_1423: Unknown result type (might be due to invalid IL or missing references) //IL_142f: Unknown result type (might be due to invalid IL or missing references) //IL_13bc: Unknown result type (might be due to invalid IL or missing references) //IL_13c6: Expected O, but got Unknown //IL_1477: Unknown result type (might be due to invalid IL or missing references) //IL_147c: Unknown result type (might be due to invalid IL or missing references) //IL_148c: Unknown result type (might be due to invalid IL or missing references) //IL_1498: Unknown result type (might be due to invalid IL or missing references) //IL_14a4: Unknown result type (might be due to invalid IL or missing references) //IL_14b4: Unknown result type (might be due to invalid IL or missing references) //IL_14c0: Unknown result type (might be due to invalid IL or missing references) //IL_14cc: Unknown result type (might be due to invalid IL or missing references) //IL_14dc: Unknown result type (might be due to invalid IL or missing references) //IL_14e8: Unknown result type (might be due to invalid IL or missing references) //IL_14f4: Unknown result type (might be due to invalid IL or missing references) //IL_1504: Unknown result type (might be due to invalid IL or missing references) //IL_1510: Unknown result type (might be due to invalid IL or missing references) //IL_151c: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_1463: Expected O, but got Unknown //IL_1564: Unknown result type (might be due to invalid IL or missing references) //IL_1569: Unknown result type (might be due to invalid IL or missing references) //IL_1575: Unknown result type (might be due to invalid IL or missing references) //IL_1585: Unknown result type (might be due to invalid IL or missing references) //IL_1591: Unknown result type (might be due to invalid IL or missing references) //IL_159d: Unknown result type (might be due to invalid IL or missing references) //IL_15ad: Unknown result type (might be due to invalid IL or missing references) //IL_15b9: Unknown result type (might be due to invalid IL or missing references) //IL_15c5: Unknown result type (might be due to invalid IL or missing references) //IL_15d5: Unknown result type (might be due to invalid IL or missing references) //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_15ed: Unknown result type (might be due to invalid IL or missing references) //IL_15fd: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_1615: Unknown result type (might be due to invalid IL or missing references) //IL_1546: Unknown result type (might be due to invalid IL or missing references) //IL_1550: Expected O, but got Unknown //IL_165d: Unknown result type (might be due to invalid IL or missing references) //IL_1662: Unknown result type (might be due to invalid IL or missing references) //IL_1672: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_168a: Unknown result type (might be due to invalid IL or missing references) //IL_169a: Unknown result type (might be due to invalid IL or missing references) //IL_16a6: Unknown result type (might be due to invalid IL or missing references) //IL_16b2: Unknown result type (might be due to invalid IL or missing references) //IL_16c2: Unknown result type (might be due to invalid IL or missing references) //IL_16ce: Unknown result type (might be due to invalid IL or missing references) //IL_16da: Unknown result type (might be due to invalid IL or missing references) //IL_16ea: Unknown result type (might be due to invalid IL or missing references) //IL_16f6: Unknown result type (might be due to invalid IL or missing references) //IL_1702: Unknown result type (might be due to invalid IL or missing references) //IL_163f: Unknown result type (might be due to invalid IL or missing references) //IL_1649: Expected O, but got Unknown //IL_174a: Unknown result type (might be due to invalid IL or missing references) //IL_174f: Unknown result type (might be due to invalid IL or missing references) //IL_175f: Unknown result type (might be due to invalid IL or missing references) //IL_176b: Unknown result type (might be due to invalid IL or missing references) //IL_1777: Unknown result type (might be due to invalid IL or missing references) //IL_1787: Unknown result type (might be due to invalid IL or missing references) //IL_1793: Unknown result type (might be due to invalid IL or missing references) //IL_179f: Unknown result type (might be due to invalid IL or missing references) //IL_17af: Unknown result type (might be due to invalid IL or missing references) //IL_17bb: Unknown result type (might be due to invalid IL or missing references) //IL_17c7: Unknown result type (might be due to invalid IL or missing references) //IL_17d7: Unknown result type (might be due to invalid IL or missing references) //IL_17e3: Unknown result type (might be due to invalid IL or missing references) //IL_17ef: Unknown result type (might be due to invalid IL or missing references) //IL_17ff: Unknown result type (might be due to invalid IL or missing references) //IL_180b: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_1827: Unknown result type (might be due to invalid IL or missing references) //IL_1833: Unknown result type (might be due to invalid IL or missing references) //IL_183f: Unknown result type (might be due to invalid IL or missing references) //IL_172c: Unknown result type (might be due to invalid IL or missing references) //IL_1736: Expected O, but got Unknown //IL_1884: Unknown result type (might be due to invalid IL or missing references) //IL_1889: Unknown result type (might be due to invalid IL or missing references) //IL_1899: Unknown result type (might be due to invalid IL or missing references) //IL_18a5: Unknown result type (might be due to invalid IL or missing references) //IL_18b1: Unknown result type (might be due to invalid IL or missing references) //IL_1869: Unknown result type (might be due to invalid IL or missing references) //IL_1873: Expected O, but got Unknown //IL_18db: Unknown result type (might be due to invalid IL or missing references) //IL_18e5: Expected O, but got Unknown Log.Debug("Adding LookingGlass item definitions."); if (Plugin.ItemsEnabled[ItemBase<BootsOfSpeed>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Base Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<BootsOfSpeed>.Instance.MovementSpeedBase.Value + ItemBase<BootsOfSpeed>.Instance.MovementSpeedPerStack.Value * (float)(count - 1) } }, ItemBase<BootsOfSpeed>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<EnchantedMango>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Mangos: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { count } }, ItemBase<EnchantedMango>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<ConsumedMango>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<ConsumedMango>.Instance.DamageBase.Value / 100f + ItemBase<ConsumedMango>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<ConsumedMango>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<FairysTrinket>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Cooldown Reduction: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(3) { Utils.GetExponentialStacking(ItemBase<FairysTrinket>.Instance.SkillCooldownReductionBase.Value / 100f, ItemBase<FairysTrinket>.Instance.SkillCooldownReductionPerStack.Value / 100f, count), ItemBase<FairysTrinket>.Instance.DamageBase.Value / 100f + ItemBase<FairysTrinket>.Instance.DamagePerStack.Value / 100f * (float)(count - 1), ItemBase<FairysTrinket>.Instance.MaximumHealthBase.Value + ItemBase<FairysTrinket>.Instance.MaximumHealthPerStack.Value * (float)(count - 1) } }, ItemBase<FairysTrinket>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<HealingSalve>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Total Heal: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)6 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { (ItemBase<HealingSalve>.Instance.MaximumHealthRegenerationBase.Value / 100f + ItemBase<HealingSalve>.Instance.MaximumHealthRegenerationPerStack.Value / 100f * (float)(count - 1)) * ItemBase<HealingSalve>.Instance.BuffDuration.Value } }, ItemBase<HealingSalve>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Javelin>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Bonus Hit Chance: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, hasChance = true, chanceScaling = (ChanceScaling)2, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { Utils.CalculateChanceWithLuck(ItemBase<Javelin>.Instance.ProcChance.Value / 100f, luck), ItemBase<Javelin>.Instance.DamageBase.Value / 100f + ItemBase<Javelin>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Javelin>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<OrbOfBlight>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Max Armor Reduction: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<OrbOfBlight>.Instance.ArmorReduction.Value * (float)(ItemBase<OrbOfBlight>.Instance.MaxStacksBase.Value + ItemBase<OrbOfBlight>.Instance.MaxStacksPerStack.Value * (count - 1)) } }, ItemBase<OrbOfBlight>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<OrbOfFrost>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Movement Speed Slow: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Attack Speed Slow: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<OrbOfFrost>.Instance.MovementSpeedSlowBase.Value / 100f + ItemBase<OrbOfFrost>.Instance.MovementSpeedSlowPerStack.Value / 100f * (float)(count - 1), ItemBase<OrbOfFrost>.Instance.AttackSpeedSlowBase.Value / 100f + ItemBase<OrbOfFrost>.Instance.AttackSpeedSlowPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<OrbOfFrost>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<OrbOfVenom>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Total Poison Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { (ItemBase<OrbOfVenom>.Instance.PoisonDamageBase.Value / 100f + ItemBase<OrbOfVenom>.Instance.PoisonDamagePerStack.Value / 100f * (float)(count - 1)) * ItemBase<OrbOfVenom>.Instance.PoisonDuration.Value } }, ItemBase<OrbOfVenom>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<QuellingBlade>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Non-Boss Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<QuellingBlade>.Instance.DamageBase.Value + ItemBase<QuellingBlade>.Instance.DamagePerStack.Value * (float)(count - 1) } }, ItemBase<QuellingBlade>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<SparkOfCourage>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Armor: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<SparkOfCourage>.Instance.DamageBase.Value / 100f + ItemBase<SparkOfCourage>.Instance.DamagePerStack.Value / 100f * (float)(count - 1), ItemBase<SparkOfCourage>.Instance.ArmorBase.Value + ItemBase<SparkOfCourage>.Instance.ArmorPerStack.Value * (float)(count - 1) } }, ItemBase<SparkOfCourage>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<DragonScale>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Burn Chance: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Total Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, hasChance = true, chanceScaling = (ChanceScaling)2, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { Utils.CalculateChanceWithLuck(ItemBase<DragonScale>.Instance.ProcChance.Value / 100f, luck), ItemBase<DragonScale>.Instance.DamageBase.Value / 100f + ItemBase<DragonScale>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<DragonScale>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<LanceOfPursuit>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Rear Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<LanceOfPursuit>.Instance.DamageBase.Value / 100f + ItemBase<LanceOfPursuit>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<LanceOfPursuit>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<IronBranch>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Stats Increase: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<IronBranch>.Instance.StatIncreaseBase.Value / 100f + ItemBase<IronBranch>.Instance.StatIncreasePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<IronBranch>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<BladesOfAttack>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<BladesOfAttack>.Instance.DamageBase.Value / 100f + ItemBase<BladesOfAttack>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<BladesOfAttack>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Kaya>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Cooldown Reduction: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { Utils.GetExponentialStacking(ItemBase<Kaya>.Instance.SkillCooldownReductionBase.Value / 100f, ItemBase<Kaya>.Instance.SkillCooldownReductionPerStack.Value / 100f, count), ItemBase<Kaya>.Instance.DamageBase.Value / 100f + ItemBase<Kaya>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Kaya>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Sange>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, descriptions = { "Healing: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)3 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<Sange>.Instance.MaximumHealthBase.Value + ItemBase<Sange>.Instance.MaximumHealthPerStack.Value * (float)(count - 1), ItemBase<Sange>.Instance.BaseHealthRegenerationBase.Value + ItemBase<Sange>.Instance.BaseHealthRegenerationPerStack.Value * (float)(count - 1) } }, ItemBase<Sange>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Yasha>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<Yasha>.Instance.AttackSpeedBase.Value / 100f + ItemBase<Yasha>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<Yasha>.Instance.MovementSpeedBase.Value / 100f + ItemBase<Yasha>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Yasha>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<SkullBasher>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Bash Chance: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, hasChance = true, chanceScaling = (ChanceScaling)2, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { Utils.CalculateChanceWithLuck(ItemBase<SkullBasher>.Instance.ProcChance.Value / 100f, luck), ItemBase<SkullBasher>.Instance.DamageBase.Value / 100f + ItemBase<SkullBasher>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<SkullBasher>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Daedalus>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Crit Chance: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Crit Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { Utils.CalculateChanceWithLuck(ItemBase<Daedalus>.Instance.CriticalChance.Value / 100f, luck), ItemBase<Daedalus>.Instance.CriticalDamageBase.Value / 100f + ItemBase<Daedalus>.Instance.CriticalDamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Daedalus>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<QuicksilverAmulet>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Max Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Max Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValues = delegate(CharacterMaster master, int count) { int num = 0; CharacterBody body2 = master.GetBody(); GenericSkill[] array = ((body2 == null) ? null : body2.skillLocator?.allSkills); if (array != null) { GenericSkill[] array2 = array; foreach (GenericSkill val in array2) { if (Object.op_Implicit((Object)(object)val) && val.baseRechargeInterval > 0f) { num++; } } } return new List<float>(2) { (ItemBase<QuicksilverAmulet>.Instance.AttackSpeedBase.Value / 100f + ItemBase<QuicksilverAmulet>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1)) * (float)num, (ItemBase<QuicksilverAmulet>.Instance.MovementSpeedBase.Value / 100f + ItemBase<QuicksilverAmulet>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1)) * (float)num }; } }, ItemBase<QuicksilverAmulet>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<ShadowAmulet>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<ShadowAmulet>.Instance.AttackSpeedBase.Value / 100f + ItemBase<ShadowAmulet>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<ShadowAmulet>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<IronTalon>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { Util.ConvertAmplificationPercentageIntoReductionNormalized(ItemBase<IronTalon>.Instance.HealthDamageBase.Value / 100f + ItemBase<IronTalon>.Instance.HealthDamagePerStack.Value / 100f * (float)(count - 1)) } }, ItemBase<IronTalon>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<HeartOfTarrasque>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<HeartOfTarrasque>.Instance.MaximumHealthBase.Value + ItemBase<HeartOfTarrasque>.Instance.MaximumHealthPerStack.Value * (float)(count - 1) } }, ItemBase<HeartOfTarrasque>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Radiance>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Ignite Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Burn Total Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<Radiance>.Instance.IgniteBase.Value / 100f + ItemBase<Radiance>.Instance.IgnitePerStack.Value / 100f * (float)(count - 1), ItemBase<Radiance>.Instance.BurnBase.Value / 100f + ItemBase<Radiance>.Instance.BurnPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Radiance>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<AeonDisk>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Invulnerability Duration: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)5 }, descriptions = { "Movement Speed Duration: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)5 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<AeonDisk>.Instance.InvulnerabilityDurationBase.Value + ItemBase<AeonDisk>.Instance.InvulnerabilityDurationPerStack.Value * (float)(count - 1), ItemBase<AeonDisk>.Instance.MovementSpeedDurationBase.Value + ItemBase<AeonDisk>.Instance.MovementSpeedDurationPerStack.Value * (float)(count - 1) } }, ItemBase<AeonDisk>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<AssaultCuirass>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Armor: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<AssaultCuirass>.Instance.AttackSpeedBase.Value / 100f + ItemBase<AssaultCuirass>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<AssaultCuirass>.Instance.ArmorBase.Value + ItemBase<AssaultCuirass>.Instance.ArmorPerStack.Value * (float)(count - 1) } }, ItemBase<AssaultCuirass>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<BootsOfTravel>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValues = delegate(CharacterMaster master, int count) { CharacterBody body = master.GetBody(); return new List<float>(1) { 1f - 1f / (body.moveSpeed / (body.baseMoveSpeed * (1f + ItemBase<BootsOfTravel>.Instance.MovementSpeedBonus.Value / 100f))) * (ItemBase<BootsOfTravel>.Instance.DamageBonusBase.Value / 100f + ItemBase<BootsOfTravel>.Instance.DamageBonusPerStack.Value / 100f * (float)(count - 1)) }; } }, ItemBase<BootsOfTravel>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<ExMachina>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Chance: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = delegate(float luck, int count, float proc) { float baseChance = 1f - 1f / (1f + 1.5f * (ItemBase<ExMachina>.Instance.RestoreChanceBase.Value / 100f + ItemBase<ExMachina>.Instance.RestoreChancePerStack.Value / 100f * (float)(count - 1))); return new List<float>(1) { Utils.CalculateChanceWithLuck(baseChance, luck) }; } }, ItemBase<ExMachina>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<InfusedRaindrops>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage Reduction: " }, valueTypes = { (ValueType)17 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<InfusedRaindrops>.Instance.DamageBlockBase.Value + ItemBase<InfusedRaindrops>.Instance.DamageBlockPerStack.Value * (float)(count - 1) } }, ItemBase<InfusedRaindrops>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<PirateHat>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Scrap Chance: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, hasChance = true, chanceScaling = (ChanceScaling)0, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { Utils.CalculateChanceWithLuck(ItemBase<PirateHat>.Instance.DropChanceBase.Value / 100f + ItemBase<PirateHat>.Instance.DropChancePerStack.Value / 100f * (float)(count - 1), luck) } }, ItemBase<PirateHat>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<RefresherOrb>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Restore Cooldown: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)5 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<RefresherOrb>.Instance.RestoreCooldown.Value * MathF.Pow(ItemBase<RefresherOrb>.Instance.RestoreCooldownReductionPerStack.Value / 100f, count - 1) } }, ItemBase<RefresherOrb>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<NemesisCurse>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Curse Damage Multiplier: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { (1f + ItemBase<NemesisCurse>.Instance.DamageBase.Value / 100f) * Mathf.Pow(1f + ItemBase<NemesisCurse>.Instance.DamagePerStack.Value / 100f, (float)(count - 1)) } }, ItemBase<NemesisCurse>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<OrbOfCorrosion>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Max Armor Reduction: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)4 }, descriptions = { "Movement Speed Slow: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Attack Speed Slow: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Total Poison Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(4) { ItemBase<OrbOfCorrosion>.Instance.ArmorReduction.Value * (float)(ItemBase<OrbOfCorrosion>.Instance.MaxStacksBase.Value + ItemBase<OrbOfCorrosion>.Instance.MaxStacksPerStack.Value * (count - 1)), ItemBase<OrbOfCorrosion>.Instance.MovementSpeedSlowBase.Value / 100f + ItemBase<OrbOfCorrosion>.Instance.MovementSpeedSlowPerStack.Value / 100f * (float)(count - 1), ItemBase<OrbOfCorrosion>.Instance.AttackSpeedSlowBase.Value / 100f + ItemBase<OrbOfCorrosion>.Instance.AttackSpeedSlowPerStack.Value / 100f * (float)(count - 1), (ItemBase<OrbOfCorrosion>.Instance.PoisonDamageBase.Value / 100f + ItemBase<OrbOfCorrosion>.Instance.PoisonDamagePerStack.Value / 100f * (float)(count - 1)) * ItemBase<OrbOfCorrosion>.Instance.PoisonDuration.Value } }, ItemBase<OrbOfCorrosion>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<TranquilBoots>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Base Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)4 }, descriptions = { "Safe Healing: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)3 }, descriptions = { "Safe Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(3) { ItemBase<TranquilBoots>.Instance.MovementSpeedBase.Value + ItemBase<TranquilBoots>.Instance.MovementSpeedPerStack.Value * (float)(count - 1), ItemBase<TranquilBoots>.Instance.OODHealthRegenerationBase.Value + ItemBase<TranquilBoots>.Instance.OODHealthRegenerationPerStack.Value * (float)(count - 1), ItemBase<TranquilBoots>.Instance.OODMovementSpeedBase.Value + ItemBase<TranquilBoots>.Instance.OODMovementSpeedPerStack.Value * (float)(count - 1) } }, ItemBase<TranquilBoots>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<PhaseBoots>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Sprint Bonus: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<PhaseBoots>.Instance.DamageBase.Value / 100f + ItemBase<PhaseBoots>.Instance.DamagePerStack.Value / 100f * (float)(count - 1), ItemBase<PhaseBoots>.Instance.SprintSpeedBase.Value / 100f + ItemBase<PhaseBoots>.Instance.SprintSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<PhaseBoots>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<PowerTreads>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(2) { ItemBase<PowerTreads>.Instance.MovementSpeedBase.Value / 100f + ItemBase<PowerTreads>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<PowerTreads>.Instance.AttackSpeedBase.Value / 100f + ItemBase<PowerTreads>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<PowerTreads>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<KayaAndSange>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Cooldown Reduction: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, descriptions = { "Healing: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)3 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(4) { Utils.GetExponentialStacking(ItemBase<KayaAndSange>.Instance.SkillCooldownReductionBase.Value / 100f, ItemBase<KayaAndSange>.Instance.SkillCooldownReductionPerStack.Value / 100f, count), ItemBase<KayaAndSange>.Instance.DamageBase.Value / 100f + ItemBase<KayaAndSange>.Instance.DamagePerStack.Value / 100f * (float)(count - 1), ItemBase<KayaAndSange>.Instance.MaximumHealthBase.Value + ItemBase<KayaAndSange>.Instance.MaximumHealthPerStack.Value * (float)(count - 1), ItemBase<KayaAndSange>.Instance.BaseHealthRegenerationBase.Value + ItemBase<KayaAndSange>.Instance.BaseHealthRegenerationPerStack.Value * (float)(count - 1) } }, ItemBase<KayaAndSange>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<SangeAndYasha>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, descriptions = { "Healing: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)3 }, descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(4) { ItemBase<SangeAndYasha>.Instance.MaximumHealthBase.Value + ItemBase<SangeAndYasha>.Instance.MaximumHealthPerStack.Value * (float)(count - 1), ItemBase<SangeAndYasha>.Instance.BaseHealthRegenerationBase.Value + ItemBase<SangeAndYasha>.Instance.BaseHealthRegenerationPerStack.Value * (float)(count - 1), ItemBase<SangeAndYasha>.Instance.AttackSpeedBase.Value / 100f + ItemBase<SangeAndYasha>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<SangeAndYasha>.Instance.MovementSpeedBase.Value / 100f + ItemBase<SangeAndYasha>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<SangeAndYasha>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<YashaAndKaya>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Cooldown Reduction: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(4) { Utils.GetExponentialStacking(ItemBase<YashaAndKaya>.Instance.SkillCooldownReductionBase.Value / 100f, ItemBase<YashaAndKaya>.Instance.SkillCooldownReductionPerStack.Value / 100f, count), ItemBase<YashaAndKaya>.Instance.AttackSpeedBase.Value / 100f + ItemBase<YashaAndKaya>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<YashaAndKaya>.Instance.MovementSpeedBase.Value / 100f + ItemBase<YashaAndKaya>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<YashaAndKaya>.Instance.DamageBase.Value / 100f + ItemBase<YashaAndKaya>.Instance.DamagePerStack.Value / 100f * (float)(count - 1) } }, ItemBase<YashaAndKaya>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Cooldown Reduction: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Damage: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Bonus Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)2 }, descriptions = { "Healing: " }, valueTypes = { (ValueType)0 }, measurementUnits = { (MeasurementUnits)3 }, descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Movement Speed: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(6) { Utils.GetExponentialStacking(ItemBase<Trident>.Instance.SkillCooldownReductionBase.Value / 100f, ItemBase<Trident>.Instance.SkillCooldownReductionPerStack.Value / 100f, count), ItemBase<Trident>.Instance.DamageBase.Value / 100f + ItemBase<Trident>.Instance.DamagePerStack.Value / 100f * (float)(count - 1), ItemBase<Trident>.Instance.MaximumHealthBase.Value + ItemBase<Trident>.Instance.MaximumHealthPerStack.Value * (float)(count - 1), ItemBase<Trident>.Instance.BaseHealthRegenerationBase.Value + ItemBase<Trident>.Instance.BaseHealthRegenerationPerStack.Value * (float)(count - 1), ItemBase<Trident>.Instance.AttackSpeedBase.Value / 100f + ItemBase<Trident>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1), ItemBase<Trident>.Instance.MovementSpeedBase.Value / 100f + ItemBase<Trident>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<Trident>.GetItemDef().itemIndex); } if (Plugin.ItemsEnabled[ItemBase<ConsumedMoonShard>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Attack Speed: " }, valueTypes = { (ValueType)1 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { ItemBase<ConsumedMoonShard>.Instance.AttackSpeedBase.Value / 100f + ItemBase<ConsumedMoonShard>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1) } }, ItemBase<ConsumedMoonShard>.GetItemDef().itemIndex); } } } internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } public class RecipeManager { public class ItemRecipe { public Dictionary<ItemDef, int> inputs { get; set; } public KeyValuePair<ItemDef, int> output { get; set; } } public class EquipmentRecipe { public EquipmentDef input_1 { get; set; } public EquipmentDef input_2 { get; set; } public EquipmentDef output { get; set; } } public class MixedRecipe { public Dictionary<ItemDef, int> items { get; set; } public EquipmentDef equipment { get; set; } public EquipmentDef output { get; set; } } private class RecipeBehavior : MonoBehaviour { private CharacterBody body; private void Awake() { body = ((Component)this).GetComponent<CharacterBody>(); } private void FixedUpdate() { //IL_014e: 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_025f: 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) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)body.inventory)) { return; } foreach (ItemRecipe item_recipe in item_recipes) { bool flag = false; int num = int.MaxValue; foreach (ItemDef key in item_recipe.inputs.Keys) { int itemCount = body.inventory.GetItemCount(key); if (itemCount < item_recipe.inputs[key]) { flag = true; break; } num = Math.Min(num, itemCount / item_recipe.inputs[key]); } if (flag) { continue; } Log.Debug($"Creating {num * item_recipe.output.Value} {item_recipe.output.Key.nameToken}."); foreach (KeyValuePair<ItemDef, int> input in item_recipe.inputs) { body.inventory.RemoveItem(input.Key, num * input.Value); CharacterMasterNotificationQueue.PushItemTransformNotification(body.master, input.Key.itemIndex, item_recipe.output.Key.itemIndex, (TransformationType)0); } body.inventory.GiveItem(item_recipe.output.Key, num * item_recipe.output.Value); } foreach (MixedRecipe mixed_recipe in mixed_recipes) { bool flag2 = false; foreach (ItemDef key2 in mixed_recipe.items.Keys) { if (body.inventory.GetItemCount(key2) < mixed_recipe.items[key2]) { flag2 = true; break; } } if (flag2 || body.inventory.currentEquipmentIndex != mixed_recipe.equipment.equipmentIndex) { continue; } Log.Debug("Creating " + mixed_recipe.output.nameToken + "."); foreach (KeyValuePair<ItemDef, int> item in mixed_recipe.items) { body.inventory.RemoveItem(item.Key, item.Value); } CharacterMasterNotificationQueue.PushEquipmentTransformNotification(body.master, mixed_recipe.equipment.equipmentIndex, mixed_recipe.output.equipmentIndex, (TransformationType)0); body.inventory.SetEquipmentIndexForSlot(mixed_recipe.output.equipmentIndex, (uint)body.inventory.activeEquipmentSlot); } } } [CompilerGenerated] private static class <>O { public static Action<CharacterBody> <0>__OnInventoryChanged; public static hook_AttemptGrant <1>__OnAttemptGrant; } public static List<ItemRecipe> item_recipes = new List<ItemRecipe>(); public static List<ItemDef> itemsToWatchFor = new List<ItemDef>(); public static List<EquipmentRecipe> equipment_recipes = new List<EquipmentRecipe>(); public static List<MixedRecipe> mixed_recipes = new List<MixedRecipe>(); public static void Add(MixedRecipe recipe) { mixed_recipes.Add(recipe); } public static void Add(ItemDef[] items, EquipmentDef equipment, EquipmentDef output) { mixed_recipes.Add(new MixedRecipe { items = items.Distinct().ToDictionary((ItemDef x) => x, (ItemDef y) => 1), equipment = equipment, output = output }); } public static void Add(EquipmentRecipe recipe) { equipment_recipes.Add(recipe); } public static void Add(EquipmentDef input_1, EquipmentDef input_2, EquipmentDef output) { equipment_recipes.Add(new EquipmentRecipe { input_1 = input_1, input_2 = input_2, output = output }); } public static void Add(ItemRecipe recipe) { item_recipes.Add(recipe); } public static void Add(ItemDef[] inputs, ItemDef output) { item_recipes.Add(new ItemRecipe { inputs = inputs.Distinct().ToDictionary((ItemDef x) => x, (ItemDef y) => 1), output = KeyValuePair.Create<ItemDef, int>(output, 1) }); } public static void Init() { //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Expected O, but got Unknown if (Plugin.ItemsEnabled[ItemBase<OrbOfVenom>.Instance] && Plugin.ItemsEnabled[ItemBase<OrbOfFrost>.Instance] && Plugin.ItemsEnabled[ItemBase<OrbOfBlight>.Instance] && Plugin.ItemsEnabled[ItemBase<OrbOfCorrosion>.Instance]) { Add((ItemDef[])(object)new ItemDef[3] { ItemBase<OrbOfVenom>.GetItemDef(), ItemBase<OrbOfBlight>.GetItemDef(), ItemBase<OrbOfFrost>.GetItemDef() }, ItemBase<OrbOfCorrosion>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[3] { ItemBase<OrbOfFrost>.GetItemDef(), ItemBase<OrbOfBlight>.GetItemDef(), ItemBase<OrbOfVenom>.GetItemDef() })); } if (Plugin.ItemsEnabled[ItemBase<KayaAndSange>.Instance] && Plugin.ItemsEnabled[ItemBase<Yasha>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<KayaAndSange>.GetItemDef(), ItemBase<Yasha>.GetItemDef() }, ItemBase<Trident>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<SangeAndYasha>.Instance] && Plugin.ItemsEnabled[ItemBase<Kaya>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<SangeAndYasha>.GetItemDef(), ItemBase<Kaya>.GetItemDef() }, ItemBase<Trident>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<YashaAndKaya>.Instance] && Plugin.ItemsEnabled[ItemBase<Sange>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<YashaAndKaya>.GetItemDef(), ItemBase<Sange>.GetItemDef() }, ItemBase<Trident>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<Kaya>.Instance] && Plugin.ItemsEnabled[ItemBase<Sange>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<Kaya>.GetItemDef(), ItemBase<Sange>.GetItemDef() }, ItemBase<KayaAndSange>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<Sange>.Instance] && Plugin.ItemsEnabled[ItemBase<Yasha>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<Sange>.GetItemDef(), ItemBase<Yasha>.GetItemDef() }, ItemBase<SangeAndYasha>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<Yasha>.Instance] && Plugin.ItemsEnabled[ItemBase<Kaya>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<Yasha>.GetItemDef(), ItemBase<Kaya>.GetItemDef() }, ItemBase<YashaAndKaya>.GetItemDef()); } if (Plugin.ItemsEnabled[ItemBase<Yasha>.Instance] && Plugin.ItemsEnabled[ItemBase<Kaya>.Instance] && Plugin.ItemsEnabled[ItemBase<Sange>.Instance] && Plugin.ItemsEnabled[ItemBase<Trident>.Instance]) { Add((ItemDef[])(object)new ItemDef[3] { ItemBase<Yasha>.GetItemDef(), ItemBase<Kaya>.GetItemDef(), ItemBase<Sange>.GetItemDef() }, ItemBase<Trident>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[3] { ItemBase<Yasha>.GetItemDef(), ItemBase<Kaya>.GetItemDef(), ItemBase<Sange>.GetItemDef() })); } if (Plugin.ItemsEnabled[ItemBase<BootsOfSpeed>.Instance] && Plugin.ItemsEnabled[ItemBase<TranquilBoots>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<BootsOfSpeed>.GetItemDef(), Items.HealWhileSafe }, ItemBase<TranquilBoots>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[2] { ItemBase<BootsOfSpeed>.GetItemDef(), Items.HealWhileSafe })); } if (Plugin.ItemsEnabled[ItemBase<BladesOfAttack>.Instance] && Plugin.ItemsEnabled[ItemBase<PhaseBoots>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { ItemBase<BladesOfAttack>.GetItemDef(), Items.SprintBonus }, ItemBase<PhaseBoots>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[2] { ItemBase<BladesOfAttack>.GetItemDef(), Items.SprintBonus })); } if (Plugin.ItemsEnabled[ItemBase<PowerTreads>.Instance]) { Add((ItemDef[])(object)new ItemDef[2] { Items.SprintBonus, Items.BoostAttackSpeed }, ItemBase<PowerTreads>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[2] { Items.SprintBonus, Items.BoostAttackSpeed })); } if (Plugin.EquipmentEnabled[EquipmentBase<ArcaneBoots>.Instance] && Plugin.EquipmentEnabled[EquipmentBase<Mekansm>.Instance] && Plugin.EquipmentEnabled[EquipmentBase<GuardianGreaves>.Instance]) { Add(EquipmentBase<ArcaneBoots>.GetEquipmentDef(), EquipmentBase<Mekansm>.GetEquipmentDef(), EquipmentBase<GuardianGreaves>.GetEquipmentDef()); } if (Plugin.ItemsEnabled[ItemBase<TranquilBoots>.Instance] && Plugin.EquipmentEnabled[EquipmentBase<BootsOfBearing>.Instance]) { Add((ItemDef[])(object)new ItemDef[1] { ItemBase<TranquilBoots>.GetItemDef() }, Equipment.TeamWarCry, EquipmentBase<BootsOfBearing>.GetEquipmentDef()); } CharacterBody.onBodyInventoryChangedGlobal += OnInventoryChanged; object obj = <>O.<1>__OnAttemptGrant; if (obj == null) { hook_AttemptGrant val = OnAttemptGrant; <>O.<1>__OnAttemptGrant = val; obj = (object)val; } EquipmentDef.AttemptGrant += (hook_AttemptGrant)obj; Log.Debug($"RecipeManager initialized, added {item_recipes.Count} item recipes and {itemsToWatchFor.Count} items to watch for, and {equipment_recipes.Count} equipment recipes."); } private static void OnInventoryChanged(CharacterBody body) { if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<RecipeBehavior>())) { return; } foreach (ItemDef item in itemsToWatchFor) { if (body.inventory.GetItemCount(item) > 0) { Log.Debug("Found at least 1 " + item.nameToken + ", adding RecipeBehavior to " + body.GetDisplayName() + "."); ((Component)body).gameObject.AddComponent<RecipeBehavior>(); break; } } } private static void OnAttemptGrant(orig_AttemptGrant orig, ref GrantContext context) { //IL_000d: 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: 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_00ee: Unknown result type (might be due to invalid IL or missing references) bool flag = true; EquipmentIndex currentEquipmentIndex = context.body.inventory.currentEquipmentIndex; PickupDef pickupDef = PickupCatalog.GetPickupDef(context.controller.pickupIndex); EquipmentIndex val = (EquipmentIndex)((pickupDef == null) ? (-1) : ((int)pickupDef.equipmentIndex)); foreach (EquipmentRecipe equipment_recipe in equipment_recipes) { if ((currentEquipmentIndex == equipment_recipe.input_1.equipmentIndex && val == equipment_recipe.input_2.equipmentIndex) || (currentEquipmentIndex == equipment_recipe.input_2.equipmentIndex && val == equipment_recipe.input_1.equipmentIndex)) { context.body.inventory.SetEquipmentIndex(equipment_recipe.output.equipmentIndex); context.controller.StartWaitTime(); context.shouldDestroy = true; context.shouldNotify = false; CharacterMasterNotificationQueue.PushEquipmentTransformNotification(context.body.master, currentEquipmentIndex, equipment_recipe.output.equipmentIndex, (TransformationType)0); CharacterMasterNotificationQueue.PushEquipmentTransformNotification(context.body.master, val, equipment_recipe.output.equipmentIndex, (TransformationType)0); flag = false; break; } } if (flag) { orig.Invoke(ref context); } } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("Dnarok.RiskOfTheAncients2", "RiskOfTheAncients2", "2.0.2")] public class Plugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action<AsyncOperationHandle<Sprite>> <>9__18_0; public static Action<AsyncOperationHandle<ExpansionDef>> <>9__18_1; public static Func<Type, bool> <>9__18_2; public static Func<Type, bool> <>9__18_3; public static Func<Type, bool> <>9__18_4; public static Action <>9__18_5; public static hook_Init <>9__18_6; public static Action<AsyncOperationHandle<SkillDef>> <>9__18_7; internal void <Awake>b__18_0(AsyncOperationHandle<Sprite> x) { ModSettingsManager.SetModIcon(x.Result); } internal void <Awake>b__18_1(AsyncOperationHandle<ExpansionDef> x) { expansion = x.Result; ContentAddition.AddExpansionDef(expansion); } internal bool <Awake>b__18_2(Type type) { if (!type.IsAbstract) { return type.IsSubclassOf(typeof(ItemBase)); } return false; } internal bool <Awake>b__18_3(Type type) { if (!type.IsAbstract) { return type.IsSubclassOf(typeof(EquipmentBase)); } return false; } internal bool <Awake>b__18_4(Type type) { if (!type.IsAbstract) { return type.IsSubclassOf(typeof(BuffBase)); } return false; } internal void <Awake>b__18_5() { Log.Debug("Initializing RecipeManager."); RecipeManager.Init(); } internal void <Awake>b__18_6(orig_Init orig) { //IL_007d: 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) List<Pair> list = new List<Pair>(); Log.Debug("Adding void items."); foreach (ItemBase item in Items) { if ((Object)(object)item.VoidFor != (Object)null) { Log.Debug("Pairing " + item.ItemDef.nameToken + " to " + item.VoidFor.nameToken + "."); list.Add(new Pair { itemDef1 = item.VoidFor, itemDef2 = item.ItemDef }); } } Pair[] first = ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem]; ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem] = first.Union(list).ToArray(); orig.Invoke(); } internal void <Awake>b__18_7(AsyncOperationHandle<SkillDef> x) { //IL_0068: 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_0078: 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) SkillDef result = x.Result; disabledSkill = ScriptableObject.CreateInstance<SkillDef>(); disabledSkill.skillName = result.skillName; disabledSkill.skillNameToken = result.skillNameToken; disabledSkill.skillDescriptionToken = result.skillDescriptionToken; disabledSkill.icon = result.icon; disabledSkill.activationStateMachineName = result.activationStateMachineName; disabledSkill.activationState = result.activationState; disabledSkill.interruptPriority = result.interruptPriority; disabledSkill.baseRechargeInterval = result.baseRechargeInterval; disabledSkill.baseMaxStock = result.baseMaxStock; disabledSkill.rechargeStock = result.rechargeStock; disabledSkill.requiredStock = result.requiredStock; disabledSkill.stockToConsume = result.stockToConsume; disabledSkill.beginSkillCooldownOnSkillEnd = result.beginSkillCooldownOnSkillEnd; disabledSkill.fullRestockOnAssign = result.fullRestockOnAssign; disabledSkill.dontAllowPastMaxStocks = result.dontAllowPastMaxStocks; disabledSkill.canceledFromSprinting = result.canceledFromSprinting; disabledSkill.isCombatSkill = result.isCombatSkill; disabledSkill.resetCooldownTimerOnUse = result.resetCooldownTimerOnUse; disabledSkill.cancelSprintingOnActivation = result.cancelSprintingOnActivation; disabledSkill.canceledFromSprinting = result.canceledFromSprinting; disabledSkill.forceSprintDuringState = result.forceSprintDuringState; disabledSkill.mustKeyPress = result.mustKeyPress; disabledSkill.keywordTokens = result.keywordTokens; Log.Debug("Disabled skill added."); ContentAddition.AddSkillDef(disabledSkill); } } public const string PluginGUID = "Dnarok.RiskOfTheAncients2"; public const string PluginAuthor = "Dnarok"; public const string PluginName = "RiskOfTheAncients2"; public const string PluginVersion = "2.0.2"; public static List<ItemBase> Items = new List<ItemBase>(); public static Dictionary<ItemBase, bool> ItemsEnabled = new Dictionary<ItemBase, bool>(); public static List<EquipmentBase> Equipment = new List<EquipmentBase>(); public static Dictionary<EquipmentBase, bool> EquipmentEnabled = new Dictionary<EquipmentBase, bool>(); public static List<BuffBase> Buffs = new List<BuffBase>(); public static ExpansionDef expansion = null; public static Dictionary<string, Sprite> SpritesLoaded = new Dictionary<string, Sprite>(); public static SkillDef disabledSkill; public static string AddressablesDirectory { get; private set; } public static bool isLookingGlassInstalled => Chainloader.PluginInfos.ContainsKey("droppod.lookingglass"); public void Awake() { //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_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_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_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Expected O, but got Unknown //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Expected O, but got Unknown //IL_0437: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) Log.Init(((BaseUnityPlugin)this).Logger); Log.Info("Loading Addressables catalog."); AddressablesDirectory = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location); Addressables.LoadContentCatalogAsync(Path.Combine(AddressablesDirectory, "catalog.json"), (string)null).WaitForCompletion(); Log.Info("Addressables catalog loaded."); ModSettingsManager.SetModDescription("Dota 2 items in Risk of Rain 2!"); AsyncOperationHandle<Sprite> val = Addressables.LoadAssetAsync<Sprite>((object)"2c47c84c04276284788a629fce27c7f9"); val.Completed += delegate(AsyncOperationHandle<Sprite> x) { ModSettingsManager.SetModIcon(x.Result); }; AsyncOperationHandle<ExpansionDef> val2 = Addressables.LoadAssetAsync<ExpansionDef>((object)"94098b57c571f0d40b3f17f8c3e81070"); val2.Completed += delegate(AsyncOperationHandle<ExpansionDef> x) { expansion = x.Result; ContentAddition.AddExpansionDef(expansion); }; foreach (Type item in from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase)) select type) { ItemBase itemBase = (ItemBase)Activator.CreateInstance(item); ConfigEntry<bool> val3 = ((BaseUnityPlugin)this).Config.Bind<bool>("Item: " + itemBase.ConfigItemName, "Enabled", true, "Should this item be available?"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(val3, true)); ItemsEnabled.Add(itemBase, val3.Value); } foreach (Type item2 in from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(EquipmentBase)) select type) { EquipmentBase equipmentBase = (EquipmentBase)Activator.CreateInstance(item2); ConfigEntry<bool> val4 = ((BaseUnityPlugin)this).Config.Bind<bool>("Item: " + equipmentBase.EquipmentName, "Enabled", true, "Should this item be available?"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(val4, true)); EquipmentEnabled.Add(equipmentBase, val4.Value); } foreach (KeyValuePair<ItemBase, bool> item3 in ItemsEnabled) { if (item3.Value) { Items.Add(item3.Key); item3.Key.Init(((BaseUnityPlugin)this).Config); Log.Info("Item: " + item3.Key.ItemName + " initialized!"); } else { Log.Warning("Item: " + item3.Key.ItemName + " NOT initialized."); } } foreach (KeyValuePair<EquipmentBase, bool> item4 in EquipmentEnabled) { if (item4.Value) { Equipment.Add(item4.Key); item4.Key.Init(((BaseUnityPlugin)this).Config); Log.Info("Equipment: " + item4.Key.EquipmentName + " initialized!"); } else { Log.Warning("Equipment: " + item4.Key.EquipmentName + " NOT initialized."); } } foreach (Type item5 in from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(BuffBase)) select type) { BuffBase buffBase = (BuffBase)Activator.CreateInstance(item5); Buffs.Add(buffBase); buffBase.Init(); Log.Info("Buff: " + buffBase.BuffName + " initialized!"); } RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { Log.Debug("Initializing RecipeManager."); RecipeManager.Init(); }); object obj = <>c.<>9__18_6; if (obj == null) { hook_Init val5 = delegate(orig_Init orig) { //IL_007d: 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) List<Pair> list = new List<Pair>(); Log.Debug("Adding void items."); foreach (ItemBase item6 in Items) { if ((Object)(object)item6.VoidFor != (Object)null) { Log.Debug("Pairing " + item6.ItemDef.nameToken + " to " + item6.VoidFor.nameToken + "."); list.Add(new Pair { itemDef1 = item6.VoidFor, itemDef2 = item6.ItemDef }); } } Pair[] first = ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem]; ItemCatalog.itemRelationships[ItemRelationshipTypes.ContagiousItem] = first.Union(list).ToArray(); orig.Invoke(); }; <>c.<>9__18_6 = val5; obj = (object)val5; } ContagiousItemManager.Init += (hook_Init)obj; if ((Object)(object)disabledSkill == (Object)null) { AsyncOperationHandle<SkillDef> val6 = Addressables.LoadAssetAsync<SkillDef>((object)RoR2_Base_Captain.CaptainSkillUsedUp_asset); val6.Completed += delegate(AsyncOperationHandle<SkillDef> x) { //IL_0068: 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_0078: 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) SkillDef result = x.Result; disabledSkill = ScriptableObject.CreateInstance<SkillDef>(); disabledSkill.skillName = result.skillName; disabledSkill.skillNameToken = result.skillNameToken; disabledSkill.skillDescriptionToken = result.skillDescriptionToken; disabledSkill.icon = result.icon; disabledSkill.activationStateMachineName = result.activationStateMachineName; disabledSkill.activationState = result.activationState; disabledSkill.interruptPriority = result.interruptPriority; disabledSkill.baseRechargeInterval = result.baseRechargeInterval; disabledSkill.baseMaxStock = result.baseMaxStock; disabledSkill.rechargeStock = result.rechargeStock; disabledSkill.requiredStock = result.requiredStock; disabledSkill.stockToConsume = result.stockToConsume; disabledSkill.beginSkillCooldownOnSkillEnd = result.beginSkillCooldownOnSkillEnd; disabledSkill.fullRestockOnAssign = result.fullRestockOnAssign; disabledSkill.dontAllowPastMaxStocks = result.dontAllowPastMaxStocks; disabledSkill.canceledFromSprinting = result.canceledFromSprinting; disabledSkill.isCombatSkill = result.isCombatSkill; disabledSkill.resetCooldownTimerOnUse = result.resetCooldownTimerOnUse; disabledSkill.cancelSprintingOnActivation = result.cancelSprintingOnActivation; disabledSkill.canceledFromSprinting = result.canceledFromSprinting; disabledSkill.forceSprintDuringState = result.forceSprintDuringState; disabledSkill.mustKeyPress = result.mustKeyPress; disabledSkill.keywordTokens = result.keywordTokens; Log.Debug("Disabled skill added."); ContentAddition.AddSkillDef(disabledSkill); }; } if (isLookingGlassInstalled) { RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(Compatibility.LookingGlassCompatibility)); } } public static void TrySwapShadersInPrefab(GameObject prefab) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) Renderer[] componentsInChildren = prefab.GetComponentsInChildren<Renderer>(); for (int i = 0; i < componentsInChildren.Length; i++) { Material material = componentsInChildren[i].material; string name = ((Object)material.shader).name; Log.Debug("Trying to swap " + name + " in " + ((Object)prefab).name); if (name.Contains("Stubbed")) { name = name.Replace("Stubbed", string.Empty) + ".shader"; Shader val = Addressables.LoadAssetAsync<Shader>((object)name).WaitForCompletion(); if ((Object)(object)val != (Object)null) { material.shader = val; Log.Debug("Successfully swapped to " + name); } else { Log.Error("Failed to load shader " + name); } } } } public static void SetupSoundEvent(string GUID, NetworkSoundEventDef sound) { //IL_0