Add card face display name for card name lists.

This commit is contained in:
Jetz
2025-11-04 08:41:42 -05:00
parent 0bb67ec8d0
commit fe2bd016b6
3 changed files with 13 additions and 4 deletions

View File

@@ -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

View File

@@ -9,6 +9,15 @@ import java.util.Map;
public interface ICardFace extends ICardCharacteristics, ICardRawAbilites, Comparable<ICardFace> {
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<String, ? extends ICardFace> getFunctionalVariants();

View File

@@ -1890,7 +1890,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final String name) {
List<CardFaceView> 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<CardFaceView> 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);