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