From 56358ecbdebac2beb9bedfe401bbb00de9c6ac77 Mon Sep 17 00:00:00 2001 From: leriomaggio Date: Sun, 26 Sep 2021 00:30:17 +0100 Subject: [PATCH] When current deck is Empty, CardEdition returned is not ZEN anymore but one depending on current Art Preference --- forge-gui/src/main/java/forge/deck/DeckProxy.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java index fd06cc92019..ad0eb7edf27 100644 --- a/forge-gui/src/main/java/forge/deck/DeckProxy.java +++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java @@ -691,11 +691,18 @@ public class DeckProxy implements InventoryItem { List availableEditions = new ArrayList<>(); for (PaperCard c : deck.getAllCardsInASinglePool().toFlatList()) { - availableEditions.add(FModel.getMagicDb().getEditions().get(c.getEdition())); + CardEdition edition = FModel.getMagicDb().getEditions().get(c.getEdition()); + if (edition == null) + continue; + availableEditions.add(edition); } CardEdition randomLandSet = CardEdition.Predicates.getRandomSetWithAllBasicLands(availableEditions); - return randomLandSet == null ? FModel.getMagicDb().getEditions().get("ZEN") : randomLandSet; + if (randomLandSet == null) { + CardEdition preferredArtEdition = CardEdition.Predicates.getPreferredArtEditionWithAllBasicLands(); + return preferredArtEdition != null ? preferredArtEdition : FModel.getMagicDb().getEditions().get("ZEN"); + } + return randomLandSet; } public static final Predicate IS_WHITE = new Predicate() {