From 0eabfb86f6221cd0ff4f14da30171b4b099f22f3 Mon Sep 17 00:00:00 2001 From: "jakub.salavec" Date: Tue, 11 Feb 2025 15:59:16 +0100 Subject: [PATCH] Daily tournaments added (FotR Solo Draft and Movie Sealed); Removed redundant minPlayers parameter from RecurringScheduledQueue constructor; Fixed constructed tournaments from both queues being always single elimination; Fixed limited tournament collections names properly showing only on active tournaments, not on queues; Fixed daily constructed tournaments description error probably from copy+paste --- .../src/main/web/js/gemp-022/hallUi.js | 16 ++++- .../tournament/ImmediateRecurringQueue.java | 2 +- .../tournament/RecurringScheduledQueue.java | 4 +- .../lotro/tournament/TournamentService.java | 66 +++++++++++++++++-- 4 files changed, 79 insertions(+), 9 deletions(-) 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 0b265bdd9..6e09997c5 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 @@ -472,8 +472,20 @@ var GempLotrHallUI = Class.extend({ ""; } else { - rowstr += "" + queue.getAttribute("collection") + "" + - "" + queue.getAttribute("queue") + "" + + var type = queue.getAttribute("type"); + if(type !== null) + type = type.toLowerCase(); + if(type === "sealed") { + rowstr += "Sealed"; + } + else if (type === "solodraft") { + rowstr += "Solo Draft"; + + } + else { + rowstr += "" + queue.getAttribute("collection") + ""; + } + rowstr += "" + queue.getAttribute("queue") + "" + "" + queue.getAttribute("start") + "" + "" + queue.getAttribute("system") + "" + "
" + queue.getAttribute("playerCount") + "
" + diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ImmediateRecurringQueue.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ImmediateRecurringQueue.java index decc28182..d1421feab 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ImmediateRecurringQueue.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/ImmediateRecurringQueue.java @@ -88,7 +88,7 @@ public class ImmediateRecurringQueue extends AbstractTournamentQueue implements this.format = getFormatCode(); this.startTime = DateUtils.Now().toLocalDateTime(); this.type = Tournament.TournamentType.CONSTRUCTED; - this.playoff = Tournament.PairingType.SINGLE_ELIMINATION; + this.playoff = _tournamentInfo._params.playoff; this.manualKickoff = false; this.cost = getCost(); this.minimumPlayers = _playerCap; diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/RecurringScheduledQueue.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/RecurringScheduledQueue.java index bbf9ccfc6..1f656f630 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/RecurringScheduledQueue.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/RecurringScheduledQueue.java @@ -18,9 +18,9 @@ public class RecurringScheduledQueue extends AbstractTournamentQueue implements private final int _minimumPlayers; - public RecurringScheduledQueue(TournamentService tournamentService, String queueId, String queueName, TournamentInfo info, Duration repeatEvery, int minPlayers) { + public RecurringScheduledQueue(TournamentService tournamentService, String queueId, String queueName, TournamentInfo info, Duration repeatEvery) { super(tournamentService, queueId, queueName, info); - _minimumPlayers = minPlayers; + _minimumPlayers = info._params.minimumPlayers; _repeatEvery = repeatEvery; var sinceOriginal = Duration.between(info.StartTime, ZonedDateTime.now()); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentService.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentService.java index 11884ebe3..866889b43 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentService.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/TournamentService.java @@ -127,7 +127,59 @@ public class TournamentService { private void addRecurringScheduledQueue(String queueId, String queueName, String time, String prefix, String formatCode) { _tournamentQueues.put(queueId, new RecurringScheduledQueue(this, queueId, queueName, new TournamentInfo(this, _productLibrary, _formatLibrary, DateUtils.ParseStringDate(time), - new TournamentParams(prefix, queueName, formatCode, 0, 4, Tournament.PairingType.SWISS_3, Tournament.PrizeType.DAILY)), _tournamentRepeatPeriod, 4)); + new TournamentParams(prefix, queueName, formatCode, 0, 4, Tournament.PairingType.SWISS_3, Tournament.PrizeType.DAILY)), _tournamentRepeatPeriod)); + } + + private void addRecurringScheduledSealed(String queueId, String queueName, String time, String prefix, String formatCode) { + + var sealedParams = new SealedTournamentParams(); + sealedParams.type = Tournament.TournamentType.SEALED; + + sealedParams.deckbuildingDuration = 25; + sealedParams.turnInDuration = 5; + + var sealedFormat = _formatLibrary.GetSealedTemplate(formatCode); + sealedParams.sealedFormatCode = formatCode; + sealedParams.format = sealedFormat.GetFormat().getCode(); + sealedParams.requiresDeck = false; + + sealedParams.tournamentId = prefix; + sealedParams.name = queueName; + sealedParams.cost = 0; + sealedParams.minimumPlayers = 2; + sealedParams.playoff = Tournament.PairingType.SWISS_3; + sealedParams.prizes = Tournament.PrizeType.DAILY; + + _tournamentQueues.put(queueId, new RecurringScheduledQueue(this, queueId, queueName, + new SealedTournamentInfo(this, _productLibrary, _formatLibrary, DateUtils.ParseStringDate(time), + sealedParams), _tournamentRepeatPeriod) + ); + } + + private void addRecurringScheduledDraft(String queueId, String queueName, String time, String prefix, String formatCode) { + + var soloDraftParams = new SoloDraftTournamentParams(); + soloDraftParams.type = Tournament.TournamentType.SOLODRAFT; + + soloDraftParams.deckbuildingDuration = 25; + soloDraftParams.turnInDuration = 5; + + var soloDraft = _soloDraftLibrary.getSoloDraft(formatCode); + soloDraftParams.soloDraftFormatCode = formatCode; + soloDraftParams.format = soloDraft.getFormat(); + soloDraftParams.requiresDeck = false; + + soloDraftParams.tournamentId = prefix; + soloDraftParams.name = queueName; + soloDraftParams.cost = 0; + soloDraftParams.minimumPlayers = 2; + soloDraftParams.playoff = Tournament.PairingType.SWISS_3; + soloDraftParams.prizes = Tournament.PrizeType.DAILY; + + _tournamentQueues.put(queueId, new RecurringScheduledQueue(this, queueId, queueName, + new SoloDraftTournamentInfo(this, _productLibrary, _formatLibrary, DateUtils.ParseStringDate(time), + soloDraftParams, _soloDraftLibrary), _tournamentRepeatPeriod) + ); } public void reloadTournaments(TableHolder tables) { @@ -151,9 +203,15 @@ public class TournamentService { try { addRecurringScheduledQueue("fotr_daily_eu", "Daily Gondor Fellowship Block", "2013-01-15 19:30:00", "fotrDailyEu-", "fotr_block"); - addRecurringScheduledQueue("fotr_daily_us", "Daily Rohan Fellowship Block", "2013-01-16 00:30:00", "fotrDailyEu-", "fotr_block"); - addRecurringScheduledQueue("movie_daily_eu", "Daily Gondor Movie Block", "2013-01-16 19:30:00", "fotrDailyEu-", "movie"); - addRecurringScheduledQueue("movie_daily_us", "Daily Rohan Fellowship Block", "2013-01-17 00:30:00", "fotrDailyEu-", "movie"); + addRecurringScheduledQueue("fotr_daily_us", "Daily Rohan Fellowship Block", "2013-01-16 00:30:00", "fotrDailyUS-", "fotr_block"); + addRecurringScheduledQueue("movie_daily_eu", "Daily Gondor Movie Block", "2013-01-16 19:30:00", "movieDailyEu-", "movie"); + addRecurringScheduledQueue("movie_daily_us", "Daily Rohan Movie Block", "2013-01-17 00:30:00", "movieDailyUs-", "movie"); + + addRecurringScheduledDraft("fotr_draft_daily_eu", "Daily Gondor Fellowship Draft", "2013-01-16 19:30:00", "fotrDraftDailyEu-", "fotr_draft"); + addRecurringScheduledDraft("fotr_draft_daily_us", "Daily Rohan Fellowship Draft", "2013-01-17 00:30:00", "fotrDraftDailyUS-", "fotr_draft"); + + addRecurringScheduledSealed("movie_sealed_daily_eu", "Daily Gondor Movie Sealed", "2013-01-15 19:30:00", "movieSealedDailyEu-", "single_movie_sealed"); + addRecurringScheduledSealed("movie_sealed_daily_us", "Daily Rohan Movie Sealed", "2013-01-16 00:30:00", "movieSealedDailyUs-", "single_movie_sealed"); } catch (DateTimeParseException exp) { // Ignore, can't happen