コード例 #1
0
    void Start()
    {
        Time.timeScale = 0;
        _startGame.SetActive(true);

        _timerObj = new Timer(_levelDuration);

        _fieldObj = new Field(_land, _sea);
        _fieldObj.Init();

        _seaEnemyObj = new SeaEnemy(_seaEnemy, _fieldObj);
        _seaEnemies.Add(_seaEnemyObj);
        _seaEnemyObj.InitSeaEnemies(_seaEnemies);

        _playerObj = new PlayerCtrl(_playerInLand, _playerInSea, _fieldObj, _track, _seaEnemies);

        _seaEnemyObj.Init(_playerObj);

        _landEnemyObj = new LandEnemy(_landEnemy, _fieldObj, _playerObj);

        _nextLevelObj = new NextLevel(_nextLevel, _fieldObj);

        _info = new InfoCtrl(_score, _lvl, _xn, _full, _time, _fieldObj, _seaEnemyObj, _playerObj, _timerObj);

        _gameOverObj = new GameOver(_gameOver, _playerObj, _seaEnemyObj, _seaEnemies, _landEnemyObj, _timerObj);
    }
コード例 #2
0
 public GameOver(GameObject panel, PlayerCtrl player, SeaEnemy seaEnemy, List <SeaEnemy> seaEnemies, LandEnemy landEnemy, Timer timer)
 {
     _panel      = panel;
     _player     = player;
     _seaEnemy   = seaEnemy;
     _seaEnemies = seaEnemies;
     _landEnemy  = landEnemy;
     _timer      = timer;
 }
コード例 #3
0
    public InfoCtrl(GameObject score,
                    GameObject lvl,
                    GameObject xn,
                    GameObject full,
                    GameObject time,
                    Field field,
                    SeaEnemy seaEnemy,
                    PlayerCtrl player,
                    Timer timer)
    {
        _field    = field;
        _player   = player;
        _seaEnemy = seaEnemy;
        _score    = score;
        _lvl      = lvl;
        _xn       = xn;
        _full     = full;
        _time     = time;
        _timer    = timer;

        Init();
    }
コード例 #4
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();
        }
    }