This repository has been archived on 2025-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
project-undercover/Game 1/Assets/Scripts/LevelController.cs
2017-09-07 14:21:58 -05:00

61 lines
1.7 KiB
C#
Executable file

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelController : MonoBehaviour {
public Text winText;
protected static LevelController levelController;
private bool wonLevel = false;
void Start () {
if (levelController)
{
Destroy(this);
}
levelController = this;
}
public static LevelController GetController()
{
if (levelController)
return levelController;
Debug.LogError("A LevelController object is not present in this scene.");
return null;
}
public void WinLevel()
{
wonLevel = true;
winText.text = "YOU WIN!";
StartCoroutine(DelayLoadLevel("Level1", 3.0f));
}
public void ResetLevel()
{
if (wonLevel)
return;
PlayerController.GetController().KillPlayer();
winText.text = "TRY AGAIN!";
StartCoroutine(DelayLoadLevel(SceneManager.GetActiveScene().name, 2.0f));
}
public IEnumerator DelayLoadLevel(string levelName, float delay)
{
yield return new WaitForSeconds(delay);
if (SceneManager.GetActiveScene ().name == levelName) {
// soft restart - just reset location
GameObject player = GameObject.FindGameObjectWithTag ("Player");
GameObject start = GameObject.FindGameObjectWithTag ("Start");
player.transform.position = start.transform.position;
winText.text = "";
PlayerController.GetController().RevivePlayer();
} else {
levelController = null;
SceneManager.LoadScene (levelName);
}
yield return null;
}
}