From 53957d5abf6579f2a9babb5aaa9098a5b602636e Mon Sep 17 00:00:00 2001 From: friarsol Date: Wed, 8 Mar 2023 23:07:18 -0500 Subject: [PATCH] Speed up London Mulligan when you just want to mulligan again. --- .../match/input/InputLondonMulligan.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java index 4db7c815cdd..e6901f645b1 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java @@ -60,7 +60,7 @@ public class InputLondonMulligan extends InputSyncronizedBase { StringBuilder sb = new StringBuilder(); - getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblOk"), "", cardsLeft == 0, false, true); + getController().getGui().updateButtons(getOwner(), localizer.getMessage("lblOk"), localizer.getMessage("lblAuto"), cardsLeft == 0, cardsLeft != 0, true); sb.append(String.format(localizer.getMessage("lblReturnForLondon"), cardsLeft)); @@ -79,6 +79,25 @@ public class InputLondonMulligan extends InputSyncronizedBase { done(); } + @Override + protected final void onCancel() { + int cardsLeft = toReturn - selected.size(); + int count = 0; + for(Card c : player.getZone(ZoneType.Hand).getCards()) { + if (selected.contains(c)) { continue; } + + selected.add(c); + setCardHighlight(c, selected.contains(c)); + count++; + + if (cardsLeft == count) { + break; + } + } + + onOk(); + } + private void done() { resetCardHighlights(); getController().getGame().getView().updateIsMulligan(false);