diff --git a/Assets/Scripts/AdventurerInteractable.cs b/Assets/Scripts/AdventurerInteractable.cs index 87dff2d..200e7ec 100644 --- a/Assets/Scripts/AdventurerInteractable.cs +++ b/Assets/Scripts/AdventurerInteractable.cs @@ -21,6 +21,12 @@ public class AdventurerInteractable : MonoBehaviour private void OnMouseDown() { + if (GameManager.Instance.uiManager.InputBlocked) + return; + + if (GameManager.Instance.dialogueController.DialogueInProgress) + return; + PlayerController.Instance.cameraMovement = false; CharacterData character = CharacterManager.Instance.GetCharacterDataByName(m_name); GameManager.Instance.dialogueController.DisplayCharacterText(character); diff --git a/Assets/Scripts/DialogueSystem/CharacterData.cs b/Assets/Scripts/DialogueSystem/CharacterData.cs index a26d6a4..8f38219 100644 --- a/Assets/Scripts/DialogueSystem/CharacterData.cs +++ b/Assets/Scripts/DialogueSystem/CharacterData.cs @@ -14,4 +14,6 @@ public class CharacterData : ScriptableObject [Header("The index of the dialogue relates to what question it should link too.")] public List m_dialogueOptions; + + public AudioSource m_typingSfx; } diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 053553e..dbebaac 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -10,6 +10,7 @@ public class GameManager : MonoBehaviour public static GameManager Instance; public Image fadeRect; public DialogueController dialogueController; + public UIManager uiManager; [SerializeField] private float m_fadeT; private float m_fadeTotal; @@ -55,9 +56,6 @@ public class GameManager : MonoBehaviour fadeRect.color = new Color(0f, 0f, 0f, Mathf.Lerp(0, 1, m_fadeT)); } - - - } public void FadePingPong(Action callback = null) diff --git a/Assets/Scripts/Journal.cs b/Assets/Scripts/Journal.cs index 076335a..9126f03 100644 --- a/Assets/Scripts/Journal.cs +++ b/Assets/Scripts/Journal.cs @@ -33,6 +33,8 @@ public class Journal : MonoBehaviour return; } + GameManager.Instance.uiManager.BlockInput(true); + m_availableAdventurers.Clear(); foreach (var character in CharacterManager.Instance.CharacterDatas) { @@ -57,6 +59,8 @@ public class Journal : MonoBehaviour journal.SetActive(false); adventurerPage.gameObject.SetActive(false); PlayerController.Instance.cameraMovement = true; + + GameManager.Instance.uiManager.BlockInput(false); } public void SetJournalAdventurerPage(int id) diff --git a/Assets/Scripts/UIManager.cs b/Assets/Scripts/UIManager.cs new file mode 100644 index 0000000..67af0f5 --- /dev/null +++ b/Assets/Scripts/UIManager.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIManager : MonoBehaviour +{ + public bool InputBlocked => m_blocked; + + private bool m_blocked = false; + + public void BlockInput(bool value) + { + m_blocked = value; + } +} diff --git a/Assets/Scripts/UIManager.cs.meta b/Assets/Scripts/UIManager.cs.meta new file mode 100644 index 0000000..bae7be4 --- /dev/null +++ b/Assets/Scripts/UIManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce56325fe9b072041a2c2416149044a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: