From e7803b0572f4dca90447cd816e141f9183f3149f Mon Sep 17 00:00:00 2001 From: elcnesh Date: Wed, 3 Dec 2014 14:54:27 +0000 Subject: [PATCH] - For face-down cards you can see, always display their face-up image for easier browsing through morphs. - Don't display face-down cards in library/hand/exile as creatures. --- .../src/main/java/forge/game/card/CardView.java | 4 ++++ .../forge/screens/match/controllers/CPicture.java | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 09ec7ec6290..c333022b967 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -12,6 +12,7 @@ import forge.card.CardStateName; import forge.card.CardEdition; import forge.card.CardRarity; import forge.card.CardRules; +import forge.card.CardType; import forge.card.CardTypeView; import forge.card.ColorSet; import forge.card.mana.ManaCost; @@ -732,6 +733,9 @@ public class CardView extends GameEntityView { } public CardTypeView getType() { + if (isFaceDown() && !isInZone(EnumSet.of(ZoneType.Battlefield, ZoneType.Stack))) { + return CardType.EMPTY; + } return get(TrackableProperty.Type); } void updateType(CardState c) { diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPicture.java b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPicture.java index 5b48c3442d9..f34e1e4fc15 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPicture.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/controllers/CPicture.java @@ -56,7 +56,7 @@ public enum CPicture implements ICDoc { private final CardZoomer zoomer = CardZoomer.SINGLETON_INSTANCE; private CardView currentView = null; - private boolean isDisplayAlt = false; + private boolean isDisplayAlt = false, alwaysDisplayAlt = false; /** * Shows card details and/or picture in sidebar cardview tabber. @@ -71,8 +71,9 @@ public enum CPicture implements ICDoc { currentView = c; isDisplayAlt = showAlt; + alwaysDisplayAlt = canFlip && c.isFaceDown(); flipIndicator.setVisible(canFlip); - picturePanel.setCard(c.getState(showAlt)); + picturePanel.setCard(c.getState(isDisplayAlt || alwaysDisplayAlt)); if (showAlt && canFlip) { flipCard(); } @@ -97,10 +98,10 @@ public enum CPicture implements ICDoc { } } showCard(c, false); - } - else { + } else { currentView = null; isDisplayAlt = false; + alwaysDisplayAlt = false; flipIndicator.setVisible(false); picturePanel.setCard(item); } @@ -177,7 +178,7 @@ public enum CPicture implements ICDoc { public void flipCard() { if (MatchUtil.canCardBeFlipped(currentView)) { isDisplayAlt = !isDisplayAlt; - picturePanel.setCard(currentView.getState(isDisplayAlt)); + picturePanel.setCard(currentView.getState(isDisplayAlt || alwaysDisplayAlt)); CDetail.SINGLETON_INSTANCE.showCard(currentView, isDisplayAlt); } }