예제 #1
0
        // PRIVATE

        private IEnumerator SetLobbyPrivateAfterXSeconds(float x)
        {
            yield return(new WaitForSeconds(x));

            _lobbyData.CanBeJoined = false;
            SWMatchmaking.SetLobbyData(_lobbyData);
        }
예제 #2
0
        // CORE

        private void Start()
        {
            if (BoltNetwork.IsServer)
            {
                _lobbyData.CanBeJoined = true;
                _lobbyData.GameStarted = true;
                SWMatchmaking.SetLobbyData(_lobbyData);

                StartCoroutine(SetLobbyPrivateAfterXSeconds(_secondsBeforeLobbyGoesPrivate));
            }
        }
예제 #3
0
        // PRIVATE

        private void SetLobbyData()
        {
            if (_lobbyData.Public)
            {
                _lobbyData.SetRandomName();
            }
            _lobbyData.GameStarted = false;
            _lobbyData.CanBeJoined = true;
            _lobbyData.SetRandomGamemode();
            _lobbyData.SetRandomMap();

            VerifyLobbyDataSanity();
            SWMatchmaking.SetLobbyData(_lobbyData);
        }
예제 #4
0
        // PUBLIC

        public void StartNextGame()
        {
            if (BoltNetwork.IsServer)
            {
                SWMatchmaking.SetLobbyData(_lobbyData);

                var token = new Multiplayer.RoomProtocolToken()
                {
                    Gamemode     = _lobbyData.ChosenGamemode,
                    PlayersCount = SWMatchmaking.GetCurrentLobbyPlayerCount()
                };
                BoltNetwork.LoadScene(_lobbyData.ChosenMapName, token);
            }
        }
예제 #5
0
        public void CreateRandomGame()
        {
            _lobbyData.SetRandomGamemode();
            PopulateMapList();
            _lobbyData.SetRandomMap();
            SWMatchmaking.SetLobbyData(_lobbyData);
            Debug.Log("Creating random game for " + _lobbyData.ChosenGamemode);
            SWMatchmaking.CreateLobby();

            if (OnGameCreated != null)
            {
                OnGameCreated.Invoke();
            }
        }