public void ClosePanel() { if (_gameOver.activeSelf) { if (_playerObj.GetCountLives() > 0) { _fieldObj.DeleteTrack(); _gameOverObj.ClosePanel(); _playerObj.Destroy(); _playerObj.Init(); _playerObj.UpdateSelfCrosed(); _landEnemyObj.Destroy(); _landEnemyObj.Init(); _timerObj.UpdateTime(); } else { _gameOverObj.ClosePanel(); _fieldObj.Destroy(); _fieldObj.Init(); _fieldObj.FillTrackArea(_seaEnemies); _playerObj.Destroy(); _playerObj.Init(); _playerObj.UpdateSelfCrosed(); _playerObj.SetCountLives(3); _landEnemyObj.Destroy(); _landEnemyObj.Init(); for (int i = _seaEnemies.Count - 1; i >= 0; i--) { _seaEnemies[i].IsHitTrackOrXonix(); if (_seaEnemies.Count > 1) { _seaEnemies[i].Destroy(); _seaEnemies.RemoveAt(i); } } _timerObj.UpdateTime(); _fieldObj.SetScore(0); } } if (_nextLevel.activeSelf) { _fieldObj.Destroy(); _fieldObj.Init(); _fieldObj.FillTrackArea(_seaEnemies); _playerObj.Destroy(); _playerObj.Init(); _playerObj.AddCountLives(1); _landEnemyObj.Destroy(); _landEnemyObj.Init(); SeaEnemy seaEnemyObj = new SeaEnemy(_seaEnemy, _fieldObj); _seaEnemies.Add(seaEnemyObj); foreach (SeaEnemy seaEnemy in _seaEnemies) { seaEnemy.Destroy(); seaEnemy.Init(_playerObj); } _nextLevelObj.ClosePanel(); _timerObj.UpdateTime(); } }