public State(EnemyWave wave) { this.wave = wave; index = 0; Debug.Assert(wave.spawnSequences.Length > 0, "Empty wave!"); sequence = wave.spawnSequences[0].Begin(); }
public void NextWave() { if (index != scenario.waves.Count - 1) { wave = scenario.waves[++index].Begin(); } }
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(); }
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); }
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); }
public State(EnemyWave wave) { this.wave = wave; index = 0; sequence = wave.spawnSequences[0].Begin(); }