IEnumerator TurnLoop() { while (true) { yield return(null); for (int team = 0; team < 16; team++) { if (teamRoster[team].Count == 0) { continue; } StartCoroutine(AIManager.update(team)); while (!AIManager.turnOver(team)) { yield return(null); } Debug.Log("turn over! " + teamsLeft()); if (teamsLeft() == 1 && teamRoster[0].Count == 0) { if (EndPortal.AllPlayersExtracted()) { GameManager.NextLevel(); yield break; } else { GameManager.GameOver(); yield break; } } } } }
private void handleStopTrigger() { if (collisions.Count <= 0) { return; } SpeedPad sp = collisions.Peek().GetComponent <SpeedPad>(); if (sp) { direction = sp.direction; return; } EndPortal ep = collisions.Peek().GetComponent <EndPortal>(); if (ep) { finished = true; moving = false; audioManager.endPortal.Play(); levelController.BallEnd(ballNumber - 1); return; } }
private void SpawnAgents() { if (playerEntity != null) { // The agent was created, so we can keep going // Avoid overloading if (MaxNumberOfEnemies > (instantiatedRooms.Count - 2)) { MaxNumberOfEnemies = (instantiatedRooms.Count - 2); } // Spawn enemies for (int i = 0; i < MaxNumberOfEnemies; i++) { Transform spawnpoint = null; int f = 0; while (spawnpoint == null && f < 20) { spawnpoint = instantiatedRooms[UnityEngine.Random.Range(1, instantiatedRooms.Count - 2)].getRandomSpawnPoint(); f++; } if (spawnpoint != null) { GameObject enemy = Instantiate(enemyPrefab, spawnpoint.position, spawnpoint.rotation); instantiatedObjects.Add(enemy); } } // Spawn end portal Transform endSpawn = endingRoom.GetEndPortal(); EndPortal portal = Instantiate(EndPortal, endSpawn.position, endSpawn.rotation, EndPortal.transform).GetComponent <EndPortal>(); portal.SetPlayer(playerEntity.transform); instantiatedObjects.Add(portal.gameObject); LoadingScreen.SetActive(false); StartGame(playerEntity); } else { Debug.LogError("No player in scene, caused probably by a generation error"); } }