diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java index 279a86ac7..a4213db9e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/handler/TournamentRequestHandler.java @@ -116,7 +116,7 @@ public class TournamentRequestHandler extends LotroServerRequestHandler implemen .filter(code -> _soloDraftDefinitions.getAllSoloDrafts().values().stream().anyMatch(soloDraft -> code.equals(soloDraft.getCode()))).map(code -> new JSONDefs.ItemStub(code, availableSoloDraftFormats.get(code))) .collect(Collectors.toList()); data.tableDrafts = _tableDraftLibrary.getAllTableDrafts().stream() - .map(tableDraftDefinition -> new JSONDefs.ItemStub(tableDraftDefinition.getCode(), tableDraftDefinition.getName())) + .map(tableDraftDefinition -> new JSONDefs.LiveDraftInfo(tableDraftDefinition.getCode(), tableDraftDefinition.getName(), tableDraftDefinition.getMaxPlayers(), tableDraftDefinition.getRecommendedTimer().name())) .collect(Collectors.toList()); data.draftTimerTypes = DraftTimer.getAllTypes(); @@ -228,6 +228,8 @@ public class TournamentRequestHandler extends LotroServerRequestHandler implemen Throw400IfStringNull("tableDraftFormatCode", tableDraftFormatCodeStr); var tableDraftDefinition = _tableDraftLibrary.getTableDraftDefinition(tableDraftFormatCodeStr); Throw400IfValidationFails("tableDraftFormatCode", tableDraftFormatCodeStr,tableDraftDefinition != null); + //Check if all players can get to one table + Throw400IfValidationFails("maxPlayers", maxPlayersStr, tableDraftDefinition.getMaxPlayers() < maxPlayers); tableDraftParams.tableDraftFormatCode = tableDraftFormatCodeStr; tableDraftParams.format = tableDraftDefinition.getFormat(); tableDraftParams.draftTimerType = DraftTimer.getTypeFromString(tableDraftTimer); @@ -244,7 +246,7 @@ public class TournamentRequestHandler extends LotroServerRequestHandler implemen params.cost = 0; // Gold is not being used, they can be free to enter params.playoff = Tournament.PairingType.parse(playoff); params.tiebreaker = "owr"; - params.prizes = Tournament.PrizeType.LIMITED; // At 4+ players, get one Event Award for each win or buy + params.prizes = Tournament.PrizeType.LIMITED; // At 4+ players, get one Event Award for each win or bye params.maximumPlayers = maxPlayers; params.manualKickoff = false; diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hallUi.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hallUi.js index aa552cfc1..b8ef4c14e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hallUi.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/hallUi.js @@ -189,7 +189,13 @@ var GempLotrHallUI = Class.extend({ const startableEarly = $("#startableEarlySelect").val(); const readyCheck = $("#readyCheckSelect").val(); - const validPlayerCount = Number.isInteger(playerCount) && playerCount >= 1; + const formatMaxPlayers = $("#formatSelect").find("option:selected").data("maxplayers"); + var validMaxPlayers = true; + if (formatMaxPlayers) { + validMaxPlayers = playerCount <= formatMaxPlayers; + } + + const validPlayerCount = Number.isInteger(playerCount) && playerCount >= 1 && validMaxPlayers; const validDeckDuration = Number.isInteger(deckDuration) && deckDuration >= 5; const draftValid = gameType !== "table_draft" || draftTimer; const validPlayerReadyCombo = playerCount > 2 || readyCheck < 0; @@ -247,11 +253,16 @@ var GempLotrHallUI = Class.extend({ // Fill options for (const format of formats) { - $select.append( - $("