Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of NegativeBossHealthTweak v1.0.1
plugins/NegativeBossHealthTweak.dll
Decompiled 9 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using BepInEx; using BepInEx.Logging; using IL.RoR2.UI; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using R2API.Utils; using RoR2.UI; [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("NegativeBossHealthTweak")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+2ac1c971d4c6ed9e2be6af7f23b4ce6497e972c0")] [assembly: AssemblyProduct("NegativeBossHealthTweak")] [assembly: AssemblyTitle("NegativeBossHealthTweak")] [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 NegativeBossHealthTweak { internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object 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); } } internal static class Main { private const int integerLimit = int.MaxValue; internal static void HUDBossHealthBarController_LateUpdate(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (!val.TryGotoNext((MoveType)1, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0), (Instruction x) => ILPatternMatchingExt.MatchLdfld<HUDBossHealthBarController>(x, "healthLabel") })) { Log.Error("COULD NOT IL HOOK IL.RoR2.UI.HUDBossHealthBarController.LateUpdate PART 1"); LogILStuff(il, val); } ILLabel val2 = val.DefineLabel(); val.MarkLabel(val2); val.Index = 0; if (!val.TryGotoNext((MoveType)1, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld<HUDBossHealthBarController>(x, "sharedStringBuilder"), (Instruction x) => ILPatternMatchingExt.MatchCallvirt<StringBuilder>(x, "Clear") })) { Log.Error("COULD NOT IL HOOK IL.RoR2.UI.HUDBossHealthBarController.LateUpdate PART 2"); LogILStuff(il, val); } val.Emit(OpCodes.Ldarg_0); val.Emit<HUDBossHealthBarController>(OpCodes.Ldsfld, "sharedStringBuilder"); val.Emit(OpCodes.Ldloc_1); val.Emit(OpCodes.Ldloc_2); val.EmitDelegate<Action<HUDBossHealthBarController, StringBuilder, float, float>>((Action<HUDBossHealthBarController, StringBuilder, float, float>)delegate(HUDBossHealthBarController healthBarController, StringBuilder sharedStringBuilder, float totalObservedHealth, float totalMaxObservedMaxHealth) { sharedStringBuilder.Clear(); if (totalObservedHealth > 2.1474836E+09f) { sharedStringBuilder.Append("??????????"); } else { StringBuilderExtensions.AppendInt(sharedStringBuilder, healthBarController.oldTotalHealth, 1u, uint.MaxValue); } sharedStringBuilder.Append('/'); if (totalMaxObservedMaxHealth > 2.1474836E+09f) { sharedStringBuilder.Append("??????????"); } else { StringBuilderExtensions.AppendInt(sharedStringBuilder, healthBarController.oldTotalMaxHealth, 1u, uint.MaxValue); } }); val.Emit(OpCodes.Br, (object)val2); } private static void LogILStuff(ILContext il, ILCursor c) { Log.Warning($"cursor is {c}"); Log.Warning($"il is {il}"); } } [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("LordVGames.NegativeBossHealthTweak", "NegativeBossHealthTweak", "1.0.1")] public class Plugin : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static Manipulator <0>__HUDBossHealthBarController_LateUpdate; } public const string PluginGUID = "LordVGames.NegativeBossHealthTweak"; public const string PluginAuthor = "LordVGames"; public const string PluginName = "NegativeBossHealthTweak"; public const string PluginVersion = "1.0.1"; public void Awake() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); object obj = <>O.<0>__HUDBossHealthBarController_LateUpdate; if (obj == null) { Manipulator val = Main.HUDBossHealthBarController_LateUpdate; <>O.<0>__HUDBossHealthBarController_LateUpdate = val; obj = (object)val; } HUDBossHealthBarController.LateUpdate += (Manipulator)obj; } } }