Esempio n. 1
0
        private void AddPeer(PlayerEvent e)
        {
            var peer = new PeerPlayer(e.ClientIndex);

            peer.DisplayName = e.DisplayName;
            peer.Team        = e.TeamNumber;
            peer.SteamId     = e.SteamID;
            Game.PlayerManager.IntroducePlayer(peer);
        }
Esempio n. 2
0
        private void IncomingPlayerEvent(PlayerEvent playerEvent)
        {
            PeerPlayer peer = (PeerPlayer)Game.PlayerManager.FindPlayer(playerEvent.ClientIndex);

            if (peer == null &&
                (playerEvent.EventType != PlayerEventType.Backfill && playerEvent.EventType != PlayerEventType.Introduced))
            {
                UnityEngine.Debug.Log("Player event [" + playerEvent.EventType + "] but player is missing: " + playerEvent.ClientIndex);
                return;
            }

            switch (playerEvent.EventType)
            {
            case PlayerEventType.Backfill:
            case PlayerEventType.Introduced:
                AddPeer(playerEvent);
                break;

            case PlayerEventType.Disconnected:
                peer.Disconnected = true;
                Game.PlayerManager.RemovePlayer(peer);
                break;

            case PlayerEventType.ChangedName:
                peer.DisplayName = playerEvent.DisplayName;
                break;

            case PlayerEventType.ChangedTeam:
                Game.PlayerManager.SetPlayerTeam(peer, playerEvent.TeamNumber);
                break;

            case PlayerEventType.LatencyUpdated:
                peer.Latency = playerEvent.Latency;
                break;

            case PlayerEventType.Spectate:
                if (peer.ClientIndex != GameClient.Instance.ClientIndex)
                {
                    Game.PlayerManager.SetPlayerSpectateTarget(peer, Game.PlayerManager.FindPlayer(playerEvent.SpecTarget));
                }
                break;
            }
        }