From 36bc3dac4a0341d3037b3cac739d85a949c3c099 Mon Sep 17 00:00:00 2001 From: Sol Date: Thu, 3 Mar 2016 04:28:01 +0000 Subject: [PATCH] - Commander is no longer using Partial Paris --- .../src/main/java/forge/ai/ComputerUtil.java | 1 + .../java/forge/ai/PlayerControllerAi.java | 9 ++--- .../src/main/java/forge/game/GameAction.java | 2 +- .../forge/game/player/PlayerController.java | 2 +- .../util/PlayerControllerForTests.java | 2 +- .../match/input/InputConfirmMulligan.java | 33 +++---------------- .../forge/player/PlayerControllerHuman.java | 7 ++-- 7 files changed, 14 insertions(+), 42 deletions(-) diff --git a/forge-ai/src/main/java/forge/ai/ComputerUtil.java b/forge-ai/src/main/java/forge/ai/ComputerUtil.java index 332ef60123a..26b056a7663 100644 --- a/forge-ai/src/main/java/forge/ai/ComputerUtil.java +++ b/forge-ai/src/main/java/forge/ai/ComputerUtil.java @@ -1477,6 +1477,7 @@ public class ComputerUtil { } public static CardCollection getPartialParisCandidates(Player ai) { + // Commander no longer uses partial paris. final CardCollection candidates = new CardCollection(); final CardCollectionView handList = ai.getCardsIn(ZoneType.Hand); diff --git a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java index 7c0c39f654c..f936a953860 100644 --- a/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java +++ b/forge-ai/src/main/java/forge/ai/PlayerControllerAi.java @@ -369,17 +369,12 @@ public class PlayerControllerAi extends PlayerController { } @Override - public CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer) { + public CardCollectionView getCardsToMulligan(Player firstPlayer) { if (!ComputerUtil.wantMulligan(player)) { return null; } - if (!isCommander) { - return player.getCardsIn(ZoneType.Hand); - } - else { - return ComputerUtil.getPartialParisCandidates(player); - } + return player.getCardsIn(ZoneType.Hand); } @Override diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 02437f6ec80..ade1814ad31 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -1571,7 +1571,7 @@ public class GameAction { if (hasKept[i]) continue; Player p = whoCanMulligan.get(i); - CardCollectionView toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(isCommander, firstPlayer) : null; + CardCollectionView toMulligan = p.canMulligan() ? p.getController().getCardsToMulligan(firstPlayer) : null; if (game.isGameOver()) { // conceded on mulligan prompt return; diff --git a/forge-game/src/main/java/forge/game/player/PlayerController.java b/forge-game/src/main/java/forge/game/player/PlayerController.java index 08840cc3edc..48b3c2d8219 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerController.java +++ b/forge-game/src/main/java/forge/game/player/PlayerController.java @@ -166,7 +166,7 @@ public abstract class PlayerController { public abstract Object vote(SpellAbility sa, String prompt, List options, ListMultimap votes); public abstract Pair chooseAndRemoveOrPutCounter(Card cardWithCounter); public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question); - public abstract CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer); + public abstract CardCollectionView getCardsToMulligan(Player firstPlayer); public abstract void declareAttackers(Player attacker, Combat combat); public abstract void declareBlockers(Player defender, Combat combat); diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java index 299fe195f76..30f36c75bef 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/PlayerControllerForTests.java @@ -308,7 +308,7 @@ public class PlayerControllerForTests extends PlayerController { } @Override - public CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer) { + public CardCollectionView getCardsToMulligan(Player firstPlayer) { return null; } diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java index 02d9ae864c9..3ce7b770569 100644 --- a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java +++ b/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java @@ -44,16 +44,14 @@ public class InputConfirmMulligan extends InputSyncronizedBase { private static final long serialVersionUID = -8112954303001155622L; boolean keepHand = false; - final boolean isCommander; private final CardCollection selected = new CardCollection(); private final Player player; private final Player startingPlayer; - public InputConfirmMulligan(final PlayerControllerHuman controller, final Player humanPlayer, final Player startsGame, final boolean commander) { + public InputConfirmMulligan(final PlayerControllerHuman controller, final Player humanPlayer, final Player startsGame) { super(controller); player = humanPlayer; - isCommander = commander; startingPlayer = startsGame; } @@ -71,14 +69,8 @@ public class InputConfirmMulligan extends InputSyncronizedBase { sb.append(player).append(", you are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n"); } - if (isCommander) { - getController().getGui().updateButtons(getOwner(), "Keep", "Exile", true, false, true); - sb.append("Will you keep your hand or choose some cards to exile those and draw one less card?"); - } - else { - getController().getGui().updateButtons(getOwner(), "Keep", "Mulligan", true, true, true); - sb.append("Do you want to keep your hand?"); - } + getController().getGui().updateButtons(getOwner(), "Keep", "Mulligan", true, true, true); + sb.append("Do you want to keep your hand?"); showMessage(sb.toString()); } @@ -103,12 +95,6 @@ public class InputConfirmMulligan extends InputSyncronizedBase { } private void done() { - if (isCommander) { - // Clear the "selected" icon after clicking the done button - for (final Card c : this.selected) { - getController().getGui().setUsedToPay(c.getView(), false); - } - } stop(); } @@ -118,7 +104,7 @@ public class InputConfirmMulligan extends InputSyncronizedBase { protected boolean onCardSelected(final Card c0, final List otherCardsToSelect, final ITriggerEvent triggerEvent) { // the only place that would cause troubles - input is supposed only to confirm, not to fire abilities final boolean fromHand = player.getZone(ZoneType.Hand).contains(c0); final boolean isSerumPowder = c0.getName().equals("Serum Powder"); - final boolean isLegalChoice = fromHand && (isCommander || isSerumPowder); + final boolean isLegalChoice = fromHand && (isSerumPowder); if (!isLegalChoice || cardSelectLocked) { return false; } @@ -139,17 +125,6 @@ public class InputConfirmMulligan extends InputSyncronizedBase { return true; } - if (isCommander) { // allow to choose cards for partial paris - if (selected.contains(c0)) { - getController().getGui().setUsedToPay(c0.getView(), false); - selected.remove(c0); - } - else { - getController().getGui().setUsedToPay(c0.getView(), true); - selected.add(c0); - } - getController().getGui().updateButtons(getOwner(), "Keep", "Exile", true, !selected.isEmpty(), true); - } return true; } diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 8417d5077e2..0151f462a34 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -851,10 +851,11 @@ public class PlayerControllerHuman } @Override - public CardCollectionView getCardsToMulligan(final boolean isCommander, final Player firstPlayer) { - final InputConfirmMulligan inp = new InputConfirmMulligan(this, player, firstPlayer, isCommander); + public CardCollectionView getCardsToMulligan(final Player firstPlayer) { + // Partial Paris is gone, so it being commander doesn't really matter anymore... + final InputConfirmMulligan inp = new InputConfirmMulligan(this, player, firstPlayer); inp.showAndWait(); - return inp.isKeepHand() ? null : isCommander ? inp.getSelectedCards() : player.getCardsIn(ZoneType.Hand); + return inp.isKeepHand() ? null : player.getCardsIn(ZoneType.Hand); } @Override