示例#1
0
    void SpawnObject()
    {
        Building building = buildings[index];

        if (LevelProgression.getLevel() >= building.lvlReq &&
            LevelProgression.getWood() >= building.woodCost &&
            LevelProgression.getStone() >= building.stoneCost &&
            LevelProgression.getSeeds() >= building.seedCost) // Check if buildable
        {
            // Update game values
            LevelProgression.AddCivPoints(building.civVal);
            LevelProgression.AddPollPoints(building.polVal);
            LevelProgression.AddSeeds(-1 * building.seedCost);
            LevelProgression.AddWood(-1 * building.woodCost);
            LevelProgression.AddStone(-1 * building.stoneCost);

            // Calc location to spawn
            GameObject prefab          = building.obj;
            Vector3    playerPos       = player.transform.position;
            Vector3    playerDirection = player.transform.forward;
            Vector3    spawnPos        = playerPos + playerDirection * spawnDistance;
            spawnPos.Set(spawnPos.x, spawnPos.y, spawnPos.z);

            // Spawn new object
            Instantiate(prefab, spawnPos, prefab.transform.rotation);
        }
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        print(LevelProgression.getLevel());
        switch (LevelProgression.getLevel())
        {
        case 5:         // Enable storm
            if (!done)
            {
                if (player.GetComponent <SpawnStorm>().enabled == false)
                {
                    player.GetComponent <SpawnStorm>().enabled = true;
                    LevelProgression.AddPollPoints(5);
                }

                if (timer >= 30f)
                {
                    // Disable storm
                    player.GetComponent <SpawnStorm>().enabled = false;
                    sky.clearFlags = CameraClearFlags.Skybox;
                    sun.color      = new Color(1f, 0.9568627450980392f, 0.8392156862745098f);
                    timer          = 0f;
                    done           = true;
                }
                else
                {
                    timer += Time.deltaTime;
                }
                print(timer);
            }
            break;

        case 6:         // Reset done
            done = false;

            // Disable storm if level up occurs before animation is finished
            if (player.GetComponent <SpawnStorm>().enabled == true)
            {
                // Disable storm
                player.GetComponent <SpawnStorm>().enabled = false;
                sky.clearFlags = CameraClearFlags.Skybox;
                sun.color      = new Color(1f, 0.9568627450980392f, 0.8392156862745098f);
                timer          = 0f;
            }
            break;

        case 10:        // Enable tornado
            if (!done)
            {
                if (player.GetComponent <SpawnTornado>().enabled == false)
                {
                    player.GetComponent <SpawnTornado>().enabled = true;
                    LevelProgression.AddPollPoints(5);
                }

                if (timer >= 60f)
                {
                    // Disable storm
                    player.GetComponent <SpawnTornado>().enabled = false;
                    sky.clearFlags = CameraClearFlags.Skybox;
                    sun.color      = new Color(1f, 0.9568627450980392f, 0.8392156862745098f);
                    timer          = 0f;
                    done           = true;
                }
                else
                {
                    timer += Time.deltaTime;
                }
                print(timer);
            }
            break;

        case 11:         // Reset done
            done = false;

            // Disable tornado if level up occurs before animation is finished
            if (player.GetComponent <SpawnTornado>().enabled == true)
            {
                // Disable storm
                player.GetComponent <SpawnTornado>().enabled = false;
                sky.clearFlags = CameraClearFlags.Skybox;
                sun.color      = new Color(1f, 0.9568627450980392f, 0.8392156862745098f);
                timer          = 0f;
            }
            break;

        case 15:        // Enable tsunami
            break;

        case 16:         // Reset done
            done = false;
            break;

        case 20:        // Enable volcano
            if (!done)
            {
                if (player.GetComponent <SpawnVolcano>().enabled == false)
                {
                    player.GetComponent <SpawnVolcano>().enabled = true;
                    LevelProgression.AddPollPoints(10);
                }

                if (timer >= 30f)
                {
                    // Disable storm
                    player.GetComponent <SpawnVolcano>().enabled = false;
                    timer = 0f;
                    done  = true;
                }
                else
                {
                    timer += Time.deltaTime;
                }
                print(timer);
            }
            break;
        }
    }