using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using EmotesAPI; using LethalEmotesAPI.ImportV2; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("AngelDanceEmote")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("AngelDanceEmote")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("136dd8df-cf7a-43e1-aaf0-f5742b1c33c8")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace AngelDanceEmote; [BepInPlugin("aod.angeldanceemote", "Angel Dance Emote", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class AngelDancePlugin : BaseUnityPlugin { private void Awake() { //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Expected O, but got Unknown //IL_022f: Unknown result type (might be due to invalid IL or missing references) ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loading Angel Dance Emote..."); string directoryName = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location); string text = Path.Combine(directoryName, "angeldance"); AssetBundle val = AssetBundle.LoadFromFile(text); if ((Object)(object)val == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)("Failed to load asset bundle: " + text)); return; } AnimationClip[] array = val.LoadAllAssets(); AudioClip[] array2 = val.LoadAllAssets(); ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found {array.Length} animation clips in bundle."); AnimationClip[] array3 = array; foreach (AnimationClip val2 in array3) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("AnimationClip found: " + ((Object)val2).name)); } ((BaseUnityPlugin)this).Logger.LogInfo((object)$"Found {array2.Length} audio clips in bundle."); AudioClip[] array4 = array2; foreach (AudioClip val3 in array4) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("AudioClip found: " + ((Object)val3).name)); } AnimationClip val4 = val.LoadAsset("AngelDance_Loop"); AudioClip val5 = val.LoadAsset("AngelDance_Music"); if ((Object)(object)val4 == (Object)null) { ((BaseUnityPlugin)this).Logger.LogError((object)"Could not find AngelDance_Loop in bundle."); return; } if ((Object)(object)val5 == (Object)null) { ((BaseUnityPlugin)this).Logger.LogWarning((object)"Could not find AngelDance_Music in bundle. Emote will load without music."); } val4.wrapMode = (WrapMode)2; CustomEmoteParams val6 = new CustomEmoteParams(); val6.internalName = "angel_dance"; val6.displayName = "Angel Dance"; val6.primaryAnimationClips = (AnimationClip[])(object)new AnimationClip[1] { val4 }; val6.secondaryAnimationClips = null; val6.primaryAudioClips = (AudioClip[])(object)((!((Object)(object)val5 != (Object)null)) ? null : new AudioClip[1] { val5 }); val6.audioLoops = true; val6.syncAnim = true; val6.syncAudio = true; val6.audioLevel = 0.7f; val6.visible = true; val6.thirdPerson = true; val6.preventMovement = false; val6.stopWhenMove = true; val6.lockType = (LockType)0; CustomEmoteParams val7 = val6; EmoteImporter.ImportEmote(val7); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Angel Dance Emote registered."); } }