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
|
||||
@SuppressWarnings("unused")
|
||||
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.border.Border;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.Card;
|
||||
import forge.CardCharacteristicName;
|
||||
|
||||
@@ -42,7 +44,9 @@ import forge.Constant;
|
||||
import forge.Counters;
|
||||
import forge.Singletons;
|
||||
import forge.card.spellability.AbilityManaPart;
|
||||
import forge.card.spellability.SpellAbility;
|
||||
import forge.card.trigger.TriggerType;
|
||||
import forge.game.GameState;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.zone.PlayerZone;
|
||||
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>
|
||||
* devModeAddCounter.
|
||||
@@ -777,6 +733,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() {
|
||||
List<Player> Players = Singletons.getModel().getGame().getPlayers();
|
||||
/*
|
||||
|
||||
@@ -52,13 +52,9 @@ public enum CDev implements ICDoc {
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeTutor(); } };
|
||||
|
||||
private final MouseListener madAddAnyCard = new MouseAdapter() { @Override
|
||||
private final MouseListener madCardToHand = new MouseAdapter() { @Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeAddAnyCard(); } };
|
||||
|
||||
private final MouseListener madGiveAnyCard = new MouseAdapter() { @Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeGiveAnyCard(); } };
|
||||
GuiDisplayUtil.devModeCardToHand(); } };
|
||||
|
||||
private final MouseListener madCounter = new MouseAdapter() { @Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
@@ -76,6 +72,11 @@ public enum CDev implements ICDoc {
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeSetLife(); } };
|
||||
|
||||
private final MouseListener madCardToBattlefield = new MouseAdapter() { @Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeCardToBattlefield(); } };
|
||||
|
||||
|
||||
private final MouseListener madBreakpoint = new MouseAdapter() { @Override
|
||||
public void mousePressed(final MouseEvent e) {
|
||||
GuiDisplayUtil.devModeBreakpoint(); } };
|
||||
@@ -100,13 +101,13 @@ public enum CDev implements ICDoc {
|
||||
VDev.SINGLETON_INSTANCE.getLblGenerateMana().addMouseListener(madMana);
|
||||
VDev.SINGLETON_INSTANCE.getLblSetupGame().addMouseListener(madSetup);
|
||||
VDev.SINGLETON_INSTANCE.getLblTutor().addMouseListener(madTutor);
|
||||
VDev.SINGLETON_INSTANCE.getAnyCard().addMouseListener(madAddAnyCard);
|
||||
VDev.SINGLETON_INSTANCE.getLblGiveCard().addMouseListener(madGiveAnyCard);
|
||||
VDev.SINGLETON_INSTANCE.getLblCardToHand().addMouseListener(madCardToHand);
|
||||
VDev.SINGLETON_INSTANCE.getLblCounterPermanent().addMouseListener(madCounter);
|
||||
VDev.SINGLETON_INSTANCE.getLblTapPermanent().addMouseListener(madTap);
|
||||
VDev.SINGLETON_INSTANCE.getLblUntapPermanent().addMouseListener(madUntap);
|
||||
VDev.SINGLETON_INSTANCE.getLblSetLife().addMouseListener(madLife);
|
||||
VDev.SINGLETON_INSTANCE.getLblBreakpoint().addMouseListener(madBreakpoint);
|
||||
VDev.SINGLETON_INSTANCE.getLblCardToBattlefield().addMouseListener(madCardToBattlefield);
|
||||
|
||||
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 lblUntapPermanent = new DevLabel("Untap Permanent");
|
||||
private final DevLabel lblSetLife = new DevLabel("Set Player Life");
|
||||
private final DevLabel lblAddCard = new DevLabel("Add any card");
|
||||
private final DevLabel lblGiveCard = new DevLabel("Give any card to AI");
|
||||
private final DevLabel lblCardToBattlefield = new DevLabel("Add card to play");
|
||||
private final DevLabel lblCardToHand = new DevLabel("Add card to hand");
|
||||
private final DevLabel lblBreakpoint = new DevLabel("Trigger breakpoint");
|
||||
|
||||
//========= Constructor
|
||||
@@ -84,8 +84,8 @@ public enum VDev implements IVDoc<CDev> {
|
||||
devLBLs.add(lblGenerateMana);
|
||||
devLBLs.add(lblSetupGame);
|
||||
devLBLs.add(lblTutor);
|
||||
devLBLs.add(lblAddCard);
|
||||
devLBLs.add(lblGiveCard);
|
||||
devLBLs.add(lblCardToHand);
|
||||
devLBLs.add(lblCardToBattlefield);
|
||||
devLBLs.add(lblCounterPermanent);
|
||||
devLBLs.add(lblTapPermanent);
|
||||
devLBLs.add(lblUntapPermanent);
|
||||
@@ -103,8 +103,8 @@ public enum VDev implements IVDoc<CDev> {
|
||||
viewport.add(this.lblGenerateMana, constraints);
|
||||
viewport.add(this.lblSetupGame, constraints);
|
||||
viewport.add(this.lblTutor, constraints);
|
||||
viewport.add(this.lblAddCard, constraints);
|
||||
viewport.add(this.lblGiveCard, constraints);
|
||||
viewport.add(this.lblCardToHand, constraints);
|
||||
viewport.add(this.lblCardToBattlefield, constraints);
|
||||
viewport.add(this.lblCounterPermanent, constraints);
|
||||
viewport.add(this.lblTapPermanent, constraints);
|
||||
viewport.add(this.lblUntapPermanent, constraints);
|
||||
@@ -186,13 +186,13 @@ public enum VDev implements IVDoc<CDev> {
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||
public DevLabel getAnyCard() {
|
||||
return this.lblAddCard;
|
||||
public DevLabel getLblCardToHand() {
|
||||
return this.lblCardToHand;
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||
public DevLabel getLblGiveCard() {
|
||||
return this.lblGiveCard;
|
||||
public final DevLabel getLblCardToBattlefield() {
|
||||
return lblCardToBattlefield;
|
||||
}
|
||||
|
||||
/** @return {@link forge.gui.match.views.VDev.DevLabel} */
|
||||
|
||||
Reference in New Issue
Block a user