예제 #1
0
        private void PlayerJoinedCallback(PlayerJoinedMessage msg, float travelTime)
        {
            var p = new MatchPlayer(msg.ClientGuid, msg.CtrlType, msg.InitialCharacter);

            players.Add(p);

            if (inLobby)
            {
                SpawnLobbyBall(p);
            }

            StopLobbyTimer();

            if (MatchPlayerAdded != null)
            {
                MatchPlayerAdded(this, new MatchPlayerEventArgs(p, msg.ClientGuid == myGuid));
            }
        }
예제 #2
0
        private void SpawnLobbyBall(MatchPlayer player)
        {
            var spawner = LobbyReferences.Active.BallSpawner;

            if (player.BallObject != null)
            {
                player.BallObject.CreateRemovalParticles();
                Destroy(player.BallObject.gameObject);
            }

            string name = clients.First(a => a.Guid == player.ClientGuid).Name + " (" + GameInput.GetControlTypeName(player.CtrlType) + ")";

            player.BallObject = spawner.SpawnBall(PlayerType.Normal, (player.ClientGuid == myGuid) ? player.CtrlType : ControlType.None, player.CharacterId, name);

            if (player.ClientGuid != myGuid)
            {
                Marker marker = Instantiate(markerPrefab);
                marker.transform.SetParent(LobbyReferences.Active.MarkerContainer, false);
                marker.Color  = Color.clear;
                marker.Text   = name;
                marker.Target = player.BallObject.transform;
            }
        }
예제 #3
0
 public MatchPlayerEventArgs(MatchPlayer player, bool isLocal)
 {
     Player  = player;
     IsLocal = isLocal;
 }