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.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.SceneManagement;
[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: AssemblyCompany("bitmotte.FilthRoar")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("FilthRoar")]
[assembly: AssemblyTitle("bitmotte.FilthRoar")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.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 FilthRoar
{
public static class LoadBundle
{
public static AudioClip roar;
public static void Load()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Expected O, but got Unknown
AssetBundle val = AssetBundle.LoadFromFile(Pathing.GetPluginPath() + "/roar.bundle");
roar = (AudioClip)val.LoadAsset("Assets/roar.mp3");
val.Unload(false);
}
}
public static class Pathing
{
public static string GetPluginPath()
{
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uriBuilder = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uriBuilder.Path);
return Path.GetDirectoryName(path);
}
}
[BepInPlugin("bitmotte.FilthRoar", "FilthRoar", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
internal static ManualLogSource Logger;
private void Awake()
{
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Expected O, but got Unknown
Logger = ((BaseUnityPlugin)this).Logger;
Logger.LogInfo((object)"Plugin bitmotte.FilthRoar is loaded!");
Harmony val = new Harmony("bitmotte.FilthRoar");
val.PatchAll();
SceneManager.sceneLoaded += OnSceneLoad;
}
public static void OnSceneLoad(Scene scene, LoadSceneMode mode)
{
LoadBundle.Load();
}
}
[HarmonyPatch(typeof(ZombieMelee), "Awake")]
public class SoundPatchAttack : MonoBehaviour
{
private static void Postfix(ZombieMelee __instance)
{
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Expected O, but got Unknown
Traverse val = Traverse.Create((object)__instance);
GameObject val2 = (GameObject)val.Field("swingSound").GetValue();
AudioSource component = val2.GetComponent<AudioSource>();
component.clip = LoadBundle.roar;
RemoveOnTime component2 = val2.GetComponent<RemoveOnTime>();
component2.time = 3f;
}
}
[HarmonyPatch(typeof(Zombie), "Awake")]
public class SoundPatchLongFall : MonoBehaviour
{
private static void Postfix(ZombieMelee __instance)
{
Traverse val = Traverse.Create((object)__instance);
val.Field("scream").SetValue((object)LoadBundle.roar);
}
}
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "bitmotte.FilthRoar";
public const string PLUGIN_NAME = "FilthRoar";
public const string PLUGIN_VERSION = "1.0.0";
}
}