Esempio n. 1
0
        public Models.Response processCreateGameRoom(Socket sender)
        {
            Models.Response response = new Models.Response(sender);

            // if the user that requested to create a game room has any available decks that it may play with
            if (db.userHasPlayableDecks(lobbyRoomData.getUsernameBySocket(sender)))
            {
                User user = lobbyRoomData.getUserBySocket(sender);

                if (gameRoomData.checkUserAlreadyInRoom(user.Username))
                {
                    response.responseCommandToSender = "ALREADYINAROOM";
                }
                else
                {
                    Models.GameRoom room = gameRoomData.createNewGameRoom(user);

                    response.socketsToNotify = lobbyRoomData.lobbyRoomUsersToSocketList();
                    response.commandStringArgumentsToSockets = new List <string>()
                    {
                        room.ToString()
                    };
                    response.responseCommandToSockets = "ADDGAMEROOM";
                }
            }
            else
            {
                response.responseCommandToSender = "DECKSREQUIREDTOJOIN";
            }

            return(response);
        }
Esempio n. 2
0
 public Models.GameRoom createNewGameRoom(User owner)
 {
     lock (gameRoomLock)
     {
         Models.GameRoom room = new Models.GameRoom(getFirstRoomIDAvailable(), owner);
         GameRooms.Add(room);
         return(room);
     }
 }
Esempio n. 3
0
        public Response processSetReady(ClientMessage message, Socket sender)
        {
            Response response = new Response(sender);
            User     user;
            int      roomID;

            user   = lobbyRoomData.getUserBySocket(sender);
            roomID = Int32.Parse(message.stringArguments[0]);

            if (gameRoomData.setUserReady(user, roomID))
            {
                Models.GameRoom gr = gameRoomData.getRoomByID(roomID);

                if (gr != null)
                {
                    // if both players are set to ready they receive permission to start the match
                    if (gr.OwnerIsReady && gr.GuestIsReady)
                    {
                        response.responseCommandToSender  = "JOINPREGAMEROOM";
                        response.responseCommandToSockets = "JOINPREGAMEROOM";

                        response.commandIntArgumentsToSender.Add(gr.roomID);
                        response.commandIntArgumentsToSockets.Add(gr.roomID);

                        gr.State = "Battle in progress...";

                        onGoingGamesData.createNewGame(gr.roomID, gr.Owner.Socket, gr.Guest.Socket);

                        if (sender == gr.Owner.Socket)
                        {
                            response.commandStringArgumentsToSender.Add(lobbyRoomData.getNickNameBySocket(gr.Guest.Socket));
                            response.commandStringArgumentsToSockets.Add(lobbyRoomData.getNickNameBySocket(gr.Owner.Socket));
                            response.socketsToNotify.Add(gr.Guest.Socket);
                        }
                        else
                        {
                            response.commandStringArgumentsToSender.Add(lobbyRoomData.getNickNameBySocket(gr.Owner.Socket));
                            response.commandStringArgumentsToSockets.Add(lobbyRoomData.getNickNameBySocket(gr.Guest.Socket));
                            response.socketsToNotify.Add(gr.Owner.Socket);
                        }
                    }
                    else
                    {
                        // otherwise just notify both players about the one that hit ready
                        response.responseCommandToSockets = "SETREADY";
                        response.commandIntArgumentsToSockets.Add(roomID);
                        response.commandStringArgumentsToSockets.Add(user.NickName);
                        response.socketsToNotify.Add(gr.Owner.Socket);
                        response.socketsToNotify.Add(gr.Guest.Socket);
                    }
                }
            }

            return(response);
        }
Esempio n. 4
0
 // creates a room object and its GUI
 public void createRoom(string roomArguments)
 {
     Models.GameRoom room = roomFromArguments(roomArguments);
     GameRooms.Add(room);
     parent.AddRoomToGUI(room);
 }
 // adds a new game room to GUI
 public void AddRoomToGUI(Models.GameRoom room)
 {
     Models.GameRoomGUIModel grguim = new Models.GameRoomGUIModel(room, ctrl.userData.NickName, this);
     listGameRoomsGUI.Add(grguim);
     stackRooms.Children.Add(grguim.Border);
 }