Example #1
0
    public void GenerateLevel(int levelindicator)
    {
        DeleteLevel();

        layers = levelindicator + 1;
        rooms  = new GameObject[layers + 1];

        for (int i = 0; i < layers; i++)
        {
            rooms[i] = Instantiate(roomArray[Random.Range(0, roomArray.Length)], transform, false);
            rooms[i].GetComponent <RoomController>().DeactivateDoors(i);
            rooms[i].transform.localPosition = new Vector3(0.0f, 5.0f * (i + 1), 0.0f);
        }

        rooms[layers] = Instantiate(endRoom, transform, false);
        rooms[layers].transform.localPosition = new Vector3(0.0f, 5.0f * (layers + 1), 0.0f);

        GetRoomControllers(rooms.Length + 1);

        for (int i = 0; i < controllers.Length - 1; i++)
        {
            PortalManager.MergeDoors(controllers[i].exitDoor, controllers[i + 1].entryDoor);
        }
    }
Example #2
0
    private void OnTriggerEnter(Collider other)
    {
        if (!returned)
        {
            returned = true;
            PortalManager.CloseAllDoors();

            RoomTower tower = GameObject.FindGameObjectWithTag("RoomStack").GetComponent <RoomTower>();

            if (!finished)
            {
                TextMessage.AddMessage((8 - completed) + " pieces left to collect, go back.");
                if (completed != 0)
                {
                    tower.GenerateLevel(completed);
                }
            }
            else
            {
                // Player won the game.
                PortalManager.MergeDoors(tower.GetStartRoomDoor(), tower.GetStartRoomDoor());
            }
        }
    }