Fix so cards in hidden zones are properly hidden

This commit is contained in:
drdev
2014-10-14 22:10:56 +00:00
parent 337b03025d
commit 0744df07e6
16 changed files with 201 additions and 159 deletions

View File

@@ -36,6 +36,7 @@ import forge.assets.FSkinProp;
import forge.assets.ImageUtil;
import forge.game.card.CardView;
import forge.item.InventoryItem;
import forge.match.MatchUtil;
import forge.properties.ForgeConstants;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinIcon;
@@ -81,7 +82,7 @@ public class ImageCache {
* and cannot be loaded from disk. pass -1 for width and/or height to avoid resizing in that dimension.
*/
public static BufferedImage getImage(final CardView card, final int width, final int height) {
final String key = card.getCurrentState().getImageKey(false);
final String key = MatchUtil.getCardImageKey(card.getCurrentState());
return scaleImage(key, width, height, true);
}

View File

@@ -169,7 +169,7 @@ public enum CMatchUI implements ICDoc, IMenuProvider, IMatchController {
int i = 0;
for (final PlayerView p : sortedPlayers) {
if (allHands || p.getLobbyPlayer() instanceof LobbyPlayerHuman || CardView.mayViewAny(p.getHand())) {
if (allHands || p.getLobbyPlayer() instanceof LobbyPlayerHuman || CardView.mayViewAny(p.getHand(), p)) {
VHand newHand = new VHand(EDocID.Hands[i], p);
newHand.getLayoutControl().initialize();
hands.add(newHand);

View File

@@ -30,6 +30,7 @@ import forge.gui.CardPicturePanel;
import forge.gui.framework.ICDoc;
import forge.item.IPaperCard;
import forge.item.InventoryItem;
import forge.match.MatchUtil;
import forge.screens.match.views.VPicture;
import forge.toolbox.FMouseAdapter;
import forge.toolbox.special.CardZoomer;
@@ -62,15 +63,17 @@ public enum CPicture implements ICDoc {
*
*/
public void showCard(final CardView c, boolean showAlt) {
if (null == c) {
if (c == null) {
return;
}
boolean canFlip = MatchUtil.canFaceDownCardBeShown(c);
currentView = c;
isDisplayAlt = showAlt;
flipIndicator.setVisible(c.hasAlternateState());
flipIndicator.setVisible(canFlip);
picturePanel.setCard(c.getState(showAlt));
if (showAlt && c.hasAlternateState()) {
if (showAlt && canFlip) {
flipCard();
}
}
@@ -172,7 +175,7 @@ public enum CPicture implements ICDoc {
}
public void flipCard() {
if (currentView.hasAlternateState()) {
if (MatchUtil.canFaceDownCardBeShown(currentView)) {
isDisplayAlt = !isDisplayAlt;
picturePanel.setCard(currentView.getState(isDisplayAlt));
CDetail.SINGLETON_INSTANCE.showCard(currentView, isDisplayAlt);

View File

@@ -24,6 +24,7 @@ import java.awt.image.ColorModel;
import forge.ImageCache;
import forge.game.card.CardView.CardStateView;
import forge.match.MatchUtil;
import forge.model.FModel;
import forge.properties.ForgePreferences;
import forge.toolbox.CardFaceSymbols;
@@ -48,7 +49,7 @@ public final class FImageUtil {
* For flip cards, returns the un-flipped image.
*/
public static BufferedImage getImage(final CardStateView card) {
BufferedImage image = ImageCache.getOriginalImage(card.getImageKey(false), true);
BufferedImage image = ImageCache.getOriginalImage(MatchUtil.getCardImageKey(card), true);
final int foilIndex = card.getFoilIndex();
if (image != null && foilIndex > 0) {
image = getImageWithFoilEffect(image, foilIndex);