Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.SceneManagement;
  3. using System.Collections;
  4.  
  5. namespace Completed
  6. {
  7. using System.Collections.Generic;
  8. using UnityEngine.UI;
  9.  
  10. public class GameManager : MonoBehaviour
  11. {
  12. public float levelStartDelay = 2f;
  13. public float turnDelay = 0.1f;
  14. public int playerFoodPoints = 100;
  15. public static GameManager instance = null;
  16. [HideInInspector] public bool playersTurn = true;
  17.  
  18.  
  19. private Text levelText;
  20. private GameObject levelImage;
  21. private BoardManager boardScript;
  22. private int level = 1;
  23. private List<Enemy> enemies;
  24. private bool enemiesMoving;
  25. private bool doingSetup = true;
  26.  
  27.  
  28.  
  29.  
  30. void Awake()
  31. {
  32.  
  33. if (instance == null)
  34.  
  35.  
  36. instance = this;
  37.  
  38.  
  39. else if (instance != this)
  40.  
  41.  
  42.  
  43.  
  44. DontDestroyOnLoad(gameObject);
  45.  
  46.  
  47. enemies = new List<Enemy>();
  48.  
  49.  
  50. boardScript = GetComponent<BoardManager>();
  51.  
  52.  
  53. InitGame();
  54. }
  55.  
  56.  
  57. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
  58. static public void CallbackInitialization()
  59. {
  60.  
  61. SceneManager.sceneLoaded += OnSceneLoaded;
  62. }
  63.  
  64.  
  65. static private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
  66. {
  67. instance.level++;
  68. instance.InitGame();
  69. }
  70.  
  71.  
  72.  
  73. void InitGame()
  74. {
  75.  
  76. doingSetup = true;
  77.  
  78.  
  79. levelImage = GameObject.Find("LevelImage");
  80.  
  81.  
  82. levelText = GameObject.Find("LevelText").GetComponent<Text>();
  83.  
  84.  
  85. levelText.text = "Day " + level;
  86.  
  87.  
  88. levelImage.SetActive(true);
  89.  
  90.  
  91. Invoke("HideLevelImage", levelStartDelay);
  92.  
  93.  
  94. enemies.Clear();
  95.  
  96.  
  97. boardScript.SetupScene(level);
  98.  
  99. }
  100.  
  101.  
  102.  
  103. void HideLevelImage()
  104. {
  105.  
  106. levelImage.SetActive(false);
  107.  
  108.  
  109. doingSetup = false;
  110. }
  111.  
  112.  
  113. void Update()
  114. {
  115.  
  116. if(playersTurn || enemiesMoving || doingSetup)
  117.  
  118.  
  119. return;
  120.  
  121.  
  122. StartCoroutine (MoveEnemies ());
  123. }
  124.  
  125.  
  126. public void AddEnemyToList(Enemy script)
  127. {
  128.  
  129. enemies.Add(script);
  130. }
  131.  
  132.  
  133.  
  134. public void GameOver()
  135. {
  136.  
  137. levelText.text = "After " + level + " days, you starved.";
  138.  
  139.  
  140. levelImage.SetActive(true);
  141.  
  142.  
  143. enabled = false;
  144. }
  145.  
  146.  
  147. IEnumerator MoveEnemies()
  148. {
  149.  
  150. enemiesMoving = true;
  151.  
  152.  
  153. yield return new WaitForSeconds(turnDelay);
  154.  
  155.  
  156. if (enemies.Count == 0)
  157. {
  158.  
  159. yield return new WaitForSeconds(turnDelay);
  160. }
  161.  
  162.  
  163. for (int i = 0; i < enemies.Count; i++)
  164. {
  165.  
  166. enemies[i].MoveEnemy ();
  167.  
  168.  
  169. yield return new WaitForSeconds(enemies[i].moveTime);
  170. }
  171.  
  172. playersTurn = true;
  173.  
  174.  
  175. enemiesMoving = false;
  176. }
  177. }
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement