Untitled
unknown
plain_text
4 years ago
3.2 kB
9
Indexable
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public static GameManager instance = null;
[SerializeField] WordData[] wordDatas;
[SerializeField] InputField wordInputField;
[SerializeField] Image imageDisplayer = null;
[Header("Debug parameters")]
[SerializeField] string noWordTypedMessage = "No word was found";
[SerializeField] string wrongWordUIMessage = "Wrong word!";
[SerializeField] string correctWordUIMessage = "Correct word!";
UIHandler uiHandler = null;
int currentLevelIndex = 0;
private void Awake()
{
// Simple version of the singletton pattern
if(instance == null)
{
instance = this;
}
}
private void Start()
{
uiHandler = FindObjectOfType<UIHandler>();
currentLevelIndex = PlayerPrefs.GetInt("Level", 1) - 1;
SetUpUI();
}
private void SetUpUI()
{
if(GetCurrentWordData().Image != null) // Protects from NULL References
{
imageDisplayer.sprite = GetCurrentWordData().Image;
}
}
public void SubmitWord()
{
WordData currentWordData = GetCurrentWordData();
if (currentWordData == null) return; // Protects from NULL References
string wordTyped = wordInputField.text;
// If no word is typed at all
if(wordTyped.ToLower() == "")
{
uiHandler.DisplayUIMessage(noWordTypedMessage);
return; // Exit from the function since no word was typed
}
// If the word is correct
if (wordTyped.ToLower() == currentWordData.Word.ToLower())
{
StartCoroutine(CorrectWordSequence());
}
else // If the word is incorrect
{
uiHandler.DisplayUIMessage(wrongWordUIMessage);
}
// Reset the word input field
wordInputField.text = "";
}
IEnumerator CorrectWordSequence()
{
uiHandler.DisplayUIMessage(correctWordUIMessage);
// TODO Replace hard coded value
yield return new WaitForSeconds(2.0f);
// Unlock the next mission
int currentMission = PlayerPrefs.GetInt("Level");
Debug.Log(currentMission);
PlayerPrefs.SetInt("Mission" + (currentMission + 1).ToString(), 0);
WordData currentWordData = GetCurrentWordData();
// Redirect back to main menu, will be changed to actual UI navigation
if (currentWordData.isLastLevel)
PlayFabManager.instance.SendLeaderboard();
FindObjectOfType<SceneLoader>().LoadScene("MainMenu");
}
public void RequestHint()
{
WordData currentWordData = GetCurrentWordData();
if (currentWordData == null) return; // Protects from NULL References
// Display the hint
uiHandler.ShowHintADMessage(currentWordData.Hint);
}
private WordData GetCurrentWordData()
{
return wordDatas[currentLevelIndex];
}
}Editor is loading...