Decompiled source of LuckyItemUpgrade v1.0.0

LuckyItemUpgrade.dll

Decompiled 21 hours ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("LuckyItemUpgrade")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LuckyItemUpgrade")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4559f694-e6db-42c8-8b24-e2614217999f")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace LuckyItemUpgrade;

[BepInPlugin("com.repo.kr.LuckyItemUpgrade", "LuckyItemUpgrade", "1.0.0")]
public class ModBehaviour : BaseUnityPlugin
{
	[HarmonyPatch(typeof(ItemUpgradeDeathHeadBattery), "Upgrade")]
	public class ItemUpgradeDeathHeadBattery_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradeDeathHeadBattery __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradeDeathHeadBattery(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradeDeathHeadBattery(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradeDeathHeadBattery(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradeMapPlayerCount), "Upgrade")]
	public class ItemUpgradeMapPlayerCount_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradeMapPlayerCount __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradeMapPlayerCount(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradeMapPlayerCount(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradeMapPlayerCount(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerCrouchRest), "Upgrade")]
	public class ItemUpgradePlayerCrouchRest_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerCrouchRest __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerCrouchRest(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerCrouchRest(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerCrouchRest(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerEnergy), "Upgrade")]
	public class ItemUpgradePlayerEnergy_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerEnergy __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerEnergy(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerEnergy(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerEnergy(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerExtraJump), "Upgrade")]
	public class ItemUpgradePlayerExtraJump_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerExtraJump __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerExtraJump(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerExtraJump(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerExtraJump(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerGrabRange), "Upgrade")]
	public class ItemUpgradePlayerGrabRange_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerGrabRange __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerGrabRange(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerGrabRange(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerGrabRange(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerGrabStrength), "Upgrade")]
	public class ItemUpgradePlayerGrabStrength_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerGrabStrength __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerGrabStrength(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerGrabStrength(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerGrabStrength(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerGrabThrow), "Upgrade")]
	public class ItemUpgradePlayerGrabThrow_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerGrabThrow __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerThrowStrength(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerThrowStrength(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerThrowStrength(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerHealth), "Upgrade")]
	public class ItemUpgradePlayerHealth_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerHealth __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerHealth(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerHealth(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerHealth(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerSprintSpeed), "Upgrade")]
	public class ItemUpgradePlayerSprintSpeed_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerSprintSpeed __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerSprintSpeed(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerSprintSpeed(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerSprintSpeed(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerTumbleClimb), "Upgrade")]
	public class ItemUpgradePlayerTumbleClimb_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerTumbleClimb __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerTumbleClimb(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerTumbleClimb(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerTumbleClimb(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerTumbleLaunch), "Upgrade")]
	public class ItemUpgradePlayerTumbleLaunch_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerTumbleLaunch __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerTumbleLaunch(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerTumbleLaunch(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerTumbleLaunch(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	[HarmonyPatch(typeof(ItemUpgradePlayerTumbleWings), "Upgrade")]
	public class ItemUpgradePlayerTumbleWings_path
	{
		[HarmonyPrefix]
		private static bool Upgrade_Prefix(ItemUpgradePlayerTumbleWings __instance)
		{
			int num = (int)IDField.GetValue(((Component)__instance).GetComponent<ItemToggle>());
			string text = SemiFunc.PlayerGetSteamID(SemiFunc.PlayerAvatarGetFromPhotonID(num));
			while (true)
			{
				if (Random.Range(0f, 100f) < TeamUpgrade.Value)
				{
					Log.LogInfo((object)"触发团队升级");
					foreach (PlayerAvatar item in SemiFunc.PlayerGetAll())
					{
						PunManager.instance.UpgradePlayerTumbleWings(SemiFunc.PlayerGetSteamID(item), TeamMultUpgrade.Value);
					}
				}
				else if (Random.Range(0f, 100f) < LuckyPerson.Value)
				{
					Log.LogInfo((object)"触发欧皇附体");
					PunManager.instance.UpgradePlayerTumbleWings(text, LuckyMultUpgrade.Value);
				}
				else
				{
					PunManager.instance.UpgradePlayerTumbleWings(text, MultUpgrade.Value);
				}
				if (Random.Range(0f, 100f) >= OneMore.Value)
				{
					break;
				}
				Log.LogInfo((object)"触发再来一次");
			}
			return false;
		}
	}

	private Harmony harmony;

	private static ManualLogSource Log;

	private static ConfigEntry<float> TeamUpgrade;

	private static ConfigEntry<float> OneMore;

	private static ConfigEntry<float> LuckyPerson;

	private static ConfigEntry<int> MultUpgrade;

	private static ConfigEntry<int> TeamMultUpgrade;

	private static ConfigEntry<int> LuckyMultUpgrade;

	private static FieldInfo IDField;

	private static bool rand_fg = true;

	private void Awake()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Expected O, but got Unknown
		harmony = new Harmony("com.repo.kr.LuckyItemUpgrade");
		harmony.PatchAll();
		TeamUpgrade = ((BaseUnityPlugin)this).Config.Bind<float>("REPO_MultiFun", "TeamUpgrade", 50f, "Team Upgrade Probability(Percentage)");
		OneMore = ((BaseUnityPlugin)this).Config.Bind<float>("REPO_MultiFun", "OneMore", 10f, "One More Time Probability(Percentage)");
		LuckyPerson = ((BaseUnityPlugin)this).Config.Bind<float>("REPO_MultiFun", "LuckyPerson", 0.01f, "Lucky Person Probability(Percentage)");
		MultUpgrade = ((BaseUnityPlugin)this).Config.Bind<int>("REPO_MultiFun", "MultUpgrade", 1, "Upgrade multiplier");
		TeamMultUpgrade = ((BaseUnityPlugin)this).Config.Bind<int>("REPO_MultiFun", "TeamMultUpgrade", 1, "Team Upgrade multiplier");
		LuckyMultUpgrade = ((BaseUnityPlugin)this).Config.Bind<int>("REPO_MultiFun", "LuckyMultUpgrade", 999, "Lucky Upgrade multiplier");
		IDField = typeof(ItemToggle).GetField("playerTogglePhotonID", BindingFlags.Instance | BindingFlags.NonPublic);
		Log = ((BaseUnityPlugin)this).Logger;
		Log.LogInfo((object)"LuckyItemUpgrade enble");
	}
}