Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of EclipseFix v1.0.1
EclipseFix/EclipseFix.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 BepInEx.Logging; using Microsoft.CodeAnalysis; using On.RoR2; using RoR2; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("EclipseFix")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+1433f4a38dda68dc75ec1bb5af95e7726c3cde86")] [assembly: AssemblyProduct("EclipseFix")] [assembly: AssemblyTitle("EclipseFix")] [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.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace EclipseFix { [BepInPlugin("InkyaRev.EclipseFix", "EclipseFix", "1.0.0")] public class EclipseFixPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FixedUpdate <>9__4_0; public static hook_OverrideRuleChoices <>9__4_1; internal void <Awake>b__4_0(orig_FixedUpdate _, MonoBehaviour selfMonoBehaviour) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Invalid comparison between Unknown and I4 RepeatHealComponent val = (RepeatHealComponent)(object)((selfMonoBehaviour is RepeatHealComponent) ? selfMonoBehaviour : null); if (val != null) { val.timer -= Time.fixedDeltaTime; if ((double)val.timer > 0.0) { return; } val.timer = 0.2f; if (!((double)val.reserve <= 0.0)) { float num = Mathf.Min((float)((double)val.healthComponent.fullHealth * (double)val.healthFractionToRestorePerSecond * 0.2), val.reserve); val.reserve -= num; ProcChainMask val2 = default(ProcChainMask); ((ProcChainMask)(ref val2)).AddProc((ProcType)13); if ((int)val.healthComponent.body.teamComponent.teamIndex == 1 && (int)Run.instance.selectedDifficulty >= 7) { num *= 2f; } val.healthComponent.Heal(num, val2, true); } } else { Log.Error("WHat the fuck"); } } internal void <Awake>b__4_1(orig_OverrideRuleChoices orig, EclipseRun self, RuleChoiceMask include, RuleChoiceMask exclude, ulong seed) { orig.Invoke(self, include, exclude, seed); ((Run)self).ForceChoice(include, exclude, "Items." + ((Object)Items.ShieldOnly).name + ".Off"); } } private const string PluginGUID = "InkyaRev.EclipseFix"; private const string PluginAuthor = "InkyaRev"; private const string PluginName = "EclipseFix"; private const string PluginVersion = "1.0.0"; public void Awake() { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); object obj = <>c.<>9__4_0; if (obj == null) { hook_FixedUpdate val = delegate(orig_FixedUpdate _, MonoBehaviour selfMonoBehaviour) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Invalid comparison between Unknown and I4 //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Invalid comparison between Unknown and I4 RepeatHealComponent val3 = (RepeatHealComponent)(object)((selfMonoBehaviour is RepeatHealComponent) ? selfMonoBehaviour : null); if (val3 != null) { val3.timer -= Time.fixedDeltaTime; if (!((double)val3.timer > 0.0)) { val3.timer = 0.2f; if (!((double)val3.reserve <= 0.0)) { float num = Mathf.Min((float)((double)val3.healthComponent.fullHealth * (double)val3.healthFractionToRestorePerSecond * 0.2), val3.reserve); val3.reserve -= num; ProcChainMask val4 = default(ProcChainMask); ((ProcChainMask)(ref val4)).AddProc((ProcType)13); if ((int)val3.healthComponent.body.teamComponent.teamIndex == 1 && (int)Run.instance.selectedDifficulty >= 7) { num *= 2f; } val3.healthComponent.Heal(num, val4, true); } } } else { Log.Error("WHat the fuck"); } }; <>c.<>9__4_0 = val; obj = (object)val; } RepeatHealComponent.FixedUpdate += (hook_FixedUpdate)obj; object obj2 = <>c.<>9__4_1; if (obj2 == null) { hook_OverrideRuleChoices val2 = delegate(orig_OverrideRuleChoices orig, EclipseRun self, RuleChoiceMask include, RuleChoiceMask exclude, ulong seed) { orig.Invoke(self, include, exclude, seed); ((Run)self).ForceChoice(include, exclude, "Items." + ((Object)Items.ShieldOnly).name + ".Off"); }; <>c.<>9__4_1 = val2; obj2 = (object)val2; } EclipseRun.OverrideRuleChoices += (hook_OverrideRuleChoices)obj2; } } 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); } } }