mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28: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) {
|
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);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user