Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Rezero ReturnByDeath v1.0.0
ReturnByDeath.dll
Decompiled 2 hours agousing System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Logging; using HarmonyLib; using LethalThings.MonoBehaviours; using ReturnByDeath.Patches; 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("ReturnByDeath")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ReturnByDeath")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("04f7ab02-1427-4ec5-b84a-1917d3c59b27")] [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 ReturnByDeath { [BepInPlugin("quocnam612.ReturnByDeath", "Rezero Return By Death SFX", "1.0.0")] public class ReturnByDeathBase : BaseUnityPlugin { private const string modGUID = "quocnam612.ReturnByDeath"; private const string modName = "Rezero Return By Death SFX"; private const string modVersion = "1.0.0"; private readonly Harmony harmony = new Harmony("quocnam612.ReturnByDeath"); public static ReturnByDeathBase Instance; internal ManualLogSource mls; internal static List<AudioClip> SoundFX; internal static AssetBundle Bundle; private void Awake() { if ((Object)(object)Instance == (Object)null) { Instance = this; } mls = Logger.CreateLogSource("quocnam612.ReturnByDeath"); mls.LogInfo((object)"[Rezero Return By Death SFX] v1.0.0 is loaded!"); harmony.PatchAll(typeof(ReturnByDeathBase)); harmony.PatchAll(typeof(SoundManagerPatch)); harmony.PatchAll(typeof(ShipTeleporterPatch)); harmony.PatchAll(typeof(LethalThingsPatch)); mls = ((BaseUnityPlugin)this).Logger; SoundFX = new List<AudioClip>(); string location = ((BaseUnityPlugin)Instance).Info.Location; location = location.TrimEnd("ReturnByDeath.dll".ToCharArray()); Bundle = AssetBundle.LoadFromFile(location + "rbd"); if ((Object)(object)Bundle != (Object)null) { mls.LogMessage((object)("[Rezero Return By Death SFX] Successfully loaded AssetBundle from " + location + "rbd")); SoundFX = Bundle.LoadAllAssets<AudioClip>().ToList(); } else { mls.LogError((object)("[Rezero Return By Death SFX] Failed to load AssetBundle from " + location + "rbd")); } } } } namespace ReturnByDeath.Patches { [HarmonyPatch(typeof(TeleporterTrap))] internal class LethalThingsPatch { [HarmonyPatch("__initializeVariables")] [HarmonyPostfix] private static void OverrideAudio(TeleporterTrap __instance) { __instance.teleporterBeamUpSFX = ReturnByDeathBase.SoundFX[0]; } } [HarmonyPatch(typeof(ShipTeleporter))] internal class ShipTeleporterPatch { [HarmonyPatch("Awake")] [HarmonyPostfix] private static void OverrideAudio(ShipTeleporter __instance) { __instance.teleporterBeamUpSFX = ReturnByDeathBase.SoundFX[0]; } } [HarmonyPatch(typeof(SoundManager))] internal class SoundManagerPatch { private static AudioSource witchAudioSource; private static bool isFadingOut = false; private static int currentWitchTrack = -1; public static bool hasJustDiscoveredBody = false; [HarmonyPatch("Start")] [HarmonyPostfix] private static void CreateCustomWitchAudioSource(SoundManager __instance) { witchAudioSource = ((Component)__instance).gameObject.AddComponent<AudioSource>(); witchAudioSource.playOnAwake = false; witchAudioSource.loop = true; witchAudioSource.volume = 0f; } public static void TriggerWitch2() { hasJustDiscoveredBody = true; } [HarmonyPatch("SetFearAudio")] [HarmonyPostfix] private static void UpdateWitchFearAudio(SoundManager __instance) { if ((Object)(object)witchAudioSource == (Object)null) { return; } if (GameNetworkManager.Instance.localPlayerController.isPlayerDead) { witchAudioSource.volume = 0f; witchAudioSource.Stop(); isFadingOut = false; currentWitchTrack = -1; hasJustDiscoveredBody = false; return; } float fearLevel = StartOfRound.Instance.fearLevel; int num = -1; if (hasJustDiscoveredBody) { num = 2; } else if (fearLevel > 0.4f) { num = 1; } if (num != -1) { isFadingOut = false; if (currentWitchTrack != num || !witchAudioSource.isPlaying) { currentWitchTrack = num; if (ReturnByDeathBase.SoundFX != null && ReturnByDeathBase.SoundFX.Count > num) { witchAudioSource.clip = ReturnByDeathBase.SoundFX[num]; witchAudioSource.time = 0f; witchAudioSource.Play(); } } float volume = ((num == 2) ? 1f : Mathf.Clamp(fearLevel - 0.2f, 0.1f, 1f)); witchAudioSource.volume = volume; } else if (witchAudioSource.isPlaying) { isFadingOut = true; witchAudioSource.volume = Mathf.Lerp(witchAudioSource.volume, 0f, 2f * Time.deltaTime); if (witchAudioSource.volume < 0.01f) { witchAudioSource.Stop(); witchAudioSource.volume = 0f; isFadingOut = false; currentWitchTrack = -1; hasJustDiscoveredBody = false; } } } } }