/// <summary>
 ///
 /// </summary>
 /// <param name="player"></param>
 private void OnAcceptedPlayer(PeerPlayer player, string gamingRoom)
 {
     if (player != null && player.ID == CurrentPlayer.ID)
     {
         _gamingRoom = gamingRoom;
         ConnectToGamingRoom(gamingRoom);
     }
 }
Beispiel #2
0
        public void generateEnemy(int posx, int posy, string username)
        {
            PeerPlayer peer = ObjectFactory.createPeer(posx, posy);

            peer.username = username;
            peer.transform.SetParent(holders[(int)holderID.PEER]);

            peerPlayers.Add(peer);
        }
 private void PlayerLeaved(PeerPlayer player)
 {
     CallOnDispatcher(() =>
     {
         var foundPlayer = this.PlayersInMeshList.FirstOrDefault(p => p.ID == player.ID);
         this.PlayersInMeshList.Remove(foundPlayer);
         foundPlayer = this.GameMembersList.FirstOrDefault(p => p.ID == player.ID);
         this.GameMembersList.Remove(foundPlayer);
     });
 }
        public void Join(PeerPlayer player, string acceptorUri, string groupName)
        {
            Trace.WriteLine(string.Format("[Server]| '{0}' join {1}", player.ToString(), groupName));
            player.ConnectionID = Context.ConnectionId;
            player.AcceptorUri  = acceptorUri;
            this._game.PlayerJoin(player, groupName);

            this.Groups.Add(player.ConnectionID, groupName);
            this.Clients.OthersInGroup(groupName).PlayerListChanged();
        }
Beispiel #5
0
        internal void NewRoom(string gamingRoom, PeerPlayer owner)
        {
            var hypotheticalPlayers = GetPlayersFromConnexionID(owner.ConnectionID);
            var room = new GameRoom {
                Owner = owner, RoomName = gamingRoom, PlayersInGroup = hypotheticalPlayers
            };

            room.OnTimeToStartGame += room_OnTimeToStartGame;
            room.Players.Add(owner);
            _rooms.TryAdd(gamingRoom, room);
        }
 private void UserAcceptGameRequest(PeerPlayer player, string uri)
 {
     if (_canReceiveARequest)
     {
         _canReceiveARequest = false;
         _uriToAccept        = uri;
         CallOnDispatcher(() =>
         {
             DoGameRequestReceived(GetPlayer(player), string.Format("do you want to play with '{0}'", player.NickName));
         });
     }
 }
Beispiel #7
0
        public static PeerPlayer createPeer(int posX, int posY)
        {
            GameObject peerObject = (Instantiate(
                                         instance.peerPrefab,
                                         new Vector3(posX, posY, 0),
                                         Quaternion.identity
                                         ) as GameObject);
            PeerPlayer peer = peerObject.GetComponent <PeerPlayer>();

            peer.Initialize(posX, posY);
            return(peer);
        }
Beispiel #8
0
        internal void GameOverFor(string gamingRoom, PeerPlayer player)
        {
            GameRoom room;

            if (_rooms.TryGetValue(gamingRoom, out room))
            {
                lock (room)
                {
                    room.GameOverCount++;
                }
            }
        }
Beispiel #9
0
        internal bool PlayerWouldLikeToPlay(PeerPlayer player, string acceptorUri, out string gamingRoom)
        {
            gamingRoom = string.Empty;
            var room = _rooms.Values.Where(x => x.Owner.AcceptorUri == acceptorUri && !x.Started).FirstOrDefault();

            if (room != null)
            {
                if (room.TryAdd(player))
                {
                    gamingRoom = room.RoomName;
                    return(true);
                }
            }
            return(false);
        }
Beispiel #10
0
 internal bool TryAdd(PeerPlayer player)
 {
     if (Started)
     {
         return(false);
     }
     lock (((ICollection)this.Players).SyncRoot)
     {
         if (this.Players.Count < MAXPLAYERS)
         {
             this.Players.Add(player);
             return(true);
         }
     }
     return(false);
 }
Beispiel #11
0
        internal void StopGame(PeerPlayer player, string gamingRoom)
        {
            GameRoom room;

            if (_rooms.TryGetValue(gamingRoom, out room))
            {
                if (room.Owner.ID == player.ID)
                {
                    lock (room)
                    {
                        room.Started = true;
                    }
                }
                _rooms.TryRemove(gamingRoom, out room);
            }
        }
Beispiel #12
0
        internal bool PlayerWontPlay(PeerPlayer player, string acceptorUri, out string gamingRoom)
        {
            gamingRoom = null;
            var room = _rooms.Values.Where(x => x.Owner.AcceptorUri == acceptorUri).FirstOrDefault();

            if (room != null)
            {
                lock (((ICollection)room.Players).SyncRoot)
                {
                    room.RefusedCount++;
                    gamingRoom = room.RoomName;
                    return(true);
                }
            }
            return(false);
        }
Beispiel #13
0
        internal void PlayerJoin(PeerPlayer player, string groupName)
        {
            List <PeerPlayer> l;

            if (!_players.ContainsKey(groupName))
            {
                _players.TryAdd(groupName, new List <PeerPlayer>());
            }
            if (_players.TryGetValue(groupName, out l))
            {
                lock (((ICollection)l).SyncRoot)
                {
                    l.Add(player);
                    _groupsByCnx.TryAdd(player.ConnectionID, groupName);
                }
            }
        }
 private GeniusTetrisPlayer GetPlayer(PeerPlayer player)
 {
     return(this.PlayersInMeshList.FirstOrDefault(p => p.ID == player.ID));
 }