- Fixed the Limited deck editor sometimes suggesting a default land set that does not actually contain any basic lands (e.g. Journey into Nyx (JOU) was suggested for a THS/JOU/BNG draft, which ended up adding Zendikar lands; now Theros is correctly suggested instead).

This commit is contained in:
Agetian
2015-10-03 10:19:10 +00:00
parent 3bdbf6a956
commit af7fcfaa40

View File

@@ -19,7 +19,6 @@ package forge.screens.deckeditor.controllers;
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import forge.StaticData;
import forge.UiCommand; import forge.UiCommand;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.deck.CardPool; import forge.deck.CardPool;
@@ -31,6 +30,7 @@ import forge.gui.framework.FScreen;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.itemmanager.CardManager; import forge.itemmanager.CardManager;
import forge.itemmanager.ItemManagerConfig; import forge.itemmanager.ItemManagerConfig;
import forge.model.FModel;
import forge.screens.deckeditor.AddBasicLandsDialog; import forge.screens.deckeditor.AddBasicLandsDialog;
import forge.screens.deckeditor.SEditorIO; import forge.screens.deckeditor.SEditorIO;
import forge.screens.deckeditor.views.VAllDecks; import forge.screens.deckeditor.views.VAllDecks;
@@ -40,8 +40,10 @@ import forge.screens.home.sanctioned.CSubmenuDraft;
import forge.screens.home.sanctioned.CSubmenuSealed; import forge.screens.home.sanctioned.CSubmenuSealed;
import forge.screens.match.controllers.CDetailPicture; import forge.screens.match.controllers.CDetailPicture;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
import java.util.HashSet;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
/** /**
* Child controller for limited deck editor UI. * Child controller for limited deck editor UI.
@@ -172,7 +174,13 @@ public final class CEditorLimited extends ACEditorBase<PaperCard, DeckGroup> {
Deck deck = editor.getDeckController().getModel().getHumanDeck(); Deck deck = editor.getDeckController().getModel().getHumanDeck();
if (deck == null) { return; } if (deck == null) { return; }
CardEdition defaultLandSet = StaticData.instance().getEditions().getEarliestEditionWithAllCards(deck.getAllCardsInASinglePool()); Set<CardEdition> availableEditionCodes = new HashSet<>();
for (PaperCard p : deck.getAllCardsInASinglePool().toFlatList()) {
availableEditionCodes.add(FModel.getMagicDb().getEditions().get(p.getEdition()));
}
CardEdition defaultLandSet = CardEdition.Predicates.getRandomSetWithAllBasicLands(availableEditionCodes);
AddBasicLandsDialog dialog = new AddBasicLandsDialog(deck, defaultLandSet); AddBasicLandsDialog dialog = new AddBasicLandsDialog(deck, defaultLandSet);
CardPool landsToAdd = dialog.show(); CardPool landsToAdd = dialog.show();
if (landsToAdd != null) { if (landsToAdd != null) {