Exemplo n.º 1
0
    // Use this for initialization
    void Start()
    {
        spawnPoint = this.gameObject.transform;

        blockGenerator = GameObject.Find("BasePlatform").GetComponent <BlockGenerator>(); //Same with this one
        spawnManager   = GameObject.Find("_Manager").GetComponent <SpawnManager>();       //Change the reference to this object later

        if (blockGenerator.LastBlock == spawnID)
        {
            //SET UP PORTAL ROOM HERE
            GameObject newPortalObject = Instantiate(_Portal, spawnPoint.position, spawnPoint.rotation) as GameObject;
            newPortalObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
            newPortalObject.transform.rotation = Quaternion.Euler(0, 135, 0);
            GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
            newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
            newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            Debug.Log("Setting up portal here: " + blockGenerator.LastBlock);
        }
        else //enemy = 0, boss = 1, village = 2, resource = 3, event = 4, shop = 5, jailednpc = 6, puzzle = 7, pet room = 8, empty = 9, farm = 10
        {
            //EVERYTHING ELSE HERE
            getRoom = spawnManager.RoomType;

            PlayerInteract playerInteract = GameObject.Find("PickUpRange").GetComponent <PlayerInteract>();

            while (getRoom == 6)
            {
                if (playerInteract.AllVillagersUnlocked() == true)
                {
                    getRoom = spawnManager.RoomType;
                }
                else
                {
                    break;
                }
            }

            if (getRoom == 0) //ENEMY ROOM
            {
                int amountOfEnemies = Random.Range(3, 5);

                GameObject.Find("Captain").GetComponent <BarController>().enemyCount += amountOfEnemies;

                int chooseEnemy = Random.Range(0, _Enemies.Length);

                for (int i = 0; i < amountOfEnemies; i++)
                {
                    GameObject newObject = Instantiate(_Enemies[chooseEnemy], spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newObject.transform.position = new Vector3(spawnPoint.position.x + Random.Range(-10, 11), 1, spawnPoint.position.z + Random.Range(-10, 11));
                    spawnManager.enemyCount++;
                }

                GameObject newWallObject = Instantiate(_WallGenerator[Random.Range(0, 5)], spawnPoint.position, spawnPoint.rotation) as GameObject;
                newWallObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 1) //BOSS ROOM
            {
                int chooseBoss = Random.Range(0, _Bosses.Length);

                GameObject newBossObject = Instantiate(_Bosses[chooseBoss], spawnPoint.position, spawnPoint.rotation) as GameObject;
                newBossObject.transform.position = new Vector3(spawnPoint.position.x, 2, spawnPoint.position.z - 0.5f);
                spawnManager.bossCount++;

                GameObject newPlatformObject = Instantiate(_BossPlatform, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newPlatformObject.transform.position = new Vector3(spawnPoint.position.x, 0.5f, spawnPoint.position.z);

                int amountOfEnemies = Random.Range(3, 5);

                GameObject.Find("Captain").GetComponent <BarController>().enemyCount += amountOfEnemies;

                int chooseEnemy = Random.Range(0, _Enemies.Length);

                for (int i = 0; i < amountOfEnemies; i++)
                {
                    GameObject newObject = Instantiate(_Enemies[chooseEnemy], spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newObject.transform.position = new Vector3(spawnPoint.position.x + Random.Range(-10, 11), 1, spawnPoint.position.z + Random.Range(-10, 11));
                    spawnManager.enemyCount++;
                }
            }
            else if (getRoom == 2) //VILLAGE ROOM
            {
                GameObject newVillageObject = Instantiate(_Village, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVillageObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
            }
            else if (getRoom == 3) //RESOURCE ROOM
            {
                int mineralsAmount = Random.Range(5, 10);
                int treesAmount    = Random.Range(5, 10);

                //Here we want to spawn the minerals
                for (int i = 0; i < mineralsAmount; i++)
                {
                    int posX = GiveMePosition(1, 4);
                    int posY = GiveMePosition(1, 4);

                    GameObject newMineralObject = Instantiate(_Mineral, spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newMineralObject.transform.position = new Vector3(spawnPoint.position.x + posX, 1, spawnPoint.position.z + posY);
                    spawnManager.rockCount++;
                }

                //Here spawn the trees (they will extend more than the minerals)
                for (int i = 0; i < treesAmount; i++)
                {
                    int posX = GiveMePosition(5, 10);
                    int posY = GiveMePosition(5, 10);

                    GameObject newTreeObject = Instantiate(_Tree, spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newTreeObject.transform.position = new Vector3(spawnPoint.position.x + posX, 1, spawnPoint.position.z + posY);
                    spawnManager.treeCount++;
                }

                //Spawn Vegetation
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);

                //Spawn Mysterious Old Man NPC
                GameObject newNpcObject = Instantiate(_CreepyOldMan, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newNpcObject.transform.position = new Vector3(spawnPoint.position.x, 1, spawnPoint.position.z);

                GameObject newNpcObject2 = Instantiate(_NPC[Random.Range(0, _NPC.Length)], spawnPoint.position, spawnPoint.rotation) as GameObject;
                newNpcObject2.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
            }
            else if (getRoom == 4) //EVENT ROOM
            {
                GameObject newEventObject = Instantiate(_Event, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newEventObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 5) //SHOP ROOM
            {
                GameObject newShopObject = Instantiate(_Shop, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newShopObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 6) //CRAFT ROOM
            {
                GameObject newCraftObject = Instantiate(_Craft, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newCraftObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 7) //JAILED NPC
            {
                GameObject newJailedNpc = Instantiate(_JailedNpc, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newJailedNpc.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 8) //PUZZLE ROOM
            {
                int choosePuzzle = Random.Range(0, 3);

                GameObject newPuzzleObject = Instantiate(_Puzzle[choosePuzzle], spawnPoint.position, spawnPoint.rotation) as GameObject;
                newPuzzleObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
            }
            else if (getRoom == 9) //EMPTY ROOM
            {
                //GameObject newPetObject = Instantiate(_PetShop, spawnPoint.position, spawnPoint.rotation) as GameObject;
                //newPetObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);

                float randomChance = Random.value;
                if (randomChance >= 0.5f)
                {
                    GameObject newObject = Instantiate(_Object[Random.Range(0, _Object.Length)], spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);
                }
            }
            else if (getRoom == 10) // EMPTY ROOM + ENEMIES
            {
                int amountOfEnemies = Random.Range(3, 5);

                int chooseEnemy = Random.Range(0, _Enemies.Length);

                GameObject.Find("Captain").GetComponent <BarController>().enemyCount += amountOfEnemies;

                for (int i = 0; i < amountOfEnemies; i++)
                {
                    GameObject newObject = Instantiate(_Enemies[chooseEnemy], spawnPoint.position, spawnPoint.rotation) as GameObject;
                    newObject.transform.position = new Vector3(spawnPoint.position.x + Random.Range(-10, 11), 1, spawnPoint.position.z + Random.Range(-10, 11));
                    spawnManager.enemyCount++;
                }

                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
            else if (getRoom == 11) //NPC ROOM
            {
                GameObject newNpcObject = Instantiate(_NPC[Random.Range(0, _NPC.Length)], spawnPoint.position, spawnPoint.rotation) as GameObject;
                newNpcObject.transform.position = new Vector3(spawnPoint.position.x + 0, 1, spawnPoint.position.z + 0);

                GameObject newVegetationObject = Instantiate(_Vegetation, spawnPoint.position, spawnPoint.rotation) as GameObject;
                newVegetationObject.transform.position = new Vector3(spawnPoint.position.x + 0, 0.5f, spawnPoint.position.z + 0);
                newVegetationObject.transform.rotation = Quaternion.Euler(0, -45, 0);
            }
        }
    }