Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of Go Back to Solus v1.0.1
GoBackToSolus.dll
Decompiled 3 weeks agousing System; using System.Collections.Generic; using System.Diagnostics; 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.Configuration; using Microsoft.CodeAnalysis; using RoR2; using UnityEngine; using UnityEngine.AddressableAssets; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("GoBackToSolus")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("GoBackToSolus")] [assembly: AssemblyTitle("GoBackToSolus")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] 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; } } } namespace GoBackToSolus { [BepInPlugin("com.Moffein.GoBackToSolus", "Go Back to Solus", "1.0.1")] public class GoBackToSolusPlugin : BaseUnityPlugin { public static List<DirectorCardCategorySelection> allOtherDccs = new List<DirectorCardCategorySelection> { Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/dampcave/dccsDampCaveMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/foggyswamp/dccsFoggySwampMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/frozenwall/dccsFrozenWallMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/golemplains/dccsGolemplainsMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/goolake/dccsGooLakeMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/rootjungle/dccsRootJungleMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/itancientloft/dccsITAncientLoftMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/itdampcave/dccsITDampCaveMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/itgolemplains/dccsITGolemplainsMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/itgoolake/dccsITGooLakeMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/sulfurpools/dccsSulfurPoolsMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC2/lakes/dccsLakesMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC2/village/dccsVillageMonstersDLC3.asset").WaitForCompletion() }; public static List<DirectorCardCategorySelection> scuMapDccs = new List<DirectorCardCategorySelection> { Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/Base/skymeadow/dccsSkyMeadowMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC1/itskymeadow/dccsITSkyMeadowMonstersDLC3.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DirectorCardCategorySelection>((object)"RoR2/DLC2/helminthroost/dccsHelminthRoostMonstersDLC3.asset").WaitForCompletion() }; public static List<DccsPool> dccsPools = new List<DccsPool> { Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/dampcave/dpDampCaveMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/foggyswamp/dpFoggySwampMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/frozenwall/dpFrozenWallMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/golemplains/dpGolemplainsMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/goolake/dpGooLakeMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/rootjungle/dpRootJungleMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itancientloft/dpITAncientLoftMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itdampcave/dpITDampCaveMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itgolemplains/dpITGolemplainsMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itgoolake/dpITGooLakeMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/sulfurpools/dpSulfurPoolsMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lakes/dpLakesMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lakesnight/dpLakesnightMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/village/dpVillageMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/villagenight/dpVillageNightMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/skymeadow/dpSkyMeadowMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itskymeadow/dpITSkyMeadowMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/helminthroost/dpHelminthRoostMonsters.asset").WaitForCompletion() }; public static List<DccsPool> scuDccsPools = new List<DccsPool> { Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/skymeadow/dpSkyMeadowMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/itskymeadow/dpITSkyMeadowMonsters.asset").WaitForCompletion(), Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/helminthroost/dpHelminthRoostMonsters.asset").WaitForCompletion() }; private bool allowOnScuMaps; private void Awake() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown allowOnScuMaps = ((BaseUnityPlugin)this).Config.Bind<bool>("Settings", "Allow on SCU Maps", true, new ConfigDescription("Allow DLC3 enemies to spawn on maps with the Solus Control Unit.", (AcceptableValueBase)null, Array.Empty<object>())).Value; RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(RemoveRobots)); } private void RemoveRobots() { foreach (DccsPool dccsPool in dccsPools) { Category[] poolCategories = dccsPool.poolCategories; foreach (Category val in poolCategories) { val.includedIfConditionsMet = val.includedIfConditionsMet.Where((ConditionalPoolEntry p) => Object.op_Implicit((Object)(object)((PoolEntry)p).dccs) && !allOtherDccs.Contains(((PoolEntry)p).dccs) && (allowOnScuMaps || !scuMapDccs.Contains(((PoolEntry)p).dccs))).ToArray(); } } } } } namespace R2API.Utils { [AttributeUsage(AttributeTargets.Assembly)] public class ManualNetworkRegistrationAttribute : Attribute { } }