diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/AlarmTotemManager.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/AlarmTotemManager.cs index bf8501ba..e90c4ae7 100644 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/AlarmTotemManager.cs +++ b/QSB/EchoesOfTheEye/AlarmTotemSync/AlarmTotemManager.cs @@ -15,8 +15,10 @@ public class AlarmTotemManager : WorldObjectManager public override async UniTask BuildWorldObjects(OWScene scene, CancellationToken ct) { - AlarmBells = QSBWorldSync.GetUnityObjects().ToArray(); QSBWorldSync.Init(); - QSBWorldSync.Init(); + AlarmBells = QSBWorldSync.GetUnityObjects() + .Where(x => x._oneShotSource && x._animation && x._bellTrigger && x._lightController) + .ToArray(); + QSBWorldSync.Init(AlarmBells); } } diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmSequenceControllerPatches.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmSequenceControllerPatches.cs index 4f609073..db9f804d 100644 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmSequenceControllerPatches.cs +++ b/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmSequenceControllerPatches.cs @@ -56,11 +56,14 @@ public class AlarmSequenceControllerPatches : QSBPatch foreach (var alarmBell in AlarmTotemManager.AlarmBells) { alarmBell.PlaySingleChime(__instance._chimeIndex); - if (!__instance._animationStarted && !__instance._dreamWorldController.IsInDream()) + } + if (!__instance._animationStarted && !__instance._dreamWorldController.IsInDream()) + { + foreach (var alarmBell in AlarmTotemManager.AlarmBells) { alarmBell.PlayAnimation(); - __instance._animationStarted = true; } + __instance._animationStarted = true; } if (__instance._dreamWorldController.IsInDream() && !__instance._dreamWorldController.IsExitingDream()) {