From d3ce238b53d4d133c73438a9329f8bc6b183a813 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 26 Aug 2015 15:48:47 +0200 Subject: [PATCH 1/3] Fixed a NPE of PutTokenOntoBattlefieldCopyTargetEffect. --- .../effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage/src/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java b/Mage/src/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java index 7bb195b8266..1d740f6f94c 100644 --- a/Mage/src/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/PutTokenOntoBattlefieldCopyTargetEffect.java @@ -85,7 +85,7 @@ public class PutTokenOntoBattlefieldCopyTargetEffect extends OneShotEffect { this.playerId = effect.playerId; this.additionalCardType = effect.additionalCardType; this.gainsHaste = effect.gainsHaste; - this.addedTokenPermanents.addAll(effect.addedTokenPermanents); + this.addedTokenPermanents = new ArrayList<>(effect.addedTokenPermanents); } @Override From 0ee22d90ca2331c2ff087d23c3e767e2c925f60e Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 26 Aug 2015 16:29:57 +0200 Subject: [PATCH 2/3] Allow hand card ordering by drag'n'drop only with left mouse button. --- .../java/mage/client/plugins/adapters/MageActionCallback.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index 2d7f70b7a2b..83ba8b763d2 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -292,6 +292,10 @@ public class MageActionCallback implements ActionCallback { // drag'n'drop is allowed for HAND zone only return; } + if (!SwingUtilities.isLeftMouseButton(e)) { + // only allow draging with the left mouse button + return; + } isDragging = true; prevCard = card; Point p = card.getCardLocation(); From 97a8b351b45872b43083a558c19f5f543e3a7cfa Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 26 Aug 2015 16:30:32 +0200 Subject: [PATCH 3/3] Fixed a problem that show cards window was not closed (e.g. for libraray card selection). --- .../main/java/mage/client/game/GamePanel.java | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index aab803819d8..7ba3fae85f0 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -199,14 +199,14 @@ public final class GamePanel extends javax.swing.JPanel { // CardView popupMenu was invoked last private CardView cardViewPopupMenu; - // popup menu for a card - private JPopupMenu popupMenuCardPanel; + // popup menu for triggered abilities order + private JPopupMenu popupMenuTriggerOrder; public GamePanel() { initComponents(); - createTriggerOrderPupupMenu(); - this.add(popupMenuCardPanel); + initPopupMenuTriggerOrder(); + //this.add(popupMenuTriggerOrder); pickNumber = new PickNumberDialog(); MageFrame.getDesktop().add(pickNumber, JLayeredPane.MODAL_LAYER); @@ -1107,12 +1107,10 @@ public final class GamePanel extends javax.swing.JPanel { hideAll(); ShowCardsDialog showCards = new ShowCardsDialog(); JPopupMenu popupMenu = null; - Listener eventListener = null; if (PopUpMenuType.TRIGGER_ORDER.equals(popupMenuType)) { - popupMenu = getTriggerOrderPopupMenu(); - eventListener = getTriggerOrderEventListener(showCards); + popupMenu = popupMenuTriggerOrder; } - showCards.loadCards(title, cards, bigCard, Config.dimensionsEnlarged, gameId, required, options, popupMenu, eventListener); + showCards.loadCards(title, cards, bigCard, Config.dimensionsEnlarged, gameId, required, options, popupMenu, getShowCardsEventListener(showCards)); return showCards; } @@ -1985,8 +1983,8 @@ public final class GamePanel extends javax.swing.JPanel { hoverButtons.put(name, button); } - // TriggerOrderPopupMenu - private Listener getTriggerOrderEventListener(final ShowCardsDialog dialog) { + // Event listener for the ShowCardsDialog + private Listener getShowCardsEventListener(final ShowCardsDialog dialog) { return new Listener() { @Override public void event(Event event) { @@ -2011,7 +2009,8 @@ public final class GamePanel extends javax.swing.JPanel { String abilityRuleText = null; if (cardViewPopupMenu instanceof CardView && cardViewPopupMenu.getAbility() != null) { abilityId = cardViewPopupMenu.getAbility().getId(); - if (!cardViewPopupMenu.getAbility().getRules().isEmpty() && !cardViewPopupMenu.getAbility().getRules().equals("")) { + if (!cardViewPopupMenu.getAbility().getRules().isEmpty() + && !cardViewPopupMenu.getAbility().getRules().get(0).isEmpty()) { abilityRuleText = cardViewPopupMenu.getAbility().getRules().get(0); } } @@ -2038,11 +2037,7 @@ public final class GamePanel extends javax.swing.JPanel { } } - public JPopupMenu getTriggerOrderPopupMenu() { - return popupMenuCardPanel; - } - - private void createTriggerOrderPupupMenu() { + private void initPopupMenuTriggerOrder() { ActionListener actionListener = new ActionListener() { @Override @@ -2051,34 +2046,34 @@ public final class GamePanel extends javax.swing.JPanel { } }; - popupMenuCardPanel = new JPopupMenu(); + popupMenuTriggerOrder = new JPopupMenu(); // String tooltipText = ""; JMenuItem menuItem; menuItem = new JMenuItem("Put this ability always first on the stack"); menuItem.setActionCommand(CMD_AUTO_ORDER_FIRST); menuItem.addActionListener(actionListener); - popupMenuCardPanel.add(menuItem); + popupMenuTriggerOrder.add(menuItem); menuItem = new JMenuItem("Put this ability always last on the stack"); menuItem.setActionCommand(CMD_AUTO_ORDER_LAST); menuItem.addActionListener(actionListener); - popupMenuCardPanel.add(menuItem); + popupMenuTriggerOrder.add(menuItem); menuItem = new JMenuItem("Put all abilities with that rule text always first on the stack"); menuItem.setActionCommand(CMD_AUTO_ORDER_NAME_FIRST); menuItem.addActionListener(actionListener); - popupMenuCardPanel.add(menuItem); + popupMenuTriggerOrder.add(menuItem); menuItem = new JMenuItem("Put all abilities with that rule text always last on the stack"); menuItem.setActionCommand(CMD_AUTO_ORDER_NAME_LAST); menuItem.addActionListener(actionListener); - popupMenuCardPanel.add(menuItem); + popupMenuTriggerOrder.add(menuItem); menuItem = new JMenuItem("Reset all order settings for triggered abilities"); menuItem.setActionCommand(CMD_AUTO_ORDER_RESET_ALL); menuItem.addActionListener(actionListener); - popupMenuCardPanel.add(menuItem); + popupMenuTriggerOrder.add(menuItem); } public String getGameLog() {