using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Playables; using UnityEngine.UI; using UnityEngine.Localization; public class ImportantTutorialHint : MonoBehaviour { public Texture tutorialHintImage; public string tutorialHintTitle; [TextArea(1, 5)] public string tutorialHint; [TextArea(1, 5)] public string tutorialHintXboxController; public LocalizedString localizedTutorialHintPC; public LocalizedString localizedTutorialHintXbox; public LocalizedString localisedHintTitle; public LocalizedString localizedTutorialHintKeyToPressToClosePC; public LocalizedString localizedTutorialHintKeyToPressToCloseXBOX; private bool updateInput; private bool turorialHintShouldBeUpdating; public void OpenTutorialHintAfterSeconds(float secondsToDisplayTutorialHint) { print("Is about to display important tutorial hint"); StartCoroutine(DisplayHintAfterSeconds(secondsToDisplayTutorialHint)); } IEnumerator DisplayHintAfterSeconds(float secondsToDisplayTutorialHint) { yield return new WaitForSeconds(secondsToDisplayTutorialHint); OpenTutorialHint(); } public void OpenTutorialHint() { Time.timeScale = 0f; InventoryManager.GetInstance().InventoryInputIsDisabled(); GameplayController.GetInstance().GoToImportantTutorialMessageState(); UIManager.GetInstance().currentImportantTutorialHint = GetComponent(); UIManager.GetInstance().tutorialHintFadeInPlayable.Play(); UIManager.GetInstance().importantTutorialHintTitleText.text = localisedHintTitle.GetLocalizedString(); UIManager.GetInstance().importantTutorialHintImage.texture = tutorialHintImage; turorialHintShouldBeUpdating = true; StartCoroutine(tutorialHintTextIsUpdating()); } public void CloseTutorialHint() { Time.timeScale = 1f; UIManager.GetInstance().tutorialHintFadeOutPlayable.Play(); GameplayController.GetInstance().GoToGameplayState(); InventoryManager.GetInstance().InventoryInputIsEnabled(); updateInput = false; turorialHintShouldBeUpdating = false; } public void UpdateTutorialInput() { updateInput = true; //turorialHintShouldBeUpdating = false; StartCoroutine(UpdateInput()); } IEnumerator UpdateInput() { while (updateInput) { if (Input.GetKeyDown(KeyCode.Mouse1) || Input.GetKeyDown(KeyCode.JoystickButton0)) { CloseTutorialHint(); } yield return null; } } IEnumerator tutorialHintTextIsUpdating() { while (turorialHintShouldBeUpdating) { if (!InputControlManager.Getinstance().IsUsingJoystick) { UIManager.GetInstance().importantTutorialHintDescriptionText.text = localizedTutorialHintPC.GetLocalizedString(); UIManager.GetInstance().importantTutorialHintKeyToPressToClose.text = localizedTutorialHintKeyToPressToClosePC.GetLocalizedString(); //"Press " + "" + " to close"; } else { UIManager.GetInstance().importantTutorialHintDescriptionText.text = localizedTutorialHintXbox.GetLocalizedString(); UIManager.GetInstance().importantTutorialHintKeyToPressToClose.text = localizedTutorialHintKeyToPressToCloseXBOX.GetLocalizedString(); //"Press" + "" + "to close"; } yield return null; } yield return null; } }