mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
- Commander is no longer using Partial Paris
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -308,7 +308,7 @@ public class PlayerControllerForTests extends PlayerController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardCollectionView getCardsToMulligan(boolean isCommander, Player firstPlayer) {
|
||||
public CardCollectionView getCardsToMulligan(Player firstPlayer) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user