From f66a1c4ebc9d321eb61d98c83cba53289b2a586a Mon Sep 17 00:00:00 2001 From: "jakub.salavec" Date: Thu, 6 Mar 2025 16:00:39 +0100 Subject: [PATCH] WeightDraftBot now correctly picks the last card; Fixed drafted cards not being added to bots collections; Fixed pointless draft advancing when bot picked --- .../com/gempukku/lotro/draft3/TableDraftClassic.java | 5 ++++- .../com/gempukku/lotro/draft3/bot/WeightDraftBot.java | 9 ++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/TableDraftClassic.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/TableDraftClassic.java index a614df3f1..a1a4d1131 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/TableDraftClassic.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/TableDraftClassic.java @@ -172,6 +172,7 @@ public class TableDraftClassic implements TableDraft{ String pickedCard = assignedBoosters.get(draftPlayer).pickCard(card); // Add to collection if (draftPlayer instanceof DraftBot) { + botCollections.get(((DraftPlayer) draftPlayer)).addItem(pickedCard, 1); return; } DefaultCardCollection pickedCardCollection = new DefaultCardCollection(); @@ -310,7 +311,9 @@ public class TableDraftClassic implements TableDraft{ chosenCards.put(who, what); //Check if all players chose - advanceDraft(); + if (!(who instanceof DraftBot)) { + advanceDraft(); + } } @Override diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/bot/WeightDraftBot.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/bot/WeightDraftBot.java index 323eba518..5471f31ef 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/bot/WeightDraftBot.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft3/bot/WeightDraftBot.java @@ -33,16 +33,11 @@ public class WeightDraftBot extends DraftPlayer implements DraftBot { private List getTopCards(List cardsToPickFrom) { // Sort the cards by value in descending order return cardsToPickFrom.stream() - .sorted((card1, card2) -> Double.compare(cardValues.getOrDefault(card2, 0.0), cardValues.getOrDefault(card1, 0.0))) - .limit(getTopCardCount(cardsToPickFrom.size())) + .sorted((card1, card2) -> Double.compare(cardValues.getOrDefault(card2, 0.1), cardValues.getOrDefault(card1, 0.1))) + .limit(2) // Choose from two highest ranked cards .collect(Collectors.toList()); } - private int getTopCardCount(int packSize) { - // Choose top 3 cards if the pack has more than 5, otherwise choose half of the cards - return packSize <= 5 ? packSize / 2 : 3; - } - private double getTotalValue(List topCards) { // Sum up the values of the top N cards return topCards.stream()