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/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/InputPlayOrDraw.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/InputSelectCards.java -text
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package forge.util;
|
||||
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
||||
@@ -24,7 +24,6 @@ import forge.game.ability.AbilityUtils;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.gui.input.InputConfirm;
|
||||
|
||||
/**
|
||||
* The Class CostChooseCreatureType.
|
||||
@@ -63,14 +62,11 @@ public class CostChooseCreatureType extends CostPart {
|
||||
@Override
|
||||
public final boolean payHuman(final SpellAbility ability, final Player payer) {
|
||||
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>());
|
||||
source.setChosenType(choice);
|
||||
String choice = payer.getController().chooseSomeType("Creature", ability, new ArrayList<String>(CardType.getCreatureTypes()), new ArrayList<String>(), true);
|
||||
if( null == choice )
|
||||
return false;
|
||||
source.setChosenType(choice);
|
||||
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
|
||||
*/
|
||||
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
||||
public final SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
||||
return getAbilityToPlay(abilities, null);
|
||||
}
|
||||
|
||||
@@ -164,7 +164,10 @@ public abstract class PlayerController {
|
||||
public abstract List<SpellAbility> chooseSaToActivateFromOpeningHand(List<SpellAbility> usableFromOpeningHand);
|
||||
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 boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question);
|
||||
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)
|
||||
*/
|
||||
@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);
|
||||
if (StringUtils.isBlank(chosen) && !validTypes.isEmpty())
|
||||
{
|
||||
|
||||
@@ -420,8 +420,7 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_COMPACT_PROMPT)) {
|
||||
//append trigger description unless prompt is compact
|
||||
buildQuestion.append("\n(");
|
||||
buildQuestion.append(triggerParams.get("TriggerDescription")
|
||||
.replace("CARDNAME", regtrig.getHostCard().getName()));
|
||||
buildQuestion.append(triggerParams.get("TriggerDescription").replace("CARDNAME", regtrig.getHostCard().getName()));
|
||||
buildQuestion.append(")");
|
||||
}
|
||||
HashMap<String, Object> tos = sa.getTriggeringObjects();
|
||||
@@ -443,9 +442,11 @@ public class PlayerControllerHuman extends PlayerController {
|
||||
|
||||
@Override
|
||||
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();
|
||||
return inp.isPlayingFirst();
|
||||
return inp.getResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -643,8 +644,11 @@ 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)
|
||||
*/
|
||||
@Override
|
||||
public String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
|
||||
return GuiChoose.one("Choose a " + kindOfType.toLowerCase() + " type", validTypes);
|
||||
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);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
||||
@@ -40,10 +40,6 @@ public class InputConfirm extends InputSyncronizedBase {
|
||||
this(message0, "Yes", "No", true);
|
||||
}
|
||||
|
||||
public InputConfirm(String message0, boolean defaultYes0) {
|
||||
this(message0, "Yes", "No", defaultYes0);
|
||||
}
|
||||
|
||||
public InputConfirm(String message0, String yesButtonText0, String noButtonText0) {
|
||||
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.Map;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
@@ -86,12 +85,6 @@ public class PlayerControllerForTests extends PlayerController {
|
||||
return game;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpellAbility getAbilityToPlay(List<SpellAbility> abilities) {
|
||||
System.out.println("getAbilityToPlay " + StringUtils.join(abilities, ", "));
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playSpellAbilityForFree(SpellAbility copySA, boolean mayChoseNewTargets) {
|
||||
throw new IllegalStateException("Callers of this method currently assume that it performs extra functionality!");
|
||||
@@ -444,7 +437,7 @@ public class PlayerControllerForTests extends PlayerController {
|
||||
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user