From 08820b6ddbf13d7825120f9558a11af7d63b8857 Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 22 Apr 2023 22:11:53 -0400 Subject: [PATCH] Tried other stuff still don't work right --- .../Patches/SignalPatches/SignalscopePatches.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/NewHorizons/Patches/SignalPatches/SignalscopePatches.cs b/NewHorizons/Patches/SignalPatches/SignalscopePatches.cs index 1f79880d..ce3ea8d9 100644 --- a/NewHorizons/Patches/SignalPatches/SignalscopePatches.cs +++ b/NewHorizons/Patches/SignalPatches/SignalscopePatches.cs @@ -1,5 +1,6 @@ using HarmonyLib; using NewHorizons.Builder.Props.Audio; +using UnityEngine; namespace NewHorizons.Patches.SignalPatches { @@ -18,14 +19,14 @@ namespace NewHorizons.Patches.SignalPatches public static bool Signalscope_SwitchFrequencyFilter(Signalscope __instance, int increment) { var count = SignalBuilder.NumberOfFrequencies; - __instance._frequencyFilterIndex += increment; - __instance._frequencyFilterIndex = __instance._frequencyFilterIndex >= count ? 0 : __instance._frequencyFilterIndex; - __instance._frequencyFilterIndex = __instance._frequencyFilterIndex < 0 ? count - 1 : __instance._frequencyFilterIndex; - SignalFrequency signalFrequency = AudioSignal.IndexToFrequency(__instance._frequencyFilterIndex); + __instance._frequencyFilterIndex = (__instance._frequencyFilterIndex + increment + count) % count; - // Cases where this frequency isnt used - if (!PlayerData.KnowsFrequency(signalFrequency) && SignalBuilder.IsFrequencyInUse(signalFrequency) && - (!__instance._isUnknownFreqNearby || __instance._unknownFrequency != signalFrequency)) + var signalFrequency = AudioSignal.IndexToFrequency(__instance._frequencyFilterIndex); + + var isUnknownNearby = __instance._isUnknownFreqNearby && __instance._unknownFrequency == signalFrequency; + + // If it's not in use, or its unknown and isn't about to be learned, then go to the next one. + if ((!PlayerData.KnowsFrequency(signalFrequency) && !isUnknownNearby) || !SignalBuilder.IsFrequencyInUse(signalFrequency)) { __instance.SwitchFrequencyFilter(increment); }