Decompiled source of BlackMesaInternTransferProgram v2.0.0

BepInEx/plugins/BlackMesaInternTransferProgram.dll

Decompiled 6 months ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
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 GameNetcodeStuff;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("SoulWithMae")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("My first plugin")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+41615ee780db605e4e89c28946f6be75bab43983")]
[assembly: AssemblyProduct("BlackMesaInternTransferProgram")]
[assembly: AssemblyTitle("BlackMesaInternTransferProgram")]
[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.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace BlackMesaInternTransferProgram
{
	public static class AssetLoader
	{
		public static AssetBundle LoadEmbeddedAssetBundle(Assembly assembly, string name)
		{
			string[] manifestResourceNames = assembly.GetManifestResourceNames();
			AssetBundle result = null;
			if (manifestResourceNames.Contains(name))
			{
				Plugin.StaticLogger.LogInfo((object)("Loading embedded resource data " + name + "..."));
				using Stream stream = assembly.GetManifestResourceStream(name);
				using MemoryStream memoryStream = new MemoryStream();
				stream?.CopyTo(memoryStream);
				Plugin.StaticLogger.LogInfo((object)"Loading assetBundle from data, please be patient...");
				byte[] array = memoryStream.ToArray();
				Plugin.StaticLogger.LogInfo((object)"Loading assetBundle from data, please be patient...");
				result = AssetBundle.LoadFromMemory(array);
				Plugin.StaticLogger.LogInfo((object)"Done!");
			}
			return result;
		}

		public static T LoadPersistentAsset<T>(this AssetBundle assetBundle, string name) where T : Object
		{
			Object val = assetBundle.LoadAsset(name);
			if (val != (Object)null)
			{
				val.hideFlags = (HideFlags)32;
				return (T)(object)((val is T) ? val : null);
			}
			return default(T);
		}

		public static byte[] GetResourceBytes(Assembly assembly, string name)
		{
			string[] manifestResourceNames = assembly.GetManifestResourceNames();
			foreach (string text in manifestResourceNames)
			{
				if (!text.Contains(name))
				{
					continue;
				}
				using Stream stream = assembly.GetManifestResourceStream(text);
				if (stream == null)
				{
					return null;
				}
				byte[] array = new byte[stream.Length];
				stream.Read(array, 0, array.Length);
				return array;
			}
			return null;
		}
	}
	[HarmonyPatch(typeof(PlayerControllerB))]
	internal static class PlayerDeathManager
	{
		[HarmonyPostfix]
		[HarmonyPatch("KillPlayerServerRpc")]
		private static void PostfixRpc(PlayerControllerB __instance)
		{
			OnPlayerDeath(__instance);
		}

		[HarmonyPostfix]
		[HarmonyPatch("KillPlayer")]
		private static void PostfixKill(PlayerControllerB __instance)
		{
			OnPlayerDeath(__instance);
		}

		private static void OnPlayerDeath(PlayerControllerB player)
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			string playerUsername = player.playerUsername;
			Vector3 position = ((Component)player).transform.position;
			EvalDeathCause(player.causeOfDeath, playerUsername, position);
		}

		private static void EvalDeathCause(CauseOfDeath causeOfDeath, string username, Vector3 position)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected I4, but got Unknown
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b4: 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_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			switch ((int)causeOfDeath)
			{
			case 0:
				UnknownDeath(username, position);
				break;
			case 1:
				BludgeoningDeath(username, position);
				break;
			case 2:
				GravityDeath(username, position);
				break;
			case 3:
				BlastDeath(username, position);
				break;
			case 4:
				StrangulationDeath(username, position);
				break;
			case 5:
				SuffocationDeath(username, position);
				break;
			case 6:
				MaulingDeath(username, position);
				break;
			case 7:
				GunshotsDeath(username, position);
				break;
			case 8:
				CrushingDeath(username, position);
				break;
			case 9:
				DrowningDeath(username, position);
				break;
			case 10:
				AbandonedDeath(username, position);
				break;
			case 11:
				ElectrocutionDeath(username, position);
				break;
			case 12:
				KickingDeath(username, position);
				break;
			case 13:
				BurningDeath(username, position);
				break;
			case 14:
				StabbingDeath(username, position);
				break;
			case 15:
				FanDeath(username, position);
				break;
			default:
				UnknownDeath(username, position);
				Plugin.StaticLogger.LogError((object)("Death type was wrong. Playing unknown sound at " + ((object)(Vector3)(ref position)).ToString()));
				break;
			}
		}

		private static void PlayAudio(AudioClip sound, Vector3 position)
		{
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			if (Plugin.AlertEnemies.Value)
			{
				RoundManager.Instance.PlayAudibleNoise(position, Plugin.NoiseRange.Value, Plugin.NoiseLoudness.Value, 0, false, 0);
				AudioSource.PlayClipAtPoint(sound, position, Plugin.Volume.Value);
			}
			else
			{
				AudioSource.PlayClipAtPoint(sound, position, Plugin.Volume.Value);
			}
		}

		private static void UnknownDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Unknown.Count);
			AudioClip val = Resources.Unknown[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to unknown. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void BludgeoningDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Bludgeoning.Count);
			AudioClip val = Resources.Bludgeoning[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to bludgeoning. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void GravityDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Gravity.Count);
			AudioClip val = Resources.Gravity[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to gravity. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void BlastDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Blast.Count);
			AudioClip val = Resources.Blast[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to blast. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void StrangulationDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Strangulation.Count);
			AudioClip val = Resources.Strangulation[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to strangulation. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void SuffocationDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Suffocation.Count);
			AudioClip val = Resources.Suffocation[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to suffocation. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void MaulingDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Mauling.Count);
			AudioClip val = Resources.Mauling[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to mauling. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void GunshotsDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Gunshots.Count);
			AudioClip val = Resources.Gunshots[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to gunshots. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void CrushingDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Crushing.Count);
			AudioClip val = Resources.Crushing[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to crushing. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void DrowningDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Drowning.Count);
			AudioClip val = Resources.Drowning[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to drowning. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void AbandonedDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Abandoned.Count);
			AudioClip val = Resources.Abandoned[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to abandoned. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void ElectrocutionDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Electrocution.Count);
			AudioClip val = Resources.Electrocution[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to electrocution. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void KickingDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Kicking.Count);
			AudioClip val = Resources.Kicking[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to kicking. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void BurningDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Burning.Count);
			AudioClip val = Resources.Burning[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to burning. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void StabbingDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Stabbing.Count);
			AudioClip val = Resources.Stabbing[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to stabbing. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}

		private static void FanDeath(string username, Vector3 position)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			int index = Random.Range(0, Resources.Fan.Count);
			AudioClip val = Resources.Fan[index];
			PlayAudio(val, position);
			Plugin.StaticLogger.LogInfo((object)(username + " died to fan. Playing " + ((Object)val).name + " at " + ((object)(Vector3)(ref position)).ToString()));
		}
	}
	internal static class ModInfo
	{
		public const string PluginGuid = "SoulWithMae.BlackMesaInternTransferProgram";

		public const string PluginName = "BlackMesaInternTransferProgram";

		public const string PluginVersion = "2.0.0";
	}
	[BepInPlugin("SoulWithMae.BlackMesaInternTransferProgram", "BlackMesaInternTransferProgram", "2.0.0")]
	public class Plugin : BaseUnityPlugin
	{
		internal static ManualLogSource StaticLogger;

		private static Harmony _harmony;

		public static ConfigEntry<float> Volume;

		public static ConfigEntry<bool> AlertEnemies;

		public static ConfigEntry<float> NoiseRange;

		public static ConfigEntry<float> NoiseLoudness;

		private void Awake()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin SoulWithMae.BlackMesaInternTransferProgram is loaded as version 2.0.0!");
			_harmony = new Harmony("SoulWithMae.BlackMesaInternTransferProgram");
			_harmony.PatchAll();
			StaticLogger = ((BaseUnityPlugin)this).Logger;
			Resources.Load();
			Volume = ((BaseUnityPlugin)this).Config.Bind<float>("General", "Volume", 1f, "The volume of the sounds. Minimum 0, maximum 1.");
			AlertEnemies = ((BaseUnityPlugin)this).Config.Bind<bool>("Alerting Enemies", "AlertEnemies", false, "Whether to alert enemies or not with the screams.");
			NoiseRange = ((BaseUnityPlugin)this).Config.Bind<float>("Alerting Enemies", "NoiseRange", 30f, "The range of the noise.");
			NoiseLoudness = ((BaseUnityPlugin)this).Config.Bind<float>("Alerting Enemies", "NoiseLoudness", 100f, "The loudness of the noise.");
		}
	}
	internal static class Resources
	{
		private static AssetBundle _assetBundle;

		public static readonly List<AudioClip> Unknown = new List<AudioClip>();

		public static readonly List<AudioClip> Bludgeoning = new List<AudioClip>();

		public static readonly List<AudioClip> Gravity = new List<AudioClip>();

		public static readonly List<AudioClip> Blast = new List<AudioClip>();

		public static readonly List<AudioClip> Strangulation = new List<AudioClip>();

		public static readonly List<AudioClip> Suffocation = new List<AudioClip>();

		public static readonly List<AudioClip> Mauling = new List<AudioClip>();

		public static readonly List<AudioClip> Gunshots = new List<AudioClip>();

		public static readonly List<AudioClip> Crushing = new List<AudioClip>();

		public static readonly List<AudioClip> Drowning = new List<AudioClip>();

		public static readonly List<AudioClip> Abandoned = new List<AudioClip>();

		public static readonly List<AudioClip> Electrocution = new List<AudioClip>();

		public static readonly List<AudioClip> Kicking = new List<AudioClip>();

		public static readonly List<AudioClip> Burning = new List<AudioClip>();

		public static readonly List<AudioClip> Stabbing = new List<AudioClip>();

		public static readonly List<AudioClip> Fan = new List<AudioClip>();

		public static void Load()
		{
			_assetBundle = AssetLoader.LoadEmbeddedAssetBundle(Assembly.GetExecutingAssembly(), "BlackMesaInternTransferProgram.Resources.Audio.bundle");
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream5.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream6.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream06.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream07.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream7.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream08.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream09.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream10.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream11.wav"));
			Unknown.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Unknown/scream12.wav"));
			Bludgeoning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Bludgeoning/sci_pain3.wav"));
			Bludgeoning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Bludgeoning/sci_pain4.wav"));
			Bludgeoning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Bludgeoning/sci_pain9.wav"));
			Bludgeoning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Bludgeoning/scream11.wav"));
			Bludgeoning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Bludgeoning/stopattacking.wav"));
			Gravity.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Gravity/scream04.wav"));
			Gravity.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Gravity/scream06.wav"));
			Gravity.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Gravity/scream24.wav"));
			Blast.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Blast/sci_fear6.wav"));
			Blast.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Blast/sci_pain4.wav"));
			Blast.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Blast/scream01.wav"));
			Blast.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Blast/scream3.wav"));
			Blast.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Blast/scream14.wav"));
			Strangulation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Strangulation/sci_dragoff.wav"));
			Strangulation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Strangulation/sci_pain10.wav"));
			Strangulation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Strangulation/scream03.wav"));
			Strangulation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Strangulation/scream18.wav"));
			Strangulation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Strangulation/scream20.wav"));
			Suffocation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Suffocation/c1a4_sci_tent.wav"));
			Suffocation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Suffocation/sci_die1.wav"));
			Suffocation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Suffocation/sci_die2.wav"));
			Suffocation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Suffocation/sci_die3.wav"));
			Suffocation.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Suffocation/sci_die4.wav"));
			Mauling.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Mauling/sci_pain1.wav"));
			Mauling.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Mauling/sci_pain5.wav"));
			Mauling.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Mauling/sci_pain6.wav"));
			Mauling.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Mauling/sci_pain7.wav"));
			Mauling.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Mauling/sci_pain8.wav"));
			Gunshots.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Gunshots/scream09.wav"));
			Gunshots.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Gunshots/scream25.wav"));
			Crushing.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Crushing/sci_fear14.wav"));
			Crushing.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Crushing/sci_fear15.wav"));
			Drowning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Drowning/sci_die1.wav"));
			Drowning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Drowning/sci_die2.wav"));
			Drowning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Drowning/sci_die3.wav"));
			Drowning.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Drowning/sci_die4.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/c1a2_sci_darkroom.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/c1a3_sci_silo1a.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/c1a3_sci_silo2a.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/dontwantdie.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/evergetout.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/gottogetout.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/leavingme.wav"));
			Abandoned.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Abandoned/whyleavehere.wav"));
			Electrocution.Add(_assetBundle.LoadPersistentAsset<AudioClip>("Assets/Electrocution/scream07.wav"));
			Kicking.AddRange(Bludgeoning);
			Burning.AddRange(Blast);
			Stabbing.AddRange(Bludgeoning);
			Stabbing.AddRange(Gunshots);
			Fan.AddRange(Crushing);
		}
	}
	public static class PluginInfo
	{
		public const string PLUGIN_GUID = "BlackMesaInternTransferProgram";

		public const string PLUGIN_NAME = "BlackMesaInternTransferProgram";

		public const string PLUGIN_VERSION = "1.0.0";
	}
}