mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
+2 hardcoded inputs to synchronized
This commit is contained in:
@@ -90,37 +90,6 @@ import forge.view.ButtonUtil;
|
||||
* @version $Id$
|
||||
*/
|
||||
public class CardFactoryUtil {
|
||||
/**
|
||||
* <p>
|
||||
* inputDestroyNoRegeneration.
|
||||
* </p>
|
||||
*
|
||||
* @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 List<Card> choices, final String message) {
|
||||
final InputBase target = new InputBase() {
|
||||
private static final long serialVersionUID = -6637588517573573232L;
|
||||
|
||||
@Override
|
||||
public void showMessage() {
|
||||
CMatchUI.SINGLETON_INSTANCE.showMessage(message);
|
||||
ButtonUtil.disableAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void selectCard(final Card card) {
|
||||
if (choices.contains(card)) {
|
||||
Singletons.getModel().getGame().getAction().destroyNoRegeneration(card);
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
};
|
||||
return target;
|
||||
} // inputDestroyNoRegeneration()
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -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<Card> oppCreats = CardLists.filterControlledBy(creats, source.getController().getOpponents());
|
||||
if (oppCreats.size() != 0) {
|
||||
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(oppCreats));
|
||||
} else {
|
||||
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(creats));
|
||||
}
|
||||
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(oppCreats.isEmpty() ? creats : oppCreats));
|
||||
this.add(haunterDiesWork);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user