From b5032226f4adbbc48c17240b87cfa0cd718830d6 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Wed, 27 Jun 2012 18:44:03 +0400 Subject: [PATCH] Showing already chosen cards in choice dialog --- .../src/main/java/mage/client/cards/Card.java | 4 ++++ .../main/java/mage/client/cards/CardArea.java | 16 ++++++++++++++-- .../mage/client/dialog/ShowCardsDialog.java | 13 +++++++++++++ .../main/java/mage/client/game/GamePanel.java | 6 +++--- .../java/org/mage/card/arcane/CardPanel.java | 5 ++++- .../java/org/mage/card/arcane/GlowText.java | 14 ++++++-------- Mage.Common/src/mage/cards/MageCard.java | 1 + .../src/mage/player/human/HumanPlayer.java | 12 ++++++++++-- Mage.Server/plugins/mage-player-human.jar | Bin 13375 -> 13534 bytes 9 files changed, 55 insertions(+), 16 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/Card.java b/Mage.Client/src/main/java/mage/client/cards/Card.java index 7ff9091c75f..c81ed5f1b35 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Card.java +++ b/Mage.Client/src/main/java/mage/client/cards/Card.java @@ -503,4 +503,8 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis @Override public void showCardTitle() { } + + @Override + public void setSelected(boolean selected) { + } } diff --git a/Mage.Client/src/main/java/mage/client/cards/CardArea.java b/Mage.Client/src/main/java/mage/client/cards/CardArea.java index ded95e97d27..02756b6e37f 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardArea.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardArea.java @@ -41,7 +41,8 @@ import mage.view.SimpleCardsView; import javax.swing.*; import java.awt.*; import java.awt.event.MouseListener; -import java.util.UUID; +import java.util.*; +import java.util.List; public class CardArea extends JPanel { @@ -148,6 +149,17 @@ public class CardArea extends JPanel { public void clearReloaded() { this.reloaded = false; - } + } + + public void selectCards(List selected) { + for (Component component : cardArea.getComponents()) { + if (component instanceof MageCard) { + MageCard mageCard = (MageCard)component; + if (selected.contains(mageCard.getOriginal().getId())) { + mageCard.setSelected(true); + } + } + } + } } diff --git a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java index f816779e59a..0a7f7b2f04e 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java @@ -48,6 +48,8 @@ import javax.swing.*; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.io.Serializable; +import java.util.Map; import java.util.UUID; /** @@ -70,9 +72,20 @@ public class ShowCardsDialog extends MageDialog implements MouseListener { } public void loadCards(String name, CardsView showCards, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean modal) { + loadCards(name, showCards, bigCard, dimension, gameId, modal, null); + } + + public void loadCards(String name, CardsView showCards, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean modal, Map options) { this.reloaded = true; this.title = name; cardArea.loadCards(showCards, bigCard, dimension, gameId, this); + if (options != null) { + if (options.containsKey("chosen")) { + java.util.List chosenCards = (java.util.List)options.get("chosen"); + cardArea.selectCards(chosenCards); + } + } + if (getParent() != MageFrame.getDesktop() /*|| this.isClosed*/) { MageFrame.getDesktop().add(this, JLayeredPane.DEFAULT_LAYER); } 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 ff6579bbcca..2cd6bf96653 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -530,7 +530,7 @@ public class GamePanel extends javax.swing.JPanel { updateGame(gameView); Map options0 = options == null ? new HashMap() : options; if (cardView != null && cardView.size() > 0) { - ShowCardsDialog dialog = showCards(message, cardView, required); + ShowCardsDialog dialog = showCards(message, cardView, required, options0); options0.put("dialog", dialog); } this.feedbackPanel.getFeedback(required?FeedbackMode.INFORM:FeedbackMode.CANCEL, message, gameView.getSpecial(), options0); @@ -589,9 +589,9 @@ public class GamePanel extends javax.swing.JPanel { this.abilityPicker.show(choices, MageFrame.getDesktop().getMousePosition()); } - private ShowCardsDialog showCards(String title, CardsView cards, boolean required) { + private ShowCardsDialog showCards(String title, CardsView cards, boolean required, Map options) { ShowCardsDialog showCards = new ShowCardsDialog(); - showCards.loadCards(title, cards, bigCard, Config.dimensionsEnlarged, gameId, required); + showCards.loadCards(title, cards, bigCard, Config.dimensionsEnlarged, gameId, required, options); return showCards; } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java index 663070fcefb..eb4d3913857 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/CardPanel.java @@ -316,8 +316,10 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti this.isAnimationPanel = isAnimationPanel; } + @Override public void setSelected(boolean isSelected) { this.isSelected = isSelected; + this.titleText.setGlowColor(Color.green); repaint(); } @@ -376,7 +378,8 @@ public class CardPanel extends MagePermanent implements MouseListener, MouseMoti g2d.fillRoundRect(cardXOffset, cardYOffset, cardWidth, cardHeight, cornerSize, cornerSize); if (isSelected) { //g2d.setColor(new Color(0,250,0,200)); - g2d.setColor(new Color(200, 120, 40, 200)); + //g2d.setColor(new Color(200, 120, 40, 200)); + g2d.setColor(Color.green); g2d.fillRoundRect(cardXOffset + 1, cardYOffset + 1, cardWidth - 2, cardHeight - 2, cornerSize, cornerSize); } diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java index cb2d2638075..d49177fa37d 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/GlowText.java @@ -1,11 +1,7 @@ package org.mage.card.arcane; -import java.awt.AlphaComposite; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.RenderingHints; +import javax.swing.*; +import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.font.LineBreakMeasurer; import java.awt.font.TextAttribute; @@ -15,8 +11,6 @@ import java.text.AttributedString; import java.text.BreakIterator; import java.util.Locale; -import javax.swing.JLabel; - public class GlowText extends JLabel { private static final long serialVersionUID = 1827677946939348001L; private int glowSize; @@ -99,4 +93,8 @@ public class GlowText extends JLabel { public int getLineCount() { return this.lineCount; } + + public void setGlowColor(Color glowColor) { + this.glowColor = glowColor; + } } diff --git a/Mage.Common/src/mage/cards/MageCard.java b/Mage.Common/src/mage/cards/MageCard.java index 77e5458ec53..7c13249d416 100644 --- a/Mage.Common/src/mage/cards/MageCard.java +++ b/Mage.Common/src/mage/cards/MageCard.java @@ -29,4 +29,5 @@ public abstract class MageCard extends JPanel { abstract public void toggleTransformed(); abstract public boolean isTransformed(); abstract public void showCardTitle(); + abstract public void setSelected(boolean selected); } diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index 16602725b6e..29cd9d2b242 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -268,7 +268,7 @@ public class HumanPlayer extends PlayerImpl { return false; } - private Map getOptions(Target target) { + private Map getOptions(Target target) { return target.getNumberOfTargets() != target.getMaxNumberOfTargets() ? staticOptions : null; } @@ -284,7 +284,15 @@ public class HumanPlayer extends PlayerImpl { int count = cards.count(target.getFilter(), game); if (count == 0) required = false; } - game.fireSelectTargetEvent(playerId, target.getMessage(), cards, required, getOptions(target)); + Map options = getOptions(target); + if (target.getTargets().size() > 0) { + if (options == null) { + options = new HashMap(1); + } + List chosen = (List)target.getTargets(); + options.put("chosen", (Serializable)chosen); + } + game.fireSelectTargetEvent(playerId, target.getMessage(), cards, required, options); waitForResponse(); if (response.getUUID() != null) { if (target.canTarget(response.getUUID(), cards, game)) { diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index c1c901de6f3df5d53e96a3b3c959d9ed9c32dd44..ae701fbf9caef4d8d0e8a443cb4e823b9f66ee46 100644 GIT binary patch delta 11789 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 delta 11649 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