- 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) {
// Commander no longer uses partial paris.
final CardCollection candidates = new CardCollection();
final CardCollectionView handList = ai.getCardsIn(ZoneType.Hand);

View File

@@ -369,18 +369,13 @@ 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);
}
}
@Override
public void declareAttackers(Player attacker, Combat combat) {

View File

@@ -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;

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 Pair<CounterType,String> 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);

View File

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

View File

@@ -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?");
}
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<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 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;
}

View File

@@ -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