Decompiled source of InfiniteReserveAmmo2 v3.0.0

Mods/Infinite Reserve Ammo 2.dll

Decompiled a day ago
using System.Diagnostics;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using AmmoOnSpawnSpawner;
using HarmonyLib;
using Il2CppSLZ.Marrow;
using Il2CppTMPro;
using MelonLoader;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Infinite Reserve Ammo 2")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Infinite Reserve Ammo 2")]
[assembly: AssemblyCopyright("Created by thebonerworksthebonerworks")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: AssemblyFileVersion("1.0.0")]
[assembly: NeutralResourcesLanguage("en")]
[assembly: MelonInfo(typeof(global::AmmoOnSpawnSpawner.AmmoOnSpawnSpawner), "Infinite Reserve Ammo 2", "1.0.0", "thebonerworks", null)]
[assembly: MelonGame("Stress Level Zero", "BONELAB")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
[HarmonyPatch(typeof(AmmoInventory), "Awake")]
internal static class Patch
{
	private static void Postfix(AmmoInventory __instance)
	{
		__instance.AddCartridge(__instance.lightAmmoGroup, 500000);
		__instance.AddCartridge(__instance.mediumAmmoGroup, 500000);
		__instance.AddCartridge(__instance.heavyAmmoGroup, 500000);
	}
}
[HarmonyPatch(typeof(AmmoInventory), "RemoveCartridge")]
internal static class Patch2
{
	private static void Postfix(AmmoInventory __instance)
	{
		__instance.AddCartridge(__instance.lightAmmoGroup, 500000);
		__instance.AddCartridge(__instance.mediumAmmoGroup, 500000);
		__instance.AddCartridge(__instance.heavyAmmoGroup, 500000);
	}
}
[HarmonyPatch(typeof(TMP_Text), "set_text")]
internal class NewAmmoTextPatch
{
	private static void Prefix(TMP_Text __instance, ref string value)
	{
		if (value == "∞")
		{
			return;
		}
		Transform val = __instance.transform;
		bool flag = false;
		bool flag2 = false;
		while ((Object)(object)val != (Object)null)
		{
			string text = ((Object)val).name.ToLower();
			if (text.Contains("hud"))
			{
				flag = true;
			}
			if ((text.Contains("txt_val_ammo") || text.StartsWith("txt_val_ammo_total")) && (Object)(object)((Component)val).GetComponent<TMP_Text>() != (Object)null)
			{
				flag2 = true;
			}
			val = val.parent;
		}
		if (!flag && !flag2)
		{
			return;
		}
		int result2;
		if (flag2)
		{
			if (double.TryParse(value, out var _))
			{
				value = "∞";
			}
		}
		else if (flag && int.TryParse(value, out result2))
		{
			value = "∞";
		}
	}
}
namespace AmmoOnSpawnSpawner;

public static class BuildInfo
{
	public const string Name = "Infinite Reserve Ammo 2";

	public const string Author = "thebonerworks";

	public const string Company = "";

	public const string Version = "1.0.0";

	public const string DownloadLink = null;
}
public class AmmoOnSpawnSpawner : MelonMod
{
	public const int AmmoCount = 500000;
}