From aa5851329ddb4b5b191a171312d18169a39e46df Mon Sep 17 00:00:00 2001 From: Chris H Date: Mon, 10 Jun 2019 22:55:50 -0400 Subject: [PATCH] Fix LondonMulligan not actually working --- .../forge/game/mulligan/LondonMulligan.java | 18 +++++++++++------- forge-gui/res/languages/en-US.properties | 2 +- .../forge/match/input/InputLondonMulligan.java | 8 +++++++- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/forge-game/src/main/java/forge/game/mulligan/LondonMulligan.java b/forge-game/src/main/java/forge/game/mulligan/LondonMulligan.java index 88a39d34e16..5180416676e 100644 --- a/forge-game/src/main/java/forge/game/mulligan/LondonMulligan.java +++ b/forge-game/src/main/java/forge/game/mulligan/LondonMulligan.java @@ -1,5 +1,6 @@ package forge.game.mulligan; +import forge.game.card.Card; import forge.game.player.Player; public class LondonMulligan extends AbstractMulligan { @@ -17,6 +18,16 @@ public class LondonMulligan extends AbstractMulligan { return player.getMaxHandSize(); } + @Override + public void mulliganDraw() { + player.drawCards(handSizeAfterNextMulligan()); + int tuckingCards = tuckCardsAfterKeepHand(); + + for (final Card c : player.getController().londonMulliganReturnCards(player, tuckingCards)) { + player.getGame().getAction().moveToLibrary(c, -1, null); + } + } + @Override public int tuckCardsAfterKeepHand() { if (timesMulliganed == 0) { @@ -26,11 +37,4 @@ public class LondonMulligan extends AbstractMulligan { int extraCard = firstMulliganFree ? 1 : 0; return timesMulliganed - extraCard; } - - @Override - public void afterMulligan() { - int tuckingCards = tuckCardsAfterKeepHand(); - player.getController().londonMulliganReturnCards(player, tuckingCards); - super.afterMulligan(); - } } diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index a3ce40b9e35..cff17927e98 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -281,7 +281,7 @@ lblIsGoingFirst=is going first lblYouAreGoing=you are going lblMulligan=Mulligan lblDoYouWantToKeepYourHand=Do you want to keep your hand? -lblReturnForLondon=Return %n card(s) to bottom of library +lblReturnForLondon=Return %s of %s card(s) to bottom of library lblOk=Ok lblReset=Reset lblAuto=Auto diff --git a/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java b/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java index 3124924d64c..584a081c801 100644 --- a/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java +++ b/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java @@ -60,7 +60,7 @@ public class InputLondonMulligan extends InputSyncronizedBase { getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblOk"), "", cardsLeft == 0, false, true); - sb.append(String.format(localizer.getMessage("lblReturnForLondon"), cardsLeft)); + sb.append(String.format(localizer.getMessage("lblReturnForLondon"), selected.size(), toReturn)); showMessage(sb.toString()); } @@ -90,6 +90,12 @@ public class InputLondonMulligan extends InputSyncronizedBase { return false; } + if (selected.contains(c0)) { + selected.remove(c0); + } else { + selected.add(c0); + } + showMessage(); return true; }