using System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; using VineBoomTitleDrop.Helpers; [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: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [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 VineBoomTitleDrop { [BepInPlugin("duviz.VineBoomTitleDrop", "VineBoomTitleDrop", "0.1.0")] public class Plugin : BaseUnityPlugin { public static Plugin instance; public static ConfigFile config; public void Awake() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) instance = this; ((Object)((Component)this).gameObject).hideFlags = (HideFlags)61; config = ((BaseUnityPlugin)this).Config; new Harmony("duviz.VineBoomTitleDrop").PatchAll(); } public void Start() { BundleLoader.LoadBundle("Assets.vineboomtitledrop.bundle"); } public static void LogInfo(object msg) { ((BaseUnityPlugin)instance).Logger.LogInfo(msg); } public static void LogWarning(object msg) { ((BaseUnityPlugin)instance).Logger.LogWarning(msg); } public static void LogError(object msg) { ((BaseUnityPlugin)instance).Logger.LogError(msg); } } [HarmonyPatch] public static class LevelNamePatch { [HarmonyPrefix] [HarmonyPatch(typeof(LevelNamePopup), "NameAppear")] public static void Play(LevelNamePopup __instance) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) if (!__instance.activated) { AudioSource val = new GameObject("Vine boom").AddComponent(); val.volume = 1f; val.outputAudioMixerGroup = MonoSingleton.Instance.allGroup; val.clip = BundleLoader.bundle.LoadAsset("vineboom"); val.Play(); } } } public class PluginInfo { public const string GUID = "duviz.VineBoomTitleDrop"; public const string Name = "VineBoomTitleDrop"; public const string Version = "0.1.0"; } } namespace VineBoomTitleDrop.Helpers { public static class BundleLoader { public static AssetBundle bundle { get; private set; } public static void LoadBundle(string path) { Assembly executingAssembly = Assembly.GetExecutingAssembly(); string text = "VineBoomTitleDrop." + path; using Stream stream = executingAssembly.GetManifestResourceStream(text); if (stream == null) { Plugin.LogError("Bundle not found: " + text); return; } using MemoryStream memoryStream = new MemoryStream(); stream.CopyTo(memoryStream); UnloadBundle(); bundle = AssetBundle.LoadFromMemory(memoryStream.ToArray()); } public static void UnloadBundle() { AssetBundle obj = bundle; if (obj != null) { obj.Unload(false); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { internal IgnoresAccessChecksToAttribute(string assemblyName) { } } }