using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Unity.Netcode;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("LCObligedCompany")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LCObligedCompany")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("1bdec440-60bc-4a8a-8214-2245618900b9")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace LCObligedCompany
{
[BepInPlugin("freesnow.obligedcompany", "No Bell Required", "1.0.0")]
public class NoBellRequired : BaseUnityPlugin
{
private const string MOD_NAMESPACE = "freesnow.obligedcompany";
private const string MOD_NAME = "No Bell Required";
private const string MOD_VERSION = "1.0.0";
private readonly Harmony _harmony = new Harmony("freesnow.obligedcompany");
public ManualLogSource Logger { get; private set; }
private void Awake()
{
Logger = Logger.CreateLogSource("freesnow.obligedcompany");
Logger.LogInfo((object)"No Bell Required v1.0.0 is now running.");
_harmony.PatchAll();
}
}
}
namespace LCObligedCompany.Patches
{
[HarmonyPatch(typeof(DepositItemsDesk))]
internal class DepositItemsDeskPatch
{
[HarmonyPatch("Update")]
[HarmonyPostfix]
private static void BeNiceBeQuick(DepositItemsDesk __instance, ref List<GrabbableObject> ___itemsOnCounter, ref float ___grabObjectsTimer)
{
if (((NetworkBehaviour)__instance).IsHost)
{
__instance.currentMood.desiresSilence = false;
__instance.currentMood.judgementSpeed = 0f;
__instance.currentMood.timeToWaitBeforeGrabbingItem = 0f;
__instance.currentMood.maxPlayersToKillBeforeSatisfied = 0;
__instance.currentMood.mustBeWokenUp = false;
___grabObjectsTimer = Math.Min(3f, ___grabObjectsTimer);
__instance.patienceLevel = float.MaxValue;
if (___itemsOnCounter.Count > 0 && !__instance.doorOpen)
{
__instance.OpenShutDoor(true);
}
}
}
}
}