Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.SceneManagement;
- using UnityEngine;
- using UnityEngine.UI;
- using System;
- public class HUDController : MonoBehaviour
- {
- public GameObject pauseMenu;
- public GameObject pointer;
- public GameObject gameOverMenu;
- public GameObject lvlCompletedScreen;
- PlayerController plCtrl;
- private bool isShowing;
- private Button[] buttons;
- public int pointerLoc;
- public int maxLoc;
- public int lastLoc;
- private bool gameIsOver = false;
- private bool lvlComp = false;
- PlayerHealth health;
- public int score;
- public int displayScore;
- public Text scoreText;
- private int inhalers;
- private bool onMain = false;
- private void Start()
- {
- if (SceneManager.GetActiveScene().name != "Main")
- {
- health = GameObject.Find("Player").GetComponent<PlayerHealth>();
- plCtrl = GameObject.Find("Player").GetComponent<PlayerController>();
- }
- else
- {
- onMain = true;
- isShowing = true;
- GetButtonList();
- buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
- }
- }
- void Update()
- {
- if (!onMain && !gameIsOver && !lvlComp && Input.GetKeyDown(KeyCode.Escape))
- {
- isShowing = !isShowing;
- pauseMenu.SetActive(isShowing);
- pointer.SetActive(isShowing);
- if (buttons == null)
- {
- GetButtonList();
- }
- buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
- if (isShowing)
- {
- Time.timeScale = 0;
- }
- else
- {
- buttons[pointerLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
- pointerLoc = 0;
- Time.timeScale = 1;
- }
- pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
- }
- if (isShowing || gameIsOver || lvlComp)
- {
- if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.DownArrow))
- {
- lastLoc = pointerLoc;
- pointerLoc++;
- if (pointerLoc < maxLoc)
- {
- pointer.transform.localPosition -= new Vector3(0, 58, 0);
- Debug.Log("should move");
- }
- else
- {
- pointerLoc = 0;
- pointer.transform.localPosition += new Vector3(0, (maxLoc - 1) * 58, 0);
- }
- buttons[lastLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
- buttons[pointerLoc].image.rectTransform.sizeDelta += new Vector2(10, 0);
- Debug.Log(buttons[pointerLoc].name);
- }
- if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow))
- {
- lastLoc = pointerLoc;
- pointerLoc--;
- if (pointerLoc < 0)
- {
- pointerLoc = maxLoc - 1;
- pointer.transform.localPosition -= new Vector3(0, (maxLoc - 1) * 58, 0);
- }
- else
- {
- pointer.transform.localPosition += new Vector3(0, 58, 0);
- }
- buttons[lastLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
- buttons[pointerLoc].image.rectTransform.sizeDelta += new Vector2(10, 0);
- }
- if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.KeypadEnter))
- {
- switch (buttons[pointerLoc].name)
- {
- case "ButtonContinue": // Continue
- Continue();
- break;
- case "ButtonRestart": // Restart
- Restart();
- break;
- case "ButtonHowToPlay": // How To Play
- HowToPlay();
- break;
- case "ButtonQuit": // Quit
- Exit();
- break;
- case "ButtonNextLevel": // Next Level
- NextLevel();
- break;
- case "ButtonStart":
- StartGame();
- break;
- case "ButtonMainMenu":
- GoToMain();
- break;
- }
- }
- }
- }
- public void GoToMain()
- {
- SceneManager.LoadScene("Main");
- }
- public void StartGame()
- {
- SceneManager.LoadScene("Level1");
- }
- public void Continue()
- {
- pointer.transform.localPosition += new Vector3(0, (pointerLoc) * 58, 0);
- buttons[pointerLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
- pointerLoc = 0;
- isShowing = !isShowing;
- pauseMenu.SetActive(isShowing);
- pointer.SetActive(isShowing);
- Time.timeScale = 1;
- }
- public void Restart()
- {
- SceneManager.LoadScene(SceneManager.GetActiveScene().name);
- Time.timeScale = 1;
- }
- public void HowToPlay()
- {
- SceneManager.LoadScene("Tutorial");
- }
- public void Exit()
- {
- Application.Quit();
- }
- public void GameOver()
- {
- Debug.Log("U ded bro");
- gameIsOver = true;
- StartCoroutine(DeathTimer());
- }
- public void LevelCompleted()
- {
- Debug.Log("Level completed!");
- gameIsOver = true;
- pointer.SetActive(true);
- Time.timeScale = 0;
- lvlCompletedScreen.SetActive(true);
- buttons = null;
- GetButtonList();
- buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
- pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
- score = Mathf.RoundToInt(health.currentHealth);
- health.lvlComp = true;
- inhalers = health.inhalers;
- StartCoroutine(ScoreUpdater());
- }
- public void NextLevel()
- {
- SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
- Time.timeScale = 1;
- }
- private void GetButtonList()
- {
- buttons = GetComponentsInChildren<Button>();
- maxLoc = buttons.Length;
- }
- private IEnumerator ScoreUpdater()
- {
- while (displayScore < score)
- {
- displayScore++;
- health.ChangeHealth(-1);
- scoreText.text = "SCORE: " + displayScore;
- yield return new WaitForSecondsRealtime(0.02f);
- }
- yield return new WaitForSecondsRealtime(0.5f);
- if (inhalers > 0)
- {
- for (int i = 0; i < inhalers; i++)
- {
- score += 20;
- health.addInhalers(-1);
- while (displayScore < score)
- {
- displayScore++;
- scoreText.text = "SCORE: " + displayScore;
- yield return new WaitForSecondsRealtime(0.02f);
- }
- yield return new WaitForSecondsRealtime(0.3f);
- }
- }
- }
- private IEnumerator DeathTimer()
- {
- while(!plCtrl.startDying)
- {
- yield return new WaitForSecondsRealtime(0.1f);
- }
- yield return new WaitForSecondsRealtime(2.5f);
- pointer.SetActive(true);
- Time.timeScale = 0;
- gameOverMenu.SetActive(true);
- buttons = null;
- GetButtonList();
- buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
- pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement