/// <summary> /// Listen to local event and send it to the server if needed /// (ex: listen to game invitation) /// </summary> public void HandleOnlineEvent(IEvent localEvent) { var sessionEvent = localEvent as AbstractSessionEvent; if (sessionEvent != null && !sessionEvent.SendToServer) { var invitation = sessionEvent as InvitationEvent; // Can't receive invitation if already in game if (invitation != null) { if (invitation.InvitedPlayerId == Profile.Instance.CurrentProfile.UserHashId && !StateManager.Instance.IsGameRunning()) { try { var context = new GameInvitationViewModel(invitation); var invitationPopup = new GameInvitation(context); invitationPopup.ShowDialog(); } catch (Exception) { Console.WriteLine("Received a game that does not exist"); } } } } }
/// <summary> /// This method creates a new game invitation /// </summary> /// <param name="u"></param> /// <param name="invitedUsers"></param> /// <returns></returns> public static void CreateNewInvitation(User u, String[] invitedUsers, GameContext gc) { var invitation = new GameInvitation(); Board b = gc.CreateNewGameBoard(u, invitedUsers.Length, 20); invitation.Board = b; invitation.UserName = u.UserName; User invitedUser1 = gc.GetUser(invitedUsers[0]); User invitedUser2 = gc.GetUser(invitedUsers[1]); User invitedUser3 = gc.GetUser(invitedUsers[2]); if (invitedUser1 != null) { invitation.InvitedUser1 = invitedUser1; } if (invitedUser2 != null) { invitation.InvitedUser2 = invitedUser2; } if (invitedUser3 != null) { invitation.InvitedUser3 = invitedUser3; } gc.GameInvitations.Add(invitation); }
public static GameInvitation getGameInvitation(User u, User invitedUser1, User invitedUser2, User invitedUser3, GameContext gc) { GameInvitation gi = gc.GameInvitations.Where(g => g.UserName.Equals(u.UserName) && g.InvitedUser1.Equals(invitedUser1) && g.InvitedUser2.Equals(invitedUser2) && g.InvitedUser3.Equals(invitedUser3)).SingleOrDefault(); return(gi); }
public IActionResult Index(string email) { var gameInvitation = new GameInvitation { InvitedBy = email }; return(View(gameInvitation)); }
private void SendGameInvitationEvent() { GameInvitation gi = new GameInvitation() { InvitingPlayerId = _quoridorService.MyId }; _quoridorService.SendGameEvent(_quoridorService.MyId.ToString(), gi); }
/// <summary> /// This method will delete the GameInvitation if all invitedUsers have responded to the request. /// Will also delete the board if all users have declined /// </summary> /// <param name="gi"></param> public static void DeleteInvitation(GameInvitation gi, GameContext gc) { if ((gi.InvitedUser1.Equals(null)) && (gi.InvitedUser2.Equals(null)) && (gi.InvitedUser3.Equals(null))) { if (gi.Board.BoardUsers.Count == 1) { gc.Boards.Remove(gi.Board); } gc.GameInvitations.Remove(gi); } gc.SaveChanges(); }
public void OnReceiveGameInvitation(string _userName, string _userID, string _roomName) { GameObject newInvit = Instantiate(prefabsGameInvitation, GameInvitationList); GameInvitation gameInvitation = newInvit.GetComponent <GameInvitation>(); gameInvitation.lobbyPhotonController = this; gameInvitation.userName = _userName; gameInvitation.userId = _userID; gameInvitation.roomName = _roomName; invitationCount++; GameInvitationCount.SetActive(true); GameInvitationCountText.text = invitationCount.ToString(); }
public ActionResult DeclineGameInvitation(String username, String invitedUser1, String invitedUser2, String invitedUser3) { User current = gc.getUserFromIdentity(User); User u = gc.GetUser(username); User u1 = gc.GetUser(invitedUser1); User u2 = gc.GetUser(invitedUser2); User u3 = gc.GetUser(invitedUser3); GameInvitation gi = GameInvitationLogic.getGameInvitation(u, u1, u2, u3, gc); GameInvitationLogic.DeclineInvitation(current, gi, gc); return(RedirectToAction("Friends")); }
/// <summary> /// This method allows a User to decline a specific invitation /// </summary> /// <param name="i"></param> /// <param name="u"></param> public static void DeclineInvitation(User u, GameInvitation gi, GameContext gc) { if (gi.InvitedUser1.Equals(u)) { gi.InvitedUser1 = null; } else if (gi.InvitedUser2.Equals(u)) { gi.InvitedUser2 = null; } else if (gi.InvitedUser3.Equals(u)) { gi.InvitedUser3 = null; } DeleteInvitation(gi, gc); gc.SaveChanges(); }
/// <summary> /// This method allows a User to accept a specific invitation /// </summary> /// <param name="i"></param> /// <param name="u"></param> public static void AcceptInvitation(User u, GameInvitation gi, GameContext gc) { if (gi.InvitedUser1.Equals(u)) { gi.InvitedUser1 = null; } else if (gi.InvitedUser2.Equals(u)) { gi.InvitedUser2 = null; } else if (gi.InvitedUser3.Equals(u)) { gi.InvitedUser3 = null; } gc.AddPlayerToBoard(u, gi.Board); DeleteInvitation(gi, gc); gc.SaveChanges(); }
public void RespondToGameInvitation(bool accept, GameInvitation invit) { invitationCount--; if (invitationCount < 1) { GameInvitationCount.SetActive(false); } else { GameInvitationCountText.text = invitationCount.ToString(); } if (accept) { PhotonNetwork.LeaveRoom(); joinFriend = true; roomToJoin = invit.roomName; Debug.Log("accept invitation roomName:" + invit.roomName); } Destroy(invit.gameObject); }
public IActionResult Index(GameInvitation gameInvitation) { return(Content(stringLocalizer["GameInvitationConfirmationMessage", gameInvitation.EmailTo])); }