diff --git a/forge-core/src/main/java/forge/card/CardDb.java b/forge-core/src/main/java/forge/card/CardDb.java index aff5424250b..670cfdcacf0 100644 --- a/forge-core/src/main/java/forge/card/CardDb.java +++ b/forge-core/src/main/java/forge/card/CardDb.java @@ -214,15 +214,15 @@ public final class CardDb implements ICardDatabase { List cards = this.allCardsByName.get(cardName); int sz = cards.size(); - if( fromSet == SetPreference.Earliest ) { + if( fromSet == SetPreference.Latest ) { for(int i = 0 ; i < sz ; i++) if( printedBefore == null || editions.get(cards.get(i).getEdition()).getDate().after(printedBefore) ) return cards.get(i); return null; - } else if( fromSet == SetPreference.Latest || fromSet == null || fromSet == SetPreference.Random ) { + } else if( fromSet == SetPreference.Earliest || fromSet == null || fromSet == SetPreference.Random ) { for(int i = sz - 1 ; i >= 0 ; i--) if( printedBefore == null || editions.get(cards.get(i).getEdition()).getDate().after(printedBefore) ) { - if( fromSet == SetPreference.Latest ) + if( fromSet == SetPreference.Earliest ) return cards.get(i); return cards.get(MyRandom.getRandom().nextInt(i+1)); } diff --git a/forge-core/src/main/java/forge/card/CardEdition.java b/forge-core/src/main/java/forge/card/CardEdition.java index 9d0447ebd15..628c5948d2f 100644 --- a/forge-core/src/main/java/forge/card/CardEdition.java +++ b/forge-core/src/main/java/forge/card/CardEdition.java @@ -420,12 +420,15 @@ public final class CardEdition implements Comparable { // immutable minEditions.add(cp.getEdition()); } - CardEdition earliestOne = null; for(CardEdition ed : getOrderedEditions()) { - if( minEditions.contains(ed.getCode()) ) - earliestOne = ed; + if( minEditions.contains(ed.getCode()) && ( ed.getType() == Type.CORE || ed.getType() == Type.EXPANSION ) ) + return ed; } - return earliestOne; + for(CardEdition ed : getOrderedEditions()) { + if(minEditions.contains(ed.getCode())) + return ed; + } + return UNKNOWN; } } public static class Predicates { diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/DeckProxy.java b/forge-gui/src/main/java/forge/gui/deckeditor/DeckProxy.java index 5cee4464727..3145c671b4f 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/DeckProxy.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/DeckProxy.java @@ -11,6 +11,7 @@ import com.google.common.base.Predicate; import forge.Singletons; import forge.StaticData; +import forge.card.CardEdition; import forge.card.ColorSet; import forge.deck.CardPool; import forge.deck.Deck; @@ -48,7 +49,7 @@ public class DeckProxy implements InventoryItem { private int sbSize = Integer.MIN_VALUE; private final String path; private final Function fnGetDeck; - private String edition; + private CardEdition edition; public DeckProxy(Deck deck, GameType type, IStorage storage) { this(deck, type, "", storage, null); @@ -85,12 +86,12 @@ public class DeckProxy implements InventoryItem { return path; } - public String getEdition() { + public CardEdition getEdition() { if ( null == edition ) { if ( deck instanceof PreconDeck ) - edition = ((PreconDeck) deck).getEdition(); + edition = StaticData.instance().getEditions().get(((PreconDeck) deck).getEdition()); if ( !isGeneratedDeck() ) - edition = StaticData.instance().getEditions().getEarliestEditionWithAllCards(getDeck().getAllCardsInASinglePool()).getCode(); + edition = StaticData.instance().getEditions().getEarliestEditionWithAllCards(getDeck().getAllCardsInASinglePool()); } return edition; } diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/DeckManager.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/DeckManager.java index fac890e455b..3216a1ffdd8 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/DeckManager.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/DeckManager.java @@ -68,6 +68,7 @@ public final class DeckManager extends ItemManager { ColumnDef.NAME, ColumnDef.DECK_COLOR, ColumnDef.DECK_FORMAT, + ColumnDef.DECK_EDITION, ColumnDef.DECK_MAIN, ColumnDef.DECK_SIDE); diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColumnDef.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColumnDef.java index 25065cf23aa..4b4e98f7149 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColumnDef.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/views/ColumnDef.java @@ -337,6 +337,19 @@ public enum ColumnDef { return StringUtils.join(Iterables.transform(deck.getFormats(), GameFormat.FN_GET_NAME) , ", "); } }), + DECK_EDITION("Min.Set", "Min.Set", 30, 30, 30, SortState.ASC, new ItemCellRenderer(), + new Function, Comparable>() { + @Override + public Comparable apply(final Entry from) { + return toDeck(from.getKey()).getEdition(); + } + }, + new Function, Object>() { + @Override + public Object apply(final Entry from) { + return toDeck(from.getKey()).getEdition().getCode(); + } + }), DECK_MAIN("Main", "Main Deck", 30, 30, 30, SortState.ASC, new IntegerRenderer(), new Function, Comparable>() { @Override