Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of Evolution Config v1.0.5
EvolutionConfig.dll
Decompiled a year agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using HG.Reflection; using IL.RoR2.Artifacts; using Mono.Cecil.Cil; using MonoMod.Cil; using RoR2; using RoR2.Artifacts; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("EvolutionConfig")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+069c0d21730ea3e0fef807820cf55016f03131cc")] [assembly: AssemblyProduct("EvolutionConfig")] [assembly: AssemblyTitle("EvolutionConfig")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace R2API.Utils { [AttributeUsage(AttributeTargets.Assembly)] public class ManualNetworkRegistrationAttribute : Attribute { } } namespace EvolutionConfig { [BepInPlugin("com.Moffein.EvolutionConfig", "Evolution Config", "1.0.5")] public class EvolutionConfig : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__4_1; public static Func<int, PickupDef, int> <>9__4_2; public static Manipulator <>9__4_0; internal void <Awake>b__4_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt<Inventory>(x, "GiveItem") }); val.Emit(OpCodes.Ldloc_2); val.EmitDelegate<Func<int, PickupDef, int>>((Func<int, PickupDef, int>)delegate(int itemCount, PickupDef pickup) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected I4, but got Unknown ItemTier itemTier = pickup.itemTier; ItemTier val2 = itemTier; switch ((int)val2) { case 0: case 6: return whiteCount; case 1: case 7: return greenCount; case 2: case 8: return redCount; default: return itemCount; } }); } internal bool <Awake>b__4_1(Instruction x) { return ILPatternMatchingExt.MatchCallvirt<Inventory>(x, "GiveItem"); } internal int <Awake>b__4_2(int itemCount, PickupDef pickup) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected I4, but got Unknown ItemTier itemTier = pickup.itemTier; ItemTier val = itemTier; switch ((int)val) { case 0: case 6: return whiteCount; case 1: case 7: return greenCount; case 2: case 8: return redCount; default: return itemCount; } } } public static int whiteCount = 1; public static int greenCount = 1; public static int redCount = 1; private void ReadConfig() { whiteCount = ((BaseUnityPlugin)this).Config.Bind<int>("Item Counts", "Common", 1, "How many items of this tier to grant.").Value; greenCount = ((BaseUnityPlugin)this).Config.Bind<int>("Item Counts", "Uncommon", 1, "How many items of this tier to grant.").Value; redCount = ((BaseUnityPlugin)this).Config.Bind<int>("Item Counts", "Legendary", 1, "How many items of this tier to grant.").Value; } public void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown ReadConfig(); object obj = <>c.<>9__4_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); val2.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt<Inventory>(x, "GiveItem") }); val2.Emit(OpCodes.Ldloc_2); val2.EmitDelegate<Func<int, PickupDef, int>>((Func<int, PickupDef, int>)delegate(int itemCount, PickupDef pickup) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected I4, but got Unknown ItemTier itemTier = pickup.itemTier; ItemTier val3 = itemTier; switch ((int)val3) { case 0: case 6: return whiteCount; case 1: case 7: return greenCount; case 2: case 8: return redCount; default: return itemCount; } }); }; <>c.<>9__4_0 = val; obj = (object)val; } MonsterTeamGainsItemsArtifactManager.GrantMonsterTeamItem += (Manipulator)obj; } [ConCommand(/*Could not decode attribute arguments.*/)] public static void EvolutionConfig_GrantItems(ConCommandArgs args) { string itemName = ((ConCommandArgs)(ref args)).TryGetArgString(0); if (((ConCommandArgs)(ref args)).Count >= 2) { int? num = ((ConCommandArgs)(ref args)).TryGetArgInt(1); if (num.HasValue) { GrantMonsterTeamItem(itemName, num.Value); return; } } GrantMonsterTeamItem(itemName); } public static void GrantMonsterTeamItem(string itemName, int count = 1) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0019: Unknown result type (might be due to invalid IL or missing references) ItemIndex val = ItemCatalog.FindItemIndex(itemName); if ((int)val != -1) { MonsterTeamGainsItemsArtifactManager.monsterTeamInventory.GiveItem(val, count); } else { Debug.LogError((object)"Item not found. If you have DebugToolkit installed, type list_item to view a list of all internal item names. You must enter the item name exactly as it appears in the list."); } } public static void GrantMonsterTeamItem(ItemIndex itemIndex, int count) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) MonsterTeamGainsItemsArtifactManager.monsterTeamInventory.GiveItem(itemIndex, count); } } }