Files
UnityRoguelike/Assets/Scripts/GameManager.cs
Tommy Parnell ff3692e87a init
2015-04-12 22:33:50 -04:00

99 lines
2.3 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
public class GameManager : MonoBehaviour
{
public float TurnDelay = .1f;
public float LevelStartDelay = 2f;
public static GameManager Instance = null;
public Boardmanager BoardScript;
public int PlayerFoodPoints = 100;
[HideInInspector] public bool PlayersTurn = true;
private Text levelText;
private GameObject levelImage;
private int Level = 1;
private IList<Enemy> enemies;
private bool enemiesMoving;
private bool doingSetup;
void Awake()
{
if (Instance == null)
{
Instance = this;
}
else
{
Destroy(this);
}
DontDestroyOnLoad(gameObject);
enemies = new List<Enemy>();
BoardScript = GetComponent<Boardmanager>();
InitGame();
}
void OnLevelWasLoaded(int index)
{
Level++;
InitGame();
}
void InitGame()
{
doingSetup = true;
levelImage = GameObject.Find("LevelImage");
levelText = GameObject.Find("LevelText").GetComponent<Text>();
levelText.text = "Day " + Level;
levelImage.SetActive(true);
Invoke("HideLevelImage", LevelStartDelay);
enemies.Clear();
BoardScript.SetupScene(Level);
}
private void HideLevelImage()
{
levelImage.SetActive(false);
doingSetup = false;
}
public void GameOver()
{
levelText.text = "After " + Level + " days, you starved.";
levelImage.SetActive(true);
enabled = false;
}
void Update()
{
if (PlayersTurn || enemiesMoving || doingSetup) return;
StartCoroutine(MoveEnemies());
}
public void AddEnemyToList(Enemy script)
{
enemies.Add(script);
}
IEnumerator MoveEnemies()
{
enemiesMoving = true;
yield return new WaitForSeconds(TurnDelay);
if (enemies.Count == 0)
{
yield return new WaitForSeconds(TurnDelay);
}
foreach (var enemy in enemies)
{
enemy.MoveEnemy();
yield return new WaitForSeconds(enemy.MoveTime);
}
PlayersTurn = true;
enemiesMoving = false;
}
}