diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index b4006d8041d..777236a52bb 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -90,37 +90,6 @@ import forge.view.ButtonUtil; * @version $Id$ */ public class CardFactoryUtil { - /** - *
- * inputDestroyNoRegeneration. - *
- * - * @param choices - * a {@link forge.CardList} object. - * @param message - * a {@link java.lang.String} object. - * @return a {@link forge.control.input.InputBase} object. - */ - public static InputBase inputDestroyNoRegeneration(final Listdiff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java index a47ee780ef4..95a0ca79962 100644 --- a/src/main/java/forge/game/phase/Upkeep.java +++ b/src/main/java/forge/game/phase/Upkeep.java @@ -41,6 +41,7 @@ import forge.card.spellability.SpellAbility; import forge.control.input.InputBase; import forge.control.input.InputPayManaExecuteCommands; import forge.control.input.InputSelectCards; +import forge.control.input.InputSelectCardsFromList; import forge.game.GameActionUtil; import forge.game.GameState; import forge.game.ai.ComputerUtil; @@ -504,9 +505,12 @@ public class Upkeep extends Phase { CardLists.sortByPowerAsc(creatures); final int power = creatures.get(0).getNetAttack(); if (player.isHuman()) { - Singletons.getModel().getMatch().getInput().setInput( - CardFactoryUtil.inputDestroyNoRegeneration(this.getLowestPowerList(creatures), - "Select creature with power: " + power + " to sacrifice.")); + InputSelectCards inp = new InputSelectCardsFromList(1,1,this.getLowestPowerList(creatures)); + inp.setMessage("Select creature with power: " + power + " to sacrifice."); + FThreads.setInputAndWait(inp); + if(!inp.hasCancelled()) + game.getAction().destroyNoRegeneration(inp.getSelected().get(0)); + } else { // computer final Card compyTarget = this.getCompyCardToDestroy(creatures); game.getAction().destroyNoRegeneration(compyTarget); diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index 65841382e94..037c94a5d4c 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -45,9 +45,10 @@ import forge.card.spellability.TargetChoices; import forge.card.spellability.TargetSelection; import forge.card.trigger.Trigger; import forge.card.trigger.TriggerType; -import forge.control.input.InputBase; import forge.control.input.InputPayManaExecuteCommands; import forge.control.input.InputPayManaX; +import forge.control.input.InputSelectCards; +import forge.control.input.InputSelectCardsFromList; import forge.control.input.InputSynchronized; import forge.game.GameActionUtil; import forge.game.GameState; @@ -61,9 +62,7 @@ import forge.game.player.Player; import forge.gui.GuiChoose; import forge.gui.framework.EDocID; import forge.gui.framework.SDisplayUtil; -import forge.gui.match.CMatchUI; import forge.util.MyObservable; -import forge.view.ButtonUtil; /** *
@@ -717,44 +716,19 @@ public class MagicStack extends MyObservable {
i--;
}
}
- if (creats.size() != 0) {
+ if (!creats.isEmpty()) {
haunterDiesWork.setDescription("");
- final InputBase target = new InputBase() {
- private static final long serialVersionUID = 1981791992623774490L;
-
- @Override
- public void showMessage() {
- CMatchUI.SINGLETON_INSTANCE.showMessage("Choose target creature to haunt.");
- ButtonUtil.disableAll();
- }
-
- @Override
- public void selectCard(final Card c) {
- Zone zone = Singletons.getModel().getGame().getZoneOf(c);
- if (!zone.is(ZoneType.Battlefield) || !c.isCreature()) {
- return;
- }
- if (c.canBeTargetedBy(haunterDiesWork)) {
- haunterDiesWork.setTargetCard(c);
- MagicStack.this.add(haunterDiesWork);
- this.stop();
- } else {
- CMatchUI.SINGLETON_INSTANCE.showMessage("Cannot target this card (Shroud? Protection?).");
- }
- }
- };
-
if (source.getController().isHuman()) {
- Singletons.getModel().getMatch().getInput().setInput(target);
+ final InputSelectCards targetHaunted = new InputSelectCardsFromList(1,1, creats);
+ targetHaunted.setMessage("Choose target creature to haunt.");
+ FThreads.setInputAndWait(targetHaunted);
+ haunterDiesWork.setTargetCard(targetHaunted.getSelected().get(0));
+ MagicStack.this.add(haunterDiesWork);
} else {
// AI choosing what to haunt
final List