mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
DevMode: joined card to hand for both players, added "card to battlefield" button
This commit is contained in:
@@ -36,5 +36,6 @@ public abstract class SpellAiLogic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// consider safe
|
// consider safe
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public boolean chkAIDrawback(final Map<String, String> params, final SpellAbility sa, final Player aiPlayer) { return true; }
|
public boolean chkAIDrawback(final Map<String, String> params, final SpellAbility sa, final Player aiPlayer) { return true; }
|
||||||
}
|
}
|
||||||
@@ -34,6 +34,8 @@ import javax.swing.JFileChooser;
|
|||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.border.Border;
|
import javax.swing.border.Border;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import forge.Card;
|
import forge.Card;
|
||||||
import forge.CardCharacteristicName;
|
import forge.CardCharacteristicName;
|
||||||
|
|
||||||
@@ -42,7 +44,9 @@ import forge.Constant;
|
|||||||
import forge.Counters;
|
import forge.Counters;
|
||||||
import forge.Singletons;
|
import forge.Singletons;
|
||||||
import forge.card.spellability.AbilityManaPart;
|
import forge.card.spellability.AbilityManaPart;
|
||||||
|
import forge.card.spellability.SpellAbility;
|
||||||
import forge.card.trigger.TriggerType;
|
import forge.card.trigger.TriggerType;
|
||||||
|
import forge.game.GameState;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.zone.PlayerZone;
|
import forge.game.zone.PlayerZone;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
@@ -624,54 +628,6 @@ public final class GuiDisplayUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* devModeTutorAnyCard.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @since 1.2.7
|
|
||||||
*/
|
|
||||||
public static void devModeAddAnyCard() {
|
|
||||||
final Iterable<CardPrinted> uniqueCards = CardDb.instance().getAllUniqueCards();
|
|
||||||
final List<String> cards = new ArrayList<String>();
|
|
||||||
for (final CardPrinted c : uniqueCards) {
|
|
||||||
cards.add(c.getName());
|
|
||||||
}
|
|
||||||
Collections.sort(cards);
|
|
||||||
|
|
||||||
// use standard forge's list selection dialog
|
|
||||||
final ListChooser<String> c = new ListChooser<String>("Name the card", 0, 1, cards);
|
|
||||||
if (c.show()) {
|
|
||||||
CardPrinted cp = CardDb.instance().getCard(c.getSelectedValue());
|
|
||||||
Card forgeCard = cp.toForgeCard(Singletons.getControl().getPlayer());
|
|
||||||
Singletons.getModel().getGame().getAction().moveToHand(forgeCard);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* devModeGiveAnyCard. (any card to AI hand)
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @since 1.2.7
|
|
||||||
*/
|
|
||||||
public static void devModeGiveAnyCard() {
|
|
||||||
final Iterable<CardPrinted> uniqueCards = CardDb.instance().getAllUniqueCards();
|
|
||||||
final List<String> cards = new ArrayList<String>();
|
|
||||||
for (final CardPrinted c : uniqueCards) {
|
|
||||||
cards.add(c.getName());
|
|
||||||
}
|
|
||||||
Collections.sort(cards);
|
|
||||||
|
|
||||||
// use standard forge's list selection dialog
|
|
||||||
final ListChooser<String> c = new ListChooser<String>("Name the card", 0, 1, cards);
|
|
||||||
if (c.show()) {
|
|
||||||
CardPrinted cp = CardDb.instance().getCard(c.getSelectedValue());
|
|
||||||
Card forgeCard = cp.toForgeCard(Singletons.getControl().getPlayer().getOpponent());
|
|
||||||
Singletons.getModel().getGame().getAction().moveToHand(forgeCard);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* devModeAddCounter.
|
* devModeAddCounter.
|
||||||
@@ -776,6 +732,57 @@ public final class GuiDisplayUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* devModeTutorAnyCard.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @since 1.2.7
|
||||||
|
*/
|
||||||
|
public static void devModeCardToHand() {
|
||||||
|
final List<Player> players = Singletons.getModel().getGame().getPlayers();
|
||||||
|
final Player p = GuiChoose.oneOrNone("Put card in play for which player?", players);
|
||||||
|
if (null == p) return;
|
||||||
|
|
||||||
|
final List<CardPrinted> cards = Lists.newArrayList(CardDb.instance().getAllUniqueCards());
|
||||||
|
Collections.sort(cards);
|
||||||
|
|
||||||
|
// use standard forge's list selection dialog
|
||||||
|
final ListChooser<CardPrinted> c = new ListChooser<CardPrinted>("Name the card", 0, 1, cards);
|
||||||
|
if (c.show()) {
|
||||||
|
Card forgeCard = c.getSelectedValue().toForgeCard(p);
|
||||||
|
Singletons.getModel().getGame().getAction().moveToHand(forgeCard);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void devModeCardToBattlefield() {
|
||||||
|
final List<Player> players = Singletons.getModel().getGame().getPlayers();
|
||||||
|
final Player p = GuiChoose.oneOrNone("Put card in play for which player?", players);
|
||||||
|
if (null == p) return;
|
||||||
|
|
||||||
|
final List<CardPrinted> cards = Lists.newArrayList(CardDb.instance().getAllUniqueCards());
|
||||||
|
Collections.sort(cards);
|
||||||
|
|
||||||
|
// use standard forge's list selection dialog
|
||||||
|
final ListChooser<CardPrinted> c = new ListChooser<CardPrinted>("Name the card", 0, 1, cards);
|
||||||
|
if (c.show()) {
|
||||||
|
Card forgeCard = c.getSelectedValue().toForgeCard(p);
|
||||||
|
|
||||||
|
final List<SpellAbility> choices = forgeCard.getBasicSpells();
|
||||||
|
if (choices.isEmpty()) return; // when would it happen?
|
||||||
|
|
||||||
|
final SpellAbility sa = choices.size() == 1 ? choices.get(0) : GuiChoose.oneOrNone("Choose", choices);
|
||||||
|
if (sa == null) return; // happends if cancelled
|
||||||
|
|
||||||
|
sa.setActivatingPlayer(p);
|
||||||
|
|
||||||
|
final GameState game = Singletons.getModel().getGame();
|
||||||
|
game.getAction().moveToHand(forgeCard); // this is really needed
|
||||||
|
game.getAction().playSpellAbilityForFree(sa);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static void devModeBreakpoint() {
|
public static void devModeBreakpoint() {
|
||||||
List<Player> Players = Singletons.getModel().getGame().getPlayers();
|
List<Player> Players = Singletons.getModel().getGame().getPlayers();
|
||||||
|
|||||||
@@ -52,13 +52,9 @@ public enum CDev implements ICDoc {
|
|||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
GuiDisplayUtil.devModeTutor(); } };
|
GuiDisplayUtil.devModeTutor(); } };
|
||||||
|
|
||||||
private final MouseListener madAddAnyCard = new MouseAdapter() { @Override
|
private final MouseListener madCardToHand = new MouseAdapter() { @Override
|
||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
GuiDisplayUtil.devModeAddAnyCard(); } };
|
GuiDisplayUtil.devModeCardToHand(); } };
|
||||||
|
|
||||||
private final MouseListener madGiveAnyCard = new MouseAdapter() { @Override
|
|
||||||
public void mousePressed(final MouseEvent e) {
|
|
||||||
GuiDisplayUtil.devModeGiveAnyCard(); } };
|
|
||||||
|
|
||||||
private final MouseListener madCounter = new MouseAdapter() { @Override
|
private final MouseListener madCounter = new MouseAdapter() { @Override
|
||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
@@ -76,6 +72,11 @@ public enum CDev implements ICDoc {
|
|||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
GuiDisplayUtil.devModeSetLife(); } };
|
GuiDisplayUtil.devModeSetLife(); } };
|
||||||
|
|
||||||
|
private final MouseListener madCardToBattlefield = new MouseAdapter() { @Override
|
||||||
|
public void mousePressed(final MouseEvent e) {
|
||||||
|
GuiDisplayUtil.devModeCardToBattlefield(); } };
|
||||||
|
|
||||||
|
|
||||||
private final MouseListener madBreakpoint = new MouseAdapter() { @Override
|
private final MouseListener madBreakpoint = new MouseAdapter() { @Override
|
||||||
public void mousePressed(final MouseEvent e) {
|
public void mousePressed(final MouseEvent e) {
|
||||||
GuiDisplayUtil.devModeBreakpoint(); } };
|
GuiDisplayUtil.devModeBreakpoint(); } };
|
||||||
@@ -100,13 +101,13 @@ public enum CDev implements ICDoc {
|
|||||||
VDev.SINGLETON_INSTANCE.getLblGenerateMana().addMouseListener(madMana);
|
VDev.SINGLETON_INSTANCE.getLblGenerateMana().addMouseListener(madMana);
|
||||||
VDev.SINGLETON_INSTANCE.getLblSetupGame().addMouseListener(madSetup);
|
VDev.SINGLETON_INSTANCE.getLblSetupGame().addMouseListener(madSetup);
|
||||||
VDev.SINGLETON_INSTANCE.getLblTutor().addMouseListener(madTutor);
|
VDev.SINGLETON_INSTANCE.getLblTutor().addMouseListener(madTutor);
|
||||||
VDev.SINGLETON_INSTANCE.getAnyCard().addMouseListener(madAddAnyCard);
|
VDev.SINGLETON_INSTANCE.getLblCardToHand().addMouseListener(madCardToHand);
|
||||||
VDev.SINGLETON_INSTANCE.getLblGiveCard().addMouseListener(madGiveAnyCard);
|
|
||||||
VDev.SINGLETON_INSTANCE.getLblCounterPermanent().addMouseListener(madCounter);
|
VDev.SINGLETON_INSTANCE.getLblCounterPermanent().addMouseListener(madCounter);
|
||||||
VDev.SINGLETON_INSTANCE.getLblTapPermanent().addMouseListener(madTap);
|
VDev.SINGLETON_INSTANCE.getLblTapPermanent().addMouseListener(madTap);
|
||||||
VDev.SINGLETON_INSTANCE.getLblUntapPermanent().addMouseListener(madUntap);
|
VDev.SINGLETON_INSTANCE.getLblUntapPermanent().addMouseListener(madUntap);
|
||||||
VDev.SINGLETON_INSTANCE.getLblSetLife().addMouseListener(madLife);
|
VDev.SINGLETON_INSTANCE.getLblSetLife().addMouseListener(madLife);
|
||||||
VDev.SINGLETON_INSTANCE.getLblBreakpoint().addMouseListener(madBreakpoint);
|
VDev.SINGLETON_INSTANCE.getLblBreakpoint().addMouseListener(madBreakpoint);
|
||||||
|
VDev.SINGLETON_INSTANCE.getLblCardToBattlefield().addMouseListener(madCardToBattlefield);
|
||||||
|
|
||||||
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
ForgePreferences prefs = Singletons.getModel().getPreferences();
|
||||||
|
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ public enum VDev implements IVDoc<CDev> {
|
|||||||
private final DevLabel lblTapPermanent = new DevLabel("Tap Permanent");
|
private final DevLabel lblTapPermanent = new DevLabel("Tap Permanent");
|
||||||
private final DevLabel lblUntapPermanent = new DevLabel("Untap Permanent");
|
private final DevLabel lblUntapPermanent = new DevLabel("Untap Permanent");
|
||||||
private final DevLabel lblSetLife = new DevLabel("Set Player Life");
|
private final DevLabel lblSetLife = new DevLabel("Set Player Life");
|
||||||
private final DevLabel lblAddCard = new DevLabel("Add any card");
|
private final DevLabel lblCardToBattlefield = new DevLabel("Add card to play");
|
||||||
private final DevLabel lblGiveCard = new DevLabel("Give any card to AI");
|
private final DevLabel lblCardToHand = new DevLabel("Add card to hand");
|
||||||
private final DevLabel lblBreakpoint = new DevLabel("Trigger breakpoint");
|
private final DevLabel lblBreakpoint = new DevLabel("Trigger breakpoint");
|
||||||
|
|
||||||
//========= Constructor
|
//========= Constructor
|
||||||
@@ -84,8 +84,8 @@ public enum VDev implements IVDoc<CDev> {
|
|||||||
devLBLs.add(lblGenerateMana);
|
devLBLs.add(lblGenerateMana);
|
||||||
devLBLs.add(lblSetupGame);
|
devLBLs.add(lblSetupGame);
|
||||||
devLBLs.add(lblTutor);
|
devLBLs.add(lblTutor);
|
||||||
devLBLs.add(lblAddCard);
|
devLBLs.add(lblCardToHand);
|
||||||
devLBLs.add(lblGiveCard);
|
devLBLs.add(lblCardToBattlefield);
|
||||||
devLBLs.add(lblCounterPermanent);
|
devLBLs.add(lblCounterPermanent);
|
||||||
devLBLs.add(lblTapPermanent);
|
devLBLs.add(lblTapPermanent);
|
||||||
devLBLs.add(lblUntapPermanent);
|
devLBLs.add(lblUntapPermanent);
|
||||||
@@ -103,8 +103,8 @@ public enum VDev implements IVDoc<CDev> {
|
|||||||
viewport.add(this.lblGenerateMana, constraints);
|
viewport.add(this.lblGenerateMana, constraints);
|
||||||
viewport.add(this.lblSetupGame, constraints);
|
viewport.add(this.lblSetupGame, constraints);
|
||||||
viewport.add(this.lblTutor, constraints);
|
viewport.add(this.lblTutor, constraints);
|
||||||
viewport.add(this.lblAddCard, constraints);
|
viewport.add(this.lblCardToHand, constraints);
|
||||||
viewport.add(this.lblGiveCard, constraints);
|
viewport.add(this.lblCardToBattlefield, constraints);
|
||||||
viewport.add(this.lblCounterPermanent, constraints);
|
viewport.add(this.lblCounterPermanent, constraints);
|
||||||
viewport.add(this.lblTapPermanent, constraints);
|
viewport.add(this.lblTapPermanent, constraints);
|
||||||
viewport.add(this.lblUntapPermanent, constraints);
|
viewport.add(this.lblUntapPermanent, constraints);
|
||||||
@@ -186,13 +186,13 @@ public enum VDev implements IVDoc<CDev> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||||
public DevLabel getAnyCard() {
|
public DevLabel getLblCardToHand() {
|
||||||
return this.lblAddCard;
|
return this.lblCardToHand;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||||
public DevLabel getLblGiveCard() {
|
public final DevLabel getLblCardToBattlefield() {
|
||||||
return this.lblGiveCard;
|
return lblCardToBattlefield;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||||
|
|||||||
Reference in New Issue
Block a user