* Draft shows now cards to draft in optimized size. Added some elements to cardPanel only if needed. Removed some legacy code about foiled card display.

This commit is contained in:
LevelX2 2014-01-15 01:45:07 +01:00
parent 1c5f0c8b7f
commit e892d4388d
9 changed files with 123 additions and 108 deletions

View file

@ -470,15 +470,6 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
return image;
}
@Override
public void setFoil(boolean foil) {
}
@Override
public boolean isFoil() {
return false;
}
@Override
public void setZone(String zone) {
//To change body of implemented methods use File | Settings | File Templates.

View file

@ -41,15 +41,16 @@ import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import mage.cards.CardDimensions;
import mage.cards.MageCard;
import mage.client.plugins.impl.Plugins;
import mage.client.util.CardViewRarityComparator;
import mage.client.util.Config;
import mage.client.util.Event;
import mage.client.util.Listener;
import mage.constants.Constants;
import mage.view.CardView;
import mage.view.CardsView;
import org.apache.log4j.Logger;
/**
*
@ -57,6 +58,8 @@ import mage.view.CardsView;
*/
public class DraftGrid extends javax.swing.JPanel implements MouseListener {
private static final Logger logger = Logger.getLogger(DraftGrid.class);
protected CardEventSource cardEventSource = new CardEventSource();
protected BigCard bigCard;
@ -68,30 +71,57 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener {
public void loadBooster(CardsView booster, BigCard bigCard) {
this.bigCard = bigCard;
this.removeAll();
int maxRows = 4;
int numColumns = 5;
int curColumn = 0;
int curRow = 0;
int offsetX = 5;
int offsetY = 3;
Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight);
Dimension dimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight);
List<CardView> sortedCards = new ArrayList<CardView>(booster.values());
Collections.sort(sortedCards, new CardViewRarityComparator());
for (CardView card: sortedCards) {
MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, true);
cardImg.addMouseListener(this);
add(cardImg);
cardImg.update(card);
rectangle.setLocation(curColumn * (Config.dimensions.frameWidth + offsetX) + offsetX, curRow * (Config.dimensions.frameHeight + offsetY) + offsetY);
cardImg.setBounds(rectangle);
cardImg.setCardBounds(rectangle.x, rectangle.y, Config.dimensions.frameWidth, Config.dimensions.frameHeight);
curColumn++;
if (curColumn == numColumns) {
curColumn = 0;
curRow++;
CardDimensions cardDimension = null;
int maxCards;
double scale ;
for (int i = 1; i < maxRows; i++) {
scale = (double) (this.getHeight()/i) / Constants.FRAME_MAX_HEIGHT;
cardDimension = new CardDimensions(scale);
maxCards = this.getWidth() / (cardDimension.frameWidth + offsetX);
if ((maxCards * i) >= booster.size()) {
numColumns = booster.size() / i;
if (booster.size() % i > 0) {
numColumns++;
}
break;
}
}
repaint();
if (cardDimension != null) {
Rectangle rectangle = new Rectangle(cardDimension.frameWidth, cardDimension.frameHeight);
Dimension dimension = new Dimension(cardDimension.frameWidth, cardDimension.frameHeight);
List<CardView> sortedCards = new ArrayList<CardView>(booster.values());
Collections.sort(sortedCards, new CardViewRarityComparator());
for (CardView card: sortedCards) {
MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, true);
cardImg.addMouseListener(this);
add(cardImg);
cardImg.update(card);
rectangle.setLocation(curColumn * (cardDimension.frameWidth + offsetX) + offsetX, curRow * (rectangle.height + offsetY) + offsetY);
cardImg.setBounds(rectangle);
cardImg.setCardBounds(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
curColumn++;
if (curColumn == numColumns) {
curColumn = 0;
curRow++;
}
}
repaint();
} else {
logger.warn("Draft Grid - no possible fit of cards");
}
}
public void addCardEventListener(Listener<Event> listener) {

View file

@ -16,7 +16,6 @@ import mage.client.util.ImageHelper;
import mage.client.util.gui.ArrowBuilder;
import mage.client.util.gui.GuiDisplayUtil;
import mage.components.CardInfoPane;
import mage.constants.Rarity;
import mage.remote.Session;
import mage.utils.ThreadUtils;
import mage.view.CardView;
@ -412,7 +411,7 @@ public class MageActionCallback implements ActionCallback {
if (image != null && image instanceof BufferedImage) {
// XXX: scaled to fit width
image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth());
bigCard.setCard(card.getOriginal().getId(), image, card.getOriginal().getRules(), card.isFoil());
bigCard.setCard(card.getOriginal().getId(), image, card.getOriginal().getRules(), false);
if (card.getOriginal().isAbility()) {
bigCard.showTextComponent();
} else {

View file

@ -85,7 +85,7 @@ public class Config {
// cardScalingFactor = Double.valueOf(0.4);
// cardScalingFactorEnlarged = Double.valueOf(0.5);
// handScalingFactor = Double.valueOf(1.3);
// defaultGameType = p.getProperty("default-game-type", "Human");;
// defaultGameType = p.getProperty("default-game-type", "Human");
// defaultDeckPath = "";
// defaultOtherPlayerIndex = "1";
// defaultComputerName = "Computer";