// Update is called once per frame void Update() { enemyCooldown = enemyCooldown == 0 ? 0 : enemyCooldown - 1; if (!loaded) { List <Enemy> temp = new List <Enemy>(enemies); for (int i = 0; i < temp.Count; i++) { if (temp[i].Progress()) { if (isBase) { enemies.Remove(temp[i]); GameObject.FindWithTag("GameController").GetComponent <GameManager>().DamageBase(1); } else { Room destRoom = upRooms[temp[i].GetPathTo()]; if (destRoom.isBase) { enemies.Remove(temp[i]); temp[i].SetPath(5 - temp[i].GetPathTo(), 1); destRoom.AddEnemy(temp[i]); temp[i].ResetProgress(); } else { int tries = 1000; while (true && tries-- > 0) { int r = Random.Range(0, 3); if (destRoom.GetUpRoom(r)) { enemies.Remove(temp[i]); temp[i].SetPath(5 - temp[i].GetPathTo(), r); destRoom.AddEnemy(temp[i]); temp[i].ResetProgress(); break; } } if (tries < 0) { Debug.Log("failure move"); } } } } } //shot foreach (SentryController s in sentries) { if (enemies.Count > 0) { if (s.ShootAt(Vector3.zero)) { enemies[0].Damage(5); if (!enemies[0].IsAlive()) { player.GetComponent <PlayerController>().ChangeAmmo(enemies[0].GetPrize()); enemies.RemoveAt(0); } } } } } else { if (Input.GetKeyDown(KeyCode.E) && player.GetComponent <PlayerController>().GetAmmo() >= SentryController.GetPrice()) { GetComponent <AudioSource>().PlayOneShot(sentryBuildSound, 1f); player.GetComponent <PlayerController>().ChangeAmmo(-SentryController.GetPrice()); sentries.Add(Instantiate(sentry, player.transform.position, Quaternion.identity).GetComponent <SentryController>()); minimap.SetSentry(layer, col); } Enemy target = null; for (int i = 0; i < enemies.Count; i++) { if (enemies[i].IsCollected()) { Destroy(enemies[i].gameObject); player.GetComponent <PlayerController>().ChangeAmmo(enemies[i].GetPrize()); enemies.RemoveAt(i--); } else { if (enemies[i].IsAlive() && !target) { target = enemies[i]; } enemies[i].Move(); } } foreach (SentryController s in sentries) { if (target) { s.ShootAt(target.transform.position); } } } minimap.SetEnemy(layer, col, enemies.Count != 0); }
// Update is called once per frame void Update() { int playerHealth = player.GetHealth(); int ammo = player.GetAmmo(); int currLayer = boardManager.GetCurrLayer(); int lowest = boardManager.GetLowestLayer(); uiText.text = "Base Health: " + baseHealth + "\nPlayer Health: " + playerHealth + "\nAmmo: " + ammo + "\nSentry Price: " + SentryController.GetPrice() + "\nCurrent Layer: " + currLayer + "\nLowest Layer: " + lowest; if (baseHealth <= 0 || playerHealth <= 0) { GameOver(); } }