diff --git a/NewHorizons/Components/Props/ConditionalObjectActivation.cs b/NewHorizons/Components/Props/ConditionalObjectActivation.cs index 122302cf..bf4fdecf 100644 --- a/NewHorizons/Components/Props/ConditionalObjectActivation.cs +++ b/NewHorizons/Components/Props/ConditionalObjectActivation.cs @@ -6,6 +6,8 @@ namespace NewHorizons.Components.Props { public class ConditionalObjectActivation : MonoBehaviour { + private bool _playerAwake, _playerDoneAwake; + public GameObject GameObject; public string DialogueCondition; public bool CloseEyes; @@ -47,6 +49,7 @@ namespace NewHorizons.Components.Props GlobalMessenger.AddListener("DialogueConditionChanged", OnDialogueConditionChanged); GlobalMessenger.AddListener("ExitConversation", OnExitConversation); GlobalMessenger.AddListener("EnterConversation", OnEnterConversation); + GlobalMessenger.AddListener("WakeUp", OnWakeUp); } public void OnDestroy() @@ -54,6 +57,23 @@ namespace NewHorizons.Components.Props GlobalMessenger.RemoveListener("DialogueConditionChanged", OnDialogueConditionChanged); GlobalMessenger.RemoveListener("ExitConversation", OnExitConversation); GlobalMessenger.RemoveListener("EnterConversation", OnEnterConversation); + GlobalMessenger.RemoveListener("WakeUp", OnWakeUp); + } + + private void OnWakeUp() + { + _playerAwake = true; + } + + public void Update() + { + if (!_playerDoneAwake && _playerAwake) + { + if (!_playerCameraEffectController._isOpeningEyes) + { + _playerDoneAwake = true; + } + } } public void OnExitConversation() @@ -88,7 +108,7 @@ namespace NewHorizons.Components.Props public void SetActive(bool active) { - if (CloseEyes) + if (CloseEyes && _playerDoneAwake) { Delay.StartCoroutine(Coroutine(active)); }