103 lines
3.7 KiB
C#
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;
|
|
}
|
|
}
|