- Commander is no longer using Partial Paris

This commit is contained in:
Sol
2016-03-03 04:28:01 +00:00
parent d290b775c1
commit 36bc3dac4a
7 changed files with 14 additions and 42 deletions

View File

@@ -1477,6 +1477,7 @@ public class ComputerUtil {
} }
public static CardCollection getPartialParisCandidates(Player ai) { public static CardCollection getPartialParisCandidates(Player ai) {
// Commander no longer uses partial paris.
final CardCollection candidates = new CardCollection(); final CardCollection candidates = new CardCollection();
final CardCollectionView handList = ai.getCardsIn(ZoneType.Hand); final CardCollectionView handList = ai.getCardsIn(ZoneType.Hand);

View File

@@ -369,17 +369,12 @@ public class PlayerControllerAi extends PlayerController {
} }
@Override @Override
public CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer) { public CardCollectionView getCardsToMulligan(Player firstPlayer) {
if (!ComputerUtil.wantMulligan(player)) { if (!ComputerUtil.wantMulligan(player)) {
return null; return null;
} }
if (!isCommander) { return player.getCardsIn(ZoneType.Hand);
return player.getCardsIn(ZoneType.Hand);
}
else {
return ComputerUtil.getPartialParisCandidates(player);
}
} }
@Override @Override

View File

@@ -1571,7 +1571,7 @@ public class GameAction {
if (hasKept[i]) continue; if (hasKept[i]) continue;
Player p = whoCanMulligan.get(i); 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 if (game.isGameOver()) { // conceded on mulligan prompt
return; return;

View File

@@ -166,7 +166,7 @@ public abstract class PlayerController {
public abstract Object vote(SpellAbility sa, String prompt, List<Object> options, ListMultimap<Object, Player> votes); public abstract Object vote(SpellAbility sa, String prompt, List<Object> options, ListMultimap<Object, Player> votes);
public abstract Pair<CounterType,String> chooseAndRemoveOrPutCounter(Card cardWithCounter); public abstract Pair<CounterType,String> chooseAndRemoveOrPutCounter(Card cardWithCounter);
public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question); 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 declareAttackers(Player attacker, Combat combat);
public abstract void declareBlockers(Player defender, Combat combat); public abstract void declareBlockers(Player defender, Combat combat);

View File

@@ -308,7 +308,7 @@ public class PlayerControllerForTests extends PlayerController {
} }
@Override @Override
public CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer) { public CardCollectionView getCardsToMulligan(Player firstPlayer) {
return null; return null;
} }

View File

@@ -44,16 +44,14 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
private static final long serialVersionUID = -8112954303001155622L; private static final long serialVersionUID = -8112954303001155622L;
boolean keepHand = false; boolean keepHand = false;
final boolean isCommander;
private final CardCollection selected = new CardCollection(); private final CardCollection selected = new CardCollection();
private final Player player; private final Player player;
private final Player startingPlayer; 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); super(controller);
player = humanPlayer; player = humanPlayer;
isCommander = commander;
startingPlayer = startsGame; 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"); sb.append(player).append(", you are going ").append(Lang.getOrdinal(game.getPosition(player, startingPlayer))).append(".\n\n");
} }
if (isCommander) { getController().getGui().updateButtons(getOwner(), "Keep", "Mulligan", true, true, true);
getController().getGui().updateButtons(getOwner(), "Keep", "Exile", true, false, true); sb.append("Do you want to keep your hand?");
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?");
}
showMessage(sb.toString()); showMessage(sb.toString());
} }
@@ -103,12 +95,6 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
} }
private void done() { 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(); stop();
} }
@@ -118,7 +104,7 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
protected boolean onCardSelected(final Card c0, final List<Card> otherCardsToSelect, final ITriggerEvent triggerEvent) { // the only place that would cause troubles - input is supposed only to confirm, not to fire abilities protected boolean onCardSelected(final Card c0, final List<Card> 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 fromHand = player.getZone(ZoneType.Hand).contains(c0);
final boolean isSerumPowder = c0.getName().equals("Serum Powder"); final boolean isSerumPowder = c0.getName().equals("Serum Powder");
final boolean isLegalChoice = fromHand && (isCommander || isSerumPowder); final boolean isLegalChoice = fromHand && (isSerumPowder);
if (!isLegalChoice || cardSelectLocked) { if (!isLegalChoice || cardSelectLocked) {
return false; return false;
} }
@@ -139,17 +125,6 @@ public class InputConfirmMulligan extends InputSyncronizedBase {
return true; 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; return true;
} }

View File

@@ -851,10 +851,11 @@ public class PlayerControllerHuman
} }
@Override @Override
public CardCollectionView getCardsToMulligan(final boolean isCommander, final Player firstPlayer) { public CardCollectionView getCardsToMulligan(final Player firstPlayer) {
final InputConfirmMulligan inp = new InputConfirmMulligan(this, player, firstPlayer, isCommander); // Partial Paris is gone, so it being commander doesn't really matter anymore...
final InputConfirmMulligan inp = new InputConfirmMulligan(this, player, firstPlayer);
inp.showAndWait(); inp.showAndWait();
return inp.isKeepHand() ? null : isCommander ? inp.getSelectedCards() : player.getCardsIn(ZoneType.Hand); return inp.isKeepHand() ? null : player.getCardsIn(ZoneType.Hand);
} }
@Override @Override