Decompiled source of Payday 2 Music Pack v0.8.0

Payday2MusicPack.dll

Decompiled a day ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using AddWatermark;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using Cysharp.Threading.Tasks;
using HarmonyLib;
using LBoL.ConfigData;
using LBoL.Core;
using LBoL.Core.Cards;
using LBoLEntitySideloader;
using LBoLEntitySideloader.Attributes;
using LBoLEntitySideloader.Entities;
using LBoLEntitySideloader.Resource;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: IgnoresAccessChecksTo("LBoL.Base")]
[assembly: IgnoresAccessChecksTo("LBoL.ConfigData")]
[assembly: IgnoresAccessChecksTo("LBoL.Core")]
[assembly: IgnoresAccessChecksTo("LBoL.EntityLib")]
[assembly: IgnoresAccessChecksTo("LBoL.Presentation")]
[assembly: IgnoresAccessChecksTo("Untitled.ConfigDataBuilder.Base")]
[assembly: AssemblyCompany("Payday2MusicPack")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("Payday2MusicPack")]
[assembly: AssemblyTitle("Payday2MusicPack")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace Payday2MusicPack
{
	[BepInPlugin("intoxicatedkid.payday2musicpack", "Payday 2 Music Pack", "0.8.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInProcess("LBoL.exe")]
	public class BepinexPlugin : BaseUnityPlugin
	{
		private static readonly Harmony harmony = PInfo.harmony;

		internal static ManualLogSource log;

		internal static IResourceSource embeddedSource = (IResourceSource)new EmbeddedSource(Assembly.GetExecutingAssembly());

		internal static DirectorySource directorySource = new DirectorySource("intoxicatedkid.payday2musicpack", "resources");

		internal static BatchLocalization cardBatchLoc = new BatchLocalization((IResourceSource)(object)directorySource, typeof(CardTemplate), "cards", (Locale)0, false);

		private void Awake()
		{
			log = ((BaseUnityPlugin)this).Logger;
			Object.DontDestroyOnLoad((Object)(object)((Component)this).gameObject);
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			EntityManager.RegisterSelf();
			harmony.PatchAll();
			if (Chainloader.PluginInfos.ContainsKey("neo.lbol.tools.watermark"))
			{
				WatermarkWrapper.ActivateWatermark();
			}
		}

		private void OnDestroy()
		{
			if (harmony != null)
			{
				harmony.UnpatchSelf();
			}
		}
	}
	public class BgmsDef
	{
		[OverwriteVanilla]
		public sealed class Stage1BgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Stage1");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Gun_Metal_Grey_2015.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 147.3f;
				val.TrackName = "Gun Metal Grey 2015";
				val.Artist = "Simon Viklund";
				val.Original = "Gun Metal Grey 2015";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class Stage2BgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Stage2");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Double_Cross_2017.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 184f;
				val.TrackName = "Double Cross 2017";
				val.Artist = "Simon Viklund";
				val.Original = "Double Cross 2017";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class Stage3BgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Stage3");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Breach_2015.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 223.43f;
				val.TrackName = "Breach 2015";
				val.Artist = "Simon Viklund";
				val.Original = "Breach 2015";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class SanyueBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Sanyue");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Shadows_And_Trickery.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 3f;
				val.LoopEnd = 123f;
				val.TrackName = "Shadows And Trickery";
				val.Artist = "Simon Viklund";
				val.Original = "Shadows And Trickery";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class AyaBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Aya");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Home_Invasion_2016.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 129.45f;
				val.TrackName = "Home Invasion 2016";
				val.Artist = "Simon Viklund";
				val.Original = "Home Invasion 2016";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class RinBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Rin");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Dead_Mans_Hand.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 140.05f;
				val.TrackName = "Dead Man's Hand";
				val.Artist = "Simon Viklund";
				val.Original = "Dead Man's Hand";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class NitoriBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Nitori");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Storm_Fuel_Overload.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 117.25f;
				val.TrackName = "Storm Fuel Overload";
				val.Artist = "Simon Viklund";
				val.Original = "Storm Fuel Overload";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class YoumuBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Youmu");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("The_Gauntlet.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 149.465f;
				val.TrackName = "The Gauntlet";
				val.Artist = "Simon Viklund";
				val.Original = "The Gauntlet";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class KokoroBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Kokoro");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Evil_Eye.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 3f;
				val.LoopEnd = 199.75f;
				val.TrackName = "Evil Eye";
				val.Artist = "Simon Viklund";
				val.Original = "Evil Eye";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class ClownpieceBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Clownpiece");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Utter_Chaos.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 5f;
				val.LoopEnd = 119.3f;
				val.TrackName = "Utter Chaos";
				val.Artist = "Simon Viklund";
				val.Original = "Utter Chaos";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class SijiBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Siji");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Death_Wish.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 2f;
				val.LoopEnd = 157.5f;
				val.TrackName = "Death Wish";
				val.Artist = "Simon Viklund";
				val.Original = "Death Wish";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class DoremyBgmDef : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Doremy");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Calling_All_Units.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.Volume = 1f;
				val.LoopStart = 4f;
				val.LoopEnd = 115.3f;
				val.TrackName = "Calling All Units";
				val.Artist = "Simon Viklund";
				val.Original = "Calling All Units";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class LongBgm : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Long");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Payback_Roulette.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.TrackName = "Payback Roulette";
				val.Artist = "Gustavo Coutinho";
				val.Original = "Payback Roulette";
				val.LoopStart = 4f;
				val.LoopEnd = 188.325f;
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class SeijaBgm : BgmTemplate
		{
			public override IdContainer GetId()
			{
				//IL_0006: Unknown result type (might be due to invalid IL or missing references)
				//IL_000b: Unknown result type (might be due to invalid IL or missing references)
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				return IdContainer.op_Implicit("Seija");
			}

			public override UniTask<AudioClip> LoadAudioClipAsync()
			{
				//IL_0012: Unknown result type (might be due to invalid IL or missing references)
				//IL_0017: 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)
				return ResourceLoader.LoadAudioClip("Operation_Black_Light.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.TrackName = "Operation Black Light";
				val.Artist = "Le Castle Vania";
				val.Original = "Operation Black Light";
				val.LoopStart = 4f;
				val.LoopEnd = 141.15f;
				return val;
			}
		}
	}
	public sealed class ExampleCardDefinition : CardTemplate
	{
		[EntityLogic(typeof(ExampleCardDefinition))]
		public sealed class ExampleCard : Card
		{
		}

		public override IdContainer GetId()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			return IdContainer.op_Implicit("ExampleCard");
		}

		public override CardImages LoadCardImages()
		{
			return null;
		}

		public override LocalizationOption LoadLocalization()
		{
			return (LocalizationOption)(object)BepinexPlugin.cardBatchLoc.AddEntity((EntityDefinition)(object)this);
		}

		public override CardConfig MakeConfig()
		{
			return ((CardTemplate)this).DefaultConfig();
		}
	}
	public static class PInfo
	{
		public const string GUID = "intoxicatedkid.payday2musicpack";

		public const string Name = "Payday 2 Music Pack";

		public const string version = "0.8.0";

		public static readonly Harmony harmony = new Harmony("intoxicatedkid.payday2musicpack");
	}
	internal class WatermarkWrapper
	{
		[MethodImpl(MethodImplOptions.NoInlining)]
		internal static void ActivateWatermark()
		{
			API.ActivateWatermark();
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		internal IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}