Decompiled source of NoLastManStanding v1.0.0

NoArenaMod/NoArena.dll

Decompiled a week ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using HarmonyLib;
using MelonLoader;
using NoArenaMod;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: MelonInfo(typeof(NoArena), "No arena", "1.0.0", "edddddee", null)]
[assembly: MelonGame("semiwork", "REPO")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyCompany("MyRepoMod")]
[assembly: AssemblyConfiguration("release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("MyRepoMod")]
[assembly: AssemblyTitle("MyRepoMod")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace NoArenaMod;

internal class NoArena : MelonMod
{
	[HarmonyPatch(typeof(RunManager), "ChangeLevel")]
	private class ChangeLevelPatch
	{
		private static void Postfix(RunManager __instance, bool _levelFailed)
		{
			if (_levelFailed && (Object)(object)__instance.levelCurrent != (Object)(object)__instance.levelLobby && (Object)(object)__instance.levelCurrent != (Object)(object)__instance.levelShop)
			{
				__instance.ResetProgress();
				if (SemiFunc.IsMultiplayer())
				{
					__instance.levelCurrent = __instance.levelLobbyMenu;
				}
				else
				{
					__instance.SetRunLevel();
				}
				typeof(RunManager).GetField("gameOver", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(__instance, true);
			}
		}
	}
}