- Some updates to visualization of Aftermath split cards in desktop Forge: ensure that mana cost is not flipped compared to the card image, use a more in-depth mechanism for checking the Aftermath keyword.

This commit is contained in:
Agetian
2017-04-25 20:16:34 +00:00
parent 20780c1a22
commit 1e5b2de3f3
2 changed files with 18 additions and 5 deletions

View File

@@ -18,6 +18,7 @@
package forge.toolbox.special;
import forge.StaticData;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
@@ -33,8 +34,10 @@ import javax.swing.Timer;
import net.miginfocom.swing.MigLayout;
import forge.assets.FSkinProp;
import forge.game.card.Card;
import forge.game.card.CardView.CardStateView;
import forge.gui.SOverlayUtils;
import forge.item.PaperCard;
import forge.toolbox.FOverlay;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinnedLabel;
@@ -226,10 +229,14 @@ public enum CardZoomer {
if (thisCard == null) {
return 0;
}
if (thisCard.getCard().isSplitCard() && thisCard.getCard().getText().contains("Aftermath")) {
return 270; // rotate Aftermath splits the other way to correctly show the right split (graveyard) half
if (thisCard.getCard().isSplitCard()) {
PaperCard pc = StaticData.instance().getCommonCards().getCard(thisCard.getName());
boolean isAftermath = pc != null && Card.getCardForUi(pc).hasKeyword("Aftermath");
return isAftermath ? 270 : 90; // rotate Aftermath splits the other way to correctly show the right split (graveyard) half
}
return thisCard.getCard().isSplitCard() || thisCard.getType().isPlane() || thisCard.getType().isPhenomenon() ? 90 : 0;
return thisCard.getType().isPlane() || thisCard.getType().isPhenomenon() ? 90 : 0;
}
private void setLayout() {

View File

@@ -36,11 +36,14 @@ import javax.swing.SwingUtilities;
import forge.CachedCardImage;
import forge.FThreads;
import forge.StaticData;
import forge.card.CardEdition;
import forge.card.mana.ManaCost;
import forge.game.card.Card;
import forge.game.card.CardView;
import forge.game.card.CardView.CardStateView;
import forge.gui.CardContainer;
import forge.item.PaperCard;
import forge.model.FModel;
import forge.properties.ForgePreferences.FPref;
import forge.screens.match.CMatchUI;
@@ -368,8 +371,11 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
if (!showSplitMana) {
drawManaCost(g, card.getCurrentState().getManaCost(), 0);
} else {
drawManaCost(g, card.getCurrentState().getManaCost(), +12);
drawManaCost(g, card.getAlternateState().getManaCost(), -12);
PaperCard pc = StaticData.instance().getCommonCards().getCard(card.getName());
int ofs = pc != null && Card.getCardForUi(pc).hasKeyword("Aftermath") ? -12 : 12;
drawManaCost(g, card.getCurrentState().getManaCost(), ofs);
drawManaCost(g, card.getAlternateState().getManaCost(), -ofs);
}
}