Пример #1
0
        // BOLT

        public override void BoltStartDone() // Used for In-Editor tests
        {
            RoomProtocolToken _roomProtocolToken = new RoomProtocolToken()
            {
                Gamemode     = _gameMode,
                PlayersCount = 1,
                RoomInfo     = "Solo"
            };

            InstantiateKart(transform.position, transform.rotation, Team.Blue, _roomProtocolToken); // Scene specific position
        }
Пример #2
0
        public override void SceneLoadLocalDone(string map, IProtocolToken token)
        {
            if (BoltNetwork.IsServer)
            {
                InitializeSpawns();

                RoomInfoToken = (RoomProtocolToken)token;
                _playersCount = RoomInfoToken.PlayersCount;

                // Instantiate server kart
                var serverTeam = _teamAssigner.PickAvailableTeam();
                AssignSpawn(SWMatchmaking.GetMyBoltId(), serverTeam);
                _teamAssigner.AddPlayer(serverTeam, SWMatchmaking.GetMyBoltId());
            }
        }
Пример #3
0
        // PRIVATE

        private void InstantiateKart(Vector3 spawnPosition, Quaternion spawnRotation, Team team, RoomProtocolToken roomProtocolToken)
        {
            GameObject myKart;

            if (roomProtocolToken != null)
            {
                myKart = BoltNetwork.Instantiate(BoltPrefabs.Kart, roomProtocolToken);
            }
            else
            {
                Debug.LogError("RoomToken not set.");
                myKart = BoltNetwork.Instantiate(BoltPrefabs.Kart);
            }

            _playerSettings.ColorSettings = _gameSettings.TeamsListSettings.GetSettings(team);

            myKart.GetComponentInChildren <Health.Health>().SetInvincibilityForXSeconds(_playerSettings.InvicibilityOnSpawnDuration);
            myKart.transform.position = spawnPosition;
            myKart.transform.rotation = spawnRotation;
            PlayerInfo.Me             = myKart.GetComponent <PlayerInfo>();
            myKart.GetComponent <PlayerInfo>().Nickname = _playerSettings.Nickname;
            myKart.GetComponent <PlayerInfo>().OwnerID  = SWMatchmaking.GetMyBoltId();
            myKart.GetComponent <PlayerInfo>().Team     = team;
            myKart.GetComponent <BoltEntity>().GetState <IKartState>().Team    = (int)team;
            myKart.GetComponent <BoltEntity>().GetState <IKartState>().OwnerID = SWMatchmaking.GetMyBoltId();

            PlayerReady playerReadyEvent = PlayerReady.Create();

            playerReadyEvent.Nickname       = _playerSettings.Nickname;
            playerReadyEvent.PlayerID       = SWMatchmaking.GetMyBoltId();
            playerReadyEvent.Team           = (int)team;
            playerReadyEvent.KartIndex      = _playerSettings.KartIndex;
            playerReadyEvent.CharacterIndex = _playerSettings.CharacterIndex;
            playerReadyEvent.Entity         = myKart.GetComponent <BoltEntity>();
            playerReadyEvent.Send();
        }