Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.99 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine.SceneManagement;
  4. using UnityEngine;
  5. using UnityEngine.UI;
  6. using System;
  7.  
  8. public class HUDController : MonoBehaviour
  9. {
  10. public GameObject pauseMenu;
  11. public GameObject pointer;
  12. public GameObject gameOverMenu;
  13. public GameObject lvlCompletedScreen;
  14. PlayerController plCtrl;
  15. private bool isShowing;
  16. private Button[] buttons;
  17. public int pointerLoc;
  18. public int maxLoc;
  19. public int lastLoc;
  20. private bool gameIsOver = false;
  21. private bool lvlComp = false;
  22. PlayerHealth health;
  23. public int score;
  24. public int displayScore;
  25. public Text scoreText;
  26. private int inhalers;
  27. private bool onMain = false;
  28.  
  29. private void Start()
  30. {
  31. if (SceneManager.GetActiveScene().name != "Main")
  32. {
  33. health = GameObject.Find("Player").GetComponent<PlayerHealth>();
  34. plCtrl = GameObject.Find("Player").GetComponent<PlayerController>();
  35. }
  36. else
  37. {
  38. onMain = true;
  39. isShowing = true;
  40. GetButtonList();
  41. buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
  42. }
  43. }
  44.  
  45. void Update()
  46. {
  47. if (!onMain && !gameIsOver && !lvlComp && Input.GetKeyDown(KeyCode.Escape))
  48. {
  49. isShowing = !isShowing;
  50. pauseMenu.SetActive(isShowing);
  51. pointer.SetActive(isShowing);
  52. if (buttons == null)
  53. {
  54. GetButtonList();
  55. }
  56. buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
  57. if (isShowing)
  58. {
  59. Time.timeScale = 0;
  60. }
  61. else
  62. {
  63. buttons[pointerLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
  64. pointerLoc = 0;
  65. Time.timeScale = 1;
  66. }
  67. pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
  68.  
  69. }
  70. if (isShowing || gameIsOver || lvlComp)
  71. {
  72. if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.DownArrow))
  73. {
  74. lastLoc = pointerLoc;
  75. pointerLoc++;
  76. if (pointerLoc < maxLoc)
  77. {
  78. pointer.transform.localPosition -= new Vector3(0, 58, 0);
  79. Debug.Log("should move");
  80. }
  81. else
  82. {
  83. pointerLoc = 0;
  84. pointer.transform.localPosition += new Vector3(0, (maxLoc - 1) * 58, 0);
  85. }
  86. buttons[lastLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
  87. buttons[pointerLoc].image.rectTransform.sizeDelta += new Vector2(10, 0);
  88. Debug.Log(buttons[pointerLoc].name);
  89. }
  90. if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow))
  91. {
  92. lastLoc = pointerLoc;
  93. pointerLoc--;
  94. if (pointerLoc < 0)
  95. {
  96. pointerLoc = maxLoc - 1;
  97. pointer.transform.localPosition -= new Vector3(0, (maxLoc - 1) * 58, 0);
  98. }
  99. else
  100. {
  101. pointer.transform.localPosition += new Vector3(0, 58, 0);
  102. }
  103. buttons[lastLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
  104. buttons[pointerLoc].image.rectTransform.sizeDelta += new Vector2(10, 0);
  105. }
  106. if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.KeypadEnter))
  107. {
  108. switch (buttons[pointerLoc].name)
  109. {
  110. case "ButtonContinue": // Continue
  111. Continue();
  112. break;
  113. case "ButtonRestart": // Restart
  114. Restart();
  115. break;
  116. case "ButtonHowToPlay": // How To Play
  117. HowToPlay();
  118. break;
  119. case "ButtonQuit": // Quit
  120. Exit();
  121. break;
  122. case "ButtonNextLevel": // Next Level
  123. NextLevel();
  124. break;
  125. case "ButtonStart":
  126. StartGame();
  127. break;
  128. case "ButtonMainMenu":
  129. GoToMain();
  130. break;
  131. }
  132. }
  133. }
  134. }
  135. public void GoToMain()
  136. {
  137. SceneManager.LoadScene("Main");
  138. }
  139. public void StartGame()
  140. {
  141. SceneManager.LoadScene("Level1");
  142. }
  143.  
  144. public void Continue()
  145. {
  146. pointer.transform.localPosition += new Vector3(0, (pointerLoc) * 58, 0);
  147. buttons[pointerLoc].image.rectTransform.sizeDelta -= new Vector2(10, 0);
  148. pointerLoc = 0;
  149. isShowing = !isShowing;
  150. pauseMenu.SetActive(isShowing);
  151. pointer.SetActive(isShowing);
  152. Time.timeScale = 1;
  153. }
  154. public void Restart()
  155. {
  156. SceneManager.LoadScene(SceneManager.GetActiveScene().name);
  157. Time.timeScale = 1;
  158. }
  159. public void HowToPlay()
  160. {
  161. SceneManager.LoadScene("Tutorial");
  162. }
  163. public void Exit()
  164. {
  165. Application.Quit();
  166. }
  167. public void GameOver()
  168. {
  169. Debug.Log("U ded bro");
  170. gameIsOver = true;
  171. StartCoroutine(DeathTimer());
  172. }
  173. public void LevelCompleted()
  174. {
  175. Debug.Log("Level completed!");
  176. gameIsOver = true;
  177. pointer.SetActive(true);
  178. Time.timeScale = 0;
  179. lvlCompletedScreen.SetActive(true);
  180. buttons = null;
  181. GetButtonList();
  182. buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
  183. pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
  184. score = Mathf.RoundToInt(health.currentHealth);
  185. health.lvlComp = true;
  186. inhalers = health.inhalers;
  187. StartCoroutine(ScoreUpdater());
  188. }
  189. public void NextLevel()
  190. {
  191. SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
  192. Time.timeScale = 1;
  193. }
  194. private void GetButtonList()
  195. {
  196. buttons = GetComponentsInChildren<Button>();
  197. maxLoc = buttons.Length;
  198. }
  199. private IEnumerator ScoreUpdater()
  200. {
  201. while (displayScore < score)
  202. {
  203. displayScore++;
  204. health.ChangeHealth(-1);
  205. scoreText.text = "SCORE: " + displayScore;
  206. yield return new WaitForSecondsRealtime(0.02f);
  207. }
  208. yield return new WaitForSecondsRealtime(0.5f);
  209. if (inhalers > 0)
  210. {
  211. for (int i = 0; i < inhalers; i++)
  212. {
  213. score += 20;
  214. health.addInhalers(-1);
  215. while (displayScore < score)
  216. {
  217. displayScore++;
  218. scoreText.text = "SCORE: " + displayScore;
  219. yield return new WaitForSecondsRealtime(0.02f);
  220. }
  221. yield return new WaitForSecondsRealtime(0.3f);
  222. }
  223. }
  224. }
  225. private IEnumerator DeathTimer()
  226. {
  227. while(!plCtrl.startDying)
  228. {
  229. yield return new WaitForSecondsRealtime(0.1f);
  230. }
  231. yield return new WaitForSecondsRealtime(2.5f);
  232. pointer.SetActive(true);
  233. Time.timeScale = 0;
  234. gameOverMenu.SetActive(true);
  235. buttons = null;
  236. GetButtonList();
  237. buttons[0].image.rectTransform.sizeDelta = new Vector2(250, 48);
  238. pointer.transform.localPosition = buttons[0].transform.localPosition - new Vector3(160, 42, 0);
  239. }
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement