Files
HauntedBloodlines/Assets/Scripts/UI/ImportantTutorialHint.cs
2025-05-29 22:31:40 +03:00

103 lines
3.7 KiB
C#

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<ImportantTutorialHint>();
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();
//"<size=120%>Press " + "<size=280%><sprite name=\"Mouse UI_RightClick\">" + "<size=120%> to close";
}
else
{
UIManager.GetInstance().importantTutorialHintDescriptionText.text = localizedTutorialHintXbox.GetLocalizedString();
UIManager.GetInstance().importantTutorialHintKeyToPressToClose.text = localizedTutorialHintKeyToPressToCloseXBOX.GetLocalizedString();
//"Press" + "<sprite name=\"Xbox UI Buttons_A\">" + "to close";
}
yield return null;
}
yield return null;
}
}