diff --git a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java index 2873a6d0541..b74152e5a4c 100644 --- a/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java +++ b/forge-gui-desktop/src/main/java/forge/view/arcane/CardPanel.java @@ -372,11 +372,13 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl if (!showSplitMana) { drawManaCost(g, card.getCurrentState().getManaCost(), 0); } else { - PaperCard pc = StaticData.instance().getCommonCards().getCard(card.getName()); - int ofs = pc != null && Card.getCardForUi(pc).hasKeyword("Aftermath") ? -12 : 12; + if (!card.getName().isEmpty()) { // FIXME: temporary crash prevention measure for face-down (manifested) split cards + 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); + drawManaCost(g, card.getCurrentState().getManaCost(), ofs); + drawManaCost(g, card.getAlternateState().getManaCost(), -ofs); + } } } diff --git a/forge-gui-mobile/src/forge/card/CardRenderer.java b/forge-gui-mobile/src/forge/card/CardRenderer.java index bceb7a850a0..d9eb370e968 100644 --- a/forge-gui-mobile/src/forge/card/CardRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardRenderer.java @@ -379,15 +379,17 @@ public class CardRenderer { if (showCardManaCostOverlay(card)) { float manaSymbolSize = w / 4; if (card.isSplitCard() && card.hasAlternateState()) { - float dy = manaSymbolSize / 2 + Utils.scale(5); + if (!card.getName().isEmpty()) { // FIXME: temporary crash prevention measure for face-down (manifested) split cards + float dy = manaSymbolSize / 2 + Utils.scale(5); - PaperCard pc = StaticData.instance().getCommonCards().getCard(card.getName()); - if (Card.getCardForUi(pc).hasKeyword("Aftermath")){ - dy *= -1; // flip card costs for Aftermath cards + PaperCard pc = StaticData.instance().getCommonCards().getCard(card.getName()); + if (Card.getCardForUi(pc).hasKeyword("Aftermath")){ + dy *= -1; // flip card costs for Aftermath cards + } + + drawManaCost(g, card.getAlternateState().getManaCost(), x - padding, y - dy, w + 2 * padding, h, manaSymbolSize); + drawManaCost(g, card.getCurrentState().getManaCost(), x - padding, y + dy, w + 2 * padding, h, manaSymbolSize); } - - drawManaCost(g, card.getAlternateState().getManaCost(), x - padding, y - dy, w + 2 * padding, h, manaSymbolSize); - drawManaCost(g, card.getCurrentState().getManaCost(), x - padding, y + dy, w + 2 * padding, h, manaSymbolSize); } else { drawManaCost(g, card.getCurrentState().getManaCost(), x - padding, y, w + 2 * padding, h, manaSymbolSize);