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(); return getName();
ICardFace mainFace = Objects.requireNonNullElse(mainPart.getFunctionalVariant(variantName), mainPart); 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) { if(splitType.getAggregationMethod() == CardSplitType.FaceSelectionMethod.COMBINE) {
ICardFace otherFace = Objects.requireNonNullElse(otherPart.getFunctionalVariant(variantName), otherPart); ICardFace otherFace = Objects.requireNonNullElse(otherPart.getFunctionalVariant(variantName), otherPart);
String otherPartName = Objects.requireNonNullElse(otherFace.getFlavorName(), otherFace.getName()); String otherPartName = otherFace.getDisplayName();
return mainPartName + " // " + otherPartName; return mainPartName + " // " + otherPartName;
} }
else else

View File

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

View File

@@ -1890,7 +1890,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
final String name) { final String name) {
List<CardFaceView> choices = FModel.getMagicDb().getCommonCards().streamAllFaces() List<CardFaceView> choices = FModel.getMagicDb().getCommonCards().streamAllFaces()
.filter(cpp) .filter(cpp)
.map(cardFace -> new CardFaceView(CardTranslation.getTranslatedName(cardFace.getName()), cardFace.getName())) .map(cardFace -> new CardFaceView(CardTranslation.getTranslatedName(cardFace.getDisplayName()), cardFace.getName()))
.sorted() .sorted()
.collect(Collectors.toList()); .collect(Collectors.toList());
CardFaceView cardFaceView = getGui().one(message, choices); CardFaceView cardFaceView = getGui().one(message, choices);
@@ -2949,7 +2949,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
List<CardFaceView> choices = new ArrayList<>(); List<CardFaceView> choices = new ArrayList<>();
CardFaceView cardFaceView; CardFaceView cardFaceView;
for (ICardFace cardFace : faces) { 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); choices.add(cardFaceView);
} }
Collections.sort(choices); Collections.sort(choices);