public void EmitStartGame() { if (socket != null) { RequestRoom args = new RequestRoom(); args.roomcode = roomcode; string stringArgs = JsonUtility.ToJson(args); socket.Emit("start game", stringArgs); } }
/// <summary> /// Invoked when the game is over. We'll destroy the room when this happens /// </summary> void OnApplicationQuit() { if (socket != null) { RequestRoom args = new RequestRoom(); args.roomcode = roomcode; string strArgs = JsonUtility.ToJson(args); socket.Emit("close room", strArgs); } }
private Request processRequest(Request request) { List <RequestWeek> weeks = new List <RequestWeek>(); if (request.Weeks != null && request.Weeks.Count > 0) { foreach (var week in request.Weeks) { RequestWeek rw = new RequestWeek(Convert.ToInt16(week)); weeks.Add(rw); } } else { ModelState.AddModelError("NoWeeks", "Request cannot be for no weeks"); } request.RequestWeeks = weeks; request.Department = User.Identity.Name; List <RequestRoom> rooms = new List <RequestRoom>(); List <AcceptedRoom> rooms2 = new List <AcceptedRoom>(); if (request.Rooms != null && request.Rooms.Count > 0) { foreach (string room in request.Rooms) { RequestRoom rr = new RequestRoom(Convert.ToInt16(room)); AcceptedRoom ar = new AcceptedRoom(Convert.ToInt16(room)); rooms.Add(rr); rooms2.Add(ar); } } else { RequestRoom rr = new RequestRoom(); rooms.Add(rr); } request.RequestRooms = rooms; if (request.AdHoc) { request.Round = 0; request.Status = "Accepted"; request.AcceptedRoom = (int)rooms[0].RoomID; request.AcceptedRooms = rooms2; } else { request.Round = 2; request.Status = "Pending"; } return(request); }
void PrepareSocket() { if (socket == null) { print("Initializing socket"); socket = IO.Socket(serverURL); //on connection to the server, request a room socket.Once(Socket.EVENT_CONNECT, () => { print("Socket connected"); if (roomcode == "-1") //only request a room if this is not some kind of reconnection { socket.Emit("request room"); } }); //server created the room and sent the code back. Store and display the code socket.On("request room", (data) => { //parse the message received from the socket RequestRoom room = JsonUtility.FromJson <RequestRoom>(data.ToString()); roomcode = room.roomcode; //update the roomcode in the UI GameManager.DisplayRoomCode(roomcode); }); //server indicated that a player joined the room. Store and display the new player in the player list socket.On("join room", (data) => { JoinRoom join = JsonUtility.FromJson <JoinRoom>(data.ToString()); if (join.joined == true) //add the user to the player list { print("Joined: " + join.username); GameManager.AddPlayer(join.username); } else //inidicate that the given user failed to enter the room (probably due to a duplicate name) { print("fail:" + join.username); } }); socket.On("everybody in", () => { GameManager.DisplayTutorial(this); }); //server has started an instance of the game. Store and display the category and players socket.On("start game", (data) => { StartGame start = JsonUtility.FromJson <StartGame>(data.ToString()); print("prompt: " + start.category); print("player1: " + start.player1Name); print("player2: " + start.player2Name); //clear any previous answers + reset vote indicator GameManager.DisplayAnswer(0, ""); GameManager.DisplayAnswer(1, ""); GameManager.UpdateVote(0.5f); //update the game state to show the correct screen GameManager.StartGame(start.player1Name, start.player2Name, start.category); }); //server has relayed a submission from a player. Display it on the screen socket.On("enter submission", (data) => { EnterSubmission submission = JsonUtility.FromJson <EnterSubmission>(data.ToString()); print("player " + submission.player + " submission: " + submission.submission); //update the game state to show the correct screen GameManager.DisplayAnswer(submission.player, submission.submission); }); //server has caught another vote. update the percent shown on screen socket.On("vote", (data) => { Vote vote = JsonUtility.FromJson <Vote>(data.ToString()); //display the correct vote percent GameManager.UpdateVote(vote.percentage); }); //server has sent timer updates. Display them socket.On("time changed", (data) => { TimeChanged tc = JsonUtility.FromJson <TimeChanged>(data.ToString()); //display the correct time GameManager.UpdateTime(tc.time); }); //the server has indicated that the round has ended. Display the winner. socket.On("timeout", (data) => { Timeout timeout = JsonUtility.FromJson <Timeout>(data.ToString()); //display the correct time GameManager.EndGame(timeout.winner); }); socket.On("game_error", (data) => { print(data); }); socket.On(Socket.EVENT_DISCONNECT, () => { print("there was a disconnect"); }); socket.On(Socket.EVENT_RECONNECT, () => { print("Reconnected"); }); } }