diff --git a/forge-core/src/main/java/forge/card/CardRules.java b/forge-core/src/main/java/forge/card/CardRules.java index d0268c6a3c5..6c336d0a6ca 100644 --- a/forge-core/src/main/java/forge/card/CardRules.java +++ b/forge-core/src/main/java/forge/card/CardRules.java @@ -475,11 +475,11 @@ public final class CardRules implements ICardCharacteristics { return getName(); ICardFace mainFace = Objects.requireNonNullElse(mainPart.getFunctionalVariant(variantName), mainPart); - String mainPartName = Objects.requireNonNullElse(mainFace.getFlavorName(), mainFace.getName()); + String mainPartName = mainFace.getDisplayName(); if(splitType.getAggregationMethod() == CardSplitType.FaceSelectionMethod.COMBINE) { ICardFace otherFace = Objects.requireNonNullElse(otherPart.getFunctionalVariant(variantName), otherPart); - String otherPartName = Objects.requireNonNullElse(otherFace.getFlavorName(), otherFace.getName()); + String otherPartName = otherFace.getDisplayName(); return mainPartName + " // " + otherPartName; } else diff --git a/forge-core/src/main/java/forge/card/ICardFace.java b/forge-core/src/main/java/forge/card/ICardFace.java index dd37cf19231..043f15866d4 100644 --- a/forge-core/src/main/java/forge/card/ICardFace.java +++ b/forge-core/src/main/java/forge/card/ICardFace.java @@ -9,6 +9,15 @@ import java.util.Map; public interface ICardFace extends ICardCharacteristics, ICardRawAbilites, Comparable { String getFlavorName(); + /** + * @return this card's flavor name if it has one. Otherwise, the card's Oracle name. + */ + default String getDisplayName() { + if (this.getFlavorName() != null) + return this.getFlavorName(); + return this.getName(); + } + boolean hasFunctionalVariants(); ICardFace getFunctionalVariant(String variant); Map getFunctionalVariants(); diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index 9c4ff34ed04..149f1c4b247 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -1890,7 +1890,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont final String name) { List choices = FModel.getMagicDb().getCommonCards().streamAllFaces() .filter(cpp) - .map(cardFace -> new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName())) + .map(cardFace -> new CardFaceView(CardTranslation.getTranslatedName(cardFace.getDisplayName()), cardFace.getName())) .sorted() .collect(Collectors.toList()); CardFaceView cardFaceView = getGui().one(message, choices); @@ -2949,7 +2949,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont List choices = new ArrayList<>(); CardFaceView cardFaceView; for (ICardFace cardFace : faces) { - cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName()); + cardFaceView = new CardFaceView(CardTranslation.getTranslatedName(cardFace.getDisplayName()), cardFace.getName()); choices.add(cardFaceView); } Collections.sort(choices);