/// <summary> /// 部屋を作成する。 /// </summary> private void RequestedCreateRoom(NetworkConnection connection, CreateRoom.Request request) { var msg = new CreateRoom.Response(); var id = connection.connectionId; try { // プレイヤーが存在しているかどうかチェック if (!playerDataHolder.ExistPlayerData(id)) { Debug.LogWarningFormat("[RequestedCreateRoom] 存在しないプレイヤーが指定されました\nid : {0}", id); msg.Result = CreateRoom.Result.FailureNonExistPlayer; connection.Send(msg); return; } // 既に部屋のホストになっているかどうかチェック if (roomDataHolder.ExistRoomByHostPlayer(id)) { Debug.LogWarningFormat("[RequestedCreateRoom] 指定されたプレイヤーは既に部屋のホストになっています\nid : {0}", id); msg.Result = CreateRoom.Result.FailureMultipleRoomHost; connection.Send(msg); return; } var constArg = new ConstArg(); constArg.RoomName = request.RoomName; constArg.MaxMemberNum = defaultMaxRoomMemberNum; constArg.GameTimeResolution = gameTimeResolution; constArg.WolfNumResolution = wolfNumResolution; constArg.GameTimeRange = gameTimeRange; constArg.WolfNumRange = wolfNumRange; constArg.ThemeUnitList = request.ThemeData.Theme.Select(t => (t.Theme1, t.Theme2)).ToList(); var variableArg = new VariableArg(); variableArg.GameTime = defaultGameTime; variableArg.WolfNum = defaultWolfNum; var roomData = roomDataHolder.CreateRoomData(playerDataHolder, connection, constArg, variableArg); msg.Result = CreateRoom.Result.Succeed; msg.RoomGuid = roomData.RoomGuid; connection.Send(msg); } catch (Exception e) { Debug.LogErrorFormat("[RequestedCreateRoom] 予期せぬエラーが発生しました\nid : {0}", id); Debug.LogException(e); msg.Result = CreateRoom.Result.FailureUnknown; msg.Exception = e; connection.Send(msg); } }
/// <summary> /// 部屋を作成する。 /// </summary> public void RequestCreateRoom(CreateRoom.Request request) { NetworkClient.connection.Send(request); }