Decompiled source of Ctrekoz Music Pack v0.4.11

CtrekozsMusicPack.dll

Decompiled 4 months 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.Battle;
using LBoL.Core.Battle.BattleActions;
using LBoL.Core.Stations;
using LBoL.Core.Units;
using LBoL.EntityLib.EnemyUnits.Character;
using LBoL.Presentation;
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("CtrekozsMusicPack")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("CtrekozsMusicPack")]
[assembly: AssemblyTitle("CtrekozsMusicPack")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace CtrekozsMusicPack
{
	[BepInPlugin("intoxicatedkid.ctrekozsmusicpack", "Ctrekoz's Music Pack", "0.4.11")]
	[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 TemplateSequenceTable sequenceTable = new TemplateSequenceTable(0);

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

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

		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 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("The_Antinomy_of_Ideology.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 = "The Antinomy of Ideology";
				val.Artist = "Demetori";
				val.Original = "Reverse Ideology";
				val.LoopStart = 6.15f;
				val.LoopEnd = 225.65f;
				return val;
			}
		}

		public sealed class DayuuShinmyoumaruBgm : 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("DayuuShinmyoumaruBgm");
			}

			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("Inchlings_of_the_Shining_Needle.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)30.15f, (float?)321.7f, "Inchlings of the Shining Needle ~ Counter-Attack of the Weak", "Demetori", "輝く針の小人族\u3000~ Little Princess", "");
			}
		}

		[OverwriteVanilla]
		public sealed class Stage4Bgm : 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("Stage4");
			}

			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_Shining_Needle_Castle_Sinking_in_the_Air.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0002: 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)
				BgmConfig val = BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)this).GetId()));
				val.ID = IdContainer.op_Implicit(((EntityDefinition)this).GetId());
				val.No = BepinexPlugin.sequenceTable.Next(typeof(BgmConfig));
				val.Show = true;
				val.Name = "";
				val.Folder = "";
				val.Path = "";
				val.TrackName = "The Shining Needle Castle Sinking in the Air ~ Counter-Clock World";
				val.Artist = "Demetori";
				val.Original = "空中に沈む輝針城";
				val.LoopStart = 12.175f;
				val.LoopEnd = 306.675f;
				val.Comment = "";
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class JunkoBgm : 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("Junko");
			}

			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("Pure_Furies.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 = "Pure Furies";
				val.Artist = "dBu";
				val.Original = "Pure Furies ~ Whereabouts of the Heart";
				val.LoopStart = 0f;
				val.LoopEnd = 278.225f;
				return val;
			}
		}

		public sealed class Junko2Bgm : 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("Junko2Bgm");
			}

			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("Inhuman.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)44.9f, (float?)288f, "Inhuman", "Sieudiver", "Pure Furies ~ Whereabouts of the Heart", "");
			}
		}

		[OverwriteVanilla]
		public sealed class SanaeBgm : 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("Sanae");
			}

			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("Motherly_Sea_One_with_the_Wind.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 = "Motherly Sea One with the Wind";
				val.Artist = "Ibiza";
				val.Original = "Faith is for the Transient People";
				val.LoopStart = 79f;
				val.LoopEnd = 287f;
				return val;
			}
		}

		public sealed class Sanae2Bgm : 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("Sanae2Bgm");
			}

			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("Secret_Wing.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)61.3f, (float?)152.25f, "Secret Wing", "MGR-T", "", "");
			}
		}

		[OverwriteVanilla]
		public sealed class RemiliaBgm : 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("Remilia");
			}

			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("Scarlet_Pressure.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 = "Scarlet Pressure";
				val.Artist = "cobu";
				val.Original = "septette for the dead princess";
				val.LoopStart = 80.9f;
				val.LoopEnd = 355.75f;
				return val;
			}
		}

		public sealed class Remilia2Bgm : 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("Remilia2Bgm");
			}

			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("Ascending_into_Naught.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)139.8f, (float?)440.9f, "Ascending into Naught", "Demetori", "septette for the dead princess", "");
			}
		}

		public sealed class ClownpieceBgm : 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("ClownpieceBgm");
			}

			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("Pierrot_of_the_Star-Spangled_Banner.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)21.375f, (float?)266.7f, "Pierrot of the Star-Spangled Banner", "dBu", "Pierrot of the Star-Spangled Banner", "");
			}
		}

		public sealed class Clownpiece2Bgm : 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("Clownpiece2Bgm");
			}

			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("America_Fuck_Yeah.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)9.55f, (float?)106.95f, "America, Fuck Yeah", "Team America", "", "");
			}
		}

		public sealed class DoremyBgm : 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("DoremyBgm");
			}

			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("Eternal_Spring_Dream.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)32.2f, (float?)268.225f, "Eternal Spring Dream", "dBu", "Eternal Spring Dream", "");
			}
		}

		public sealed class SijiBgm : 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("SijiBgm");
			}

			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("Fantasy_Judgement_of_Seventy_Years_Later.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)187.25f, (float?)374.575f, "Fantasy Judgement of Seventy Years Later", "Sanbondo", "Fate of Sixty Years", "");
			}
		}

		public sealed class Elite3Bgm : 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("Elite3Bgm");
			}

			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("Gods_of_the_Land.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)18.75f, (float?)106.45f, "Gods of the Land", "Nash Studio", "", "");
			}
		}

		public sealed class HardworkRabbitBgm : 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("HardworkRabbitBgm");
			}

			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_Rabbit_Has_Landed.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)0.875f, (float?)180.55f, "The Rabbit Has Landed", "dBu", "The Rabbit Has Landed", "");
			}
		}

		[OverwriteVanilla]
		public sealed class Stage3Bgm : 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("Infinite_Nightmare.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 = "Infinite Nightmare";
				val.Artist = "izna";
				val.Original = "Infinite Nightmare";
				val.LoopStart = 0f;
				val.LoopEnd = 277.25f;
				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("Starry_Mountain_of_Tenma.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 = "Starry Mountain of Tenma";
				val.Artist = "Emdasche";
				val.Original = "Starry Mountain of Tenma";
				val.LoopStart = 0f;
				val.LoopEnd = 215.25f;
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class TianziBgm : 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("Tianzi");
			}

			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("Colorless_Blade.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 = "Colorless Blade";
				val.Artist = "Ibiza";
				val.Original = "Catastrophe in Bhava-agra ~ Wonderful Heaven";
				val.LoopStart = 95.25f;
				val.LoopEnd = 246.35f;
				return val;
			}
		}

		[OverwriteVanilla]
		public sealed class YuyukoBgm : 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("Yuyuko");
			}

			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("Border_of_Life.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 = "幽雅に咲かせ、墨染の桜";
				val.Artist = "Dark PHOENiX";
				val.Original = "幽雅に咲かせ、墨染の桜 ~ Border of Life";
				val.LoopStart = 13.35f;
				val.LoopEnd = 208f;
				return val;
			}
		}

		public sealed class Yuyuko2Bgm : 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("Yuyuko2Bgm");
			}

			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("Bloom_Nobly.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)0.2f, (float?)252.55f, "Bloom Nobly, Cherry Blossoms of Sumizome ~ Border of Life", "Demetori", "優雅に咲かせ、墨染の桜 ~ Border of Life", "");
			}
		}

		public sealed class NitoriBgm : 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("NitoriBgm");
			}

			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("Water_to_Air_Super_Youkai_Warhead_Nitori.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)18.85f, (float?)210.885f, "Water-to-Air Super Youkai Warhead Nitori", "Ibiza", "Akutagawa Ryuunosuke's Kappa ~ Candid Friend", "");
			}
		}

		public sealed class YoumuBgm : 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("YoumuBgm");
			}

			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("Hiroari_Shoots_a_Strange_Bird.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)56.3f, (float?)187.175f, "Hiroari Shoots a Strange Bird ~ Till When", "dBu", "Hiroari Shoots a Strange Bird ~ Till When", "");
			}
		}

		public sealed class KokoroBgm : 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("KokoroBgm");
			}

			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_Lost_Emotion.ogg", (AudioType)14, BepinexPlugin.directorySource, "file://");
			}

			public override BgmConfig MakeConfig()
			{
				//IL_0057: Unknown result type (might be due to invalid IL or missing references)
				//IL_005d: Expected O, but got Unknown
				return new BgmConfig("", BepinexPlugin.sequenceTable.Next(typeof(BgmConfig)), true, "", "", "", 1f, (float?)24.75f, (float?)240f, "Face", "Maritumix", "The Lost Emotion", "");
			}
		}

		[HarmonyPatch(typeof(PerformAction), "Spell")]
		private class PerformAction_Spell_Patch
		{
			private static bool Prefix(PerformAction __instance, ref string spellName)
			{
				if (spellName == "Scarlet Devil")
				{
					AudioManager.PlayInLayer1("Remilia2Bgm");
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(HealAction), "GetPhases")]
		private class HealAction_GetPhases_Patch
		{
			public static bool Changed;

			private static void Postfix(HealAction __instance)
			{
				//IL_0033: Unknown result type (might be due to invalid IL or missing references)
				//IL_0039: Invalid comparison between Unknown and I4
				//IL_006d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0091: Unknown result type (might be due to invalid IL or missing references)
				//IL_0045: Unknown result type (might be due to invalid IL or missing references)
				if (((GameEventArgs)((EventBattleAction<HealEventArgs>)(object)__instance).Args).ActionSource is Sanae && Singleton<GameMaster>.Instance.CurrentGameRun.CurrentStation is BossStation && (int)Singleton<GameMaster>.Instance.CurrentGameRun.Difficulty == 3 && PuzzleFlags.GetPuzzleLevel(Singleton<GameMaster>.Instance.CurrentGameRun.Puzzles) == 7 && !Changed)
				{
					Changed = true;
					BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)new Sanae2Bgm()).UniqueId)).LoopStart = 167.5f;
					BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)new Sanae2Bgm()).UniqueId)).LoopEnd = 273.5f;
					AudioManager.FadeOutAndPlayBgm("Sanae2Bgm", 0f, 0f, 152.3f, false);
				}
			}
		}

		[HarmonyPatch(typeof(AudioManager), "PlayBossBgm")]
		private class AudioManager_PlayBossBgm_Patch
		{
			private static bool Prefix(AudioManager __instance)
			{
				//IL_003a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0040: Invalid comparison between Unknown and I4
				//IL_004c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0092: Unknown result type (might be due to invalid IL or missing references)
				//IL_0098: Invalid comparison between Unknown and I4
				//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00ef: Invalid comparison between Unknown and I4
				//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
				GameMaster instance = Singleton<GameMaster>.Instance;
				object obj;
				if (instance == null)
				{
					obj = null;
				}
				else
				{
					GameRunController currentGameRun = instance.CurrentGameRun;
					obj = ((currentGameRun != null) ? currentGameRun.CurrentStation : null);
				}
				BossStation val = (BossStation)((obj is BossStation) ? obj : null);
				if (val != null)
				{
					if ((int)Singleton<GameMaster>.Instance.CurrentGameRun.Difficulty == 3 && PuzzleFlags.GetPuzzleLevel(Singleton<GameMaster>.Instance.CurrentGameRun.Puzzles) == 7 && ((BattleStation)val).EnemyGroup.Id == "Junko")
					{
						AudioManager.PlayInLayer1("Junko2Bgm");
						return false;
					}
					if ((int)Singleton<GameMaster>.Instance.CurrentGameRun.Difficulty == 3 && PuzzleFlags.GetPuzzleLevel(Singleton<GameMaster>.Instance.CurrentGameRun.Puzzles) == 7 && ((BattleStation)val).EnemyGroup.Id == "Sanae")
					{
						AudioManager.PlayInLayer1("Sanae2Bgm");
						return false;
					}
					if ((int)Singleton<GameMaster>.Instance.CurrentGameRun.Difficulty == 3 && PuzzleFlags.GetPuzzleLevel(Singleton<GameMaster>.Instance.CurrentGameRun.Puzzles) == 7 && ((BattleStation)val).EnemyGroup.Id == "Yuyuko")
					{
						AudioManager.PlayInLayer1("Yuyuko2Bgm");
						return false;
					}
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(AudioManager), "PlayEliteBgm")]
		private class AudioManager_PlayEliteBgm_Patch
		{
			private static bool Prefix(AudioManager __instance)
			{
				GameMaster instance = Singleton<GameMaster>.Instance;
				object obj;
				if (instance == null)
				{
					obj = null;
				}
				else
				{
					GameRunController currentGameRun = instance.CurrentGameRun;
					obj = ((currentGameRun != null) ? currentGameRun.CurrentStation : null);
				}
				BattleStation val = (BattleStation)((obj is BattleStation) ? obj : null);
				if (val != null)
				{
					if (Random.Range(0, 100) == 0 && val.EnemyGroup.Id == "Clownpiece")
					{
						AudioManager.PlayInLayer1("Clownpiece2Bgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Clownpiece")
					{
						AudioManager.PlayInLayer1("ClownpieceBgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Doremy")
					{
						AudioManager.PlayInLayer1("DoremyBgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Siji")
					{
						AudioManager.PlayInLayer1("SijiBgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Nitori")
					{
						AudioManager.PlayInLayer1("NitoriBgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Youmu")
					{
						AudioManager.PlayInLayer1("YoumuBgm");
						return false;
					}
					if (val.EnemyGroup.Id == "Kokoro")
					{
						AudioManager.PlayInLayer1("KokoroBgm");
						return false;
					}
				}
				return true;
			}
		}

		[HarmonyPatch(typeof(BattleController), "StartBattle")]
		private class BattleController_StartBattle_Patch
		{
			private static void Postfix(BattleController __instance)
			{
				//IL_0032: 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)
				GameMaster instance = Singleton<GameMaster>.Instance;
				object obj;
				if (instance == null)
				{
					obj = null;
				}
				else
				{
					GameRunController currentGameRun = instance.CurrentGameRun;
					obj = ((currentGameRun != null) ? currentGameRun.CurrentStation : null);
				}
				BossStation val = (BossStation)((obj is BossStation) ? obj : null);
				if (val != null)
				{
					BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)new Sanae2Bgm()).UniqueId)).LoopStart = 61.3f;
					BgmConfig.FromID(IdContainer.op_Implicit(((EntityDefinition)new Sanae2Bgm()).UniqueId)).LoopEnd = 152.25f;
					HealAction_GetPhases_Patch.Changed = false;
					return;
				}
				GameMaster instance2 = Singleton<GameMaster>.Instance;
				object obj2;
				if (instance2 == null)
				{
					obj2 = null;
				}
				else
				{
					GameRunController currentGameRun2 = instance2.CurrentGameRun;
					if (currentGameRun2 == null)
					{
						obj2 = null;
					}
					else
					{
						BattleController battle = currentGameRun2.Battle;
						if (battle == null)
						{
							obj2 = null;
						}
						else
						{
							EnemyGroup enemyGroup = battle.EnemyGroup;
							obj2 = ((enemyGroup != null) ? enemyGroup.Id : null);
						}
					}
				}
				if ((string?)obj2 == "DayuuShinmyoumaruEnemyGroup")
				{
					AudioManager.PlayInLayer1("DayuuShinmyoumaruBgm");
					return;
				}
				GameMaster instance3 = Singleton<GameMaster>.Instance;
				object obj3;
				if (instance3 == null)
				{
					obj3 = null;
				}
				else
				{
					GameRunController currentGameRun3 = instance3.CurrentGameRun;
					if (currentGameRun3 == null)
					{
						obj3 = null;
					}
					else
					{
						BattleController battle2 = currentGameRun3.Battle;
						if (battle2 == null)
						{
							obj3 = null;
						}
						else
						{
							EnemyGroup enemyGroup2 = battle2.EnemyGroup;
							obj3 = ((enemyGroup2 != null) ? enemyGroup2.Id : null);
						}
					}
				}
				if ((string?)obj3 == "38")
				{
					AudioManager.PlayInLayer1("HardworkRabbitBgm");
				}
			}
		}
	}
	public static class PInfo
	{
		public const string GUID = "intoxicatedkid.ctrekozsmusicpack";

		public const string Name = "Ctrekoz's Music Pack";

		public const string version = "0.4.11";

		public static readonly Harmony harmony = new Harmony("intoxicatedkid.ctrekozsmusicpack");
	}
	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)
		{
		}
	}
}