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