Decompiled source of RiskOfTheAncients2 v2.0.3
ROTA2.dll
Decompiled 2 months 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 IL.RoR2; using KinematicCharacterController; using LookingGlass; using LookingGlass.ItemStatsNameSpace; using LookingGlass.StatsDisplay; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; 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: IgnoresAccessChecksTo("LookingGlass")] [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+83904d3265da6684f4bcd14b27b49c64936fafa4")] [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; } } } namespace ROTA2 { public static class Compatibility { [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void LookingGlassCompatibility() { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Expected O, but got Unknown //IL_01c4: 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_0201: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Expected O, but got Unknown //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0275: Expected O, but got Unknown //IL_02fb: 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_0310: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0328: 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_0344: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Expected O, but got Unknown //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Expected O, but got Unknown //IL_0418: 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_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Expected O, but got Unknown //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Expected O, but got Unknown //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_0529: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0551: 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_0513: Expected O, but got Unknown //IL_0599: 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_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Expected O, but got Unknown //IL_0636: 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_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0657: Unknown result type (might be due to invalid IL or missing references) //IL_0663: 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_067f: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_0699: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Expected O, but got Unknown //IL_06de: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_06ff: Unknown result type (might be due to invalid IL or missing references) //IL_070b: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06cd: Expected O, but got Unknown //IL_0750: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Unknown result type (might be due to invalid IL or missing references) //IL_0765: Unknown result type (might be due to invalid IL or missing references) //IL_0771: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Expected O, but got Unknown //IL_07c2: Unknown result type (might be due to invalid IL or missing references) //IL_07c7: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07e3: Unknown result type (might be due to invalid IL or missing references) //IL_07ef: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07b1: Expected O, but got Unknown //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_0839: Unknown result type (might be due to invalid IL or missing references) //IL_0849: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Expected O, but got Unknown //IL_08a9: Unknown result type (might be due to invalid IL or missing references) //IL_08ae: Unknown result type (might be due to invalid IL or missing references) //IL_08be: Unknown result type (might be due to invalid IL or missing references) //IL_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Unknown result type (might be due to invalid IL or missing references) //IL_08e6: Unknown result type (might be due to invalid IL or missing references) //IL_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_08fe: Unknown result type (might be due to invalid IL or missing references) //IL_088b: Unknown result type (might be due to invalid IL or missing references) //IL_0895: Expected O, but got Unknown //IL_0946: Unknown result type (might be due to invalid IL or missing references) //IL_094b: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_0983: Unknown result type (might be due to invalid IL or missing references) //IL_098f: Unknown result type (might be due to invalid IL or missing references) //IL_099b: Unknown result type (might be due to invalid IL or missing references) //IL_0928: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Expected O, but got Unknown //IL_09e3: Unknown result type (might be due to invalid IL or missing references) //IL_09e8: Unknown result type (might be due to invalid IL or missing references) //IL_09f8: Unknown result type (might be due to invalid IL or missing references) //IL_0a04: Unknown result type (might be due to invalid IL or missing references) //IL_0a10: Unknown result type (might be due to invalid IL or missing references) //IL_0a20: Unknown result type (might be due to invalid IL or missing references) //IL_0a2c: Unknown result type (might be due to invalid IL or missing references) //IL_0a38: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Expected O, but got Unknown //IL_0a80: Unknown result type (might be due to invalid IL or missing references) //IL_0a85: Unknown result type (might be due to invalid IL or missing references) //IL_0a95: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) //IL_0aad: Unknown result type (might be due to invalid IL or missing references) //IL_0abd: Unknown result type (might be due to invalid IL or missing references) //IL_0ac9: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ade: Unknown result type (might be due to invalid IL or missing references) //IL_0ae3: Unknown result type (might be due to invalid IL or missing references) //IL_0a62: Unknown result type (might be due to invalid IL or missing references) //IL_0a6c: Expected O, but got Unknown //IL_0b2b: Unknown result type (might be due to invalid IL or missing references) //IL_0b30: Unknown result type (might be due to invalid IL or missing references) //IL_0b40: Unknown result type (might be due to invalid IL or missing references) //IL_0b4c: Unknown result type (might be due to invalid IL or missing references) //IL_0b58: Unknown result type (might be due to invalid IL or missing references) //IL_0b68: Unknown result type (might be due to invalid IL or missing references) //IL_0b74: Unknown result type (might be due to invalid IL or missing references) //IL_0b80: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b17: Expected O, but got Unknown //IL_0bc8: 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_0bdd: Unknown result type (might be due to invalid IL or missing references) //IL_0be9: Unknown result type (might be due to invalid IL or missing references) //IL_0bf5: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c1d: Unknown result type (might be due to invalid IL or missing references) //IL_0baa: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Expected O, but got Unknown //IL_0c62: Unknown result type (might be due to invalid IL or missing references) //IL_0c67: Unknown result type (might be due to invalid IL or missing references) //IL_0c77: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0c8f: Unknown result type (might be due to invalid IL or missing references) //IL_0c47: Unknown result type (might be due to invalid IL or missing references) //IL_0c51: Expected O, but got Unknown //IL_0cd4: Unknown result type (might be due to invalid IL or missing references) //IL_0cd9: Unknown result type (might be due to invalid IL or missing references) //IL_0ce9: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0d01: Unknown result type (might be due to invalid IL or missing references) //IL_0cb9: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Expected O, but got Unknown //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d4b: Unknown result type (might be due to invalid IL or missing references) //IL_0d5b: Unknown result type (might be due to invalid IL or missing references) //IL_0d67: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d35: Expected O, but got Unknown //IL_0dbb: Unknown result type (might be due to invalid IL or missing references) //IL_0dc0: Unknown result type (might be due to invalid IL or missing references) //IL_0dd0: Unknown result type (might be due to invalid IL or missing references) //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0de8: Unknown result type (might be due to invalid IL or missing references) //IL_0df8: Unknown result type (might be due to invalid IL or missing references) //IL_0e04: Unknown result type (might be due to invalid IL or missing references) //IL_0e10: Unknown result type (might be due to invalid IL or missing references) //IL_0d9d: Unknown result type (might be due to invalid IL or missing references) //IL_0da7: Expected O, but got Unknown //IL_0e58: Unknown result type (might be due to invalid IL or missing references) //IL_0e5d: Unknown result type (might be due to invalid IL or missing references) //IL_0e6d: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e95: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Unknown result type (might be due to invalid IL or missing references) //IL_0ead: Unknown result type (might be due to invalid IL or missing references) //IL_0e3a: Unknown result type (might be due to invalid IL or missing references) //IL_0e44: Expected O, but got Unknown //IL_0ef5: 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_0f0a: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f22: Unknown result type (might be due to invalid IL or missing references) //IL_0f32: Unknown result type (might be due to invalid IL or missing references) //IL_0f3e: Unknown result type (might be due to invalid IL or missing references) //IL_0f4a: Unknown result type (might be due to invalid IL or missing references) //IL_0ed7: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Expected O, but got Unknown //IL_0f8f: Unknown result type (might be due to invalid IL or missing references) //IL_0f94: Unknown result type (might be due to invalid IL or missing references) //IL_0fa4: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fbc: Unknown result type (might be due to invalid IL or missing references) //IL_0f74: Unknown result type (might be due to invalid IL or missing references) //IL_0f7e: Expected O, but got Unknown //IL_1001: Unknown result type (might be due to invalid IL or missing references) //IL_1006: Unknown result type (might be due to invalid IL or missing references) //IL_1016: Unknown result type (might be due to invalid IL or missing references) //IL_1022: Unknown result type (might be due to invalid IL or missing references) //IL_102e: Unknown result type (might be due to invalid IL or missing references) //IL_0fe6: Unknown result type (might be due to invalid IL or missing references) //IL_0ff0: Expected O, but got Unknown //IL_1073: Unknown result type (might be due to invalid IL or missing references) //IL_1078: Unknown result type (might be due to invalid IL or missing references) //IL_1088: Unknown result type (might be due to invalid IL or missing references) //IL_1095: Unknown result type (might be due to invalid IL or missing references) //IL_10a1: 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_1062: Expected O, but got Unknown //IL_10e6: Unknown result type (might be due to invalid IL or missing references) //IL_10eb: 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_1107: Unknown result type (might be due to invalid IL or missing references) //IL_1113: Unknown result type (might be due to invalid IL or missing references) //IL_111a: Unknown result type (might be due to invalid IL or missing references) //IL_111c: Unknown result type (might be due to invalid IL or missing references) //IL_1121: Unknown result type (might be due to invalid IL or missing references) //IL_10cb: Unknown result type (might be due to invalid IL or missing references) //IL_10d5: Expected O, but got Unknown //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_116b: Unknown result type (might be due to invalid IL or missing references) //IL_117b: Unknown result type (might be due to invalid IL or missing references) //IL_1187: Unknown result type (might be due to invalid IL or missing references) //IL_1193: Unknown result type (might be due to invalid IL or missing references) //IL_114b: Unknown result type (might be due to invalid IL or missing references) //IL_1155: Expected O, but got Unknown //IL_11d8: Unknown result type (might be due to invalid IL or missing references) //IL_11dd: Unknown result type (might be due to invalid IL or missing references) //IL_11ed: Unknown result type (might be due to invalid IL or missing references) //IL_11f9: Unknown result type (might be due to invalid IL or missing references) //IL_1205: Unknown result type (might be due to invalid IL or missing references) //IL_11bd: Unknown result type (might be due to invalid IL or missing references) //IL_11c7: Expected O, but got Unknown //IL_124d: Unknown result type (might be due to invalid IL or missing references) //IL_1252: Unknown result type (might be due to invalid IL or missing references) //IL_1262: Unknown result type (might be due to invalid IL or missing references) //IL_126e: Unknown result type (might be due to invalid IL or missing references) //IL_127a: Unknown result type (might be due to invalid IL or missing references) //IL_128a: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: Unknown result type (might be due to invalid IL or missing references) //IL_122f: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Expected O, but got Unknown //IL_12ea: Unknown result type (might be due to invalid IL or missing references) //IL_12ef: Unknown result type (might be due to invalid IL or missing references) //IL_12ff: Unknown result type (might be due to invalid IL or missing references) //IL_130b: Unknown result type (might be due to invalid IL or missing references) //IL_1317: Unknown result type (might be due to invalid IL or missing references) //IL_1327: Unknown result type (might be due to invalid IL or missing references) //IL_1333: Unknown result type (might be due to invalid IL or missing references) //IL_133f: Unknown result type (might be due to invalid IL or missing references) //IL_134f: Unknown result type (might be due to invalid IL or missing references) //IL_135b: Unknown result type (might be due to invalid IL or missing references) //IL_1367: Unknown result type (might be due to invalid IL or missing references) //IL_1377: Unknown result type (might be due to invalid IL or missing references) //IL_1383: Unknown result type (might be due to invalid IL or missing references) //IL_138f: Unknown result type (might be due to invalid IL or missing references) //IL_12cc: Unknown result type (might be due to invalid IL or missing references) //IL_12d6: Expected O, but got Unknown //IL_13d7: Unknown result type (might be due to invalid IL or missing references) //IL_13dc: Unknown result type (might be due to invalid IL or missing references) //IL_13ec: Unknown result type (might be due to invalid IL or missing references) //IL_13f8: Unknown result type (might be due to invalid IL or missing references) //IL_1404: Unknown result type (might be due to invalid IL or missing references) //IL_1414: Unknown result type (might be due to invalid IL or missing references) //IL_1420: Unknown result type (might be due to invalid IL or missing references) //IL_142c: Unknown result type (might be due to invalid IL or missing references) //IL_143c: Unknown result type (might be due to invalid IL or missing references) //IL_1448: Unknown result type (might be due to invalid IL or missing references) //IL_1454: Unknown result type (might be due to invalid IL or missing references) //IL_13b9: Unknown result type (might be due to invalid IL or missing references) //IL_13c3: Expected O, but got Unknown //IL_149c: Unknown result type (might be due to invalid IL or missing references) //IL_14a1: Unknown result type (might be due to invalid IL or missing references) //IL_14b1: Unknown result type (might be due to invalid IL or missing references) //IL_14bd: Unknown result type (might be due to invalid IL or missing references) //IL_14c9: Unknown result type (might be due to invalid IL or missing references) //IL_14d9: Unknown result type (might be due to invalid IL or missing references) //IL_14e5: Unknown result type (might be due to invalid IL or missing references) //IL_14f1: Unknown result type (might be due to invalid IL or missing references) //IL_147e: Unknown result type (might be due to invalid IL or missing references) //IL_1488: Expected O, but got Unknown //IL_1539: Unknown result type (might be due to invalid IL or missing references) //IL_153e: Unknown result type (might be due to invalid IL or missing references) //IL_154e: Unknown result type (might be due to invalid IL or missing references) //IL_155a: Unknown result type (might be due to invalid IL or missing references) //IL_1566: Unknown result type (might be due to invalid IL or missing references) //IL_1576: Unknown result type (might be due to invalid IL or missing references) //IL_1582: Unknown result type (might be due to invalid IL or missing references) //IL_158e: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_1525: Expected O, but got Unknown //IL_15d6: Unknown result type (might be due to invalid IL or missing references) //IL_15db: Unknown result type (might be due to invalid IL or missing references) //IL_15eb: Unknown result type (might be due to invalid IL or missing references) //IL_15f7: Unknown result type (might be due to invalid IL or missing references) //IL_1603: Unknown result type (might be due to invalid IL or missing references) //IL_1613: Unknown result type (might be due to invalid IL or missing references) //IL_161f: Unknown result type (might be due to invalid IL or missing references) //IL_162b: Unknown result type (might be due to invalid IL or missing references) //IL_163b: Unknown result type (might be due to invalid IL or missing references) //IL_1647: Unknown result type (might be due to invalid IL or missing references) //IL_1653: Unknown result type (might be due to invalid IL or missing references) //IL_1663: Unknown result type (might be due to invalid IL or missing references) //IL_166f: Unknown result type (might be due to invalid IL or missing references) //IL_167b: Unknown result type (might be due to invalid IL or missing references) //IL_15b8: Unknown result type (might be due to invalid IL or missing references) //IL_15c2: Expected O, but got Unknown //IL_16c3: Unknown result type (might be due to invalid IL or missing references) //IL_16c8: Unknown result type (might be due to invalid IL or missing references) //IL_16d4: Unknown result type (might be due to invalid IL or missing references) //IL_16e4: Unknown result type (might be due to invalid IL or missing references) //IL_16f0: Unknown result type (might be due to invalid IL or missing references) //IL_16fc: Unknown result type (might be due to invalid IL or missing references) //IL_170c: Unknown result type (might be due to invalid IL or missing references) //IL_1718: Unknown result type (might be due to invalid IL or missing references) //IL_1724: Unknown result type (might be due to invalid IL or missing references) //IL_1734: Unknown result type (might be due to invalid IL or missing references) //IL_1740: Unknown result type (might be due to invalid IL or missing references) //IL_174c: Unknown result type (might be due to invalid IL or missing references) //IL_175c: Unknown result type (might be due to invalid IL or missing references) //IL_1768: Unknown result type (might be due to invalid IL or missing references) //IL_1774: Unknown result type (might be due to invalid IL or missing references) //IL_16a5: Unknown result type (might be due to invalid IL or missing references) //IL_16af: Expected O, but got Unknown //IL_17bc: Unknown result type (might be due to invalid IL or missing references) //IL_17c1: Unknown result type (might be due to invalid IL or missing references) //IL_17d1: Unknown result type (might be due to invalid IL or missing references) //IL_17dd: Unknown result type (might be due to invalid IL or missing references) //IL_17e9: Unknown result type (might be due to invalid IL or missing references) //IL_17f9: Unknown result type (might be due to invalid IL or missing references) //IL_1805: Unknown result type (might be due to invalid IL or missing references) //IL_1811: Unknown result type (might be due to invalid IL or missing references) //IL_1821: Unknown result type (might be due to invalid IL or missing references) //IL_182d: Unknown result type (might be due to invalid IL or missing references) //IL_1839: Unknown result type (might be due to invalid IL or missing references) //IL_1849: Unknown result type (might be due to invalid IL or missing references) //IL_1855: Unknown result type (might be due to invalid IL or missing references) //IL_1861: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17a8: Expected O, but got Unknown //IL_18a9: Unknown result type (might be due to invalid IL or missing references) //IL_18ae: Unknown result type (might be due to invalid IL or missing references) //IL_18be: Unknown result type (might be due to invalid IL or missing references) //IL_18ca: Unknown result type (might be due to invalid IL or missing references) //IL_18d6: Unknown result type (might be due to invalid IL or missing references) //IL_18e6: Unknown result type (might be due to invalid IL or missing references) //IL_18f2: Unknown result type (might be due to invalid IL or missing references) //IL_18fe: Unknown result type (might be due to invalid IL or missing references) //IL_190e: Unknown result type (might be due to invalid IL or missing references) //IL_191a: Unknown result type (might be due to invalid IL or missing references) //IL_1926: Unknown result type (might be due to invalid IL or missing references) //IL_1936: Unknown result type (might be due to invalid IL or missing references) //IL_1942: Unknown result type (might be due to invalid IL or missing references) //IL_194e: Unknown result type (might be due to invalid IL or missing references) //IL_195e: Unknown result type (might be due to invalid IL or missing references) //IL_196a: Unknown result type (might be due to invalid IL or missing references) //IL_1976: Unknown result type (might be due to invalid IL or missing references) //IL_1986: Unknown result type (might be due to invalid IL or missing references) //IL_1992: Unknown result type (might be due to invalid IL or missing references) //IL_199e: Unknown result type (might be due to invalid IL or missing references) //IL_188b: Unknown result type (might be due to invalid IL or missing references) //IL_1895: Expected O, but got Unknown //IL_19e3: Unknown result type (might be due to invalid IL or missing references) //IL_19e8: Unknown result type (might be due to invalid IL or missing references) //IL_19f8: Unknown result type (might be due to invalid IL or missing references) //IL_1a04: Unknown result type (might be due to invalid IL or missing references) //IL_1a10: Unknown result type (might be due to invalid IL or missing references) //IL_19c8: Unknown result type (might be due to invalid IL or missing references) //IL_19d2: Expected O, but got Unknown //IL_1a3a: Unknown result type (might be due to invalid IL or missing references) //IL_1a44: Expected O, but got Unknown Log.Debug("Adding LookingGlass stat display definitions."); Func<float, string> utility = (float x) => (!StatsDisplayClass.builtInColors.Value) ? x.ToString(StatsDisplayDefinitions.floatPrecision) : ("<style=\"cIsUtility\">" + x.ToString(StatsDisplayDefinitions.floatPrecision) + "</style"); StatsDisplayClass.statDictionary.Add("magicResistance", delegate(CharacterBody cachedUserBody) { StatsAPI.CustomStats component = ((Component)cachedUserBody).GetComponent<StatsAPI.CustomStats>(); return Object.op_Implicit((Object)(object)component) ? (utility((1f - component.MagicResistanceMultiplier) * 100f) + "%") : (utility(0f) + "%"); }); 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)3 }, calculateValues = (CharacterMaster master, int count) => new List<float>(1) { (ItemBase<HealingSalve>.Instance.RegenerationBase.Value + ItemBase<HealingSalve>.Instance.RegenerationPerStack.Value * (float)(count - 1)) * (1f + 0.2f * master.GetBody().level) * 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<Cloak>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Magic Resistance: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, calculateValuesNew = (float luck, int count, float proc) => new List<float>(1) { 1f - (1f - ItemBase<Cloak>.Instance.MagicResistanceBase.Value / 100f) * Mathf.Pow(1f - ItemBase<Cloak>.Instance.MagicResistancePerStack.Value / 100f, (float)(count - 1)) } }, ItemBase<Cloak>.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 num3 = 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) { num3++; } } } return new List<float>(2) { (ItemBase<QuicksilverAmulet>.Instance.AttackSpeedBase.Value / 100f + ItemBase<QuicksilverAmulet>.Instance.AttackSpeedPerStack.Value / 100f * (float)(count - 1)) * (float)num3, (ItemBase<QuicksilverAmulet>.Instance.MovementSpeedBase.Value / 100f + ItemBase<QuicksilverAmulet>.Instance.MovementSpeedPerStack.Value / 100f * (float)(count - 1)) * (float)num3 }; } }, 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.InvulnerabilityDuration.Value, ItemBase<AeonDisk>.Instance.MovementSpeedDuration.Value } }, 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 num2 = 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(num2, 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<UnwaveringCondition>.Instance]) { ItemDefinitions.RegisterItemStatsDef(new ItemStatsDef { descriptions = { "Magic Resistance: " }, valueTypes = { (ValueType)2 }, measurementUnits = { (MeasurementUnits)1 }, descriptions = { "Maximum Health: " }, valueTypes = { (ValueType)3 }, measurementUnits = { (MeasurementUnits)4 }, calculateValuesNew = delegate(float luck, int count, float proc) { float num = 1f - ItemBase<UnwaveringCondition>.Instance.MagicResistanceBase.Value / 100f; for (int i = 1; i < count; i++) { num *= 1f - ItemBase<UnwaveringCondition>.Instance.MagicResistancePerStack.Value / 100f; } return new List<float>(2) { 1f - (1f - ItemBase<UnwaveringCondition>.Instance.MagicResistanceBase.Value / 100f) * Mathf.Pow(1f - ItemBase<UnwaveringCondition>.Instance.MagicResistancePerStack.Value / 100f, (float)(count - 1)), ItemBase<UnwaveringCondition>.Instance.CombinedHealthLimit.Value * Mathf.Pow(1f - ItemBase<UnwaveringCondition>.Instance.LimitReductionPerStack.Value / 100f, (float)(count - 1)) }; } }, ItemBase<UnwaveringCondition>.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.Hoof, Items.Syringe }, ItemBase<PowerTreads>.GetItemDef()); itemsToWatchFor.AddRange(new <>z__ReadOnlyArray<ItemDef>((ItemDef[])(object)new ItemDef[2] { Items.Hoof, Items.Syringe })); } 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.3")] 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.3"; 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Expected O, but got Unknown //IL_041a: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Expected O, but got Unknown //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0441: 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); }; StatsAPI.Init(); 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;