/// <summary> /// 制限時間を変更する。 /// </summary> private void RequestedChangeGameTime(NetworkConnection connection, ChangeGameTime.Request request) { Debug.Log("RequestedChangeGameTime"); var msg = new ChangeGameTime.Response(); var id = connection.connectionId; RoomData roomData; try { // プレイヤーが存在しているかどうかチェック if (!playerDataHolder.ExistPlayerData(id)) { Debug.LogWarningFormat("[RequestedChangeGameTime] 存在しないプレイヤーが指定されました\nid : {0}", id); msg.Result = ChangeGameTime.Result.FailureNonExistPlayer; connection.Send(msg); return; } // 部屋が存在しているかどうかチェック if (!roomDataHolder.ExistRoomByHostPlayer(id)) { Debug.LogWarningFormat("[RequestedChangeGameTime] 指定したプレイヤーがホストである部屋が存在しません\nid : {0}", id); msg.Result = ChangeGameTime.Result.FailureNonHost; connection.Send(msg); return; } // ゲームを開始しているかどうかチェック roomData = roomDataHolder.GetRoomDataByHostPlayer(id); if (roomData.IsPlaying) { Debug.LogWarningFormat("[RequestedChangeGameTime] 既にゲームを開始しています\nid : {0}", id); msg.Result = ChangeGameTime.Result.FailurePlaying; connection.Send(msg); return; } var isSuccess = roomData.ChangeGameTime(request.ChangeForward); if (!isSuccess) { msg.Result = ChangeGameTime.Result.NoChange; connection.Send(msg); return; } msg.Result = ChangeGameTime.Result.Succeed; connection.Send(msg); } catch (Exception e) { Debug.LogErrorFormat("[RequestedChangeGameTime] 予期せぬエラーが発生しました\nid : {0}", id); Debug.LogException(e); msg.Result = ChangeGameTime.Result.FailureUnknown; msg.Exception = e; connection.Send(msg); return; } SendRoomChangeGameTime(roomData); }
/// <summary> /// 制限時間を変更する。 /// </summary> public void RequestChangeGameTime(ChangeGameTime.Request request) { NetworkClient.connection.Send(request); }