Decompiled source of ImpactHammerYellowHitIndicator v1.0.3

YellowImpactPitchIndication.dll

Decompiled a day ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using PluginConfig.API;
using PluginConfig.API.Decorators;
using PluginConfig.API.Fields;
using UnityEngine;

[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("YellowImpactPitchIndication")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.3.0")]
[assembly: AssemblyInformationalVersion("1.0.3")]
[assembly: AssemblyProduct("Yellow Impact Pitch Indication")]
[assembly: AssemblyTitle("YellowImpactPitchIndication")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.3.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.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace YellowImpactPitchIndication
{
	public enum MotorRotationEnum
	{
		Movement_Speed_Only,
		Time_Left_Only,
		Max_of_Speed_and_Time_Left,
		Both_Speed_and_Time_Left
	}
	[BepInPlugin("YellowImpactPitchIndication", "Yellow Impact Pitch Indication", "1.0.3")]
	[Harmony]
	public class Plugin : BaseUnityPlugin
	{
		internal static ManualLogSource Logger;

		private static PluginConfigurator config;

		private static float pitch = 1f;

		private static float variation = 0.2f;

		private void Awake()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			Logger = ((BaseUnityPlugin)this).Logger;
			Harmony val = new Harmony("YellowImpactPitchIndication");
			val.PatchAll();
			config = PluginConfig.CreateConfig();
			Logger.LogInfo((object)"Plugin YellowImpactPitchIndication is loaded!");
		}

		[HarmonyPatch(typeof(ShotgunHammer), "ImpactRoutine")]
		[HarmonyPrefix]
		private static void ChangePitch(ShotgunHammer __instance)
		{
			int num = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
			if (PluginConfig.adjustInAdvance && __instance.tier == 1)
			{
				num++;
			}
			if (num < 0)
			{
				num = 0;
			}
			if (num > 3)
			{
				num = 3;
			}
			if (__instance.wid.delay == 0f)
			{
				if (PluginConfig.appliesToTier[__instance.tier])
				{
					pitch = PluginConfig.pitches[num];
					variation = PluginConfig.pitchVariations[num];
				}
				else
				{
					pitch = PluginConfig.fallbackPitch[__instance.tier];
					variation = PluginConfig.fallbackVariation[__instance.tier];
				}
			}
			if (variation == 0f)
			{
				variation = 0.0001f;
			}
			RandomPitch component = ((Component)__instance.hitSound).gameObject.GetComponent<RandomPitch>();
			component.pitchVariation = variation;
			component.defaultPitch = pitch;
		}

		[HarmonyPatch(typeof(ShotgunHammer), "Awake")]
		[HarmonyPostfix]
		private static void SetupSteamIndicator(ShotgunHammer __instance)
		{
			if (!Object.op_Implicit((Object)(object)((Component)__instance).gameObject.GetComponent<SteamIndicator>()))
			{
				((Component)__instance).gameObject.AddComponent<SteamIndicator>();
			}
		}

		[HarmonyPatch(typeof(ShotgunHammer), "Update")]
		[HarmonyPrefix]
		private static void ModifyCooldownSteamColor(ShotgunHammer __instance)
		{
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			if (MonoSingleton<WeaponCharges>.Instance.shoaltcooldowns[__instance.variation] > 0f && !__instance.overheatAud.isPlaying)
			{
				MainModule main = __instance.overheatParticle.main;
				MinMaxGradient startColor = ((MainModule)(ref main)).startColor;
				((MinMaxGradient)(ref startColor)).color = new Color(PluginConfig.cdParticleColor.r, PluginConfig.cdParticleColor.g, PluginConfig.cdParticleColor.b, PluginConfig.cdParticleOpacity);
				((MainModule)(ref main)).startColor = startColor;
			}
		}

		[HarmonyPatch(typeof(ShotgunHammer), "LateUpdate")]
		[HarmonyPrefix]
		private static void GetMotorRotation(ShotgunHammer __instance, ref Quaternion __state)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			__state = __instance.motorPreviousRotation;
		}

		[HarmonyPatch(typeof(ShotgunHammer), "LateUpdate")]
		[HarmonyPostfix]
		private static void SetMotorRotation(ShotgunHammer __instance, Quaternion __state)
		{
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			if (PluginConfig.motorRotation == MotorRotationEnum.Movement_Speed_Only || (PluginConfig.motorRotation == MotorRotationEnum.Both_Speed_and_Time_Left && MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer <= 0f))
			{
				return;
			}
			__instance.rotatingMotor.localRotation = __state;
			float num = Time.timeScale;
			if (__instance.impactRoutine != null)
			{
				num = 1f;
			}
			float num2 = MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer * PluginConfig.motorRotationMultiplier;
			num2 /= 3f;
			if (PluginConfig.motorRotation == MotorRotationEnum.Max_of_Speed_and_Time_Left && num2 < __instance.currentSpeed)
			{
				num2 = __instance.currentSpeed;
			}
			__instance.rotatingMotor.Rotate(Vector3.up * num2 * 10f * num * Time.unscaledDeltaTime * 150f, (Space)1);
			__instance.motorPreviousRotation = __instance.rotatingMotor.localRotation;
			__instance.motorSprite.color = new Color(1f, 1f, 1f, num2 / 3f);
			if (!PluginConfig.originalMotorSound)
			{
				__instance.motorSound.volume = num2 / 2f;
				if (__instance.impactRoutine == null)
				{
					AudioSourceExtensions.SetPitch(__instance.motorSound, num2 * num);
				}
				else
				{
					AudioSourceExtensions.SetPitch(__instance.motorSound, (float)(__instance.tier + 1));
				}
			}
		}
	}
	public static class PluginConfig
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static BoolValueChangeEventDelegate <>9__22_0;

			public static BoolValueChangeEventDelegate <>9__22_1;

			public static BoolValueChangeEventDelegate <>9__22_2;

			public static BoolValueChangeEventDelegate <>9__22_3;

			public static BoolValueChangeEventDelegate <>9__22_5;

			public static BoolValueChangeEventDelegate <>9__22_7;

			public static FloatValueChangeEventDelegate <>9__22_8;

			public static FloatValueChangeEventDelegate <>9__22_9;

			public static FloatValueChangeEventDelegate <>9__22_10;

			public static FloatValueChangeEventDelegate <>9__22_11;

			public static ColorValueChangeEventDelegate <>9__22_12;

			public static FloatValueChangeEventDelegate <>9__22_13;

			public static FloatValueChangeEventDelegate <>9__22_14;

			public static FloatValueChangeEventDelegate <>9__22_15;

			public static FloatValueChangeEventDelegate <>9__22_16;

			public static FloatValueChangeEventDelegate <>9__22_17;

			public static FloatValueChangeEventDelegate <>9__22_18;

			public static FloatValueChangeEventDelegate <>9__22_19;

			public static FloatValueChangeEventDelegate <>9__22_20;

			public static FloatValueChangeEventDelegate <>9__22_21;

			public static FloatValueChangeEventDelegate <>9__22_22;

			public static FloatValueChangeEventDelegate <>9__22_23;

			public static FloatValueChangeEventDelegate <>9__22_24;

			public static FloatValueChangeEventDelegate <>9__22_26;

			public static BoolValueChangeEventDelegate <>9__22_27;

			public static ColorValueChangeEventDelegate <>9__22_28;

			public static FloatValueChangeEventDelegate <>9__22_29;

			internal void <CreateConfig>b__22_0(BoolValueChangeEvent e)
			{
				appliesToTier[0] = e.value;
				((ConfigField)fallbackDiv[0]).interactable = !e.value;
			}

			internal void <CreateConfig>b__22_1(BoolValueChangeEvent e)
			{
				appliesToTier[1] = e.value;
				((ConfigField)fallbackDiv[1]).interactable = !e.value;
			}

			internal void <CreateConfig>b__22_2(BoolValueChangeEvent e)
			{
				appliesToTier[2] = e.value;
				((ConfigField)fallbackDiv[2]).interactable = !e.value;
			}

			internal void <CreateConfig>b__22_3(BoolValueChangeEvent e)
			{
				adjustInAdvance = e.value;
			}

			internal void <CreateConfig>b__22_5(BoolValueChangeEvent e)
			{
				mutuallyExclusiveSteams[0] = e.value;
			}

			internal void <CreateConfig>b__22_7(BoolValueChangeEvent e)
			{
				mutuallyExclusiveSteams[1] = e.value;
			}

			internal void <CreateConfig>b__22_8(FloatValueChangeEvent e)
			{
				particleSpeed = e.value;
			}

			internal void <CreateConfig>b__22_9(FloatValueChangeEvent e)
			{
				particleRate[0] = e.value;
			}

			internal void <CreateConfig>b__22_10(FloatValueChangeEvent e)
			{
				particleRate[1] = e.value;
			}

			internal void <CreateConfig>b__22_11(FloatValueChangeEvent e)
			{
				particleRate[2] = e.value;
			}

			internal void <CreateConfig>b__22_12(ColorValueChangeEvent e)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				particleColor = e.value;
			}

			internal void <CreateConfig>b__22_13(FloatValueChangeEvent e)
			{
				particleOpacity[0] = e.value;
			}

			internal void <CreateConfig>b__22_14(FloatValueChangeEvent e)
			{
				particleOpacity[1] = e.value;
			}

			internal void <CreateConfig>b__22_15(FloatValueChangeEvent e)
			{
				particleOpacity[2] = e.value;
			}

			internal void <CreateConfig>b__22_16(FloatValueChangeEvent e)
			{
				steamParticleRot[0] = e.value;
			}

			internal void <CreateConfig>b__22_17(FloatValueChangeEvent e)
			{
				steamParticleRot[1] = e.value;
			}

			internal void <CreateConfig>b__22_18(FloatValueChangeEvent e)
			{
				steamParticleRot[2] = e.value;
			}

			internal void <CreateConfig>b__22_19(FloatValueChangeEvent e)
			{
				steamVolume[0] = e.value;
			}

			internal void <CreateConfig>b__22_20(FloatValueChangeEvent e)
			{
				steamPitch[0] = e.value;
			}

			internal void <CreateConfig>b__22_21(FloatValueChangeEvent e)
			{
				steamVolume[1] = e.value;
			}

			internal void <CreateConfig>b__22_22(FloatValueChangeEvent e)
			{
				steamPitch[1] = e.value;
			}

			internal void <CreateConfig>b__22_23(FloatValueChangeEvent e)
			{
				steamVolume[2] = e.value;
			}

			internal void <CreateConfig>b__22_24(FloatValueChangeEvent e)
			{
				steamPitch[2] = e.value;
			}

			internal void <CreateConfig>b__22_26(FloatValueChangeEvent e)
			{
				motorRotationMultiplier = e.value;
			}

			internal void <CreateConfig>b__22_27(BoolValueChangeEvent e)
			{
				originalMotorSound = e.value;
			}

			internal void <CreateConfig>b__22_28(ColorValueChangeEvent e)
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				cdParticleColor = e.value;
			}

			internal void <CreateConfig>b__22_29(FloatValueChangeEvent e)
			{
				cdParticleOpacity = e.value;
			}
		}

		public static bool[] appliesToTier = new bool[3] { true, true, true };

		public static bool adjustInAdvance = false;

		public static float[] pitches = new float[4] { 1f, 1.15f, 1.25f, 1.25f };

		public static float[] pitchVariations = new float[4] { 0.0325f, 0.0325f, 0.0325f, 0.0325f };

		public static float[] fallbackPitch = new float[3] { 1f, 1f, 1f };

		public static float[] fallbackVariation = new float[3] { 0.2f, 0.2f, 0.2f };

		public static bool steamParticles = true;

		public static bool steamAudio = true;

		public static float particleSpeed = 30f;

		public static float[] particleOpacity = new float[3] { 0.75f, 0.75f, 0.75f };

		public static Color particleColor = new Color(0.3585f, 0.3585f, 0.3585f);

		public static float[] particleRate = new float[3] { 125f, 250f, 375f };

		public static float[] steamVolume = new float[3] { 0.45f, 0.55f, 0.65f };

		public static float[] steamPitch = new float[3] { 1.1f, 1.1f, 1.1f };

		public static float[] steamParticleRot = new float[3] { 45f, 45f, 180f };

		public static float cdParticleOpacity = 0.75f;

		public static Color cdParticleColor = new Color(0.3585f, 0.3585f, 0.3585f);

		public static bool[] mutuallyExclusiveSteams = new bool[2] { true, true };

		public static MotorRotationEnum motorRotation = MotorRotationEnum.Time_Left_Only;

		public static float motorRotationMultiplier = 0.5f;

		public static bool originalMotorSound = true;

		private static ConfigDivision[] fallbackDiv = (ConfigDivision[])(object)new ConfigDivision[3];

		public static PluginConfigurator CreateConfig()
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: 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_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Expected O, but got Unknown
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Expected O, but got Unknown
			//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ea: Expected O, but got Unknown
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Expected O, but got Unknown
			//IL_01c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Expected O, but got Unknown
			//IL_0207: Unknown result type (might be due to invalid IL or missing references)
			//IL_020c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Expected O, but got Unknown
			//IL_0260: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: 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_02fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0304: Expected O, but got Unknown
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_0247: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Expected O, but got Unknown
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_0381: Expected O, but got Unknown
			//IL_038a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0394: Expected O, but got Unknown
			//IL_0339: Unknown result type (might be due to invalid IL or missing references)
			//IL_033e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0344: Expected O, but got Unknown
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d4: Expected O, but got Unknown
			//IL_0409: Unknown result type (might be due to invalid IL or missing references)
			//IL_040e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0414: Expected O, but got Unknown
			//IL_044f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0454: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Expected O, but got Unknown
			//IL_0495: Unknown result type (might be due to invalid IL or missing references)
			//IL_049a: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a0: Expected O, but got Unknown
			//IL_04db: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e6: Expected O, but got Unknown
			//IL_051b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0520: Unknown result type (might be due to invalid IL or missing references)
			//IL_0526: Expected O, but got Unknown
			//IL_0561: Unknown result type (might be due to invalid IL or missing references)
			//IL_0566: Unknown result type (might be due to invalid IL or missing references)
			//IL_056c: Expected O, but got Unknown
			//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b2: Expected O, but got Unknown
			//IL_05ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f8: Expected O, but got Unknown
			//IL_0633: Unknown result type (might be due to invalid IL or missing references)
			//IL_0638: Unknown result type (might be due to invalid IL or missing references)
			//IL_063e: Expected O, but got Unknown
			//IL_0679: Unknown result type (might be due to invalid IL or missing references)
			//IL_067e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0684: Expected O, but got Unknown
			//IL_06bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Expected O, but got Unknown
			//IL_0705: Unknown result type (might be due to invalid IL or missing references)
			//IL_070a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0710: Expected O, but got Unknown
			//IL_074b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0750: Unknown result type (might be due to invalid IL or missing references)
			//IL_0756: Expected O, but got Unknown
			//IL_0791: Unknown result type (might be due to invalid IL or missing references)
			//IL_0796: Unknown result type (might be due to invalid IL or missing references)
			//IL_079c: Expected O, but got Unknown
			//IL_07d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e2: Expected O, but got Unknown
			//IL_081d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0822: Unknown result type (might be due to invalid IL or missing references)
			//IL_0828: Expected O, but got Unknown
			//IL_087d: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08be: Expected O, but got Unknown
			//IL_0863: Unknown result type (might be due to invalid IL or missing references)
			//IL_0868: Unknown result type (might be due to invalid IL or missing references)
			//IL_086e: Expected O, but got Unknown
			//IL_08ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f8: Expected O, but got Unknown
			//IL_0947: Unknown result type (might be due to invalid IL or missing references)
			//IL_092d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0932: Unknown result type (might be due to invalid IL or missing references)
			//IL_0938: Expected O, but got Unknown
			//IL_0978: Unknown result type (might be due to invalid IL or missing references)
			//IL_097d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0983: Expected O, but got Unknown
			//IL_09b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bf: Expected O, but got Unknown
			PluginConfigurator val = PluginConfigurator.Create("Impact Hammer Hit Indicator Config", "YellowImpactPitchIndication");
			val.SetIconWithURL(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? "", "icon.png"));
			new ConfigSpace(val.rootPanel, 5f);
			new ConfigHeader(val.rootPanel, "General", 24);
			ConfigDivision steamAudioDiv = null;
			ConfigDivision steamParticleDiv = null;
			ConfigDivision motorDiv = null;
			ConfigPanel val2 = new ConfigPanel(val.rootPanel, "Green Hits", "greenHitsPanel");
			ConfigPanel val3 = new ConfigPanel(val.rootPanel, "Yellow Hits", "yellowHitsPanel");
			ConfigPanel val4 = new ConfigPanel(val.rootPanel, "Red Hits", "redHitsPanel");
			ConfigPanel val5 = new ConfigPanel(val.rootPanel, "Steam Indicator", "steamPanel");
			ConfigPanel val6 = new ConfigPanel(val.rootPanel, "Extras", "extrasPanel");
			new ConfigSpace(val2, 5f);
			new ConfigSpace(val3, 5f);
			new ConfigSpace(val4, 5f);
			new ConfigSpace(val5, 5f);
			new ConfigSpace(val6, 5f);
			new ConfigHeader(val2, "General", 24);
			new ConfigHeader(val3, "General", 24);
			new ConfigHeader(val4, "General", 24);
			BoolField obj = BoolSetting(val, val2, "Applies to Green hits", "appliesToTier0", ref appliesToTier[0]);
			object obj2 = <>c.<>9__22_0;
			if (obj2 == null)
			{
				BoolValueChangeEventDelegate val7 = delegate(BoolValueChangeEvent e)
				{
					appliesToTier[0] = e.value;
					((ConfigField)fallbackDiv[0]).interactable = !e.value;
				};
				<>c.<>9__22_0 = val7;
				obj2 = (object)val7;
			}
			obj.onValueChange += (BoolValueChangeEventDelegate)obj2;
			BoolField obj3 = BoolSetting(val, val3, "Applies to Yellow hits", "appliesToTier1", ref appliesToTier[1]);
			object obj4 = <>c.<>9__22_1;
			if (obj4 == null)
			{
				BoolValueChangeEventDelegate val8 = delegate(BoolValueChangeEvent e)
				{
					appliesToTier[1] = e.value;
					((ConfigField)fallbackDiv[1]).interactable = !e.value;
				};
				<>c.<>9__22_1 = val8;
				obj4 = (object)val8;
			}
			obj3.onValueChange += (BoolValueChangeEventDelegate)obj4;
			BoolField obj5 = BoolSetting(val, val4, "Applies to Red hits", "appliesToTier2", ref appliesToTier[2]);
			object obj6 = <>c.<>9__22_2;
			if (obj6 == null)
			{
				BoolValueChangeEventDelegate val9 = delegate(BoolValueChangeEvent e)
				{
					appliesToTier[2] = e.value;
					((ConfigField)fallbackDiv[2]).interactable = !e.value;
				};
				<>c.<>9__22_2 = val9;
				obj6 = (object)val9;
			}
			obj5.onValueChange += (BoolValueChangeEventDelegate)obj6;
			BoolField obj7 = BoolSetting(val, val3, "Yellow hits use next pitch", "adjustInAdvance", ref adjustInAdvance);
			object obj8 = <>c.<>9__22_3;
			if (obj8 == null)
			{
				BoolValueChangeEventDelegate val10 = delegate(BoolValueChangeEvent e)
				{
					adjustInAdvance = e.value;
				};
				<>c.<>9__22_3 = val10;
				obj8 = (object)val10;
			}
			obj7.onValueChange += (BoolValueChangeEventDelegate)obj8;
			new ConfigHeader(val.rootPanel, "Rising Pitch", 24);
			PitchSettings(val, val.rootPanel, 0);
			PitchSettings(val, val.rootPanel, 1);
			PitchSettings(val, val.rootPanel, 2);
			PitchSettings(val, val.rootPanel, 3);
			PitchFallbacks(val, val2, 0);
			PitchFallbacks(val, val3, 1);
			PitchFallbacks(val, val4, 2);
			new ConfigHeader(val5, "Steam Audio", 24);
			BoolSetting(val, val5, "Enable Steam Audio", "steamAudio", ref steamAudio).onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				steamAudio = e.value;
				((ConfigField)steamAudioDiv).interactable = e.value;
			};
			steamAudioDiv = new ConfigDivision(val5, "audioDiv");
			BoolField obj9 = BoolSetting(val, (ConfigPanel)(object)steamAudioDiv, "Disable audio on long cooldown", "mutuallyExclusiveSteams", ref mutuallyExclusiveSteams[0]);
			object obj10 = <>c.<>9__22_5;
			if (obj10 == null)
			{
				BoolValueChangeEventDelegate val11 = delegate(BoolValueChangeEvent e)
				{
					mutuallyExclusiveSteams[0] = e.value;
				};
				<>c.<>9__22_5 = val11;
				obj10 = (object)val11;
			}
			obj9.onValueChange += (BoolValueChangeEventDelegate)obj10;
			new ConfigHeader(val5, "Steam Particles", 24);
			BoolSetting(val, val5, "Enable Steam Particles", "steamParticles", ref steamParticles).onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e)
			{
				steamParticles = e.value;
				((ConfigField)steamParticleDiv).interactable = e.value;
			};
			steamParticleDiv = new ConfigDivision(val5, "particleDiv");
			BoolField obj11 = BoolSetting(val, (ConfigPanel)(object)steamParticleDiv, "Disable particles on long cooldown", "mutuallyExclusiveSteams2", ref mutuallyExclusiveSteams[1]);
			object obj12 = <>c.<>9__22_7;
			if (obj12 == null)
			{
				BoolValueChangeEventDelegate val12 = delegate(BoolValueChangeEvent e)
				{
					mutuallyExclusiveSteams[1] = e.value;
				};
				<>c.<>9__22_7 = val12;
				obj12 = (object)val12;
			}
			obj11.onValueChange += (BoolValueChangeEventDelegate)obj12;
			FloatField obj13 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Speed", "particleSpeed", ref particleSpeed);
			object obj14 = <>c.<>9__22_8;
			if (obj14 == null)
			{
				FloatValueChangeEventDelegate val13 = delegate(FloatValueChangeEvent e)
				{
					particleSpeed = e.value;
				};
				<>c.<>9__22_8 = val13;
				obj14 = (object)val13;
			}
			obj13.onValueChange += (FloatValueChangeEventDelegate)obj14;
			FloatField obj15 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n1 Yellow Hit", "particleRate1", ref particleRate[0]);
			object obj16 = <>c.<>9__22_9;
			if (obj16 == null)
			{
				FloatValueChangeEventDelegate val14 = delegate(FloatValueChangeEvent e)
				{
					particleRate[0] = e.value;
				};
				<>c.<>9__22_9 = val14;
				obj16 = (object)val14;
			}
			obj15.onValueChange += (FloatValueChangeEventDelegate)obj16;
			FloatField obj17 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n2 Yellow Hits", "particleRate2", ref particleRate[1]);
			object obj18 = <>c.<>9__22_10;
			if (obj18 == null)
			{
				FloatValueChangeEventDelegate val15 = delegate(FloatValueChangeEvent e)
				{
					particleRate[1] = e.value;
				};
				<>c.<>9__22_10 = val15;
				obj18 = (object)val15;
			}
			obj17.onValueChange += (FloatValueChangeEventDelegate)obj18;
			FloatField obj19 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rate -\n3+ Yellow Hits", "particleRate3", ref particleRate[2]);
			object obj20 = <>c.<>9__22_11;
			if (obj20 == null)
			{
				FloatValueChangeEventDelegate val16 = delegate(FloatValueChangeEvent e)
				{
					particleRate[2] = e.value;
				};
				<>c.<>9__22_11 = val16;
				obj20 = (object)val16;
			}
			obj19.onValueChange += (FloatValueChangeEventDelegate)obj20;
			ColorField obj21 = ColorSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Color", "particleColor", ref particleColor);
			object obj22 = <>c.<>9__22_12;
			if (obj22 == null)
			{
				ColorValueChangeEventDelegate val17 = delegate(ColorValueChangeEvent e)
				{
					//IL_0002: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					particleColor = e.value;
				};
				<>c.<>9__22_12 = val17;
				obj22 = (object)val17;
			}
			obj21.onValueChange += (ColorValueChangeEventDelegate)obj22;
			FloatField obj23 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n1 Yellow Hit", "particleOpacity1", ref particleOpacity[0]);
			object obj24 = <>c.<>9__22_13;
			if (obj24 == null)
			{
				FloatValueChangeEventDelegate val18 = delegate(FloatValueChangeEvent e)
				{
					particleOpacity[0] = e.value;
				};
				<>c.<>9__22_13 = val18;
				obj24 = (object)val18;
			}
			obj23.onValueChange += (FloatValueChangeEventDelegate)obj24;
			FloatField obj25 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n2 Yellow Hits", "particleOpacity2", ref particleOpacity[1]);
			object obj26 = <>c.<>9__22_14;
			if (obj26 == null)
			{
				FloatValueChangeEventDelegate val19 = delegate(FloatValueChangeEvent e)
				{
					particleOpacity[1] = e.value;
				};
				<>c.<>9__22_14 = val19;
				obj26 = (object)val19;
			}
			obj25.onValueChange += (FloatValueChangeEventDelegate)obj26;
			FloatField obj27 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Opacity -\n3+ Yellow Hits", "particleOpacity3", ref particleOpacity[2]);
			object obj28 = <>c.<>9__22_15;
			if (obj28 == null)
			{
				FloatValueChangeEventDelegate val20 = delegate(FloatValueChangeEvent e)
				{
					particleOpacity[2] = e.value;
				};
				<>c.<>9__22_15 = val20;
				obj28 = (object)val20;
			}
			obj27.onValueChange += (FloatValueChangeEventDelegate)obj28;
			FloatField obj29 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation X", "particleRotX", ref steamParticleRot[0]);
			object obj30 = <>c.<>9__22_16;
			if (obj30 == null)
			{
				FloatValueChangeEventDelegate val21 = delegate(FloatValueChangeEvent e)
				{
					steamParticleRot[0] = e.value;
				};
				<>c.<>9__22_16 = val21;
				obj30 = (object)val21;
			}
			obj29.onValueChange += (FloatValueChangeEventDelegate)obj30;
			FloatField obj31 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation Y", "particleRotY", ref steamParticleRot[1]);
			object obj32 = <>c.<>9__22_17;
			if (obj32 == null)
			{
				FloatValueChangeEventDelegate val22 = delegate(FloatValueChangeEvent e)
				{
					steamParticleRot[1] = e.value;
				};
				<>c.<>9__22_17 = val22;
				obj32 = (object)val22;
			}
			obj31.onValueChange += (FloatValueChangeEventDelegate)obj32;
			FloatField obj33 = FloatSetting(val, (ConfigPanel)(object)steamParticleDiv, "Particle Rotation Z", "particleRotZ", ref steamParticleRot[2]);
			object obj34 = <>c.<>9__22_18;
			if (obj34 == null)
			{
				FloatValueChangeEventDelegate val23 = delegate(FloatValueChangeEvent e)
				{
					steamParticleRot[2] = e.value;
				};
				<>c.<>9__22_18 = val23;
				obj34 = (object)val23;
			}
			obj33.onValueChange += (FloatValueChangeEventDelegate)obj34;
			FloatField obj35 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n1 Yellow Hit", "steamVolume1", ref steamVolume[0]);
			object obj36 = <>c.<>9__22_19;
			if (obj36 == null)
			{
				FloatValueChangeEventDelegate val24 = delegate(FloatValueChangeEvent e)
				{
					steamVolume[0] = e.value;
				};
				<>c.<>9__22_19 = val24;
				obj36 = (object)val24;
			}
			obj35.onValueChange += (FloatValueChangeEventDelegate)obj36;
			FloatField obj37 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n1 Yellow Hit", "steamPitch1", ref steamPitch[0]);
			object obj38 = <>c.<>9__22_20;
			if (obj38 == null)
			{
				FloatValueChangeEventDelegate val25 = delegate(FloatValueChangeEvent e)
				{
					steamPitch[0] = e.value;
				};
				<>c.<>9__22_20 = val25;
				obj38 = (object)val25;
			}
			obj37.onValueChange += (FloatValueChangeEventDelegate)obj38;
			FloatField obj39 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n2 Yellow Hits", "steamVolume2", ref steamVolume[1]);
			object obj40 = <>c.<>9__22_21;
			if (obj40 == null)
			{
				FloatValueChangeEventDelegate val26 = delegate(FloatValueChangeEvent e)
				{
					steamVolume[1] = e.value;
				};
				<>c.<>9__22_21 = val26;
				obj40 = (object)val26;
			}
			obj39.onValueChange += (FloatValueChangeEventDelegate)obj40;
			FloatField obj41 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n2 Yellow Hits", "steamPitch2", ref steamPitch[1]);
			object obj42 = <>c.<>9__22_22;
			if (obj42 == null)
			{
				FloatValueChangeEventDelegate val27 = delegate(FloatValueChangeEvent e)
				{
					steamPitch[1] = e.value;
				};
				<>c.<>9__22_22 = val27;
				obj42 = (object)val27;
			}
			obj41.onValueChange += (FloatValueChangeEventDelegate)obj42;
			FloatField obj43 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Volume -\n3+ Yellow Hits", "steamVolume3", ref steamVolume[2]);
			object obj44 = <>c.<>9__22_23;
			if (obj44 == null)
			{
				FloatValueChangeEventDelegate val28 = delegate(FloatValueChangeEvent e)
				{
					steamVolume[2] = e.value;
				};
				<>c.<>9__22_23 = val28;
				obj44 = (object)val28;
			}
			obj43.onValueChange += (FloatValueChangeEventDelegate)obj44;
			FloatField obj45 = FloatSetting(val, (ConfigPanel)(object)steamAudioDiv, "Steam Pitch -\n3+ Yellow Hits", "steamPitch3", ref steamPitch[2]);
			object obj46 = <>c.<>9__22_24;
			if (obj46 == null)
			{
				FloatValueChangeEventDelegate val29 = delegate(FloatValueChangeEvent e)
				{
					steamPitch[2] = e.value;
				};
				<>c.<>9__22_24 = val29;
				obj46 = (object)val29;
			}
			obj45.onValueChange += (FloatValueChangeEventDelegate)obj46;
			new ConfigHeader(val6, "Spinning Motor", 24);
			EnumSetting(val, val6, "Motor Rotation", "motorRotation", ref motorRotation).onValueChange += delegate(EnumValueChangeEvent<MotorRotationEnum> e)
			{
				motorRotation = e.value;
				((ConfigField)motorDiv).interactable = e.value != MotorRotationEnum.Movement_Speed_Only;
			};
			motorDiv = new ConfigDivision(val6, "motorDiv");
			FloatField obj47 = FloatSetting(val, (ConfigPanel)(object)motorDiv, "Motor Rotation Multiplier", "motorRotationMultiplier", ref motorRotationMultiplier);
			object obj48 = <>c.<>9__22_26;
			if (obj48 == null)
			{
				FloatValueChangeEventDelegate val30 = delegate(FloatValueChangeEvent e)
				{
					motorRotationMultiplier = e.value;
				};
				<>c.<>9__22_26 = val30;
				obj48 = (object)val30;
			}
			obj47.onValueChange += (FloatValueChangeEventDelegate)obj48;
			BoolField obj49 = BoolSetting(val, (ConfigPanel)(object)motorDiv, "Use Original Sound Volume", "originalMotorSound", ref originalMotorSound);
			object obj50 = <>c.<>9__22_27;
			if (obj50 == null)
			{
				BoolValueChangeEventDelegate val31 = delegate(BoolValueChangeEvent e)
				{
					originalMotorSound = e.value;
				};
				<>c.<>9__22_27 = val31;
				obj50 = (object)val31;
			}
			obj49.onValueChange += (BoolValueChangeEventDelegate)obj50;
			new ConfigHeader(val6, "Long Cooldown Steam Particles", 24);
			ColorField obj51 = ColorSetting(val, val6, "Long Cooldown Particle Color", "cdParticleColor", ref cdParticleColor);
			object obj52 = <>c.<>9__22_28;
			if (obj52 == null)
			{
				ColorValueChangeEventDelegate val32 = delegate(ColorValueChangeEvent e)
				{
					//IL_0002: Unknown result type (might be due to invalid IL or missing references)
					//IL_0007: Unknown result type (might be due to invalid IL or missing references)
					cdParticleColor = e.value;
				};
				<>c.<>9__22_28 = val32;
				obj52 = (object)val32;
			}
			obj51.onValueChange += (ColorValueChangeEventDelegate)obj52;
			FloatField obj53 = FloatSetting(val, val6, "Long Cooldown Particle Opacity", "cdParticleOpacity", ref cdParticleOpacity);
			object obj54 = <>c.<>9__22_29;
			if (obj54 == null)
			{
				FloatValueChangeEventDelegate val33 = delegate(FloatValueChangeEvent e)
				{
					cdParticleOpacity = e.value;
				};
				<>c.<>9__22_29 = val33;
				obj54 = (object)val33;
			}
			obj53.onValueChange += (FloatValueChangeEventDelegate)obj54;
			return val;
		}

		public static void PitchSettings(PluginConfigurator config, ConfigPanel panel, int hitNum)
		{
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Expected O, but got Unknown
			//IL_00fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Expected O, but got Unknown
			FloatSetting(config, panel, string.Format("Base Pitch -\n{0}{1} Yellow Hit{2}", hitNum, (hitNum == 3) ? "+" : string.Empty, (hitNum == 1) ? string.Empty : "s"), $"pitchHit{hitNum}", ref pitches[hitNum]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
			{
				pitches[hitNum] = e.value;
			};
			FloatSetting(config, panel, string.Format("Pitch Variation -\n{0}{1} Yellow Hit{2}", hitNum, (hitNum == 3) ? "+" : string.Empty, (hitNum == 1) ? string.Empty : "s"), $"pitchVariation{hitNum}", ref pitchVariations[hitNum]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
			{
				pitchVariations[hitNum] = e.value;
			};
		}

		public static void PitchFallbacks(PluginConfigurator config, ConfigPanel panel, int tier)
		{
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Expected O, but got Unknown
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Expected O, but got Unknown
			//IL_00e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f1: Expected O, but got Unknown
			fallbackDiv[tier] = new ConfigDivision(panel, $"fallbackDiv{tier}");
			((ConfigField)fallbackDiv[tier]).interactable = !appliesToTier[tier];
			FloatSetting(config, (ConfigPanel)(object)fallbackDiv[tier], "Base Pitch", $"fallbackPitch{tier}", ref fallbackPitch[tier]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
			{
				fallbackPitch[tier] = e.value;
			};
			FloatSetting(config, (ConfigPanel)(object)fallbackDiv[tier], "Pitch Variation", $"fallbackVariation{tier}", ref fallbackVariation[tier]).onValueChange += (FloatValueChangeEventDelegate)delegate(FloatValueChangeEvent e)
			{
				fallbackVariation[tier] = e.value;
			};
		}

		public static FloatField FloatSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref float value)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			FloatField val = new FloatField(panel, name, guid, value);
			value = val.value;
			return val;
		}

		public static BoolField BoolSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref bool value)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			BoolField val = new BoolField(panel, name, guid, value);
			value = val.value;
			return val;
		}

		public static ColorField ColorSetting(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref Color value)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Expected O, but got Unknown
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			ColorField val = new ColorField(panel, name, guid, value);
			value = val.value;
			return val;
		}

		public static EnumField<T> EnumSetting<T>(PluginConfigurator config, ConfigPanel panel, string name, string guid, ref T value) where T : struct
		{
			EnumField<T> val = new EnumField<T>(panel, name, guid, value);
			value = val.value;
			T[] array = Enum.GetValues(typeof(T)) as T[];
			for (int i = 0; i < array.Length; i++)
			{
				T val2 = array[i];
				val.SetEnumDisplayName(val2, val2.ToString().Replace('_', ' '));
			}
			return val;
		}
	}
	public class SteamIndicator : MonoBehaviour
	{
		private ShotgunHammer hammer;

		private ParticleSystem steamParticle;

		private AudioSource steamAud;

		private int yellowsCount;

		private void Start()
		{
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
			yellowsCount = -1;
			hammer = ((Component)this).GetComponent<ShotgunHammer>();
			GameObject val = null;
			Transform val2 = ((Component)hammer.overheatParticle).transform.parent.Find("Yellow Hits Particle System");
			if (Object.op_Implicit((Object)(object)val2))
			{
				val = ((Component)val2).gameObject;
			}
			if (!Object.op_Implicit((Object)(object)val))
			{
				val = Object.Instantiate<GameObject>(((Component)hammer.overheatParticle).gameObject);
				((Object)val).name = "Yellow Hits Particle System";
				val.transform.parent = ((Component)hammer.overheatParticle).transform.parent;
				val.transform.position = ((Component)hammer.overheatParticle).transform.position;
				val.transform.localEulerAngles = new Vector3(PluginConfig.steamParticleRot[0], PluginConfig.steamParticleRot[1], PluginConfig.steamParticleRot[2]);
				val.transform.localScale = ((Component)hammer.overheatParticle).transform.localScale;
			}
			steamParticle = val.GetComponent<ParticleSystem>();
			steamAud = val.GetComponent<AudioSource>();
		}

		private void OnDisable()
		{
			yellowsCount = -1;
		}

		private void Update()
		{
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			if (PluginConfig.mutuallyExclusiveSteams[0] && hammer.overheated)
			{
				steamAud.Stop();
			}
			if (PluginConfig.mutuallyExclusiveSteams[1] && hammer.overheated)
			{
				steamParticle.Stop();
			}
			if (MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer <= 0f && yellowsCount != -1)
			{
				yellowsCount = -1;
				steamAud.Stop();
				steamParticle.Stop();
			}
			else
			{
				if (!(MonoSingleton<WeaponCharges>.Instance.shoAltYellowsTimer > 0f) || yellowsCount == MonoSingleton<WeaponCharges>.Instance.shoAltYellows)
				{
					return;
				}
				yellowsCount = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
				if (yellowsCount > 3)
				{
					yellowsCount = 3;
				}
				if (PluginConfig.steamParticles)
				{
					((Component)steamParticle).transform.localEulerAngles = new Vector3(PluginConfig.steamParticleRot[0], PluginConfig.steamParticleRot[1], PluginConfig.steamParticleRot[2]);
					MainModule main = steamParticle.main;
					((MainModule)(ref main)).startSpeedMultiplier = PluginConfig.particleSpeed;
					MinMaxGradient startColor = ((MainModule)(ref main)).startColor;
					((MinMaxGradient)(ref startColor)).color = new Color(PluginConfig.particleColor.r, PluginConfig.particleColor.g, PluginConfig.particleColor.b, PluginConfig.particleOpacity[yellowsCount - 1]);
					((MainModule)(ref main)).startColor = startColor;
					EmissionModule emission = steamParticle.emission;
					((EmissionModule)(ref emission)).rateOverTimeMultiplier = PluginConfig.particleRate[yellowsCount - 1];
					steamParticle.Play();
				}
				if (PluginConfig.steamAudio)
				{
					steamAud.volume = PluginConfig.steamVolume[yellowsCount - 1];
					steamAud.pitch = PluginConfig.steamPitch[yellowsCount - 1];
					if (steamAud.isPlaying)
					{
						steamAud.Stop();
					}
					AudioSourceExtensions.Play(steamAud, true);
				}
				yellowsCount = MonoSingleton<WeaponCharges>.Instance.shoAltYellows;
			}
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "YellowImpactPitchIndication";

		public const string PLUGIN_NAME = "Yellow Impact Pitch Indication";

		public const string PLUGIN_VERSION = "1.0.3";
	}
}