DevMode: joined card to hand for both players, added "card to battlefield" button

This commit is contained in:
Maxmtg
2012-11-06 18:59:36 +00:00
parent bb5e270855
commit aaeaf9bbab
4 changed files with 76 additions and 67 deletions

View File

@@ -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; }
}

View File

@@ -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.
@@ -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() {
List<Player> Players = Singletons.getModel().getGame().getPlayers();

View File

@@ -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();

View File

@@ -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} */