示例#1
0
    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();
        }
    }