Trying to create timed events. I'm new at this.

Hello,

I hope that someone can help me out. I’m pretty new at all of this, and I’m having trouble getting my enemy types to spawn at a specified time. I’m turning on what I’m calling “Phases” by referencing my in game timer, and using “if (ScoreTimer.Current == “00:10”)” The problem I’m having, is when I try to call the same “if” command a second time, it no longer works. I am new to Java Script and coding, so I’m assuming that there’s something I’m missing, where I cant use the same command twice within the Update Function. Can anyone help out? Sorry for the large script.

// Spawning Variables 
var i : int;
var spawnWait : float;
var startWait : float;
var waveWait : float;
var asteroidSpawnValues : Vector3;
var asteroidSpawnPosition : Vector3;
var asteroidSpawnRotation : Quaternion;

//Spawning Phases
var phaseOne;
var phaseTwo;
var phaseThree;
var phaseFour;
var phaseFive;
var phaseSix;
var phaseSeven;
var phaseEight;
var phaseNine;
var phaseTen;

// Asteroid Counts 
var asteroidSlowCount : int;
var asteroidMedCount : int;
var asteroidFastCount : int;

// Asteroid Types
var asteroidSlow : GameObject;
var asteroidMed : GameObject;
var asteroidFast : GameObject;
var Player : GameObject;

var bossSpawnValues : Vector3;
var bossSpawnPosition : Vector3;
var bossSpawnRotation : Quaternion;

// Boss Counts 
var IcePlanetCount : int;

// Boss Types
var icePlanet : GameObject;
var firePlanet : GameObject;
var waterPlanet : GameObject;



function Start () 
{

	phaseOne = true;
	
	StartCoroutine (SpawnWaves ());
}

function Update () 
{
	
	if (ScoreTimer.Current == "00:10")
	{
		phaseOne = false;
		phaseTwo = true;

	}

        if (ScoreTimer.Current == "00:10")
	{
		phaseTwo = false;
		phaseThree = true;

	}


	
	//transform.Translate(Vector3.speed * Time.deltaTime);
	if (EarthLogic.ShowGameOver)
	{
		phaseOne = false;
		phaseTwo = false;
		phaseThree = false;
		phaseFour = false;

	}
	
}


function SpawnWaves ()
{



		yield WaitForSeconds (startWait);

		{
			while(phaseOne == true)
			{
			
				//Spawn Asteroids SLOW!!!
				for (i = 0; i < asteroidSlowCount; i++)
				{
					asteroidSpawnPosition = new Vector3 (Random.Range (-asteroidSpawnValues.x, asteroidSpawnValues.x), asteroidSpawnValues.y, asteroidSpawnValues.z);
					asteroidSpawnRotation = new Quaternion ();
					Instantiate (asteroidSlow, asteroidSpawnPosition, asteroidSpawnRotation);
					yield WaitForSeconds (spawnWait);
				}

				
				
			}
			
			while(phaseTwo == true)
			{
						
				//Spawn Planet ICE!!!
				for (i = 0; i < IcePlanetCount; i++)
				{
					bossSpawnPosition = new Vector3 (Random.Range (-bossSpawnValues.x, bossSpawnValues.x), bossSpawnValues.y, bossSpawnValues.z);
					bossSpawnRotation = new Quaternion ();
					Instantiate (icePlanet, bossSpawnPosition, bossSpawnRotation);
					yield WaitForSeconds (spawnWait);
				  	phaseTwo = false;
				}
	
			
     		}
     		
     		
     		while(phaseThree == true)
			{
						
				//Spawn Asteroids MEDIUM!!!
				for (i = 0; i < asteroidMedCount; i++)
				{
					asteroidSpawnPosition = new Vector3 (Random.Range (-asteroidSpawnValues.x, asteroidSpawnValues.x), asteroidSpawnValues.y, asteroidSpawnValues.z);
					asteroidSpawnRotation = new Quaternion ();
					Instantiate (asteroidMed, asteroidSpawnPosition, asteroidSpawnRotation);
					yield WaitForSeconds (spawnWait);
				}
					
				//Spawn Asteroids FAST!!!
				for (i = 0; i < asteroidFastCount; i++)
				{
					asteroidSpawnPosition = new Vector3 (Random.Range (-asteroidSpawnValues.x, asteroidSpawnValues.x), asteroidSpawnValues.y, asteroidSpawnValues.z);
					asteroidSpawnRotation = new Quaternion ();
					Instantiate (asteroidFast, asteroidSpawnPosition, asteroidSpawnRotation);
					yield WaitForSeconds (spawnWait);
				}
	
			
     		}
			
			
			
		yield WaitForSeconds (waveWait);
			
	    }
  		


}

For me, when doing timer events and such, I always keep the timer value as a float, and simply check if it’s under said value, then increase on the phase value. For example…

float timer = 10.0f;
int phase = 1;

//more useful coding stuff here

switch(phase)
{
case 1:
    if(timer <= 5)
    {
        //spawn, create, etc. Your coroutine has this covered, so no worries!
        phase++;
    }
    break;
case 2:
    if(timer <= 2)
    {
        //spawn, create, etc. Your coroutine has this covered, so no worries!
        phase++;
    }
    break;
}