Decompiled source of RepoMemeSFX v1.0.6

RepoMemeSFX.dll

Decompiled 3 weeks ago
using System;
using System.Collections;
using System.Collections.Generic;
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.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using MenuLib;
using MenuLib.MonoBehaviors;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.Networking;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
[assembly: AssemblyCompany("RepoMemeSFX")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("RepoMemeSFX")]
[assembly: AssemblyTitle("RepoMemeSFX")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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 RepoMemeSFX
{
	public class SoundReplacement
	{
		public string TargetName;

		public bool IsMelee;

		public bool IsBunch;

		public bool IsBooom;

		public bool PlayAsTemporary;

		public float VolumeScale = 1f;
	}
	[BepInPlugin("com.rupleide.repomemesfx", "RepoMemeSFX", "1.0.5")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class RepoMemeSFXPlugin : BaseUnityPlugin
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static Action<AudioClip> <>9__20_0;

			public static Action<AudioClip> <>9__20_1;

			public static Action<AudioClip> <>9__20_2;

			public static Action<AudioClip> <>9__20_3;

			public static Action<AudioClip> <>9__20_4;

			public static Action<bool> <>9__20_23;

			public static ScrollViewBuilderDelegate <>9__20_7;

			public static ScrollViewBuilderDelegate <>9__20_8;

			public static Action<bool> <>9__20_24;

			public static ScrollViewBuilderDelegate <>9__20_9;

			public static Action<float> <>9__20_25;

			public static ScrollViewBuilderDelegate <>9__20_10;

			public static ScrollViewBuilderDelegate <>9__20_11;

			public static Action<bool> <>9__20_26;

			public static ScrollViewBuilderDelegate <>9__20_12;

			public static Action<float> <>9__20_27;

			public static ScrollViewBuilderDelegate <>9__20_13;

			public static ScrollViewBuilderDelegate <>9__20_14;

			public static Action<bool> <>9__20_28;

			public static ScrollViewBuilderDelegate <>9__20_15;

			public static Action<float> <>9__20_29;

			public static ScrollViewBuilderDelegate <>9__20_16;

			public static ScrollViewBuilderDelegate <>9__20_17;

			public static Action<bool> <>9__20_30;

			public static ScrollViewBuilderDelegate <>9__20_18;

			public static Action<float> <>9__20_31;

			public static ScrollViewBuilderDelegate <>9__20_19;

			public static ScrollViewBuilderDelegate <>9__20_20;

			public static Action<bool> <>9__20_32;

			public static ScrollViewBuilderDelegate <>9__20_21;

			public static Action<float> <>9__20_33;

			public static ScrollViewBuilderDelegate <>9__20_22;

			public static Action <>9__20_6;

			public static BuilderDelegate <>9__20_5;

			internal void <Awake>b__20_0(AudioClip c)
			{
				BonkClip = c;
			}

			internal void <Awake>b__20_1(AudioClip c)
			{
				ShotClip = c;
			}

			internal void <Awake>b__20_2(AudioClip c)
			{
				StartClip = c;
			}

			internal void <Awake>b__20_3(AudioClip c)
			{
				BunchClip = c;
			}

			internal void <Awake>b__20_4(AudioClip c)
			{
				BooomClip = c;
			}

			internal void <Awake>b__20_5(Transform parent)
			{
				//IL_002f: Unknown result type (might be due to invalid IL or missing references)
				MenuAPI.CreateREPOButton("RepoMemeSFX", (Action)delegate
				{
					//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_0032: Expected O, but got Unknown
					//IL_0056: Unknown result type (might be due to invalid IL or missing references)
					//IL_005b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0061: Expected O, but got Unknown
					//IL_0085: Unknown result type (might be due to invalid IL or missing references)
					//IL_008a: Unknown result type (might be due to invalid IL or missing references)
					//IL_0090: Expected O, but got Unknown
					//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
					//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
					//IL_00bf: Expected O, but got Unknown
					//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
					//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
					//IL_00ee: Expected O, but got Unknown
					//IL_0112: Unknown result type (might be due to invalid IL or missing references)
					//IL_0117: Unknown result type (might be due to invalid IL or missing references)
					//IL_011d: Expected O, but got Unknown
					//IL_0141: Unknown result type (might be due to invalid IL or missing references)
					//IL_0146: Unknown result type (might be due to invalid IL or missing references)
					//IL_014c: Expected O, but got Unknown
					//IL_0170: Unknown result type (might be due to invalid IL or missing references)
					//IL_0175: Unknown result type (might be due to invalid IL or missing references)
					//IL_017b: Expected O, but got Unknown
					//IL_019f: Unknown result type (might be due to invalid IL or missing references)
					//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
					//IL_01aa: Expected O, but got Unknown
					//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
					//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
					//IL_01d9: Expected O, but got Unknown
					//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
					//IL_0202: Unknown result type (might be due to invalid IL or missing references)
					//IL_0208: Expected O, but got Unknown
					//IL_022c: Unknown result type (might be due to invalid IL or missing references)
					//IL_0231: Unknown result type (might be due to invalid IL or missing references)
					//IL_0237: Expected O, but got Unknown
					//IL_025b: Unknown result type (might be due to invalid IL or missing references)
					//IL_0260: Unknown result type (might be due to invalid IL or missing references)
					//IL_0266: Expected O, but got Unknown
					//IL_028a: Unknown result type (might be due to invalid IL or missing references)
					//IL_028f: Unknown result type (might be due to invalid IL or missing references)
					//IL_0295: Expected O, but got Unknown
					//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
					//IL_02be: Unknown result type (might be due to invalid IL or missing references)
					//IL_02c4: Expected O, but got Unknown
					//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
					//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
					//IL_02f3: Expected O, but got Unknown
					REPOPopupPage obj = MenuAPI.CreateREPOPopupPage("RepoMemeSFX", (PresetSide)0, false, true, 1f);
					object obj2 = <>9__20_7;
					if (obj2 == null)
					{
						ScrollViewBuilderDelegate val = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Mod Enabled", (Action<bool>)delegate(bool v)
						{
							Enabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", Enabled.Value)).rectTransform;
						<>9__20_7 = val;
						obj2 = (object)val;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj2, 0f, 0f);
					object obj3 = <>9__20_8;
					if (obj3 == null)
					{
						ScrollViewBuilderDelegate val2 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Bonk —", sv, Vector2.zero)).rectTransform;
						<>9__20_8 = val2;
						obj3 = (object)val2;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj3, 0f, 0f);
					object obj4 = <>9__20_9;
					if (obj4 == null)
					{
						ScrollViewBuilderDelegate val3 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bonk Sound", (Action<bool>)delegate(bool v)
						{
							BonkEnabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", BonkEnabled.Value)).rectTransform;
						<>9__20_9 = val3;
						obj4 = (object)val3;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj4, 0f, 0f);
					object obj5 = <>9__20_10;
					if (obj5 == null)
					{
						ScrollViewBuilderDelegate val4 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bonk Volume", "", (Action<float>)delegate(float f)
						{
							BonkVolume.Value = f;
						}, sv, Vector2.zero, 0f, 1f, 2, BonkVolume.Value, "", "", (BarBehavior)0)).rectTransform;
						<>9__20_10 = val4;
						obj5 = (object)val4;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj5, 0f, 0f);
					object obj6 = <>9__20_11;
					if (obj6 == null)
					{
						ScrollViewBuilderDelegate val5 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Shot —", sv, Vector2.zero)).rectTransform;
						<>9__20_11 = val5;
						obj6 = (object)val5;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj6, 0f, 0f);
					object obj7 = <>9__20_12;
					if (obj7 == null)
					{
						ScrollViewBuilderDelegate val6 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Shot Sound", (Action<bool>)delegate(bool v)
						{
							ShotEnabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", ShotEnabled.Value)).rectTransform;
						<>9__20_12 = val6;
						obj7 = (object)val6;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj7, 0f, 0f);
					object obj8 = <>9__20_13;
					if (obj8 == null)
					{
						ScrollViewBuilderDelegate val7 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Shot Volume", "", (Action<float>)delegate(float f)
						{
							ShotVolume.Value = f;
						}, sv, Vector2.zero, 0f, 1f, 2, ShotVolume.Value, "", "", (BarBehavior)0)).rectTransform;
						<>9__20_13 = val7;
						obj8 = (object)val7;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj8, 0f, 0f);
					object obj9 = <>9__20_14;
					if (obj9 == null)
					{
						ScrollViewBuilderDelegate val8 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Tranq Gun —", sv, Vector2.zero)).rectTransform;
						<>9__20_14 = val8;
						obj9 = (object)val8;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj9, 0f, 0f);
					object obj10 = <>9__20_15;
					if (obj10 == null)
					{
						ScrollViewBuilderDelegate val9 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bunch Sound", (Action<bool>)delegate(bool v)
						{
							BunchEnabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", BunchEnabled.Value)).rectTransform;
						<>9__20_15 = val9;
						obj10 = (object)val9;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj10, 0f, 0f);
					object obj11 = <>9__20_16;
					if (obj11 == null)
					{
						ScrollViewBuilderDelegate val10 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bunch Volume", "", (Action<float>)delegate(float f)
						{
							BunchVolume.Value = f;
						}, sv, Vector2.zero, 0f, 1f, 2, BunchVolume.Value, "", "", (BarBehavior)0)).rectTransform;
						<>9__20_16 = val10;
						obj11 = (object)val10;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj11, 0f, 0f);
					object obj12 = <>9__20_17;
					if (obj12 == null)
					{
						ScrollViewBuilderDelegate val11 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Grenade —", sv, Vector2.zero)).rectTransform;
						<>9__20_17 = val11;
						obj12 = (object)val11;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj12, 0f, 0f);
					object obj13 = <>9__20_18;
					if (obj13 == null)
					{
						ScrollViewBuilderDelegate val12 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Booom Sound", (Action<bool>)delegate(bool v)
						{
							BooomEnabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", BooomEnabled.Value)).rectTransform;
						<>9__20_18 = val12;
						obj13 = (object)val12;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj13, 0f, 0f);
					object obj14 = <>9__20_19;
					if (obj14 == null)
					{
						ScrollViewBuilderDelegate val13 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Booom Volume", "", (Action<float>)delegate(float f)
						{
							BooomVolume.Value = f;
						}, sv, Vector2.zero, 0f, 1f, 2, BooomVolume.Value, "", "", (BarBehavior)0)).rectTransform;
						<>9__20_19 = val13;
						obj14 = (object)val13;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj14, 0f, 0f);
					object obj15 = <>9__20_20;
					if (obj15 == null)
					{
						ScrollViewBuilderDelegate val14 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Lobby Start —", sv, Vector2.zero)).rectTransform;
						<>9__20_20 = val14;
						obj15 = (object)val14;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj15, 0f, 0f);
					object obj16 = <>9__20_21;
					if (obj16 == null)
					{
						ScrollViewBuilderDelegate val15 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Okletsgo Sound", (Action<bool>)delegate(bool v)
						{
							StartEnabled.Value = v;
						}, sv, Vector2.zero, "ON", "OFF", StartEnabled.Value)).rectTransform;
						<>9__20_21 = val15;
						obj16 = (object)val15;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj16, 0f, 0f);
					object obj17 = <>9__20_22;
					if (obj17 == null)
					{
						ScrollViewBuilderDelegate val16 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Okletsgo Volume", "", (Action<float>)delegate(float f)
						{
							StartVolume.Value = f;
						}, sv, Vector2.zero, 0f, 1f, 2, StartVolume.Value, "", "", (BarBehavior)0)).rectTransform;
						<>9__20_22 = val16;
						obj17 = (object)val16;
					}
					obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj17, 0f, 0f);
					obj.OpenPage(false);
				}, parent, new Vector2(0f, -50f));
			}

			internal void <Awake>b__20_6()
			{
				//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_0032: Expected O, but got Unknown
				//IL_0056: Unknown result type (might be due to invalid IL or missing references)
				//IL_005b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Expected O, but got Unknown
				//IL_0085: Unknown result type (might be due to invalid IL or missing references)
				//IL_008a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0090: Expected O, but got Unknown
				//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00bf: Expected O, but got Unknown
				//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ee: Expected O, but got Unknown
				//IL_0112: Unknown result type (might be due to invalid IL or missing references)
				//IL_0117: Unknown result type (might be due to invalid IL or missing references)
				//IL_011d: Expected O, but got Unknown
				//IL_0141: Unknown result type (might be due to invalid IL or missing references)
				//IL_0146: Unknown result type (might be due to invalid IL or missing references)
				//IL_014c: Expected O, but got Unknown
				//IL_0170: Unknown result type (might be due to invalid IL or missing references)
				//IL_0175: Unknown result type (might be due to invalid IL or missing references)
				//IL_017b: Expected O, but got Unknown
				//IL_019f: Unknown result type (might be due to invalid IL or missing references)
				//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_01aa: Expected O, but got Unknown
				//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d9: Expected O, but got Unknown
				//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
				//IL_0202: Unknown result type (might be due to invalid IL or missing references)
				//IL_0208: Expected O, but got Unknown
				//IL_022c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0231: Unknown result type (might be due to invalid IL or missing references)
				//IL_0237: Expected O, but got Unknown
				//IL_025b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0260: Unknown result type (might be due to invalid IL or missing references)
				//IL_0266: Expected O, but got Unknown
				//IL_028a: Unknown result type (might be due to invalid IL or missing references)
				//IL_028f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0295: Expected O, but got Unknown
				//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
				//IL_02be: Unknown result type (might be due to invalid IL or missing references)
				//IL_02c4: Expected O, but got Unknown
				//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
				//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
				//IL_02f3: Expected O, but got Unknown
				REPOPopupPage obj = MenuAPI.CreateREPOPopupPage("RepoMemeSFX", (PresetSide)0, false, true, 1f);
				object obj2 = <>9__20_7;
				if (obj2 == null)
				{
					ScrollViewBuilderDelegate val = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Mod Enabled", (Action<bool>)delegate(bool v)
					{
						Enabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", Enabled.Value)).rectTransform;
					<>9__20_7 = val;
					obj2 = (object)val;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj2, 0f, 0f);
				object obj3 = <>9__20_8;
				if (obj3 == null)
				{
					ScrollViewBuilderDelegate val2 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Bonk —", sv, Vector2.zero)).rectTransform;
					<>9__20_8 = val2;
					obj3 = (object)val2;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj3, 0f, 0f);
				object obj4 = <>9__20_9;
				if (obj4 == null)
				{
					ScrollViewBuilderDelegate val3 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bonk Sound", (Action<bool>)delegate(bool v)
					{
						BonkEnabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", BonkEnabled.Value)).rectTransform;
					<>9__20_9 = val3;
					obj4 = (object)val3;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj4, 0f, 0f);
				object obj5 = <>9__20_10;
				if (obj5 == null)
				{
					ScrollViewBuilderDelegate val4 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bonk Volume", "", (Action<float>)delegate(float f)
					{
						BonkVolume.Value = f;
					}, sv, Vector2.zero, 0f, 1f, 2, BonkVolume.Value, "", "", (BarBehavior)0)).rectTransform;
					<>9__20_10 = val4;
					obj5 = (object)val4;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj5, 0f, 0f);
				object obj6 = <>9__20_11;
				if (obj6 == null)
				{
					ScrollViewBuilderDelegate val5 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Shot —", sv, Vector2.zero)).rectTransform;
					<>9__20_11 = val5;
					obj6 = (object)val5;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj6, 0f, 0f);
				object obj7 = <>9__20_12;
				if (obj7 == null)
				{
					ScrollViewBuilderDelegate val6 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Shot Sound", (Action<bool>)delegate(bool v)
					{
						ShotEnabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", ShotEnabled.Value)).rectTransform;
					<>9__20_12 = val6;
					obj7 = (object)val6;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj7, 0f, 0f);
				object obj8 = <>9__20_13;
				if (obj8 == null)
				{
					ScrollViewBuilderDelegate val7 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Shot Volume", "", (Action<float>)delegate(float f)
					{
						ShotVolume.Value = f;
					}, sv, Vector2.zero, 0f, 1f, 2, ShotVolume.Value, "", "", (BarBehavior)0)).rectTransform;
					<>9__20_13 = val7;
					obj8 = (object)val7;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj8, 0f, 0f);
				object obj9 = <>9__20_14;
				if (obj9 == null)
				{
					ScrollViewBuilderDelegate val8 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Tranq Gun —", sv, Vector2.zero)).rectTransform;
					<>9__20_14 = val8;
					obj9 = (object)val8;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj9, 0f, 0f);
				object obj10 = <>9__20_15;
				if (obj10 == null)
				{
					ScrollViewBuilderDelegate val9 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bunch Sound", (Action<bool>)delegate(bool v)
					{
						BunchEnabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", BunchEnabled.Value)).rectTransform;
					<>9__20_15 = val9;
					obj10 = (object)val9;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj10, 0f, 0f);
				object obj11 = <>9__20_16;
				if (obj11 == null)
				{
					ScrollViewBuilderDelegate val10 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bunch Volume", "", (Action<float>)delegate(float f)
					{
						BunchVolume.Value = f;
					}, sv, Vector2.zero, 0f, 1f, 2, BunchVolume.Value, "", "", (BarBehavior)0)).rectTransform;
					<>9__20_16 = val10;
					obj11 = (object)val10;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj11, 0f, 0f);
				object obj12 = <>9__20_17;
				if (obj12 == null)
				{
					ScrollViewBuilderDelegate val11 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Grenade —", sv, Vector2.zero)).rectTransform;
					<>9__20_17 = val11;
					obj12 = (object)val11;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj12, 0f, 0f);
				object obj13 = <>9__20_18;
				if (obj13 == null)
				{
					ScrollViewBuilderDelegate val12 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Booom Sound", (Action<bool>)delegate(bool v)
					{
						BooomEnabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", BooomEnabled.Value)).rectTransform;
					<>9__20_18 = val12;
					obj13 = (object)val12;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj13, 0f, 0f);
				object obj14 = <>9__20_19;
				if (obj14 == null)
				{
					ScrollViewBuilderDelegate val13 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Booom Volume", "", (Action<float>)delegate(float f)
					{
						BooomVolume.Value = f;
					}, sv, Vector2.zero, 0f, 1f, 2, BooomVolume.Value, "", "", (BarBehavior)0)).rectTransform;
					<>9__20_19 = val13;
					obj14 = (object)val13;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj14, 0f, 0f);
				object obj15 = <>9__20_20;
				if (obj15 == null)
				{
					ScrollViewBuilderDelegate val14 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Lobby Start —", sv, Vector2.zero)).rectTransform;
					<>9__20_20 = val14;
					obj15 = (object)val14;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj15, 0f, 0f);
				object obj16 = <>9__20_21;
				if (obj16 == null)
				{
					ScrollViewBuilderDelegate val15 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Okletsgo Sound", (Action<bool>)delegate(bool v)
					{
						StartEnabled.Value = v;
					}, sv, Vector2.zero, "ON", "OFF", StartEnabled.Value)).rectTransform;
					<>9__20_21 = val15;
					obj16 = (object)val15;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj16, 0f, 0f);
				object obj17 = <>9__20_22;
				if (obj17 == null)
				{
					ScrollViewBuilderDelegate val16 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Okletsgo Volume", "", (Action<float>)delegate(float f)
					{
						StartVolume.Value = f;
					}, sv, Vector2.zero, 0f, 1f, 2, StartVolume.Value, "", "", (BarBehavior)0)).rectTransform;
					<>9__20_22 = val16;
					obj17 = (object)val16;
				}
				obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj17, 0f, 0f);
				obj.OpenPage(false);
			}

			internal RectTransform <Awake>b__20_7(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Mod Enabled", (Action<bool>)delegate(bool v)
				{
					Enabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", Enabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_23(bool v)
			{
				Enabled.Value = v;
			}

			internal RectTransform <Awake>b__20_8(Transform sv)
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOLabel("— Bonk —", sv, Vector2.zero)).rectTransform;
			}

			internal RectTransform <Awake>b__20_9(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Bonk Sound", (Action<bool>)delegate(bool v)
				{
					BonkEnabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", BonkEnabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_24(bool v)
			{
				BonkEnabled.Value = v;
			}

			internal RectTransform <Awake>b__20_10(Transform sv)
			{
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOSlider("Bonk Volume", "", (Action<float>)delegate(float f)
				{
					BonkVolume.Value = f;
				}, sv, Vector2.zero, 0f, 1f, 2, BonkVolume.Value, "", "", (BarBehavior)0)).rectTransform;
			}

			internal void <Awake>b__20_25(float f)
			{
				BonkVolume.Value = f;
			}

			internal RectTransform <Awake>b__20_11(Transform sv)
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOLabel("— Shot —", sv, Vector2.zero)).rectTransform;
			}

			internal RectTransform <Awake>b__20_12(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Shot Sound", (Action<bool>)delegate(bool v)
				{
					ShotEnabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", ShotEnabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_26(bool v)
			{
				ShotEnabled.Value = v;
			}

			internal RectTransform <Awake>b__20_13(Transform sv)
			{
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOSlider("Shot Volume", "", (Action<float>)delegate(float f)
				{
					ShotVolume.Value = f;
				}, sv, Vector2.zero, 0f, 1f, 2, ShotVolume.Value, "", "", (BarBehavior)0)).rectTransform;
			}

			internal void <Awake>b__20_27(float f)
			{
				ShotVolume.Value = f;
			}

			internal RectTransform <Awake>b__20_14(Transform sv)
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOLabel("— Tranq Gun —", sv, Vector2.zero)).rectTransform;
			}

			internal RectTransform <Awake>b__20_15(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Bunch Sound", (Action<bool>)delegate(bool v)
				{
					BunchEnabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", BunchEnabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_28(bool v)
			{
				BunchEnabled.Value = v;
			}

			internal RectTransform <Awake>b__20_16(Transform sv)
			{
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOSlider("Bunch Volume", "", (Action<float>)delegate(float f)
				{
					BunchVolume.Value = f;
				}, sv, Vector2.zero, 0f, 1f, 2, BunchVolume.Value, "", "", (BarBehavior)0)).rectTransform;
			}

			internal void <Awake>b__20_29(float f)
			{
				BunchVolume.Value = f;
			}

			internal RectTransform <Awake>b__20_17(Transform sv)
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOLabel("— Grenade —", sv, Vector2.zero)).rectTransform;
			}

			internal RectTransform <Awake>b__20_18(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Booom Sound", (Action<bool>)delegate(bool v)
				{
					BooomEnabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", BooomEnabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_30(bool v)
			{
				BooomEnabled.Value = v;
			}

			internal RectTransform <Awake>b__20_19(Transform sv)
			{
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOSlider("Booom Volume", "", (Action<float>)delegate(float f)
				{
					BooomVolume.Value = f;
				}, sv, Vector2.zero, 0f, 1f, 2, BooomVolume.Value, "", "", (BarBehavior)0)).rectTransform;
			}

			internal void <Awake>b__20_31(float f)
			{
				BooomVolume.Value = f;
			}

			internal RectTransform <Awake>b__20_20(Transform sv)
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOLabel("— Lobby Start —", sv, Vector2.zero)).rectTransform;
			}

			internal RectTransform <Awake>b__20_21(Transform sv)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOToggle("Okletsgo Sound", (Action<bool>)delegate(bool v)
				{
					StartEnabled.Value = v;
				}, sv, Vector2.zero, "ON", "OFF", StartEnabled.Value)).rectTransform;
			}

			internal void <Awake>b__20_32(bool v)
			{
				StartEnabled.Value = v;
			}

			internal RectTransform <Awake>b__20_22(Transform sv)
			{
				//IL_002a: Unknown result type (might be due to invalid IL or missing references)
				return ((REPOElement)MenuAPI.CreateREPOSlider("Okletsgo Volume", "", (Action<float>)delegate(float f)
				{
					StartVolume.Value = f;
				}, sv, Vector2.zero, 0f, 1f, 2, StartVolume.Value, "", "", (BarBehavior)0)).rectTransform;
			}

			internal void <Awake>b__20_33(float f)
			{
				StartVolume.Value = f;
			}
		}

		[CompilerGenerated]
		private sealed class <LoadEmbedded>d__21 : IEnumerator<object>, IDisposable, IEnumerator
		{
			private int <>1__state;

			private object <>2__current;

			public string fileName;

			public Action<AudioClip> callback;

			private string <tmp>5__2;

			private UnityWebRequest <request>5__3;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <LoadEmbedded>d__21(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				int num = <>1__state;
				if (num == -3 || num == 1)
				{
					try
					{
					}
					finally
					{
						<>m__Finally1();
					}
				}
				<tmp>5__2 = null;
				<request>5__3 = null;
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00f7: Invalid comparison between Unknown and I4
				bool result;
				try
				{
					switch (<>1__state)
					{
					default:
						result = false;
						break;
					case 0:
					{
						<>1__state = -1;
						Stream manifestResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("RepoMemeSFX." + fileName);
						if (manifestResourceStream == null)
						{
							Log.LogWarning((object)("Embedded resource not found: RepoMemeSFX." + fileName));
							result = false;
							break;
						}
						byte[] array = new byte[manifestResourceStream.Length];
						manifestResourceStream.Read(array, 0, array.Length);
						manifestResourceStream.Dispose();
						<tmp>5__2 = Path.Combine(Path.GetTempPath(), fileName);
						File.WriteAllBytes(<tmp>5__2, array);
						<request>5__3 = UnityWebRequestMultimedia.GetAudioClip("file://" + <tmp>5__2, (AudioType)20);
						<>1__state = -3;
						<>2__current = <request>5__3.SendWebRequest();
						<>1__state = 1;
						result = true;
						break;
					}
					case 1:
						<>1__state = -3;
						if ((int)<request>5__3.result == 1)
						{
							AudioClip content = DownloadHandlerAudioClip.GetContent(<request>5__3);
							((Object)content).name = Path.GetFileNameWithoutExtension(fileName);
							callback(content);
							Log.LogInfo((object)("Loaded: " + ((Object)content).name));
						}
						else
						{
							Log.LogError((object)("Failed to load " + fileName + ": " + <request>5__3.error));
						}
						try
						{
							File.Delete(<tmp>5__2);
						}
						catch
						{
						}
						result = false;
						<>m__Finally1();
						break;
					}
				}
				catch
				{
					//try-fault
					((IDisposable)this).Dispose();
					throw;
				}
				return result;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<request>5__3 != null)
				{
					((IDisposable)<request>5__3).Dispose();
				}
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		internal static ManualLogSource Log = null;

		internal static ConfigEntry<bool> Enabled = null;

		internal static ConfigEntry<bool> BonkEnabled = null;

		internal static ConfigEntry<float> BonkVolume = null;

		internal static ConfigEntry<bool> ShotEnabled = null;

		internal static ConfigEntry<float> ShotVolume = null;

		internal static ConfigEntry<bool> BunchEnabled = null;

		internal static ConfigEntry<float> BunchVolume = null;

		internal static ConfigEntry<bool> BooomEnabled = null;

		internal static ConfigEntry<float> BooomVolume = null;

		internal static ConfigEntry<bool> StartEnabled = null;

		internal static ConfigEntry<float> StartVolume = null;

		internal static AudioClip SilentClip = null;

		internal static AudioClip? BonkClip;

		internal static AudioClip? ShotClip;

		internal static AudioClip? StartClip;

		internal static AudioClip? BunchClip;

		internal static AudioClip? BooomClip;

		internal static readonly Dictionary<AudioSource, AudioSource> DedicatedSources = new Dictionary<AudioSource, AudioSource>();

		public static readonly List<SoundReplacement> Replacements = new List<SoundReplacement>
		{
			new SoundReplacement
			{
				TargetName = "handgun shoot",
				PlayAsTemporary = true
			},
			new SoundReplacement
			{
				TargetName = "shotgun shoot",
				PlayAsTemporary = true
			},
			new SoundReplacement
			{
				TargetName = "enemy hunter shoot",
				PlayAsTemporary = true
			},
			new SoundReplacement
			{
				TargetName = "item tranq gun shoot",
				IsBunch = true,
				PlayAsTemporary = true
			},
			new SoundReplacement
			{
				TargetName = "explosion generic big",
				IsBooom = true,
				PlayAsTemporary = true
			}
		};

		private void Awake()
		{
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Expected O, but got Unknown
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Expected O, but got Unknown
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: Expected O, but got Unknown
			//IL_0190: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Expected O, but got Unknown
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f7: Expected O, but got Unknown
			//IL_0327: Unknown result type (might be due to invalid IL or missing references)
			//IL_0345: Unknown result type (might be due to invalid IL or missing references)
			//IL_034a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0350: Expected O, but got Unknown
			Log = ((BaseUnityPlugin)this).Logger;
			Enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enabled", true, "Master switch for all sound replacements.");
			BonkEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Bonk", "Enabled", true, "Enable bonk sound on melee hits.");
			BonkVolume = ((BaseUnityPlugin)this).Config.Bind<float>("Bonk", "Volume", 0.15f, new ConfigDescription("Bonk volume.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
			ShotEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Shot", "Enabled", true, "Enable shot sound on gun fire.");
			ShotVolume = ((BaseUnityPlugin)this).Config.Bind<float>("Shot", "Volume", 0.1f, new ConfigDescription("Shot volume.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
			BunchEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Bunch", "Enabled", true, "Enable bunch sound on tranq gun.");
			BunchVolume = ((BaseUnityPlugin)this).Config.Bind<float>("Bunch", "Volume", 0.4f, new ConfigDescription("Bunch volume.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
			BooomEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Booom", "Enabled", true, "Enable booom sound on grenade explosion.");
			BooomVolume = ((BaseUnityPlugin)this).Config.Bind<float>("Booom", "Volume", 0.15f, new ConfigDescription("Booom volume.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
			StartEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Start", "Enabled", true, "Enable okletsgo sound on lobby start.");
			StartVolume = ((BaseUnityPlugin)this).Config.Bind<float>("Start", "Volume", 0.1f, new ConfigDescription("Okletsgo volume.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
			SilentClip = AudioClip.Create("Silent", 441, 1, 44100, false);
			SilentClip.SetData(new float[441], 0);
			((MonoBehaviour)this).StartCoroutine(LoadEmbedded("bonk.wav", delegate(AudioClip c)
			{
				BonkClip = c;
			}));
			((MonoBehaviour)this).StartCoroutine(LoadEmbedded("shot.wav", delegate(AudioClip c)
			{
				ShotClip = c;
			}));
			((MonoBehaviour)this).StartCoroutine(LoadEmbedded("oklestgo.wav", delegate(AudioClip c)
			{
				StartClip = c;
			}));
			((MonoBehaviour)this).StartCoroutine(LoadEmbedded("bunch.wav", delegate(AudioClip c)
			{
				BunchClip = c;
			}));
			((MonoBehaviour)this).StartCoroutine(LoadEmbedded("booom.wav", delegate(AudioClip c)
			{
				BooomClip = c;
			}));
			new Harmony("com.rupleide.repomemesfx").PatchAll();
			object obj = <>c.<>9__20_5;
			if (obj == null)
			{
				BuilderDelegate val = delegate(Transform parent)
				{
					//IL_002f: Unknown result type (might be due to invalid IL or missing references)
					MenuAPI.CreateREPOButton("RepoMemeSFX", (Action)delegate
					{
						//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_0032: Expected O, but got Unknown
						//IL_0056: Unknown result type (might be due to invalid IL or missing references)
						//IL_005b: Unknown result type (might be due to invalid IL or missing references)
						//IL_0061: Expected O, but got Unknown
						//IL_0085: Unknown result type (might be due to invalid IL or missing references)
						//IL_008a: Unknown result type (might be due to invalid IL or missing references)
						//IL_0090: Expected O, but got Unknown
						//IL_00b4: Unknown result type (might be due to invalid IL or missing references)
						//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
						//IL_00bf: Expected O, but got Unknown
						//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
						//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
						//IL_00ee: Expected O, but got Unknown
						//IL_0112: Unknown result type (might be due to invalid IL or missing references)
						//IL_0117: Unknown result type (might be due to invalid IL or missing references)
						//IL_011d: Expected O, but got Unknown
						//IL_0141: Unknown result type (might be due to invalid IL or missing references)
						//IL_0146: Unknown result type (might be due to invalid IL or missing references)
						//IL_014c: Expected O, but got Unknown
						//IL_0170: Unknown result type (might be due to invalid IL or missing references)
						//IL_0175: Unknown result type (might be due to invalid IL or missing references)
						//IL_017b: Expected O, but got Unknown
						//IL_019f: Unknown result type (might be due to invalid IL or missing references)
						//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
						//IL_01aa: Expected O, but got Unknown
						//IL_01ce: Unknown result type (might be due to invalid IL or missing references)
						//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
						//IL_01d9: Expected O, but got Unknown
						//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
						//IL_0202: Unknown result type (might be due to invalid IL or missing references)
						//IL_0208: Expected O, but got Unknown
						//IL_022c: Unknown result type (might be due to invalid IL or missing references)
						//IL_0231: Unknown result type (might be due to invalid IL or missing references)
						//IL_0237: Expected O, but got Unknown
						//IL_025b: Unknown result type (might be due to invalid IL or missing references)
						//IL_0260: Unknown result type (might be due to invalid IL or missing references)
						//IL_0266: Expected O, but got Unknown
						//IL_028a: Unknown result type (might be due to invalid IL or missing references)
						//IL_028f: Unknown result type (might be due to invalid IL or missing references)
						//IL_0295: Expected O, but got Unknown
						//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
						//IL_02be: Unknown result type (might be due to invalid IL or missing references)
						//IL_02c4: Expected O, but got Unknown
						//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
						//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
						//IL_02f3: Expected O, but got Unknown
						REPOPopupPage obj2 = MenuAPI.CreateREPOPopupPage("RepoMemeSFX", (PresetSide)0, false, true, 1f);
						object obj3 = <>c.<>9__20_7;
						if (obj3 == null)
						{
							ScrollViewBuilderDelegate val2 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Mod Enabled", (Action<bool>)delegate(bool v)
							{
								Enabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", Enabled.Value)).rectTransform;
							<>c.<>9__20_7 = val2;
							obj3 = (object)val2;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj3, 0f, 0f);
						object obj4 = <>c.<>9__20_8;
						if (obj4 == null)
						{
							ScrollViewBuilderDelegate val3 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Bonk —", sv, Vector2.zero)).rectTransform;
							<>c.<>9__20_8 = val3;
							obj4 = (object)val3;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj4, 0f, 0f);
						object obj5 = <>c.<>9__20_9;
						if (obj5 == null)
						{
							ScrollViewBuilderDelegate val4 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bonk Sound", (Action<bool>)delegate(bool v)
							{
								BonkEnabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", BonkEnabled.Value)).rectTransform;
							<>c.<>9__20_9 = val4;
							obj5 = (object)val4;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj5, 0f, 0f);
						object obj6 = <>c.<>9__20_10;
						if (obj6 == null)
						{
							ScrollViewBuilderDelegate val5 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bonk Volume", "", (Action<float>)delegate(float f)
							{
								BonkVolume.Value = f;
							}, sv, Vector2.zero, 0f, 1f, 2, BonkVolume.Value, "", "", (BarBehavior)0)).rectTransform;
							<>c.<>9__20_10 = val5;
							obj6 = (object)val5;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj6, 0f, 0f);
						object obj7 = <>c.<>9__20_11;
						if (obj7 == null)
						{
							ScrollViewBuilderDelegate val6 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Shot —", sv, Vector2.zero)).rectTransform;
							<>c.<>9__20_11 = val6;
							obj7 = (object)val6;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj7, 0f, 0f);
						object obj8 = <>c.<>9__20_12;
						if (obj8 == null)
						{
							ScrollViewBuilderDelegate val7 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Shot Sound", (Action<bool>)delegate(bool v)
							{
								ShotEnabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", ShotEnabled.Value)).rectTransform;
							<>c.<>9__20_12 = val7;
							obj8 = (object)val7;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj8, 0f, 0f);
						object obj9 = <>c.<>9__20_13;
						if (obj9 == null)
						{
							ScrollViewBuilderDelegate val8 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Shot Volume", "", (Action<float>)delegate(float f)
							{
								ShotVolume.Value = f;
							}, sv, Vector2.zero, 0f, 1f, 2, ShotVolume.Value, "", "", (BarBehavior)0)).rectTransform;
							<>c.<>9__20_13 = val8;
							obj9 = (object)val8;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj9, 0f, 0f);
						object obj10 = <>c.<>9__20_14;
						if (obj10 == null)
						{
							ScrollViewBuilderDelegate val9 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Tranq Gun —", sv, Vector2.zero)).rectTransform;
							<>c.<>9__20_14 = val9;
							obj10 = (object)val9;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj10, 0f, 0f);
						object obj11 = <>c.<>9__20_15;
						if (obj11 == null)
						{
							ScrollViewBuilderDelegate val10 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Bunch Sound", (Action<bool>)delegate(bool v)
							{
								BunchEnabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", BunchEnabled.Value)).rectTransform;
							<>c.<>9__20_15 = val10;
							obj11 = (object)val10;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj11, 0f, 0f);
						object obj12 = <>c.<>9__20_16;
						if (obj12 == null)
						{
							ScrollViewBuilderDelegate val11 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Bunch Volume", "", (Action<float>)delegate(float f)
							{
								BunchVolume.Value = f;
							}, sv, Vector2.zero, 0f, 1f, 2, BunchVolume.Value, "", "", (BarBehavior)0)).rectTransform;
							<>c.<>9__20_16 = val11;
							obj12 = (object)val11;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj12, 0f, 0f);
						object obj13 = <>c.<>9__20_17;
						if (obj13 == null)
						{
							ScrollViewBuilderDelegate val12 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Grenade —", sv, Vector2.zero)).rectTransform;
							<>c.<>9__20_17 = val12;
							obj13 = (object)val12;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj13, 0f, 0f);
						object obj14 = <>c.<>9__20_18;
						if (obj14 == null)
						{
							ScrollViewBuilderDelegate val13 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Booom Sound", (Action<bool>)delegate(bool v)
							{
								BooomEnabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", BooomEnabled.Value)).rectTransform;
							<>c.<>9__20_18 = val13;
							obj14 = (object)val13;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj14, 0f, 0f);
						object obj15 = <>c.<>9__20_19;
						if (obj15 == null)
						{
							ScrollViewBuilderDelegate val14 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Booom Volume", "", (Action<float>)delegate(float f)
							{
								BooomVolume.Value = f;
							}, sv, Vector2.zero, 0f, 1f, 2, BooomVolume.Value, "", "", (BarBehavior)0)).rectTransform;
							<>c.<>9__20_19 = val14;
							obj15 = (object)val14;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj15, 0f, 0f);
						object obj16 = <>c.<>9__20_20;
						if (obj16 == null)
						{
							ScrollViewBuilderDelegate val15 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOLabel("— Lobby Start —", sv, Vector2.zero)).rectTransform;
							<>c.<>9__20_20 = val15;
							obj16 = (object)val15;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj16, 0f, 0f);
						object obj17 = <>c.<>9__20_21;
						if (obj17 == null)
						{
							ScrollViewBuilderDelegate val16 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOToggle("Okletsgo Sound", (Action<bool>)delegate(bool v)
							{
								StartEnabled.Value = v;
							}, sv, Vector2.zero, "ON", "OFF", StartEnabled.Value)).rectTransform;
							<>c.<>9__20_21 = val16;
							obj17 = (object)val16;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj17, 0f, 0f);
						object obj18 = <>c.<>9__20_22;
						if (obj18 == null)
						{
							ScrollViewBuilderDelegate val17 = (Transform sv) => ((REPOElement)MenuAPI.CreateREPOSlider("Okletsgo Volume", "", (Action<float>)delegate(float f)
							{
								StartVolume.Value = f;
							}, sv, Vector2.zero, 0f, 1f, 2, StartVolume.Value, "", "", (BarBehavior)0)).rectTransform;
							<>c.<>9__20_22 = val17;
							obj18 = (object)val17;
						}
						obj2.AddElementToScrollView((ScrollViewBuilderDelegate)obj18, 0f, 0f);
						obj2.OpenPage(false);
					}, parent, new Vector2(0f, -50f));
				};
				<>c.<>9__20_5 = val;
				obj = (object)val;
			}
			MenuAPI.AddElementToMainMenu((BuilderDelegate)obj);
			Log.LogInfo((object)"RepoMemeSFX v1.0.0 loaded.");
		}

		[IteratorStateMachine(typeof(<LoadEmbedded>d__21))]
		private IEnumerator LoadEmbedded(string fileName, Action<AudioClip> callback)
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <LoadEmbedded>d__21(0)
			{
				fileName = fileName,
				callback = callback
			};
		}

		internal static AudioSource GetOrCreateDedicated(AudioSource source)
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			if (DedicatedSources.TryGetValue(source, out AudioSource value) && (Object)(object)value != (Object)null)
			{
				return value;
			}
			GameObject val = new GameObject("RSR_Shot");
			val.transform.SetParent(((Component)source).transform, false);
			AudioSource val2 = val.AddComponent<AudioSource>();
			val2.spatialBlend = source.spatialBlend;
			val2.volume = source.volume;
			val2.rolloffMode = source.rolloffMode;
			val2.maxDistance = source.maxDistance;
			DedicatedSources[source] = val2;
			return val2;
		}
	}
	[HarmonyPatch(typeof(MenuPageLobby), "ButtonStart")]
	internal static class LobbyStartPatch
	{
		[HarmonyPrefix]
		private static void Prefix()
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Expected O, but got Unknown
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Expected O, but got Unknown
			if (RepoMemeSFXPlugin.Enabled.Value && RepoMemeSFXPlugin.StartEnabled.Value && !((Object)(object)RepoMemeSFXPlugin.StartClip == (Object)null))
			{
				GameObject val = new GameObject("RSR_StartSound");
				Object.DontDestroyOnLoad((Object)val);
				AudioSource obj = val.AddComponent<AudioSource>();
				obj.clip = RepoMemeSFXPlugin.StartClip;
				obj.spatialBlend = 0f;
				obj.volume = RepoMemeSFXPlugin.StartVolume.Value;
				obj.Play();
				Object.Destroy((Object)val, RepoMemeSFXPlugin.StartClip.length + 0.5f);
			}
		}
	}
	[HarmonyPatch(typeof(ItemMelee), "EnemySwingHit")]
	internal static class MeleeEnemyPatch
	{
		[HarmonyPostfix]
		private static void Postfix(ItemMelee __instance)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			MeleeHelper.PlayBonk(((Component)__instance).transform.position);
		}
	}
	[HarmonyPatch(typeof(ItemMelee), "PlayerSwingHit")]
	internal static class MeleePlayerPatch
	{
		[HarmonyPostfix]
		private static void Postfix(ItemMelee __instance)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			MeleeHelper.PlayBonk(((Component)__instance).transform.position);
		}
	}
	internal static class MeleeHelper
	{
		internal static void PlayBonk(Vector3 position)
		{
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Expected O, but got Unknown
			if (RepoMemeSFXPlugin.Enabled.Value && RepoMemeSFXPlugin.BonkEnabled.Value && !((Object)(object)RepoMemeSFXPlugin.BonkClip == (Object)null))
			{
				GameObject val = new GameObject("RSR_Bonk");
				val.transform.position = position;
				AudioSource obj = val.AddComponent<AudioSource>();
				obj.clip = RepoMemeSFXPlugin.BonkClip;
				obj.spatialBlend = 1f;
				obj.rolloffMode = (AudioRolloffMode)1;
				obj.maxDistance = 30f;
				obj.pitch = 1f;
				obj.volume = RepoMemeSFXPlugin.BonkVolume.Value;
				obj.Play();
				Object.Destroy((Object)val, RepoMemeSFXPlugin.BonkClip.length + 0.2f);
			}
		}
	}
	[HarmonyPatch(typeof(AudioSource))]
	internal static class AudioSourcePatch
	{
		[HarmonyPatch("PlayOneShot", new Type[]
		{
			typeof(AudioClip),
			typeof(float)
		})]
		[HarmonyPrefix]
		private static bool PlayOneShot_Prefix(AudioSource __instance, ref AudioClip __0, ref float __1)
		{
			if ((Object)(object)__0 == (Object)null)
			{
				return true;
			}
			return Handle(__instance, ref __0, ref __1);
		}

		[HarmonyPatch("set_clip")]
		[HarmonyPrefix]
		private static bool SetClip_Prefix(AudioSource __instance, ref AudioClip value)
		{
			if ((Object)(object)value == (Object)null)
			{
				return true;
			}
			float volume = 1f;
			return Handle(__instance, ref value, ref volume);
		}

		private static bool Handle(AudioSource source, ref AudioClip clip, ref float volume)
		{
			if (!RepoMemeSFXPlugin.Enabled.Value)
			{
				return true;
			}
			string text = ((Object)clip).name.ToLower();
			foreach (SoundReplacement replacement in RepoMemeSFXPlugin.Replacements)
			{
				if (text.Contains(replacement.TargetName.ToLower()))
				{
					if (!replacement.IsBunch && !replacement.IsBooom)
					{
						_ = !replacement.IsMelee;
					}
					else
						_ = 0;
					if (!(replacement.IsBooom ? RepoMemeSFXPlugin.BooomEnabled.Value : (replacement.IsBunch ? RepoMemeSFXPlugin.BunchEnabled.Value : RepoMemeSFXPlugin.ShotEnabled.Value)))
					{
						return true;
					}
					float num = (replacement.IsBooom ? RepoMemeSFXPlugin.BooomVolume.Value : (replacement.IsBunch ? RepoMemeSFXPlugin.BunchVolume.Value : RepoMemeSFXPlugin.ShotVolume.Value));
					AudioClip val = (replacement.IsBooom ? RepoMemeSFXPlugin.BooomClip : (replacement.IsBunch ? RepoMemeSFXPlugin.BunchClip : RepoMemeSFXPlugin.ShotClip));
					if ((Object)(object)val == (Object)null)
					{
						return true;
					}
					volume = num;
					if (replacement.PlayAsTemporary && (Object)(object)source != (Object)null)
					{
						AudioSource orCreateDedicated = RepoMemeSFXPlugin.GetOrCreateDedicated(source);
						orCreateDedicated.spatialBlend = source.spatialBlend;
						orCreateDedicated.volume = volume;
						orCreateDedicated.pitch = 1f;
						orCreateDedicated.Stop();
						orCreateDedicated.clip = val;
						orCreateDedicated.Play();
						clip = RepoMemeSFXPlugin.SilentClip;
						volume = 0f;
						return true;
					}
					clip = val;
					if ((Object)(object)source != (Object)null)
					{
						source.pitch = 1f;
					}
					return true;
				}
			}
			return true;
		}
	}
}