Check contains half as much

This commit is contained in:
Nick 2022-10-02 12:34:35 -04:00
parent 971ffd34fa
commit 720ecede5d
2 changed files with 22 additions and 9 deletions

View File

@ -22,8 +22,8 @@ namespace NewHorizons.Builder.Props
public static int NumberOfFrequencies; public static int NumberOfFrequencies;
public static List<SignalName> QMSignals { get; private set; } private static List<SignalName> _qmSignals;
public static List<SignalName> CloakedSignals { get; private set; } private static List<SignalName> _cloakedSignals;
public static bool Initialized; public static bool Initialized;
@ -77,12 +77,22 @@ namespace NewHorizons.Builder.Props
_nextCustomFrequencyName = 256; _nextCustomFrequencyName = 256;
NumberOfFrequencies = 8; NumberOfFrequencies = 8;
QMSignals = new List<SignalName>() { SignalName.Quantum_QM }; _qmSignals = new List<SignalName>() { SignalName.Quantum_QM };
CloakedSignals = new List<SignalName>(); _cloakedSignals = new List<SignalName>();
Initialized = true; Initialized = true;
} }
public static bool IsCloaked(SignalName signalName)
{
return _cloakedSignals.Contains(signalName);
}
public static bool IsOnQuantumMoon(SignalName signalName)
{
return _qmSignals.Contains(signalName);
}
public static SignalFrequency AddFrequency(string str) public static SignalFrequency AddFrequency(string str)
{ {
Logger.Log($"Registering new frequency name [{str}]"); Logger.Log($"Registering new frequency name [{str}]");
@ -220,8 +230,8 @@ namespace NewHorizons.Builder.Props
signalGO.SetActive(true); signalGO.SetActive(true);
// Track certain special signal things // Track certain special signal things
if (planetGO.GetComponent<AstroObject>()?.GetAstroObjectName() == AstroObject.Name.QuantumMoon) QMSignals.Add(name); if (planetGO.GetComponent<AstroObject>()?.GetAstroObjectName() == AstroObject.Name.QuantumMoon) _qmSignals.Add(name);
if (info.insideCloak) CloakedSignals.Add(name); if (info.insideCloak) _cloakedSignals.Add(name);
return signalGO; return signalGO;
} }

View File

@ -119,7 +119,10 @@ namespace NewHorizons.Patches
{ {
if (!SignalBuilder.Initialized) return true; if (!SignalBuilder.Initialized) return true;
if (!SignalBuilder.CloakedSignals.Contains(__instance._name) && !SignalBuilder.QMSignals.Contains(__instance._name)) return true; var isCloaked = SignalBuilder.IsCloaked(__instance._name);
var isOnQuantumMoon = SignalBuilder.IsOnQuantumMoon(__instance._name);
if (!isCloaked && !isOnQuantumMoon) return true;
__instance._canBePickedUpByScope = false; __instance._canBePickedUpByScope = false;
if (__instance._sunController != null && __instance._sunController.IsPointInsideSupernova(__instance.transform.position)) if (__instance._sunController != null && __instance._sunController.IsPointInsideSupernova(__instance.transform.position))
@ -130,7 +133,7 @@ namespace NewHorizons.Patches
} }
// This part is modified from the original to include all QM signals // This part is modified from the original to include all QM signals
if (Locator.GetQuantumMoon() != null && Locator.GetQuantumMoon().IsPlayerInside() && !SignalBuilder.QMSignals.Contains(__instance._name)) if (Locator.GetQuantumMoon() != null && Locator.GetQuantumMoon().IsPlayerInside() && !isOnQuantumMoon)
{ {
__instance._signalStrength = 0f; __instance._signalStrength = 0f;
__instance._degreesFromScope = 180f; __instance._degreesFromScope = 180f;
@ -167,7 +170,7 @@ namespace NewHorizons.Patches
} }
// If it's a cloaked signal we don't want to hear it outside the cloak field // If it's a cloaked signal we don't want to hear it outside the cloak field
if (SignalBuilder.CloakedSignals.Contains(__instance._name)) if (isCloaked)
{ {
if (!PlayerState.InCloakingField()) if (!PlayerState.InCloakingField())
{ {