using System;
using System.Collections;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using GameNetcodeStuff;
using HarmonyLib;
using LuckyTheresAFamilyGuy.Patches;
using Microsoft.CodeAnalysis;
using UnityEngine;
using UnityEngine.Networking;
[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("LuckyTheresAFamilyGuy")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("A template for Lethal Company")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("LuckyTheresAFamilyGuy")]
[assembly: AssemblyTitle("LuckyTheresAFamilyGuy")]
[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 LuckyTheresAFamilyGuy.Patches
{
[HarmonyPatch(typeof(BaboonBirdAI))]
internal class BaboonHawkPatch
{
public static AudioClip baboon;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/baboon.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip[] ___cawScreamSFX, ref AudioClip[] ___cawLaughSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
baboon = DownloadHandlerAudioClip.GetContent(audioClip);
___cawScreamSFX = (AudioClip[])(object)new AudioClip[1] { baboon };
___cawLaughSFX = (AudioClip[])(object)new AudioClip[1] { baboon };
}
}
[HarmonyPatch(typeof(RedLocustBees))]
internal class BeesAudioPatch
{
public static AudioClip hateBees;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/bees.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
Debug.Log((object)path);
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
hateBees = DownloadHandlerAudioClip.GetContent(audioClip);
}
[HarmonyPatch("Update")]
[HarmonyPostfix]
public static void adjustBeeSound2(ref AudioSource ___beesAngry, ref AudioSource ___beesDefensive)
{
___beesAngry.clip = hateBees;
___beesDefensive.clip = hateBees;
}
}
[HarmonyPatch(typeof(FlowermanAI))]
internal class BrackenSoundPatch
{
public static AudioClip peterLaugh;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/plaugh1.wav";
private static int framesPassed = 0;
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
peterLaugh = DownloadHandlerAudioClip.GetContent(audioClip);
}
[HarmonyPatch("DoAIInterval")]
[HarmonyPostfix]
public static void aiSoundPatch(ref AudioSource ___crackNeckAudio)
{
framesPassed++;
if (framesPassed < 150)
{
framesPassed = 0;
___crackNeckAudio.PlayOneShot(peterLaugh);
}
}
}
[HarmonyPatch(typeof(SpringManAI))]
internal class Coilhead
{
public static AudioClip spring;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/spring.wav";
private static bool hasRun = false;
[HarmonyPatch("Update")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip[] ___springNoises)
{
if (!hasRun)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
spring = DownloadHandlerAudioClip.GetContent(audioClip);
___springNoises = (AudioClip[])(object)new AudioClip[1] { spring };
hasRun = true;
}
}
}
[HarmonyPatch(typeof(MouthDogAI))]
internal class EyelessDogPatch
{
public static AudioClip eyeless;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/eyeless.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioSource ___killPlayerSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
eyeless = DownloadHandlerAudioClip.GetContent(audioClip);
___killPlayerSFX.clip = eyeless;
}
}
[HarmonyPatch(typeof(ForestGiantAI))]
internal class ForestGiantPatch
{
public static AudioClip giant;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/giant.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
giant = DownloadHandlerAudioClip.GetContent(audioClip);
}
[HarmonyPatch("GiantSeePlayerEffect")]
[HarmonyPostfix]
public static void patchSound(ref AudioSource ___farWideSFX)
{
___farWideSFX.PlayOneShot(giant);
}
}
[HarmonyPatch(typeof(HoarderBugAI))]
internal class HoarderBugAudioPatch
{
public static AudioClip clip1;
public static AudioClip clip2;
private static string path1 = "https://github.com/dant40/lethalsounds/raw/main/smoke1.wav";
private static string path2 = "https://github.com/dant40/lethalsounds/raw/main/smoke2.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip[] ___chitterSFX, ref AudioClip ___angryVoiceSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path1, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
clip1 = DownloadHandlerAudioClip.GetContent(audioClip);
___chitterSFX = (AudioClip[])(object)new AudioClip[1] { clip1 };
UnityWebRequest audioClip2 = UnityWebRequestMultimedia.GetAudioClip(path2, (AudioType)20);
audioClip2.timeout = 500;
audioClip2.SendWebRequest();
while (!audioClip2.isDone)
{
}
clip2 = DownloadHandlerAudioClip.GetContent(audioClip2);
___angryVoiceSFX = clip2;
}
}
[HarmonyPatch(typeof(JesterAI))]
internal class JesterAudioPatch
{
public static AudioClip clip1;
public static AudioClip clip2;
private static string path1 = "https://github.com/dant40/lethalsounds/raw/main/bird_start.wav";
private static string path2 = "https://github.com/dant40/lethalsounds/raw/main/bird1.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip ___popGoesTheWeaselTheme, ref AudioClip ___popUpSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path1, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
clip1 = DownloadHandlerAudioClip.GetContent(audioClip);
___popGoesTheWeaselTheme = clip1;
UnityWebRequest audioClip2 = UnityWebRequestMultimedia.GetAudioClip(path2, (AudioType)20);
audioClip2.timeout = 500;
audioClip2.SendWebRequest();
while (!audioClip2.isDone)
{
}
clip2 = DownloadHandlerAudioClip.GetContent(audioClip2);
___popUpSFX = clip2;
}
}
[HarmonyPatch(typeof(NutcrackerEnemyAI))]
internal class NutcrackerPatch
{
public static AudioClip nut1;
public static AudioClip nut2;
private static string path1 = "https://github.com/dant40/lethalsounds/raw/main/nut1.wav";
private static string path2 = "https://github.com/dant40/lethalsounds/raw/main/nut2.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioSource ___aimSFX, ref AudioSource ___kickSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path1, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
nut1 = DownloadHandlerAudioClip.GetContent(audioClip);
___aimSFX.clip = nut1;
audioClip = UnityWebRequestMultimedia.GetAudioClip(path2, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
nut2 = DownloadHandlerAudioClip.GetContent(audioClip);
___kickSFX.clip = nut2;
}
}
[HarmonyPatch(typeof(StartOfRound))]
internal class ShipAudioPatch
{
public static AudioClip clip1;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/house.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
clip1 = DownloadHandlerAudioClip.GetContent(audioClip);
}
private static IEnumerator waitHelper(float time)
{
yield return (object)new WaitForSeconds(time);
}
[HarmonyPatch("OpenShipDoors")]
[HarmonyPostfix]
public static void playSound(ref AudioSource ___shipArriveSFX)
{
waitHelper(5f);
___shipArriveSFX.PlayOneShot(clip1);
}
}
[HarmonyPatch(typeof(BlobAI))]
internal class SlimePatch
{
}
[HarmonyPatch(typeof(CentipedeAI))]
internal class SnareFleaPatch
{
public static AudioClip flea;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/flea.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip ___fallShriek)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
flea = DownloadHandlerAudioClip.GetContent(audioClip);
___fallShriek = flea;
}
}
[HarmonyPatch(typeof(SandSpiderAI))]
internal class SpiderPatch
{
public static AudioClip spider1;
public static AudioClip spider2;
public static AudioClip spider3;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/spider1.wav";
private static string path2 = "https://github.com/dant40/lethalsounds/raw/main/spider2.wav";
private static string path3 = "https://github.com/dant40/lethalsounds/raw/main/spider3.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip[] ___footstepSFX, ref AudioClip ___attackSFX, ref AudioClip ___hangPlayerSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
spider1 = DownloadHandlerAudioClip.GetContent(audioClip);
___hangPlayerSFX = spider1;
audioClip = UnityWebRequestMultimedia.GetAudioClip(path2, (AudioType)20);
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
spider2 = DownloadHandlerAudioClip.GetContent(audioClip);
___attackSFX = spider2;
audioClip = UnityWebRequestMultimedia.GetAudioClip(path3, (AudioType)20);
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
spider3 = DownloadHandlerAudioClip.GetContent(audioClip);
___footstepSFX = (AudioClip[])(object)new AudioClip[1] { spider3 };
}
}
[HarmonyPatch(typeof(PufferAI))]
internal class SporeLizardPatch
{
public static AudioClip spore;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/spore.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioSource ___angry, ref AudioSource ___nervousMumbling, ref AudioSource ___puff)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
spore = DownloadHandlerAudioClip.GetContent(audioClip);
___angry.clip = spore;
___nervousMumbling.clip = spore;
___puff.clip = spore;
}
}
[HarmonyPatch(typeof(PlayerControllerB))]
internal class TestPatch
{
public static AudioClip clip1;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/candy.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 1000;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
clip1 = DownloadHandlerAudioClip.GetContent(audioClip);
}
[HarmonyPatch("GrabObject")]
[HarmonyPrefix]
public static void GrabObject(ref AudioSource ___itemAudio)
{
if (Random.Range(0, 10) > 5)
{
___itemAudio.PlayOneShot(clip1);
}
}
}
[HarmonyPatch(typeof(TimeOfDay))]
internal class TimeAudioPatch
{
public static AudioClip clip1;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/outoftime.wav";
private static bool hasPlayed = false;
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup()
{
hasPlayed = false;
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
clip1 = DownloadHandlerAudioClip.GetContent(audioClip);
}
[HarmonyPatch("Update")]
[HarmonyPostfix]
public static void playSound(ref AudioSource ___TimeOfDayMusic, ref bool ___shipLeavingOnMidnight, ref bool ___shipLeavingAlertCalled)
{
if ((___shipLeavingAlertCalled | ___shipLeavingOnMidnight) && !hasPlayed)
{
hasPlayed = true;
___TimeOfDayMusic.PlayOneShot(clip1);
}
}
}
[HarmonyPatch(typeof(SandWormAI))]
internal class WormPatch
{
public static AudioClip worm;
private static string path = "https://github.com/dant40/lethalsounds/raw/main/worm.wav";
[HarmonyPatch("Start")]
[HarmonyPrefix]
public static void adjustStartup(ref AudioClip ___emergeFromGroundSFX)
{
UnityWebRequest audioClip = UnityWebRequestMultimedia.GetAudioClip(path, (AudioType)20);
audioClip.timeout = 500;
audioClip.SendWebRequest();
while (!audioClip.isDone)
{
}
worm = DownloadHandlerAudioClip.GetContent(audioClip);
___emergeFromGroundSFX = worm;
}
}
}
namespace LethalCompanyTemplate
{
[BepInPlugin("Lucky.FG", "Lucky There's a Family Guy", "1.3")]
public class MainPlugin : BaseUnityPlugin
{
private const string plugGuid = "Lucky.FG";
private const string plugName = "Lucky There's a Family Guy";
private const string plugVersion = "1.3";
private readonly Harmony harmony = new Harmony("Lucky.FG");
private static readonly MainPlugin instance;
public ManualLogSource mls;
public static MainPlugin Instance => instance;
static MainPlugin()
{
instance = new MainPlugin();
}
private MainPlugin()
{
}//IL_0006: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Expected O, but got Unknown
private void Awake()
{
mls = Logger.CreateLogSource("Lucky.FG");
mls.LogInfo((object)"Trying to load family guy sound mod pack...");
try
{
harmony.PatchAll(typeof(MainPlugin));
harmony.PatchAll(typeof(BrackenSoundPatch));
harmony.PatchAll(typeof(BeesAudioPatch));
harmony.PatchAll(typeof(TimeAudioPatch));
harmony.PatchAll(typeof(JesterAudioPatch));
harmony.PatchAll(typeof(HoarderBugAudioPatch));
harmony.PatchAll(typeof(ForestGiantPatch));
harmony.PatchAll(typeof(EyelessDogPatch));
harmony.PatchAll(typeof(SporeLizardPatch));
harmony.PatchAll(typeof(BaboonHawkPatch));
harmony.PatchAll(typeof(SpiderPatch));
harmony.PatchAll(typeof(NutcrackerPatch));
harmony.PatchAll(typeof(WormPatch));
harmony.PatchAll(typeof(SnareFleaPatch));
harmony.PatchAll(typeof(Coilhead));
harmony.PatchAll(typeof(TestPatch));
mls.LogInfo((object)"Successfully loaded ");
}
catch (Exception ex)
{
mls.LogInfo((object)("Failed to load! " + ex.ToString()));
}
}
}
}