mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
48 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|