Example #1
0
        /// <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);
            }
        }
Example #2
0
 /// <summary>
 /// 部屋を作成する。
 /// </summary>
 public void RequestCreateRoom(CreateRoom.Request request)
 {
     NetworkClient.connection.Send(request);
 }