/* @ 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)); * } */ }