public void CreateRoom(int roomNumber) { AppSignalRLogger.LogVerbose("[Called '{0}'] {1}", MethodBase.GetCurrentMethod().Name, roomNumber); var result = appService.CreateRoom(Context.ConnectionId, roomNumber); var message = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name, roomNumber, result.TurnType, result.ErrorMessage); CallClientMethod(message); }
public void StartGame() { AppSignalRLogger.LogVerbose("[Called '{0}']", MethodBase.GetCurrentMethod().Name); appService.StartGame(); var message = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name); CallClientMethod(message); }
public void InitializeGame() { AppSignalRLogger.LogVerbose("[Called '{0}']", MethodBase.GetCurrentMethod().Name); var result = appService.InitializeGame(Context.ConnectionId); var message = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name, result.TurnType, result.ErrorMessage); CallClientMethod(message); }
public void Ready() { AppSignalRLogger.LogVerbose("[Called '{0}']", MethodBase.GetCurrentMethod().Name); var result = appService.Ready(Context.ConnectionId); var message = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name); CallClientMethod(message); if (result.Room.IsReadyAllPlayer) { AppSignalRLogger.LogVerbose("[Call 'OnStartGame']"); var startGameMessage = SignalRClientMessage.Create(result.ConnectionIds, "StartGame"); CallClientMethod(startGameMessage); } }
public void SelectPanelArea(PanelAreaType panelAreaType) { AppSignalRLogger.LogVerbose("[Called '{0}'] {1}", MethodBase.GetCurrentMethod().Name, panelAreaType); var result = appService.SelectPanelArea(Context.ConnectionId, panelAreaType); var message = SignalRClientMessage.Create(result.ConnectionIds, MethodBase.GetCurrentMethod().Name, panelAreaType, result.Room._1stPlayerResult, result.Room._2ndPlayerResult, result.Room.NowTurnType , result.Room._1stPlayerReachPanelAreaTypeList, result.Room._2ndPlayerReachPanelAreaTypeList); CallClientMethod(message); if (result.Room.CanPlayAI) { Thread.Sleep(1000); var aiResult = appService.SelectPanelAreaByAI(result.Room); var aiMessage = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name, aiResult.SelectedPanelAreaType, aiResult.Room._1stPlayerResult, aiResult.Room._2ndPlayerResult, aiResult.Room.NowTurnType , aiResult.Room._1stPlayerReachPanelAreaTypeList, aiResult.Room._2ndPlayerReachPanelAreaTypeList); CallClientMethod(aiMessage); } }
public void JoinRoom(int roomNumber) { AppSignalRLogger.LogVerbose("[Called '{0}'] {1}", MethodBase.GetCurrentMethod().Name, roomNumber); var result = appService.JoinRoom(Context.ConnectionId, roomNumber); var message = SignalRClientMessage.Create(Context.ConnectionId, MethodBase.GetCurrentMethod().Name, roomNumber, result.TurnType, result.ErrorMessage); CallClientMethod(message); if (result.ErrorMessage != "") { AppSignalRLogger.LogVerbose("[JoinRoom ErrorMessage] {0}", result.ErrorMessage); return; } var room = appService.GetRoomByConnectionId(Context.ConnectionId); var initMessage = SignalRClientMessage.Create(room._1stPlayer.ConnectionId, "InitializeGame", TurnType._1stPlayer, ""); CallClientMethod(initMessage); var initResult = appService.GetRoomByConnectionId(Context.ConnectionId); initMessage = SignalRClientMessage.Create(room._2ndPlayer.ConnectionId, "InitializeGame", TurnType._2ndPlayer, ""); CallClientMethod(initMessage); }
public void RemovePlayer(string connectionId) { var player = playerRepository.GetByConnectionId(connectionId); if (player != null) { var room = roomRepository.GetByRoomId(player.RoomId); if (room != null) { room.Remove(player); if (room.IsRemovedAllPlayer) { AppSignalRLogger.Log("Remove Room {0}", room.RoomId); roomRepository.Remove(room); } else { roomRepository.Save(room); } } playerRepository.Remove(player); } }
public override Task OnDisconnectedAsync(Exception e) { AppSignalRLogger.Log("OnDisconnectedAsync {0}", Context.ConnectionId); appService.RemovePlayer(Context.ConnectionId); return(base.OnDisconnectedAsync(e)); }
public override Task OnConnectedAsync() { AppSignalRLogger.Log("OnConnected {0}", Context.ConnectionId); appService.AddPlayer(Context.ConnectionId); return(base.OnConnectedAsync()); }