public void RepeatStage() { CurrentWaveNumber = 0; EnemySpawner.StopSpawning(); CurrentWaveEnemies.DestroyAll(); if (CurrentStage != null) { StartCurrentStage(); } }
private void HandleAlienDeath(AlienEnemy killedAlien) { CurrentWaveEnemies.Remove(killedAlien); killedAlien.UnregisterOnAlienDeathAction(HandleAlienDeath); OnAlienEnemyKilled(killedAlien); if (IsAnyAlienLeft() == false) { if (CurrentStageWaves.HasAnyElement() == true) { ResetFormationGrid(); PrepareNewWave(); } else { HandleStageFinished(); } } }
private void HandleNewAlienCreated(AlienEnemy newAlien) { CurrentWaveEnemies.Add(newAlien); newAlien.RegisterOnAlienDeathAction(HandleAlienDeath); }