Decompiled source of TopUnlimiter v1.0.0

TopUnlimiter.dll

Decompiled 2 weeks ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Threading.Tasks;
using BBModMenu;
using HarmonyLib;
using MelonLoader;
using Steamworks;
using Steamworks.Data;
using TopUnlimiter;
using UnityEngine;
using UnityEngine.UIElements;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("TopUnlimiter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TopUnlimiter")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: MelonInfo(typeof(Unlimiter), "Top Unlimiter", "1.0.0", "Beton Bros", null)]
[assembly: MelonGame("", "Beton Brutal")]
[assembly: MelonAdditionalDependencies(new string[] { "BBModMenu" })]
[assembly: Guid("b0443f2b-6ae6-4d07-b097-ea87517bf143")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace TopUnlimiter;

public class Unlimiter : MelonMod
{
	[HarmonyPatch(typeof(SteamManager), "GetGlobalScores")]
	public class GetGlobalScoresPatch
	{
		[HarmonyPrefix]
		private static bool Prefix(ref Task<LeaderboardEntry[]> __result, string leaderboardName)
		{
			__result = GetGlobalScoresOverride(leaderboardName);
			return false;
		}

		private static async Task<LeaderboardEntry[]> GetGlobalScoresOverride(string leaderboardName)
		{
			Leaderboard? leaderboard = await SteamUserStats.FindLeaderboardAsync(leaderboardName);
			if (!leaderboard.HasValue)
			{
				return null;
			}
			Leaderboard value = leaderboard.Value;
			return await ((Leaderboard)(ref value)).GetScoresAsync(NbRun, 1);
		}
	}

	[HarmonyPatch(typeof(Flashlight), "Awake")]
	public class AddSettings
	{
		[HarmonyPrefix]
		private static void Prefix(Flashlight __instance)
		{
			((Component)__instance).gameObject.AddComponent<ReplaySettings>();
		}
	}

	public static int NbRun = 100;
}
internal class ReplaySettings : MonoBehaviour
{
	public void Start()
	{
		GameUI component = GameObject.Find("GameUI").GetComponent<GameUI>();
		UIScreen? obj = ((typeof(GameUI).GetField("screens", BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(component) is List<UIScreen> source) ? ((IEnumerable<UIScreen>)source).FirstOrDefault((Func<UIScreen, bool>)((UIScreen screen) => screen is ModMenu)) : null);
		ModMenu val = (ModMenu)(object)((obj is ModMenu) ? obj : null);
		if (val == null)
		{
			MelonLogger.Msg("ModMenu not found");
			return;
		}
		string text = "Replay Viewer";
		VisualElement val2 = val.AddSetting(text);
		VisualElement val3 = val.CreateWrapper();
		VisualElement val4 = val.CreateGroup("Number of replay");
		Label val5 = val.CreateLabel("Number of replay");
		Slider slider = val.CreateSlider(text, "replayNumber", 100f, 2000f, 500f, true);
		Action updateNumber = delegate
		{
			Unlimiter.NbRun = (int)((BaseField<float>)(object)slider).value;
		};
		INotifyValueChangedExtensions.RegisterValueChangedCallback<float>((INotifyValueChanged<float>)(object)slider, (EventCallback<ChangeEvent<float>>)delegate
		{
			updateNumber();
		});
		updateNumber();
		val4.Add((VisualElement)(object)val5);
		val4.Add((VisualElement)(object)slider);
		val3.Add(val4);
		val2.Add(val3);
	}
}