Decompiled source of Iggys memes REPO v0.0.5

BlinkzREPOSoundEffects.dll

Decompiled a week ago
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using BlinkzREPOSoundEffects.Patches;
using HarmonyLib;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("BlinkzREPOSoundEffects")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BlinkzREPOSoundEffects")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("bb0cda16-c6ee-4065-899a-263682eba5a0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace BlinkzREPOSoundEffects
{
	[BepInPlugin("BlinkzREPOSounds", "Iggys Memes R.E.P.O.", "0.0.5")]
	public class BlinkzSounds : BaseUnityPlugin
	{
		private const string modGUID = "BlinkzREPOSounds";

		private const string modName = "Iggys Memes R.E.P.O.";

		private const string modVersion = "0.0.5";

		private readonly Harmony harmony = new Harmony("BlinkzREPOSounds");

		private static BlinkzSounds Instance;

		internal ManualLogSource mls;

		internal static List<AudioClip> SoundFX;

		internal static AssetBundle Bundle;

		public static float tripTimer;

		public static bool running;

		private void Awake()
		{
			if ((Object)(object)Instance == (Object)null)
			{
				Instance = this;
			}
			mls = Logger.CreateLogSource("BlinkzREPOSounds");
			mls.LogInfo((object)"\r\n       _     _   _____   _       _        _____  \r\n      | |   | | |  ___| | |     | |      /  _  \\ \r\n      | |___| | | |___  | |     | |     |  / \\  |\r\n      |  ___  | |  ___| | |     | |     | (   ) |\r\n      | |   | | | |___  | |___  | |___  |  \\_/  |\r\n      |_|   |_| |_____| |_____| |_____|  \\_____/ \r\n");
			tripTimer = 0f;
			running = false;
			harmony.PatchAll(typeof(BlinkzSounds));
			harmony.PatchAll(typeof(Huntsman));
			harmony.PatchAll(typeof(HuntsmanFall));
			harmony.PatchAll(typeof(Beamer));
			harmony.PatchAll(typeof(Kidnapper));
			harmony.PatchAll(typeof(Marshmellow));
			harmony.PatchAll(typeof(Eye));
			harmony.PatchAll(typeof(Head));
			harmony.PatchAll(typeof(Gnome));
			harmony.PatchAll(typeof(Baby));
			harmony.PatchAll(typeof(Banger));
			SoundFX = new List<AudioClip>();
			string location = ((BaseUnityPlugin)Instance).Info.Location;
			location = location.TrimEnd("BlinkzREPOSoundEffects.dll".ToCharArray());
			Bundle = AssetBundle.LoadFromFile(location + "blinkzreposounds");
		}
	}
}
namespace BlinkzREPOSoundEffects.Patches
{
	[HarmonyPatch(typeof(EnemyValuableThrower))]
	internal class Baby
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyValuableThrower __instance)
		{
			__instance.anim.stunSound.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Wah.wav");
			__instance.anim.hurtSound.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Wah.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyBang))]
	internal class Banger
	{
		internal static ManualLogSource mls = Logger.CreateLogSource("Blinkz.BlinkzSoundMod");

		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyBang __instance)
		{
			__instance.anim.soundExplosionTell.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Suicide.wav");
			__instance.anim.soundFuseTell.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Suicide.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyBeamerAnim))]
	internal class Beamer
	{
		internal static ManualLogSource mls = Logger.CreateLogSource("Blinkz.BlinkzSoundMod");

		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideBeamAudio(EnemyBeamerAnim __instance)
		{
			__instance.soundAttackIntro.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/WaitUrrrrgghhh.wav");
			__instance.soundMeleeKick.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/You get the boot.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyCeilingEye))]
	internal class Eye
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyCeilingEye __instance)
		{
			__instance.eyeAnim.sfxStaringStart = BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/EyeStaringStart.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyGnome))]
	internal class Gnome
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyGnome __instance)
		{
			AudioClip[] sounds = (AudioClip[])(object)new AudioClip[4]
			{
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/GnomeLootForYou0.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/GnomeLootForYou1.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/GnomeLootForYou2.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/GnomeLootForYou3.wav")
			};
			__instance.enemyGnomeAnim.soundPickaxeHit.Sounds = sounds;
		}
	}
	[HarmonyPatch(typeof(EnemyHeadController))]
	internal class Head
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyHeadController __instance)
		{
			__instance.AnimationSystem.TeethChatter.Sounds[0] = BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/Dododo.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyHunter))]
	internal class Huntsman
	{
		internal static ManualLogSource mls = Logger.CreateLogSource("Blinkz.BlinkzSoundMod");

		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyHunter __instance)
		{
			AudioClip[] aimStartClips = (AudioClip[])(object)new AudioClip[4]
			{
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/Hello.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/ImBlind0.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/ImBlind1.wav"),
				BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/ImBlind2.wav")
			};
			__instance.enemyHunterAnim.aimStartClips = aimStartClips;
		}
	}
	[HarmonyPatch(typeof(EnemyHunter), "Update")]
	public class HuntsmanFall
	{
		internal static ManualLogSource mls = Logger.CreateLogSource("Blinkz.BlinkzSoundMod");

		private static void Postfix(EnemyHunter __instance)
		{
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Unknown result type (might be due to invalid IL or missing references)
			Enemy enemy = __instance.enemy;
			FieldInfo field = typeof(Enemy).GetField("Rigidbody", BindingFlags.Instance | BindingFlags.NonPublic);
			object value = field.GetValue(enemy);
			FieldInfo field2 = value.GetType().GetField("physGrabObject", BindingFlags.Instance | BindingFlags.NonPublic);
			object value2 = field2.GetValue(value);
			FieldInfo field3 = value2.GetType().GetField("rbVelocity", BindingFlags.Instance | BindingFlags.NonPublic);
			Vector3 val = (Vector3)field3.GetValue(value2);
			FieldInfo field4 = value.GetType().GetField("timeSinceStun", BindingFlags.Instance | BindingFlags.NonPublic);
			float num = (float)field4.GetValue(value);
			if (val.y < -0.5f && num > 3f)
			{
				BlinkzSounds.tripTimer += Time.deltaTime;
				if (val.y <= -2f)
				{
					BlinkzSounds.tripTimer = 999f;
				}
			}
			else
			{
				BlinkzSounds.tripTimer = 0f;
			}
			if (BlinkzSounds.tripTimer > 0.5f)
			{
				AudioSource.PlayClipAtPoint(BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/Woah.wav"), ((Component)__instance.enemy).transform.position);
				BlinkzSounds.tripTimer = 0f;
			}
		}
	}
	[HarmonyPatch(typeof(EnemyHidden))]
	internal class Kidnapper
	{
		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyHidden __instance)
		{
			__instance.enemyHiddenAnim.soundBreatheOutFast.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/FastSteal0.wav");
			__instance.enemyHiddenAnim.soundPlayerMove.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/HiddenPlayerSteal.wav");
			__instance.enemyHiddenAnim.soundPlayerPickup.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Steal.wav");
		}
	}
	[HarmonyPatch(typeof(EnemyBowtie))]
	internal class Marshmellow
	{
		internal static ManualLogSource mls = Logger.CreateLogSource("Blinkz.BlinkzSoundMod");

		[HarmonyPatch("Awake")]
		[HarmonyPostfix]
		private static void OverrideAudio(EnemyBowtie __instance)
		{
			__instance.anim.yellStartSound.Sounds = BlinkzSounds.Bundle.LoadAssetWithSubAssets<AudioClip>("assets/Go Away.wav");
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		private static void StateLeave(EnemyBowtie __instance)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Invalid comparison between Unknown and I4
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Invalid comparison between Unknown and I4
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			if ((int)__instance.currentState == 7 && !BlinkzSounds.running)
			{
				AudioSource.PlayClipAtPoint(BlinkzSounds.Bundle.LoadAsset<AudioClip>("assets/RunAway.wav"), ((Component)__instance.anim.enemy).transform.position);
				BlinkzSounds.running = true;
			}
			else if ((int)__instance.currentState != 7 && BlinkzSounds.running)
			{
				BlinkzSounds.running = false;
			}
		}
	}
}