예제 #1
0
        public void TriggerPlayerQuitEvent()
        {
            PlayerQuit playerQuitEvent = PlayerQuit.Create();

            playerQuitEvent.PlayerID = SWMatchmaking.GetMyBoltId();
            playerQuitEvent.Send();
        }
예제 #2
0
        public void TriggerPlayerHitEvent()
        {
            PlayerHit playerHitEvent = PlayerHit.Create();

            playerHitEvent.VictimEntity = SWExtensions.KartExtensions.GetKartWithID(SWMatchmaking.GetMyBoltId()).GetComponent <BoltEntity>();
            playerHitEvent.Send();
        }
예제 #3
0
        private void SendRespawnRequestEvent(PlayerSettings player)
        {
            RespawnRequest respawnRequestEvent = RespawnRequest.Create();

            respawnRequestEvent.ConnectionID = SWMatchmaking.GetMyBoltId();
            respawnRequestEvent.Team         = (int)player.ColorSettings.TeamEnum;
            respawnRequestEvent.Send();
        }
예제 #4
0
 public override void Connected(BoltConnection connection)
 {
     if (connection.ConnectionId == SWMatchmaking.GetMyBoltId())
     {
         SetLookingForPlayers();
         ResetTimer();
     }
 }
예제 #5
0
 public override void OnEvent(PlayerInfoEvent evnt)
 {
     if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId() && // This event is for me
         evnt.KartEntity == _entity &&                         // This is the targetted kart
         !evnt.KartEntity.IsOwner)                             // I don't own this kart
     {
         SetVoicelines(evnt.CharacterIndex);
     }
 }
예제 #6
0
 public override void OnEvent(PlayerInfoEvent evnt)
 {
     if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId() && // This event is for me
         evnt.KartEntity == _kartEntity &&                     // This is the targetted kart
         !evnt.KartEntity.IsOwner)                             // I don't own this kart
     {
         Nickname = evnt.Nickname;
         Team     = evnt.Team.ToTeam();
         OwnerID  = evnt.PlayerID;
     }
 }
예제 #7
0
 public override void OnEvent(PlayerSpawn evnt)
 {
     if (evnt.ConnectionID == SWMatchmaking.GetMyBoltId())
     {
         if (_gameStarted.Value == false && evnt.GameStarted == true)
         {
             _gameStarted.Value = true;
         }
         InstantiateKart(evnt.SpawnPosition, evnt.SpawnRotation, evnt.TeamEnum.ToTeam(), (RoomProtocolToken)evnt.RoomToken);
     }
 }
 public override void OnEvent(PlayerAllStats evnt)
 {
     if (evnt.TargetPlayerID == SWMatchmaking.GetMyBoltId())
     {
         var entry = CreateEntryForPlayer(evnt.PlayerID, evnt.Name, evnt.Team.ToTeam());
         if (entry)
         {
             entry.UpdateKillCount(evnt.KillCount);
             entry.UpdateDeathCount(evnt.DeathCount);
         }
     }
 }
예제 #9
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());
            }
        }
예제 #10
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();
        }