new-horizons/NewHorizons/Patches/AnglerfishAudioControllerPatches.cs
2023-07-22 02:50:45 -04:00

48 lines
1.8 KiB
C#

using HarmonyLib;
using UnityEngine;
using static AnglerfishController;
namespace NewHorizons.Patches
{
[HarmonyPatch(typeof(AnglerfishAudioController))]
public static class AnglerfishAudioControllerPatches
{
[HarmonyPrefix]
[HarmonyPatch(nameof(AnglerfishAudioController.OnChangeAnglerState))]
public static bool AnglerfishAudioController_OnChangeAnglerState(AnglerfishAudioController __instance, AnglerState anglerState)
{
var scale = __instance.transform.parent.localScale.x;
if (scale == 1)
{
return true;
}
else
{
var modifier = 1f / Mathf.Clamp(scale, 0.5f, 2f);
__instance.UpdateLoopingAudio(anglerState);
if (anglerState == AnglerState.Investigating)
{
__instance._longRangeOneShotSource.pitch = modifier * Random.Range(0.8f, 1f);
__instance._longRangeOneShotSource.PlayOneShot(AudioType.DBAnglerfishDetectDisturbance, 1f);
return false;
}
if (anglerState == AnglerState.Chasing)
{
if (Time.time > AnglerfishAudioController.s_lastDetectTime + 2f)
{
AnglerfishAudioController.s_lastDetectTime = Time.time;
__instance._oneShotSource.pitch = modifier * Random.Range(0.8f, 1f);
__instance._oneShotSource.PlayOneShot(AudioType.DBAnglerfishDetectTarget, 1f);
return false;
}
MonoBehaviour.print("ANGLER DETECT TARGET SOUND BLOCKED");
}
return false;
}
}
}
}