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$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class CardFactoryUtil {
|
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>
|
* <p>
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import forge.card.spellability.SpellAbility;
|
|||||||
import forge.control.input.InputBase;
|
import forge.control.input.InputBase;
|
||||||
import forge.control.input.InputPayManaExecuteCommands;
|
import forge.control.input.InputPayManaExecuteCommands;
|
||||||
import forge.control.input.InputSelectCards;
|
import forge.control.input.InputSelectCards;
|
||||||
|
import forge.control.input.InputSelectCardsFromList;
|
||||||
import forge.game.GameActionUtil;
|
import forge.game.GameActionUtil;
|
||||||
import forge.game.GameState;
|
import forge.game.GameState;
|
||||||
import forge.game.ai.ComputerUtil;
|
import forge.game.ai.ComputerUtil;
|
||||||
@@ -504,9 +505,12 @@ public class Upkeep extends Phase {
|
|||||||
CardLists.sortByPowerAsc(creatures);
|
CardLists.sortByPowerAsc(creatures);
|
||||||
final int power = creatures.get(0).getNetAttack();
|
final int power = creatures.get(0).getNetAttack();
|
||||||
if (player.isHuman()) {
|
if (player.isHuman()) {
|
||||||
Singletons.getModel().getMatch().getInput().setInput(
|
InputSelectCards inp = new InputSelectCardsFromList(1,1,this.getLowestPowerList(creatures));
|
||||||
CardFactoryUtil.inputDestroyNoRegeneration(this.getLowestPowerList(creatures),
|
inp.setMessage("Select creature with power: " + power + " to sacrifice.");
|
||||||
"Select creature with power: " + power + " to sacrifice."));
|
FThreads.setInputAndWait(inp);
|
||||||
|
if(!inp.hasCancelled())
|
||||||
|
game.getAction().destroyNoRegeneration(inp.getSelected().get(0));
|
||||||
|
|
||||||
} else { // computer
|
} else { // computer
|
||||||
final Card compyTarget = this.getCompyCardToDestroy(creatures);
|
final Card compyTarget = this.getCompyCardToDestroy(creatures);
|
||||||
game.getAction().destroyNoRegeneration(compyTarget);
|
game.getAction().destroyNoRegeneration(compyTarget);
|
||||||
|
|||||||
@@ -45,9 +45,10 @@ import forge.card.spellability.TargetChoices;
|
|||||||
import forge.card.spellability.TargetSelection;
|
import forge.card.spellability.TargetSelection;
|
||||||
import forge.card.trigger.Trigger;
|
import forge.card.trigger.Trigger;
|
||||||
import forge.card.trigger.TriggerType;
|
import forge.card.trigger.TriggerType;
|
||||||
import forge.control.input.InputBase;
|
|
||||||
import forge.control.input.InputPayManaExecuteCommands;
|
import forge.control.input.InputPayManaExecuteCommands;
|
||||||
import forge.control.input.InputPayManaX;
|
import forge.control.input.InputPayManaX;
|
||||||
|
import forge.control.input.InputSelectCards;
|
||||||
|
import forge.control.input.InputSelectCardsFromList;
|
||||||
import forge.control.input.InputSynchronized;
|
import forge.control.input.InputSynchronized;
|
||||||
import forge.game.GameActionUtil;
|
import forge.game.GameActionUtil;
|
||||||
import forge.game.GameState;
|
import forge.game.GameState;
|
||||||
@@ -61,9 +62,7 @@ import forge.game.player.Player;
|
|||||||
import forge.gui.GuiChoose;
|
import forge.gui.GuiChoose;
|
||||||
import forge.gui.framework.EDocID;
|
import forge.gui.framework.EDocID;
|
||||||
import forge.gui.framework.SDisplayUtil;
|
import forge.gui.framework.SDisplayUtil;
|
||||||
import forge.gui.match.CMatchUI;
|
|
||||||
import forge.util.MyObservable;
|
import forge.util.MyObservable;
|
||||||
import forge.view.ButtonUtil;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -717,44 +716,19 @@ public class MagicStack extends MyObservable {
|
|||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (creats.size() != 0) {
|
if (!creats.isEmpty()) {
|
||||||
haunterDiesWork.setDescription("");
|
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()) {
|
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 {
|
} else {
|
||||||
// AI choosing what to haunt
|
// AI choosing what to haunt
|
||||||
final List<Card> oppCreats = CardLists.filterControlledBy(creats, source.getController().getOpponents());
|
final List<Card> oppCreats = CardLists.filterControlledBy(creats, source.getController().getOpponents());
|
||||||
if (oppCreats.size() != 0) {
|
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(oppCreats.isEmpty() ? creats : oppCreats));
|
||||||
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(oppCreats));
|
|
||||||
} else {
|
|
||||||
haunterDiesWork.setTargetCard(ComputerUtilCard.getWorstCreatureAI(creats));
|
|
||||||
}
|
|
||||||
this.add(haunterDiesWork);
|
this.add(haunterDiesWork);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user