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<AudioSource>();
val.volume = 1f;
val.outputAudioMixerGroup = MonoSingleton<AudioMixerController>.Instance.allGroup;
val.clip = BundleLoader.bundle.LoadAsset<AudioClip>("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)
{
}
}
}