Decompiled source of HardStyle v2.0.1

HardStyle/HardStyle.dll

Decompiled 2 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HardStyle.Patches;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using ULTRAKILL.Cheats;
using UnityEngine;
using UnityEngine.UI;

[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: IgnoresAccessChecksTo("0Harmony")]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: IgnoresAccessChecksTo("BepInEx")]
[assembly: IgnoresAccessChecksTo("Microsoft.Win32.Primitives")]
[assembly: IgnoresAccessChecksTo("Mono.Cecil")]
[assembly: IgnoresAccessChecksTo("Mono.Cecil.Mdb")]
[assembly: IgnoresAccessChecksTo("Mono.Cecil.Pdb")]
[assembly: IgnoresAccessChecksTo("Mono.Cecil.Rocks")]
[assembly: IgnoresAccessChecksTo("MonoMod.RuntimeDetour")]
[assembly: IgnoresAccessChecksTo("MonoMod.Utils")]
[assembly: IgnoresAccessChecksTo("mscorlib")]
[assembly: IgnoresAccessChecksTo("netstandard")]
[assembly: IgnoresAccessChecksTo("System.AppContext")]
[assembly: IgnoresAccessChecksTo("System.Buffers")]
[assembly: IgnoresAccessChecksTo("System.Collections.Concurrent")]
[assembly: IgnoresAccessChecksTo("System.Collections")]
[assembly: IgnoresAccessChecksTo("System.Collections.NonGeneric")]
[assembly: IgnoresAccessChecksTo("System.Collections.Specialized")]
[assembly: IgnoresAccessChecksTo("System.ComponentModel.Composition")]
[assembly: IgnoresAccessChecksTo("System.ComponentModel")]
[assembly: IgnoresAccessChecksTo("System.ComponentModel.EventBasedAsync")]
[assembly: IgnoresAccessChecksTo("System.ComponentModel.Primitives")]
[assembly: IgnoresAccessChecksTo("System.ComponentModel.TypeConverter")]
[assembly: IgnoresAccessChecksTo("System.Console")]
[assembly: IgnoresAccessChecksTo("System.Core")]
[assembly: IgnoresAccessChecksTo("System.Data.Common")]
[assembly: IgnoresAccessChecksTo("System.Data")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.Contracts")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.Debug")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.FileVersionInfo")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.Process")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.StackTrace")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.TextWriterTraceListener")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.Tools")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.TraceSource")]
[assembly: IgnoresAccessChecksTo("System.Diagnostics.Tracing")]
[assembly: IgnoresAccessChecksTo("System")]
[assembly: IgnoresAccessChecksTo("System.Drawing")]
[assembly: IgnoresAccessChecksTo("System.Drawing.Primitives")]
[assembly: IgnoresAccessChecksTo("System.Dynamic.Runtime")]
[assembly: IgnoresAccessChecksTo("System.Globalization.Calendars")]
[assembly: IgnoresAccessChecksTo("System.Globalization")]
[assembly: IgnoresAccessChecksTo("System.Globalization.Extensions")]
[assembly: IgnoresAccessChecksTo("System.IO.Compression")]
[assembly: IgnoresAccessChecksTo("System.IO.Compression.FileSystem")]
[assembly: IgnoresAccessChecksTo("System.IO.Compression.ZipFile")]
[assembly: IgnoresAccessChecksTo("System.IO")]
[assembly: IgnoresAccessChecksTo("System.IO.FileSystem")]
[assembly: IgnoresAccessChecksTo("System.IO.FileSystem.DriveInfo")]
[assembly: IgnoresAccessChecksTo("System.IO.FileSystem.Primitives")]
[assembly: IgnoresAccessChecksTo("System.IO.FileSystem.Watcher")]
[assembly: IgnoresAccessChecksTo("System.IO.IsolatedStorage")]
[assembly: IgnoresAccessChecksTo("System.IO.MemoryMappedFiles")]
[assembly: IgnoresAccessChecksTo("System.IO.Pipes")]
[assembly: IgnoresAccessChecksTo("System.IO.UnmanagedMemoryStream")]
[assembly: IgnoresAccessChecksTo("System.Linq")]
[assembly: IgnoresAccessChecksTo("System.Linq.Expressions")]
[assembly: IgnoresAccessChecksTo("System.Linq.Parallel")]
[assembly: IgnoresAccessChecksTo("System.Linq.Queryable")]
[assembly: IgnoresAccessChecksTo("System.Memory")]
[assembly: IgnoresAccessChecksTo("System.Net")]
[assembly: IgnoresAccessChecksTo("System.Net.Http")]
[assembly: IgnoresAccessChecksTo("System.Net.NameResolution")]
[assembly: IgnoresAccessChecksTo("System.Net.NetworkInformation")]
[assembly: IgnoresAccessChecksTo("System.Net.Ping")]
[assembly: IgnoresAccessChecksTo("System.Net.Primitives")]
[assembly: IgnoresAccessChecksTo("System.Net.Requests")]
[assembly: IgnoresAccessChecksTo("System.Net.Security")]
[assembly: IgnoresAccessChecksTo("System.Net.Sockets")]
[assembly: IgnoresAccessChecksTo("System.Net.WebHeaderCollection")]
[assembly: IgnoresAccessChecksTo("System.Net.WebSockets.Client")]
[assembly: IgnoresAccessChecksTo("System.Net.WebSockets")]
[assembly: IgnoresAccessChecksTo("System.Numerics")]
[assembly: IgnoresAccessChecksTo("System.Numerics.Vectors")]
[assembly: IgnoresAccessChecksTo("System.ObjectModel")]
[assembly: IgnoresAccessChecksTo("System.Reflection.DispatchProxy")]
[assembly: IgnoresAccessChecksTo("System.Reflection")]
[assembly: IgnoresAccessChecksTo("System.Reflection.Emit")]
[assembly: IgnoresAccessChecksTo("System.Reflection.Emit.ILGeneration")]
[assembly: IgnoresAccessChecksTo("System.Reflection.Emit.Lightweight")]
[assembly: IgnoresAccessChecksTo("System.Reflection.Extensions")]
[assembly: IgnoresAccessChecksTo("System.Reflection.Primitives")]
[assembly: IgnoresAccessChecksTo("System.Reflection.TypeExtensions")]
[assembly: IgnoresAccessChecksTo("System.Resources.Reader")]
[assembly: IgnoresAccessChecksTo("System.Resources.ResourceManager")]
[assembly: IgnoresAccessChecksTo("System.Resources.Writer")]
[assembly: IgnoresAccessChecksTo("System.Runtime.CompilerServices.VisualC")]
[assembly: IgnoresAccessChecksTo("System.Runtime")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Extensions")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Handles")]
[assembly: IgnoresAccessChecksTo("System.Runtime.InteropServices")]
[assembly: IgnoresAccessChecksTo("System.Runtime.InteropServices.RuntimeInformation")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Numerics")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Serialization")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Serialization.Formatters")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Serialization.Json")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Serialization.Primitives")]
[assembly: IgnoresAccessChecksTo("System.Runtime.Serialization.Xml")]
[assembly: IgnoresAccessChecksTo("System.Security.Claims")]
[assembly: IgnoresAccessChecksTo("System.Security.Cryptography.Algorithms")]
[assembly: IgnoresAccessChecksTo("System.Security.Cryptography.Csp")]
[assembly: IgnoresAccessChecksTo("System.Security.Cryptography.Encoding")]
[assembly: IgnoresAccessChecksTo("System.Security.Cryptography.Primitives")]
[assembly: IgnoresAccessChecksTo("System.Security.Cryptography.X509Certificates")]
[assembly: IgnoresAccessChecksTo("System.Security.Principal")]
[assembly: IgnoresAccessChecksTo("System.Security.SecureString")]
[assembly: IgnoresAccessChecksTo("System.ServiceModel.Web")]
[assembly: IgnoresAccessChecksTo("System.Text.Encoding")]
[assembly: IgnoresAccessChecksTo("System.Text.Encoding.Extensions")]
[assembly: IgnoresAccessChecksTo("System.Text.RegularExpressions")]
[assembly: IgnoresAccessChecksTo("System.Threading")]
[assembly: IgnoresAccessChecksTo("System.Threading.Overlapped")]
[assembly: IgnoresAccessChecksTo("System.Threading.Tasks")]
[assembly: IgnoresAccessChecksTo("System.Threading.Tasks.Extensions")]
[assembly: IgnoresAccessChecksTo("System.Threading.Tasks.Parallel")]
[assembly: IgnoresAccessChecksTo("System.Threading.Thread")]
[assembly: IgnoresAccessChecksTo("System.Threading.ThreadPool")]
[assembly: IgnoresAccessChecksTo("System.Threading.Timer")]
[assembly: IgnoresAccessChecksTo("System.Transactions")]
[assembly: IgnoresAccessChecksTo("System.ValueTuple")]
[assembly: IgnoresAccessChecksTo("System.Web")]
[assembly: IgnoresAccessChecksTo("System.Windows")]
[assembly: IgnoresAccessChecksTo("System.Xml")]
[assembly: IgnoresAccessChecksTo("System.Xml.Linq")]
[assembly: IgnoresAccessChecksTo("System.Xml.ReaderWriter")]
[assembly: IgnoresAccessChecksTo("System.Xml.Serialization")]
[assembly: IgnoresAccessChecksTo("System.Xml.XDocument")]
[assembly: IgnoresAccessChecksTo("System.Xml.XmlDocument")]
[assembly: IgnoresAccessChecksTo("System.Xml.XmlSerializer")]
[assembly: IgnoresAccessChecksTo("System.Xml.XPath")]
[assembly: IgnoresAccessChecksTo("System.Xml.XPath.XDocument")]
[assembly: IgnoresAccessChecksTo("Unity.Addressables")]
[assembly: IgnoresAccessChecksTo("Unity.InputSystem")]
[assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AccessibilityModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AIModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AndroidJNIModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AnimationModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AssetBundleModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.AudioModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ClothModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ClusterInputModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ClusterRendererModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ContentLoadModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.CoreModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.CrashReportingModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.DirectorModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine")]
[assembly: IgnoresAccessChecksTo("UnityEngine.DSPGraphModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.GameCenterModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.GIModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.GridModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.HotReloadModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ImageConversionModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.IMGUIModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.InputLegacyModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.InputModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.JSONSerializeModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.LocalizationModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ParticleSystemModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.PerformanceReportingModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.Physics2DModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.PhysicsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ProfilerModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.PropertiesModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.ScreenCaptureModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SharedInternalsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SpriteMaskModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SpriteShapeModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.StreamingModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SubstanceModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.SubsystemsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TerrainModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TerrainPhysicsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TextCoreFontEngineModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TextCoreTextEngineModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TextRenderingModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TilemapModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.TLSModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UI")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UIElementsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UIModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UmbraModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityAnalyticsCommonModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityAnalyticsModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityConnectModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityCurlModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityTestProtocolModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityWebRequestAssetBundleModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityWebRequestAudioModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityWebRequestModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityWebRequestTextureModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.UnityWebRequestWWWModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.VehiclesModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.VFXModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.VideoModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.VirtualTexturingModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.VRModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.WindModule")]
[assembly: IgnoresAccessChecksTo("UnityEngine.XRModule")]
[assembly: AssemblyCompany("HardStyle")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("2.0.1.0")]
[assembly: AssemblyInformationalVersion("2.0.1+9cfa41fa8752acf3b74d047bf1504f3f35a5fec1")]
[assembly: AssemblyProduct("HardStyle")]
[assembly: AssemblyTitle("HardStyle")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.0.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[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]
	[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]
	[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 HardStyle
{
	public class Config
	{
		internal static PluginConfigurator config;

		internal static FloatField hardMult;

		internal static FloatSliderField[] healMults;

		internal static BoolField screwBypass;

		internal static FloatField screwMult;

		internal static BoolField roundingFix;

		internal static BoolField whipStyleDecayAccel;

		internal static BoolField rateIncreaseEase;

		internal static FloatField startingDecayRate;

		internal static FloatField finalDecayRate;

		internal static FloatField easeTime;

		internal static BoolField malfaceFix;

		internal static BoolField scoreSubmission;

		internal static BoolField debugMode;

		private static string ModDir => Plugin.ModDir;

		public Config(string NAME, string GUID)
		{
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Expected O, but got Unknown
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Expected O, but got Unknown
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Expected O, but got Unknown
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Expected O, but got Unknown
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Expected O, but got Unknown
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_014c: Expected O, but got Unknown
			//IL_016f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Expected O, but got Unknown
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019e: Expected O, but got Unknown
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Expected O, but got Unknown
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Expected O, but got Unknown
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Expected O, but got Unknown
			//IL_0225: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Expected O, but got Unknown
			//IL_0239: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Expected O, but got Unknown
			//IL_024b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_0266: Expected O, but got Unknown
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_027c: Expected O, but got Unknown
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a6: Expected O, but got Unknown
			//IL_02b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Expected O, but got Unknown
			//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ed: Expected O, but got Unknown
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Expected O, but got Unknown
			//IL_0322: Unknown result type (might be due to invalid IL or missing references)
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_033d: Expected O, but got Unknown
			//IL_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Expected O, but got Unknown
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_037d: Expected O, but got Unknown
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0398: Expected O, but got Unknown
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bf: Expected O, but got Unknown
			//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d5: Expected O, but got Unknown
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Expected O, but got Unknown
			//IL_041e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Expected O, but got Unknown
			//IL_0439: Unknown result type (might be due to invalid IL or missing references)
			//IL_0440: Expected O, but got Unknown
			//IL_0463: Unknown result type (might be due to invalid IL or missing references)
			//IL_046d: Expected O, but got Unknown
			//IL_047a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0484: Expected O, but got Unknown
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0493: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ac: Expected O, but got Unknown
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c2: Expected O, but got Unknown
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04da: Expected O, but got Unknown
			config = PluginConfigurator.Create(NAME, GUID);
			config.SetIconWithURL("file://" + Path.Combine(ModDir, "icon.png"));
			ConfigHeader val = new ConfigHeader(config.rootPanel, "Hard Damage", 24);
			ConfigDivision val2 = CreateDivision("Edit Hard Damage", "hardDamageEnabler", "hardDamageDivision");
			hardMult = new FloatField((ConfigPanel)(object)val2, "Hard Damage Multiplier", "hardMult", 0f, 0f, 10f);
			ConfigHeader val3 = new ConfigHeader(config.rootPanel, "Healing", 24);
			ConfigDivision val4 = CreateDivision("Edit Healing", "healingEnabler", "healingDivision");
			ConfigHeader val5 = new ConfigHeader((ConfigPanel)(object)val4, "Healing Multipliers", 12);
			healMults = (FloatSliderField[])(object)new FloatSliderField[8]
			{
				new FloatSliderField((ConfigPanel)(object)val4, "DESTRUCTIVE", "rank0", Tuple.Create(0f, 1f), 0.1f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "CHAOTIC", "rank1", Tuple.Create(0f, 1f), 0.133333f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "BRUTAL", "rank2", Tuple.Create(0f, 1f), 0.166667f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "ANARCHIC", "rank3", Tuple.Create(0f, 1f), 0.2f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "SUPREME", "rank4", Tuple.Create(0f, 1f), 0.233333f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "SSADISTIC", "rank5", Tuple.Create(0f, 1f), 0.266667f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "SSSHITSTORM", "rank6", Tuple.Create(0f, 1f), 0.3f, 2),
				new FloatSliderField((ConfigPanel)(object)val4, "ULTRAKILL", "rank7", Tuple.Create(0f, 1f), 1f, 2)
			};
			ConfigSpace val6 = new ConfigSpace((ConfigPanel)(object)val4, 5f);
			screwBypass = new BoolField((ConfigPanel)(object)val4, "Screwdriver Bypass", "screwBypass", true);
			ConfigDivision screwdriverDivision = new ConfigDivision((ConfigPanel)(object)val4, "screwdriverDivision")
			{
				interactable = screwBypass.value
			};
			screwBypass.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				((ConfigField)screwdriverDivision).interactable = e.value;
			};
			screwMult = new FloatField((ConfigPanel)(object)screwdriverDivision, "Screw Multiplier", "screwMult", 0.5f, 0f, 1f);
			roundingFix = new BoolField((ConfigPanel)(object)val4, "Rounding Fix", "roundingFix", true)
			{
				hidden = true,
				interactable = false,
				value = false
			};
			ConfigHeader val7 = new ConfigHeader(config.rootPanel, "Style", 24);
			ConfigDivision val8 = CreateDivision("Edit Style", "styleEnabler", "styleDivision");
			whipStyleDecayAccel = new BoolField((ConfigPanel)(object)val8, "Whiplash Style Reduction", "whipStyleDecayAccel", true);
			ConfigDivision whiplashDivision = new ConfigDivision((ConfigPanel)(object)val8, "whiplashDivision")
			{
				interactable = whipStyleDecayAccel.value
			};
			whipStyleDecayAccel.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				((ConfigField)whiplashDivision).interactable = e.value;
			};
			startingDecayRate = new FloatField((ConfigPanel)(object)whiplashDivision, "Starting Decay Rate", "startingDecayRate", 2f, 1f, 10f);
			rateIncreaseEase = new BoolField((ConfigPanel)(object)whiplashDivision, "Decay Rate Increase Ease", "rateIncreaseEase", true);
			ConfigDivision whiplashEaseDivision = new ConfigDivision((ConfigPanel)(object)whiplashDivision, "whiplashEaseDivision")
			{
				interactable = rateIncreaseEase.value
			};
			rateIncreaseEase.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				((ConfigField)whiplashEaseDivision).interactable = e.value;
			};
			finalDecayRate = new FloatField((ConfigPanel)(object)whiplashEaseDivision, "Final Decay Rate", "finalDecayRate", 3f, 1f, 10f);
			easeTime = new FloatField((ConfigPanel)(object)whiplashEaseDivision, "Ease Time", "easeTime", 0.5f, 0f, 10f);
			ConfigHeader val9 = new ConfigHeader(config.rootPanel, "Miscellaneous", 24);
			ConfigDivision val10 = CreateDivision("Edit Misc", "miscEnabler", "miscDivision");
			malfaceFix = new BoolField((ConfigPanel)(object)val10, "Malface Bleed Fix", "malfaceFix", true);
			scoreSubmission = new BoolField((ConfigPanel)(object)val10, "Score Submission", "scoreSubmission", false);
			ConfigHeader troll = new ConfigHeader((ConfigPanel)(object)val10, "Lol! This doesn't do anything!", 24)
			{
				hidden = !scoreSubmission.value
			};
			scoreSubmission.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				((ConfigField)troll).hidden = !e.value;
			};
			debugMode = new BoolField((ConfigPanel)(object)val10, "Debug Mode (Logging)", "debugMode", false);
		}

		private static ConfigDivision CreateDivision(string enablerDisplayName, string enablerGuid, string divisionGuid)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Expected O, but got Unknown
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			BoolField val = new BoolField(config.rootPanel, enablerDisplayName, enablerGuid, false);
			ConfigDivision division = new ConfigDivision(config.rootPanel, divisionGuid)
			{
				hidden = !val.value
			};
			val.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				((ConfigField)division).hidden = !e.value;
			};
			return division;
		}

		internal void PrintValues()
		{
			PrintValue(hardMult);
			PrintValue(screwBypass);
			PrintValue(screwMult);
			PrintValue(roundingFix);
			PrintValue(whipStyleDecayAccel);
			PrintValue(rateIncreaseEase);
			PrintValue(startingDecayRate);
			PrintValue(finalDecayRate);
			PrintValue(easeTime);
			PrintValue(malfaceFix);
			PrintValue(scoreSubmission);
			PrintValue(debugMode);
		}

		internal static void PrintValue(ConfigField field, object value)
		{
			HardStyle.Patches.Debug.Log($"{field.displayName}: {value}");
		}

		internal static void PrintValue(BoolField boolField)
		{
			PrintValue((ConfigField)(object)boolField, boolField.value);
		}

		internal static void PrintValue(FloatField floatField)
		{
			PrintValue((ConfigField)(object)floatField, floatField.value);
		}
	}
	[BepInPlugin("com.blaixenu.hardstyle", "HardStyle", "2.0.1")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		public static string ModDir = Path.GetFullPath(Path.Combine(AssemblyPath, "../"));

		private static Harmony harmony = new Harmony("com.blaixenu.hardstyle");

		public static Config config = new Config("HardStyle", "com.blaixenu.hardstyle");

		public static string AssemblyPath => Path.GetDirectoryName(typeof(Plugin).Assembly.Location);

		internal static ManualLogSource Logger { get; private set; } = null;

		private void Awake()
		{
			Logger = ((BaseUnityPlugin)this).Logger;
			Logger.LogInfo((object)"Plugin com.blaixenu.hardstyle loaded! Yippee!!!");
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)4;
			harmony.PatchAll();
		}
	}
	internal static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "com.blaixenu.hardstyle";

		public const string PLUGIN_NAME = "HardStyle";

		public const string PLUGIN_VERSION = "2.0.1";
	}
}
namespace HardStyle.Patches
{
	[HarmonyPatch]
	public class Debug
	{
		public static bool DEBUG_MODE => Config.debugMode.value;

		[HarmonyPrefix]
		[HarmonyPatch(typeof(BloodsplatterManager), "GetGore", new Type[]
		{
			typeof(GoreType),
			typeof(bool),
			typeof(bool),
			typeof(bool),
			typeof(EnemyIdentifier),
			typeof(bool)
		})]
		private static void GetGoreDebugger(ref EnemyIdentifier eid)
		{
			Log("BloodsplatterManager.GetGore() called.");
			if ((Object)(object)eid != (Object)null)
			{
				Log($"EnemyIdentifier value non-null, value: {eid}");
			}
		}

		public static void Log(string text)
		{
			if (DEBUG_MODE)
			{
				Plugin.Logger.LogInfo((object)text);
			}
		}
	}
	[HarmonyPatch]
	public static class HardDamage
	{
		private static float HardMultiplier => Config.hardMult.value;

		[HarmonyPrefix]
		[HarmonyPatch(typeof(NewMovement), "GetHurt")]
		private static void GetHurtPatch(ref float hardDamageMultiplier)
		{
			hardDamageMultiplier = HardMultiplier;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(NewMovement), "ForceAntiHP")]
		private static bool ForceAntiHPPatch()
		{
			return false;
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(HealthBar), "Start")]
		private static void HealthBarStartPatch(ref HealthBar __instance)
		{
			if (HardMultiplier > 0f)
			{
				return;
			}
			Slider val;
			if ((Object)(object)__instance.antiHpSlider != (Object)null)
			{
				val = __instance.antiHpSlider;
			}
			else
			{
				if (!Object.op_Implicit((Object)(object)((Component)__instance).gameObject.transform.Find("AntiHealth Slider")))
				{
					return;
				}
				val = ((Component)((Component)__instance).gameObject.transform.Find("AntiHealth Slider")).GetComponent<Slider>();
			}
			((Component)val).gameObject.SetActive(false);
			__instance.antiHpSlider = null;
		}
	}
	[HarmonyPatch]
	public static class Healing
	{
		private static float healDebt;

		private static float HealFactor => Config.healMults[MonoSingleton<StyleHUD>.Instance.rankIndex].value;

		private static bool screwdriverBypass => Config.screwBypass.value;

		private static float screwdriverMultiplier => Config.screwMult.value;

		private static bool roundingFix => Config.roundingFix.value;

		private static int RoundWithDebt(float realInput)
		{
			if (!roundingFix)
			{
				return Mathf.RoundToInt(realInput);
			}
			int num = (int)realInput;
			int num2 = ((!((double)(realInput - (float)num) < 0.5)) ? (num + 1) : num);
			healDebt += (float)num2 - realInput;
			int num3 = (int)healDebt;
			healDebt -= num3;
			return num2 - num3;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Bloodsplatter), "Collide")]
		private static void BloodHealPrefix(ref Bloodsplatter __instance, ref int __state)
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected O, but got Unknown
			__state = __instance.hpAmount;
			Object val = Object.FindObjectFromInstanceID(__instance.eidID);
			EnemyIdentifier val2 = (EnemyIdentifier)val;
			if (screwdriverBypass && val2?.hitter == "drill")
			{
				__instance.hpAmount = RoundWithDebt((float)__instance.hpAmount * screwdriverMultiplier);
			}
			else
			{
				__instance.hpAmount = RoundWithDebt((float)__instance.hpAmount * HealFactor);
			}
			Debug.Log($"{val2} hit for {__instance.hpAmount} modified and {__state} original heal by {val2?.hitter} at {HealFactor} factor.");
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(Bloodsplatter), "Collide")]
		private static void BloodHealPostfix(ref Bloodsplatter __instance, ref int __state)
		{
			__instance.hpAmount = __state;
		}

		[HarmonyTranspiler]
		[HarmonyPatch(typeof(NewMovement), "Parry")]
		private static IEnumerable<CodeInstruction> ParryPatch(IEnumerable<CodeInstruction> instructions, ILGenerator generator)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Expected O, but got Unknown
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			CodeMatcher val = new CodeMatcher(instructions, generator);
			val.Start().MatchForward(true, (CodeMatch[])(object)new CodeMatch[2]
			{
				new CodeMatch((OpCode?)OpCodes.Stfld, (object)AccessTools.Field(typeof(NewMovement), "exploded"), (string)null),
				new CodeMatch((OpCode?)OpCodes.Ldarg_0, (object)null, (string)null)
			}).SetAndAdvance(OpCodes.Nop, (object)null)
				.SetAndAdvance(OpCodes.Nop, (object)null)
				.SetAndAdvance(OpCodes.Nop, (object)null)
				.SetAndAdvance(OpCodes.Nop, (object)null)
				.SetAndAdvance(OpCodes.Nop, (object)null)
				.Set(OpCodes.Nop, (object)null);
			return val.InstructionEnumeration();
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(NewMovement), "Parry")]
		private static void ParryPostfix(ref NewMovement __instance)
		{
			float realInput = (float)(100 - __instance.hp) * HealFactor;
			int num = RoundWithDebt(realInput);
			Debug.Log($"Parried, healed for {num}, and not the vanilla {100 - __instance.hp}");
			__instance.GetHealth(num, false, false, true);
		}
	}
	[HarmonyPatch]
	public static class Misc
	{
		private static bool doMalfaceFix => Config.malfaceFix.value;

		[HarmonyPostfix]
		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private static void ScoresSubmission(ref bool __result)
		{
			__result = false;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(SpiderBody), "GetHurt")]
		private static bool MalfaceFix(ref SpiderBody __instance, ref GameObject target, ref Vector3 force, ref Vector3 hitPoint, ref float multiplier, ref GameObject sourceWeapon)
		{
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0404: Unknown result type (might be due to invalid IL or missing references)
			//IL_0409: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
			if (!doMalfaceFix)
			{
				return true;
			}
			SpiderBody val = __instance;
			bool flag = false;
			float health = val.health;
			bool flag2 = true;
			if (hitPoint == Vector3.zero)
			{
				hitPoint = target.transform.position;
			}
			flag2 = MonoSingleton<BloodsplatterManager>.Instance.goreOn;
			if ((Object)(object)val.eid == (Object)null)
			{
				val.eid = ((Component)val).GetComponent<EnemyIdentifier>();
			}
			if (val.eid.hitter != "fire")
			{
				if (!val.eid.sandified && !val.eid.blessed)
				{
					GameObject gore = MonoSingleton<BloodsplatterManager>.Instance.GetGore((GoreType)2, val.eid, false);
					if (Object.op_Implicit((Object)(object)gore))
					{
						Bloodsplatter component = gore.GetComponent<Bloodsplatter>();
						gore.transform.SetParent(val.gz.goreZone, true);
						if (val.eid.hitter == "drill")
						{
							Transform transform = gore.transform;
							transform.localScale *= 2f;
						}
						if (val.health > 0f)
						{
							component.GetReady();
						}
						if (val.eid.hitter == "nail")
						{
							component.hpAmount = 3;
							AudioSource component2 = ((Component)component).GetComponent<AudioSource>();
							component2.volume *= 0.8f;
						}
						else if (multiplier >= 1f)
						{
							component.hpAmount = 30;
						}
						if (flag2)
						{
							gore.GetComponent<ParticleSystem>().Play();
						}
					}
					if (val.eid.hitter != "shotgun" && val.eid.hitter != "drill" && ((Component)val).gameObject.activeInHierarchy)
					{
						if ((Object)(object)val.dripBlood != (Object)null)
						{
							val.currentDrip = Object.Instantiate<GameObject>(val.dripBlood, hitPoint, Quaternion.identity);
						}
						if (Object.op_Implicit((Object)(object)val.currentDrip))
						{
							val.currentDrip.transform.parent = ((Component)val).transform;
							val.currentDrip.transform.LookAt(((Component)val).transform);
							val.currentDrip.transform.Rotate(180f, 180f, 180f);
							if (flag2)
							{
								val.currentDrip.GetComponent<ParticleSystem>().Play();
							}
						}
					}
				}
				else
				{
					MonoSingleton<BloodsplatterManager>.Instance.GetGore((GoreType)3, val.eid, false);
				}
			}
			if (!val.eid.dead)
			{
				if (!val.eid.blessed && !InvincibleEnemies.Enabled)
				{
					val.health -= 1f * multiplier;
				}
				if ((Object)(object)val.scalc == (Object)null)
				{
					val.scalc = MonoSingleton<StyleCalculator>.Instance;
				}
				if (val.health <= 0f)
				{
					flag = true;
				}
				if (((val.eid.hitter == "shotgunzone" || val.eid.hitter == "hammerzone") && val.parryable) || val.eid.hitter == "punch")
				{
					if (val.parryable)
					{
						val.parryable = false;
						MonoSingleton<FistControl>.Instance.currentPunch.Parry(false, val.eid, "");
						val.currentExplosion = Object.Instantiate<GameObject>(AddressablesExtensions.ToAsset(val.beamExplosion), ((Component)val).transform.position, Quaternion.identity);
						if (!InvincibleEnemies.Enabled && !val.eid.blessed)
						{
							val.health -= (float)((val.parryFramesLeft > 0) ? 4 : 5) / val.eid.totalHealthModifier;
						}
						Explosion[] componentsInChildren = val.currentExplosion.GetComponentsInChildren<Explosion>();
						Explosion[] array = componentsInChildren;
						foreach (Explosion val2 in array)
						{
							val2.speed *= val.eid.totalDamageModifier;
							val2.maxSize *= 1.75f * val.eid.totalDamageModifier;
							val2.damage = Mathf.RoundToInt(50f * val.eid.totalDamageModifier);
							val2.canHit = (AffectedSubjects)2;
							val2.friendlyFire = true;
						}
						if ((Object)(object)val.currentEnrageEffect == (Object)null)
						{
							((MonoBehaviour)val).CancelInvoke("BeamFire");
							((MonoBehaviour)val).Invoke("StopWaiting", 1f);
							Object.Destroy((Object)(object)val.currentChargeEffect);
						}
						val.parryFramesLeft = 0;
					}
					else
					{
						val.parryFramesLeft = MonoSingleton<FistControl>.Instance.currentPunch.activeFrames;
					}
				}
				if (multiplier != 0f)
				{
					val.scalc.HitCalculator(val.eid.hitter, "spider", "", flag, val.eid, sourceWeapon);
				}
				if (health >= val.maxHealth / 2f && val.health < val.maxHealth / 2f)
				{
					if (val.ensims == null || val.ensims.Length == 0)
					{
						val.ensims = ((Component)val).GetComponentsInChildren<EnemySimplifier>();
					}
					Object.Instantiate<GameObject>(val.woundedParticle, ((Component)val).transform.position, Quaternion.identity);
					if (!val.eid.puppet)
					{
						EnemySimplifier[] ensims = val.ensims;
						EnemySimplifier[] array2 = ensims;
						foreach (EnemySimplifier val3 in array2)
						{
							if (!val3.ignoreCustomColor)
							{
								val3.ChangeMaterialNew((MaterialState)0, val.woundedMaterial);
								val3.ChangeMaterialNew((MaterialState)2, val.woundedEnrageMaterial);
							}
						}
					}
				}
				if (Object.op_Implicit((Object)(object)val.hurtSound) && health > 0f)
				{
					OneShotAudioExtension.PlayClipAtPoint(val.hurtSound, MonoSingleton<AudioMixerController>.Instance.goreGroup, ((Component)val).transform.position, 12, 1f, 0.75f, Random.Range(0.85f, 1.35f), (AudioRolloffMode)1, 1f, 100f);
				}
				if (val.health <= 0f && !val.eid.dead)
				{
					val.Die();
				}
			}
			else if (val.eid.hitter == "ground slam")
			{
				val.BreakCorpse();
			}
			return false;
		}
	}
	[HarmonyPatch]
	public static class Style
	{
		public static float timeSinceHook;

		public static float originalDecaySpeed;

		public static bool doWhiplashStyleReduction => Config.whipStyleDecayAccel.value;

		public static bool doWhiplashStyleReductionEase => Config.rateIncreaseEase.value;

		public static float baseDecayMultiplier => Config.startingDecayRate.value;

		public static float finalDecayMultiplier => Config.finalDecayRate.value;

		public static float hookTime => Config.easeTime.value;

		public static bool IsBeingPulledToEnemy
		{
			get
			{
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Invalid comparison between Unknown and I4
				HookArm instance = MonoSingleton<HookArm>.Instance;
				if ((int)instance.state == 3 && Object.op_Implicit((Object)(object)instance.caughtEid) && !instance.lightTarget)
				{
					return true;
				}
				return false;
			}
		}

		public static float RateMultiplier
		{
			get
			{
				float num = baseDecayMultiplier;
				if (doWhiplashStyleReductionEase)
				{
					num += Mathf.Clamp01(timeSinceHook / hookTime) * (finalDecayMultiplier - baseDecayMultiplier);
				}
				return num;
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(HookArm), "Update")]
		public static void Counter()
		{
			if (IsBeingPulledToEnemy)
			{
				timeSinceHook += Time.deltaTime * Time.timeScale;
			}
			else
			{
				timeSinceHook = 0f;
			}
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(StyleHUD), "UpdateMeter")]
		public static void skababa1(ref float __state, ref StyleHUD __instance)
		{
			__state = __instance.currentMeter;
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(StyleHUD), "UpdateMeter")]
		public static void skababa2(ref float __state, ref StyleHUD __instance)
		{
			if (!doWhiplashStyleReduction)
			{
				return;
			}
			__instance.currentMeter = __state;
			if ((!(__instance.currentMeter > 0f) || __instance.comboActive) && !(__instance.currentMeter < 0f))
			{
				float num = 1f;
				if (IsBeingPulledToEnemy)
				{
					num = RateMultiplier;
					Debug.Log($"Reeling. factor: {num}");
				}
				StyleHUD obj = __instance;
				obj.currentMeter -= Time.deltaTime * (__instance.currentRank.drainSpeed * num * 15f);
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		internal IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}