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;
                    }
                }
            }
        }
    }
Ejemplo n.º 2
0
    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;
        }
    }
Ejemplo n.º 3
0
    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");
        }
    }