Exemple #1
0
    /* @ Param: None
     * @ Pre: None
     * @ Post: Initialize Variables
     */
    void Start()
    {
        /*
         * TO MAKE THE SPAWNER NOT DEPEND ON LEVEL, COMMENT OUT THE TOP LINE
         * AND UNCOMMENT THE LINE RIGHT BENEATH IT SO THE LEVEL IS ALWAYS SET TO 11
         */

        levelNumber = gameObject.GetComponent <CharacterController2D>().GetLevelCurrentlyOn();
        //levelNumber = 11;

        timeBetweenWaves = CalculateTimeBetweenWaves();

        //timeBetweenWaves = 1f;

        //initialize the wave countdown max
        waveCountdown = timeBetweenWaves;

        enemiesPerWave = CalculateEnemiesPerWave();

        waveForLevel = new Wave();

        enemyIntroductionOrder = new Stack <string>();

        shuffle(easyEnemies);
        shuffle(mediumEnemies);
        shuffle(hardEnemies);

        for (int x = 0; x < hardEnemies.Length; x++)
        {
            enemyIntroductionOrder.Push(hardEnemies[x]);
        }
        for (int x = 0; x < mediumEnemies.Length; x++)
        {
            enemyIntroductionOrder.Push(mediumEnemies[x]);
        }
        for (int x = 0; x < easyEnemies.Length; x++)
        {
            enemyIntroductionOrder.Push(easyEnemies[x]);
        }


        waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());

        if (levelNumber == 3 || levelNumber == 4)
        {
            waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
        }
        else if (levelNumber == 5 || levelNumber == 6)
        {
            waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
        }
        if (levelNumber == 7 || levelNumber == 8)
        {
            waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
        }
        if (levelNumber == 9 || levelNumber == 10)
        {
            waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
        }
        else if (levelNumber >= 11)
        {
            waveForLevel.AddEasyEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddMediumEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
            waveForLevel.AddHardEnemiesAvailableForWaves(enemyIntroductionOrder.Pop());
        }

        //initialize array of enemies
        Enemyarray = new GameObject[] {
            Mite, Sticker, Spitter, Demolisher, Exploder, Nest
        };

        screenAspect = (float)Screen.width / (float)Screen.height;
        cameraHeight = mainCamera.orthographicSize;
        cameraWidth  = screenAspect * cameraHeight;



        //Code for testing totals of the formulas added together

        /*
         * for (int x = 1; x < 9; x++) {
         *  Debug.Log("X = " + x + ": " + System.Math.Round((PercentageEasyEnemiesBeforeInfinity(x) + PercentageHardEnemiesBeforeInfinity(x) + PercentageMediumEnemiesBeforeInfinity(x)),2));
         *
         * }
         * for (int x = 9; x < 21; x++) {
         *  Debug.Log("X = " + x + ": " + System.Math.Round(((PercentageEasyEnemiesAtInfinity(x) + PercentageHardEnemiesAtInfinity(x) + PercentageMediumEnemiesAtInfinity(x))), 2));
         * }
         */

        //Code for testing time between waves as a function of level

        /*
         * for (int x = 1; x < 21; x++) {
         *  Debug.Log("X = " + x + ", Enemies Per Wave: " + CalculateEnemiesPerWave(x));
         * }
         * for (int x = 1; x < 21; x++)
         * {
         *  Debug.Log("X = " + x + ", TimeBetweenWaves: " + CalculateTimeBetweenWaves(x));
         * }
         */
    }