using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public GameObject pauseMenu;
public GameObject normalMenu;
public PlayerMovement movement;
public MoveCamera cameramove;
bool gameIsPaused = false;
public Transform player;
public float belowlimit = -30f;
void Start()
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
movement.enabled = true;
cameramove.enabled = true;
gameIsPaused = false;
normalMenu.SetActive(true);
pauseMenu.SetActive(false);
Time.timeScale = 1f;
if (Tutorial == SceneManager.GetActiveScene().name)
{
InvokeRepeating("updateTimer", 1, 1);
}
if (SceneManager.GetActiveScene().buildIndex > 1 && currentTime < 0)
{
InvokeRepeating("updateTimer", 1, 1);
}
timerText.text = currentTime.ToString();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Tab))
{
if(gameIsPaused == false)
{
PauseGame();
}else
{
Resume();
}
}
if (player.position.y <= belowlimit)
{
die();
}
if (freeplay == SceneManager.GetActiveScene().name)
{
CancelInvoke("updateTimer");
}
timerText.text = currentTime.ToString();
}
void PauseGame()
{
Time.timeScale = 0;
pauseMenu.SetActive(true);
normalMenu.SetActive(false);
movement.enabled = false;
cameramove.enabled = false;
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
public void RetryGame()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
movement.enabled = true;
cameramove.enabled = true;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
Time.timeScale = 1;
}
public void Resume()
{
Time.timeScale = 1;
pauseMenu.SetActive(false);
normalMenu.SetActive(true);
cameramove.enabled = true;
movement.enabled = true;
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
public void Menu()
{
SceneManager.LoadScene(0);
Time.timeScale = 1;
pauseMenu.SetActive(false);
normalMenu.SetActive(true);
cameramove.enabled = true;
movement.enabled = true;
normalMenu.SetActive(true);
pauseMenu.SetActive(false);
CancelInvoke("updateTimer");
currentTime = 0;
}
public void CompleteLevel()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
InvokeRepeating("updateTimer", 1, 1);
currentTime = currentTime;
}
public void die()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
//Speedrunner
public static int currentTime = 0;
public string Tutorial = "tutorial";
public string freeplay = "freeplay";
public Text timerText;
public void updateTimer()
{
currentTime = currentTime + 1;
}
}