예제 #1
0
 public State(EnemyWave wave)
 {
     this.wave = wave;
     index     = 0;
     Debug.Assert(wave.spawnSequences.Length > 0, "Empty wave!");
     sequence = wave.spawnSequences[0].Begin();
 }
예제 #2
0
 public void NextWave()
 {
     if (index != scenario.waves.Count - 1)
     {
         wave = scenario.waves[++index].Begin();
     }
 }
예제 #3
0
 public State(GameScenario scenario)
 {
     this.scenario    = scenario;
     cycle            = 0;
     index            = 0;
     waveIsInProgress = false;
     Debug.Assert(scenario.waves.Count > 0, "Empty scenario!");
     wave = scenario.waves[0].Begin();
 }
예제 #4
0
 public float Progress(float deltaTime)
 {
     deltaTime = sequence.Progress(deltaTime);
     while (deltaTime >= 0f)
     {
         if (++index >= wave.spawnSequences.Length)
         {
             return(deltaTime);
         }
         sequence  = wave.spawnSequences[index].Begin();
         deltaTime = sequence.Progress(deltaTime);
     }
     return(-1f);
 }
예제 #5
0
 public float Progress(float deltaTime)
 {
     deltaTime = sequence.Progress(deltaTime);
     //while the sequence isn't finished
     while (deltaTime >= 0f)
     {
         //No more waves to spawn
         if (++index >= wave.spawnSequences.Length)
         {
             return(deltaTime);
         }
         sequence  = wave.spawnSequences[index].Begin();
         deltaTime = sequence.Progress(deltaTime);
     }
     return(-1);
 }
예제 #6
0
 public State(EnemyWave wave)
 {
     this.wave = wave;
     index     = 0;
     sequence  = wave.spawnSequences[0].Begin();
 }