Devmode tap / untap will use inputs - may select many cards at a time and need not guess them by number

This commit is contained in:
Maxmtg
2013-05-27 15:12:11 +00:00
parent 142b07ff5a
commit 38e8d3fd7c

View File

@@ -40,10 +40,12 @@ import forge.CardCharacteristicName;
import forge.CardLists; import forge.CardLists;
import forge.CardPredicates; import forge.CardPredicates;
import forge.CounterType; import forge.CounterType;
import forge.FThreads;
import forge.Singletons; import forge.Singletons;
import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilityManaPart;
import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbility;
import forge.card.trigger.TriggerType; import forge.card.trigger.TriggerType;
import forge.control.input.InputSelectCardsFromList;
import forge.game.GameState; import forge.game.GameState;
import forge.game.PlanarDice; import forge.game.PlanarDice;
import forge.game.player.HumanPlay; import forge.game.player.HumanPlay;
@@ -295,14 +297,20 @@ public final class GuiDisplayUtil {
* @since 1.0.15 * @since 1.0.15
*/ */
public static void devModeTapPerm() { public static void devModeTapPerm() {
final List<Card> play = getGame().getCardsIn(ZoneType.Battlefield); final GameState game = getGame();
final Object o = GuiChoose.oneOrNone("Choose a permanent", CardLists.filter(play, Predicates.not(CardPredicates.Presets.TAPPED))); game.getInputQueue().invokeGameAction(new Runnable() {
if (null == o) { @Override
return; public void run() {
} else { final List<Card> untapped = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Predicates.not(CardPredicates.Presets.TAPPED));
final Card c = (Card) o; InputSelectCardsFromList inp = new InputSelectCardsFromList(0, Integer.MAX_VALUE, untapped);
c.tap(); inp.setCancelAllowed(true);
} inp.setMessage("Choose permanents to tap");
game.getInputQueue().setInputAndWait(inp);
if( !inp.hasCancelled() )
for(Card c : inp.getSelected())
c.tap();
}
});
} }
/** /**
@@ -313,14 +321,20 @@ public final class GuiDisplayUtil {
* @since 1.0.15 * @since 1.0.15
*/ */
public static void devModeUntapPerm() { public static void devModeUntapPerm() {
final List<Card> play = getGame().getCardsIn(ZoneType.Battlefield); final GameState game = getGame();
final Object o = GuiChoose.oneOrNone("Choose a permanent", CardLists.filter(play, CardPredicates.Presets.TAPPED)); game.getInputQueue().invokeGameAction(new Runnable() {
if (null == o) { @Override
return; public void run() {
} else { final List<Card> tapped = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), CardPredicates.Presets.TAPPED);
final Card c = (Card) o; InputSelectCardsFromList inp = new InputSelectCardsFromList(0, Integer.MAX_VALUE, tapped);
c.untap(); inp.setCancelAllowed(true);
} inp.setMessage("Choose permanents to untap");
game.getInputQueue().setInputAndWait(inp);
if( !inp.hasCancelled() )
for(Card c : inp.getSelected())
c.untap();
}
});
} }