mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
removed input play or draw (for being a special case of InputConfirm)
added optional param to chooseCreatureType
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -15373,7 +15373,6 @@ forge-gui/src/main/java/forge/gui/input/InputPayManaExecuteCommands.java svneol=
|
|||||||
forge-gui/src/main/java/forge/gui/input/InputPayManaOfCostPayment.java -text
|
forge-gui/src/main/java/forge/gui/input/InputPayManaOfCostPayment.java -text
|
||||||
forge-gui/src/main/java/forge/gui/input/InputPayManaSimple.java svneol=native#text/plain
|
forge-gui/src/main/java/forge/gui/input/InputPayManaSimple.java svneol=native#text/plain
|
||||||
forge-gui/src/main/java/forge/gui/input/InputPayManaX.java -text
|
forge-gui/src/main/java/forge/gui/input/InputPayManaX.java -text
|
||||||
forge-gui/src/main/java/forge/gui/input/InputPlayOrDraw.java -text
|
|
||||||
forge-gui/src/main/java/forge/gui/input/InputPlaybackControl.java -text
|
forge-gui/src/main/java/forge/gui/input/InputPlaybackControl.java -text
|
||||||
forge-gui/src/main/java/forge/gui/input/InputProliferate.java -text
|
forge-gui/src/main/java/forge/gui/input/InputProliferate.java -text
|
||||||
forge-gui/src/main/java/forge/gui/input/InputSelectCards.java -text
|
forge-gui/src/main/java/forge/gui/input/InputSelectCards.java -text
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package forge.util;
|
package forge.util;
|
||||||
|
|
||||||
import java.util.concurrent.CountDownLatch;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import forge.game.ability.AbilityUtils;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
import forge.gui.input.InputConfirm;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class CostChooseCreatureType.
|
* The Class CostChooseCreatureType.
|
||||||
@@ -63,13 +62,10 @@ public class CostChooseCreatureType extends CostPart {
|
|||||||
@Override
|
@Override
|
||||||
public final boolean payHuman(final SpellAbility ability, final Player payer) {
|
public final boolean payHuman(final SpellAbility ability, final Player payer) {
|
||||||
final Card source = ability.getSourceCard();
|
final Card source = ability.getSourceCard();
|
||||||
InputConfirm inp = new InputConfirm("Choose a creature type for " + source.getName() + "?");
|
|
||||||
inp.showAndWait();
|
|
||||||
if (!inp.getResult()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
String choice = payer.getController().chooseSomeType("Creature", ability, new ArrayList<String>(CardType.getCreatureTypes()), new ArrayList<String>());
|
String choice = payer.getController().chooseSomeType("Creature", ability, new ArrayList<String>(CardType.getCreatureTypes()), new ArrayList<String>(), true);
|
||||||
|
if( null == choice )
|
||||||
|
return false;
|
||||||
source.setChosenType(choice);
|
source.setChosenType(choice);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public abstract class PlayerController {
|
|||||||
/**
|
/**
|
||||||
* Uses GUI to learn which spell the player (human in our case) would like to play
|
* Uses GUI to learn which spell the player (human in our case) would like to play
|
||||||
*/
|
*/
|
||||||
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
public final SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
||||||
return getAbilityToPlay(abilities, null);
|
return getAbilityToPlay(abilities, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,7 +164,10 @@ public abstract class PlayerController {
|
|||||||
public abstract List<SpellAbility> chooseSaToActivateFromOpeningHand(List<SpellAbility> usableFromOpeningHand);
|
public abstract List<SpellAbility> chooseSaToActivateFromOpeningHand(List<SpellAbility> usableFromOpeningHand);
|
||||||
public abstract Mana chooseManaFromPool(List<Mana> manaChoices);
|
public abstract Mana chooseManaFromPool(List<Mana> manaChoices);
|
||||||
|
|
||||||
public abstract String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes);
|
public final String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
|
||||||
|
return chooseSomeType(kindOfType, sa, validTypes, invalidTypes, false);
|
||||||
|
}
|
||||||
|
public abstract String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional);
|
||||||
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 List<Card> getCardsToMulligan(boolean isCommander, Player firstPlayer);
|
public abstract List<Card> getCardsToMulligan(boolean isCommander, Player firstPlayer);
|
||||||
|
|||||||
@@ -365,7 +365,7 @@ public class PlayerControllerAi extends PlayerController {
|
|||||||
* @see forge.game.player.PlayerController#ChooseSomeType(java.lang.String, java.util.List, java.util.List)
|
* @see forge.game.player.PlayerController#ChooseSomeType(java.lang.String, java.util.List, java.util.List)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
|
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional) {
|
||||||
String chosen = ComputerUtil.chooseSomeType(player, kindOfType, sa.getParam("AILogic"), invalidTypes);
|
String chosen = ComputerUtil.chooseSomeType(player, kindOfType, sa.getParam("AILogic"), invalidTypes);
|
||||||
if (StringUtils.isBlank(chosen) && !validTypes.isEmpty())
|
if (StringUtils.isBlank(chosen) && !validTypes.isEmpty())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -420,8 +420,7 @@ public class PlayerControllerHuman extends PlayerController {
|
|||||||
if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_COMPACT_PROMPT)) {
|
if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_COMPACT_PROMPT)) {
|
||||||
//append trigger description unless prompt is compact
|
//append trigger description unless prompt is compact
|
||||||
buildQuestion.append("\n(");
|
buildQuestion.append("\n(");
|
||||||
buildQuestion.append(triggerParams.get("TriggerDescription")
|
buildQuestion.append(triggerParams.get("TriggerDescription").replace("CARDNAME", regtrig.getHostCard().getName()));
|
||||||
.replace("CARDNAME", regtrig.getHostCard().getName()));
|
|
||||||
buildQuestion.append(")");
|
buildQuestion.append(")");
|
||||||
}
|
}
|
||||||
HashMap<String, Object> tos = sa.getTriggeringObjects();
|
HashMap<String, Object> tos = sa.getTriggeringObjects();
|
||||||
@@ -443,9 +442,11 @@ public class PlayerControllerHuman extends PlayerController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean getWillPlayOnFirstTurn(boolean isFirstGame) {
|
public boolean getWillPlayOnFirstTurn(boolean isFirstGame) {
|
||||||
InputPlayOrDraw inp = new InputPlayOrDraw(player, isFirstGame);
|
String prompt = String.format("%s, you %s\n\nWould you like to play or draw?",
|
||||||
|
player.getName(), isFirstGame ? " have won the coin toss." : " lost the last game.");
|
||||||
|
InputConfirm inp = new InputConfirm(prompt, "Play", "Draw");
|
||||||
inp.showAndWait();
|
inp.showAndWait();
|
||||||
return inp.isPlayingFirst();
|
return inp.getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -643,7 +644,10 @@ public class PlayerControllerHuman extends PlayerController {
|
|||||||
* @see forge.game.player.PlayerController#chooseSomeType(java.lang.String, java.lang.String, java.util.List, java.util.List, java.lang.String)
|
* @see forge.game.player.PlayerController#chooseSomeType(java.lang.String, java.lang.String, java.util.List, java.util.List, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
|
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional) {
|
||||||
|
if(isOptional)
|
||||||
|
return GuiChoose.oneOrNone("Choose a " + kindOfType.toLowerCase() + " type", validTypes);
|
||||||
|
else
|
||||||
return GuiChoose.one("Choose a " + kindOfType.toLowerCase() + " type", validTypes);
|
return GuiChoose.one("Choose a " + kindOfType.toLowerCase() + " type", validTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,10 +40,6 @@ public class InputConfirm extends InputSyncronizedBase {
|
|||||||
this(message0, "Yes", "No", true);
|
this(message0, "Yes", "No", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputConfirm(String message0, boolean defaultYes0) {
|
|
||||||
this(message0, "Yes", "No", defaultYes0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public InputConfirm(String message0, String yesButtonText0, String noButtonText0) {
|
public InputConfirm(String message0, String yesButtonText0, String noButtonText0) {
|
||||||
this(message0, yesButtonText0, noButtonText0, true);
|
this(message0, yesButtonText0, noButtonText0, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* Forge: Play Magic: the Gathering.
|
|
||||||
* Copyright (C) 2011 Forge Team
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package forge.gui.input;
|
|
||||||
|
|
||||||
import forge.game.player.Player;
|
|
||||||
import forge.view.ButtonUtil;
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* InputMulligan class.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @author Forge
|
|
||||||
* @version $Id: InputConfirmMulligan.java 21647 2013-05-24 22:31:11Z Max mtg $
|
|
||||||
*/
|
|
||||||
public class InputPlayOrDraw extends InputSyncronizedBase {
|
|
||||||
/** Constant <code>serialVersionUID=-8112954303001155622L</code>. */
|
|
||||||
private static final long serialVersionUID = -8112954303001155622L;
|
|
||||||
|
|
||||||
private final Player startingPlayer;
|
|
||||||
private final boolean firstGame;
|
|
||||||
private boolean willPlayFirst = true;
|
|
||||||
|
|
||||||
public InputPlayOrDraw(Player startsGame, boolean isFirstGame) {
|
|
||||||
startingPlayer = startsGame;
|
|
||||||
firstGame = isFirstGame;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
|
||||||
@Override
|
|
||||||
public final void showMessage() {
|
|
||||||
ButtonUtil.setButtonText("Play", "Draw");
|
|
||||||
ButtonUtil.enableAllFocusOk();
|
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append(startingPlayer.getName()).append(", you ").append(firstGame ? " have won the coin toss." : " lost the last game.");
|
|
||||||
sb.append("\n\n");
|
|
||||||
sb.append("Would you like to play or draw?");
|
|
||||||
showMessage(sb.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
|
||||||
@Override
|
|
||||||
protected final void onOk() {
|
|
||||||
willPlayFirst = true;
|
|
||||||
done();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
|
||||||
@Override
|
|
||||||
protected final void onCancel() {
|
|
||||||
willPlayFirst = false;
|
|
||||||
done();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void done() {
|
|
||||||
ButtonUtil.reset();
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
|
|
||||||
public final boolean isPlayingFirst() {
|
|
||||||
return willPlayFirst;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
@@ -86,12 +85,6 @@ public class PlayerControllerForTests extends PlayerController {
|
|||||||
return game;
|
return game;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
|
||||||
System.out.println("getAbilityToPlay " + StringUtils.join(abilities, ", "));
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void playSpellAbilityForFree(SpellAbility copySA, boolean mayChoseNewTargets) {
|
public void playSpellAbilityForFree(SpellAbility copySA, boolean mayChoseNewTargets) {
|
||||||
throw new IllegalStateException("Callers of this method currently assume that it performs extra functionality!");
|
throw new IllegalStateException("Callers of this method currently assume that it performs extra functionality!");
|
||||||
@@ -444,7 +437,7 @@ public class PlayerControllerForTests extends PlayerController {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
|
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional) {
|
||||||
return chooseItem(validTypes);
|
return chooseItem(validTypes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user