Example #1
0
 void Awake()
 {
     instance = this;
 }
Example #2
0
    // Update is called once per frame
    private void Update()
    {
        if (_isMenu)
        {
            if (!MainMenu.IsStarting)
            {
                return;
            }

            Game = MainMenu.GameMode;

            _isMenu    = false;
            _isLoading = true;

            MainMenu.gameObject.SetActive(false);
            LoadingScreen.gameObject.SetActive(true);

            foreach (var room in _rooms)
            {
                room.gameObject.SetActive(room.Game == Game);
                if (room.Game == Game)
                {
                    _currentRoom = room;
                }
            }
            _shakeIt = _currentRoom.GetComponent <ShakeIt>();
            if (_shakeIt != null)
            {
                _shakeIt.IsActive = true;
            }
            _level = _currentRoom.GetComponent <ILevel>();

            Spawner.BallSpawner.gameObject.SetActive(true);
            Spawner.ItemSpawner.gameObject.SetActive(Game == GameType.Collect || Game == GameType.ChangeRoom);
            Spawner.ItemSpawner.TimeBasedSpawning = (Game == GameType.Collect);
            Spawner.SortSpawner.gameObject.SetActive(Game == GameType.Sort);
            return;
        }

        if (LoadingScreen.IsLoading)
        {
            return;
        }

        if (_isLoading && !LoadingScreen.IsLoading)
        {
            _isLoading = false;
            LoadingScreen.gameObject.SetActive(false);

            if (_shakeIt != null)
            {
                _shakeIt.IsActive = false;
            }

            for (var i = 0; i < _players.Length && i < MainMenu.PlayerCount; i++)
            {
                _players[i].gameObject.SetActive(true);
                _players[i].GetComponent <CollectItems>().enabled = (Game == GameType.Collect || Game == GameType.ChangeRoom);
                _playerHubs.First(hub => hub.Player == _players[i]).gameObject.SetActive(true);
            }
            return;
        }

        if (_level.HasWinner)
        {
            foreach (var player in _players)
            {
                player.gameObject.SetActive(false);
            }
            GameOver.Winner = _level.Winner;
            GameOver.gameObject.SetActive(true);
        }
    }