private void OnLevelStart(LevelStartMessage obj)
 {
     StartCoroutine(CycleShields());
 }
 private void OnLevelStartMessage(LevelStartMessage obj)
 {
     _gameOver = false;
     SetScore(totalScore);
 }
 private void OnLevelStart(LevelStartMessage obj)
 {
     enabled = true;
 }
 private void OnLevelStart(LevelStartMessage obj)
 {
     _waveStarted = false;
     ResetAllProjectiles();
 }
 private void OnLevelStart(LevelStartMessage obj)
 {
     _isScoring = false;
     _isGameOver = false;
     var level = Levels[_currentLevel];
     _currentWaveCount = 0;
     BGM = level.BGM;
     SetupBGM();
     Background.material = level.Background;
     if (!IsEndless)
     {
         CurrentWave = Levels[_currentLevel].Waves[_currentWaveCount];
     }
     else
     {
         CurrentWave = Levels[_currentLevel].Waves[2];
     }
     SendWaveMessage();
 }
 private void OnLevelStart(LevelStartMessage obj)
 {
     if (!_isStarted) return;
     ResetRailDamage();
 }