Decompiled source of AdvancedREPO Stamina v1.0.1

BepInEx/plugins/AdvancedREPO.Stamina.dll

Decompiled 3 weeks ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using AdvancedREPO.API;
using AdvancedREPO.Config;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using Microsoft.CodeAnalysis;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("AdvancedREPO.Stamina")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Better stamina for REPO")]
[assembly: AssemblyFileVersion("1.0.1.0")]
[assembly: AssemblyInformationalVersion("1.0.1+91089561413fedaed7f28d429c4a3c83beb72026")]
[assembly: AssemblyProduct("AdvancedREPO.Stamina")]
[assembly: AssemblyTitle("AdvancedREPO.Stamina")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace AdvancedREPO.Stamina
{
	public static class Configuration
	{
		public static ConfigField<bool> NoStaminaDrainDuringJump;

		public static ConfigField<bool> NoSlowdownDuringJump;

		public static ConfigField<bool> NoAccelerationDuringJump;

		public static ConfigField<int> JumpStaminaCost;

		public static ConfigField<bool> JumpStaminaPrevent;

		public static ConfigField<int> StaminaSprintDrainRate;

		public static ConfigField<int> StaminaRechargeRate;

		public static ConfigField<int> StaminaRechargeStandingRate;

		public static ConfigField<int> StaminaRechargeCrouchingRate;

		public static ConfigField<int> StartingStamina;

		public static ConfigField<int> StaminaPerUpgrade;

		public static ConfigField<int> SlideStaminaCost;

		public static void Initialize(ConfigFile configFile)
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0027: Expected O, but got Unknown
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Expected O, but got Unknown
			//IL_0098: Expected O, but got Unknown
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Expected O, but got Unknown
			//IL_0109: Expected O, but got Unknown
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Expected O, but got Unknown
			//IL_0181: Expected O, but got Unknown
			//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f2: Expected O, but got Unknown
			//IL_01f2: Expected O, but got Unknown
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Expected O, but got Unknown
			//IL_026e: Expected O, but got Unknown
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f1: Expected O, but got Unknown
			//IL_02f1: Expected O, but got Unknown
			//IL_034e: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Expected O, but got Unknown
			//IL_0377: Expected O, but got Unknown
			//IL_03d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fd: Expected O, but got Unknown
			//IL_03fd: Expected O, but got Unknown
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0476: Unknown result type (might be due to invalid IL or missing references)
			//IL_0480: Expected O, but got Unknown
			//IL_0480: Expected O, but got Unknown
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fc: Expected O, but got Unknown
			//IL_04fc: Expected O, but got Unknown
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_056d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0577: Expected O, but got Unknown
			//IL_0577: Expected O, but got Unknown
			NoSlowdownDuringJump = ConfigBuilderStatic.Sync<bool>(configFile.Bind<bool>(new ConfigDefinition("Jumping", "No slow down"), true, new ConfigDescription("Do not slow down the player when stamina reaches zero while jumping.", (AcceptableValueBase)null, Array.Empty<object>())));
			Stamina.SetNoSlowdownDuringJump((bool?)NoSlowdownDuringJump.Value, (string)null, (string)null);
			NoSlowdownDuringJump.ValueChanged += delegate
			{
				Stamina.SetNoSlowdownDuringJump((bool?)NoSlowdownDuringJump.Value, (string)null, (string)null);
			};
			NoAccelerationDuringJump = ConfigBuilderStatic.Sync<bool>(configFile.Bind<bool>(new ConfigDefinition("Jumping", "No acceleration"), true, new ConfigDescription("Do not accelerate the player when sprint is hold while jumping.", (AcceptableValueBase)null, Array.Empty<object>())));
			Stamina.SetNoAccelerationDuringJump((bool?)NoAccelerationDuringJump.Value, (string)null, (string)null);
			NoAccelerationDuringJump.ValueChanged += delegate
			{
				Stamina.SetNoAccelerationDuringJump((bool?)NoAccelerationDuringJump.Value, (string)null, (string)null);
			};
			NoStaminaDrainDuringJump = ConfigBuilderStatic.Sync<bool>(configFile.Bind<bool>(new ConfigDefinition("Jumping", "No stamina drain"), false, new ConfigDescription("Do not drain stamina during jumping.", (AcceptableValueBase)null, Array.Empty<object>())));
			Stamina.SetNoStaminaDrainDuringJump((bool?)NoStaminaDrainDuringJump.Value, (string)null, (string)null);
			NoStaminaDrainDuringJump.ValueChanged += delegate
			{
				Stamina.SetNoStaminaDrainDuringJump((bool?)NoStaminaDrainDuringJump.Value, (string)null, (string)null);
			};
			JumpStaminaCost = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Jumping", "Jump stamina cost"), 0, new ConfigDescription("How much stamina should a jump cost? Zero is the default game behavior.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())));
			Stamina.AddJumpStaminaCost((int?)JumpStaminaCost.Value, (string)null, (string)null);
			JumpStaminaCost.ValueChanged += delegate
			{
				Stamina.AddJumpStaminaCost((int?)JumpStaminaCost.Value, (string)null, (string)null);
			};
			JumpStaminaPrevent = ConfigBuilderStatic.Sync<bool>(configFile.Bind<bool>(new ConfigDefinition("Jumping", "Prevent jump"), false, new ConfigDescription("Should a jump be prevented if stamina is insufficient?", (AcceptableValueBase)null, Array.Empty<object>())));
			Stamina.SetJumpStaminaPrevent((bool?)JumpStaminaPrevent.Value, (string)null, (string)null);
			JumpStaminaPrevent.ValueChanged += delegate
			{
				Stamina.SetJumpStaminaPrevent((bool?)JumpStaminaPrevent.Value, (string)null, (string)null);
			};
			StaminaSprintDrainRate = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Stamina sprint drain rate"), 100, new ConfigDescription("How fast should stamina drain while sprinting? 100 is the game default.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 500), Array.Empty<object>())));
			Stamina.SetStaminaSprintDrainRate((float?)((float)StaminaSprintDrainRate.Value / 100f), (string)null, (string)null);
			StaminaSprintDrainRate.ValueChanged += delegate
			{
				Stamina.SetStaminaSprintDrainRate((float?)((float)StaminaSprintDrainRate.Value / 100f), (string)null, (string)null);
			};
			StaminaRechargeRate = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Stamina standard recharge rate"), 100, new ConfigDescription("How fast should stamina recharge? 100 is the game default.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 1000), Array.Empty<object>())));
			Stamina.SetStaminaRechargeRate((float?)((float)StaminaRechargeRate.Value / 100f), (string)null, (string)null);
			StaminaRechargeRate.ValueChanged += delegate
			{
				Stamina.SetStaminaRechargeRate((float?)((float)StaminaRechargeRate.Value / 100f), (string)null, (string)null);
			};
			StaminaRechargeStandingRate = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Stamina recharge multiplier while standing"), 150, new ConfigDescription("How fast should stamina recharge while standing still? 100 is the game default.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 1000), Array.Empty<object>())));
			Stamina.SetStandingStaminaRechargeMultiplier((float?)((float)StaminaRechargeStandingRate.Value / 100f), (string)null, (string)null);
			StaminaRechargeStandingRate.ValueChanged += delegate
			{
				Stamina.SetStandingStaminaRechargeMultiplier((float?)((float)StaminaRechargeStandingRate.Value / 100f), (string)null, (string)null);
			};
			StaminaRechargeCrouchingRate = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Stamina recharge multiplier while crouching"), 150, new ConfigDescription("How fast should stamina recharge while crouching? 100 is the game default.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 1000), Array.Empty<object>())));
			Stamina.SetCrouchingStaminaRechargeMultiplier((float?)((float)StaminaRechargeCrouchingRate.Value / 100f), (string)null, (string)null);
			StaminaRechargeCrouchingRate.ValueChanged += delegate
			{
				Stamina.SetCrouchingStaminaRechargeMultiplier((float?)((float)StaminaRechargeCrouchingRate.Value / 100f), (string)null, (string)null);
			};
			StartingStamina = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Starting stamina"), 40, new ConfigDescription("How much stamina every player should start with.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 1000), Array.Empty<object>())));
			Stamina.AddStartStamina((int?)(StartingStamina.Value - 40), (string)null, (string)null);
			StartingStamina.ValueChanged += delegate
			{
				Stamina.AddStartStamina((int?)(StartingStamina.Value - 40), (string)null, (string)null);
			};
			StaminaPerUpgrade = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Upgrade stamina"), 10, new ConfigDescription("How much stamina every upgrade gives.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())));
			Stamina.AddStaminaPerUpgrade((int?)(StaminaPerUpgrade.Value - 10), (string)null, (string)null);
			StaminaPerUpgrade.ValueChanged += delegate
			{
				Stamina.AddStaminaPerUpgrade((int?)(StaminaPerUpgrade.Value - 10), (string)null, (string)null);
			};
			SlideStaminaCost = ConfigBuilderStatic.Sync<int>(configFile.Bind<int>(new ConfigDefinition("Stamina", "Slide stamina cost"), 5, new ConfigDescription("How much stamina a slide cost.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>())));
			Stamina.AddSlideStaminaCost((int?)(SlideStaminaCost.Value - 5), (string)null, (string)null);
			SlideStaminaCost.ValueChanged += delegate
			{
				Stamina.AddSlideStaminaCost((int?)(SlideStaminaCost.Value - 5), (string)null, (string)null);
			};
		}
	}
	[BepInPlugin("potatoepet.advancedrepo.stamina", "AdvancedREPO.Stamina", "1.0.1")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public static ManualLogSource? Log;

		private void Awake()
		{
			Log = ((BaseUnityPlugin)this).Logger;
			Log.LogInfo((object)"Applying AdvancedREPO.Stamina...");
			Configuration.Initialize(((BaseUnityPlugin)this).Config);
			Log.LogInfo((object)"AdvancedREPO.Stamina applied!");
		}
	}
}