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);
}
}
}
}