diff --git a/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java b/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java index 7414bc25911..16855cdf32c 100644 --- a/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java +++ b/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java @@ -37,7 +37,6 @@ public final class CardArchetypeLDAGenerator { List formatStrings = new ArrayList<>(); formatStrings.add(FModel.getFormats().getStandard().getName()); formatStrings.add(FModel.getFormats().getModern().getName()); - formatStrings.add(DeckFormat.Commander.toString()); for (String formatString : formatStrings){ if(!initializeFormat(formatString)){ @@ -58,8 +57,6 @@ public final class CardArchetypeLDAGenerator { formatMap = loadFormat(FModel.getFormats().getStandard(), lda); } else if (format.equals(FModel.getFormats().getModern().getName())) { formatMap = loadFormat(FModel.getFormats().getModern(), lda); - } else { - //formatMap = initializeCommanderFormat(); } CardThemedLDAIO.saveLDA(format, formatMap); }catch (Exception e){ @@ -128,126 +125,4 @@ public final class CardArchetypeLDAGenerator { } return false; } - - public static HashMap>> initializeCommanderFormat(){ - - IStorage decks = new StorageImmediatelySerialized("Generator", - new DeckStorage(new File(ForgeConstants.DECK_GEN_DIR,DeckFormat.Commander.toString()), - ForgeConstants.DECK_GEN_DIR, false), - true); - - //get all cards - final Iterable cards = Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCards() - , Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_BASIC_LAND_NOT_WASTES), PaperCard.FN_GET_RULES)); - List cardList = Lists.newArrayList(cards); - cardList.add(FModel.getMagicDb().getCommonCards().getCard("Wastes")); - Map cardIntegerMap = new HashMap<>(); - Map integerCardMap = new HashMap<>(); - Map legendIntegerMap = new HashMap<>(); - Map integerLegendMap = new HashMap<>(); - //generate lookups for cards to link card names to matrix columns - for (int i=0; i legends = Lists.newArrayList(Iterables.filter(cardList,Predicates.compose( - new Predicate() { - @Override - public boolean apply(CardRules rules) { - return DeckFormat.Commander.isLegalCommander(rules); - } - }, PaperCard.FN_GET_RULES))); - - //generate lookups for legends to link commander names to matrix rows - for (int i=0; i>> cardPools = new HashMap<>(); - for (PaperCard card:legends){ - int col=legendIntegerMap.get(card.getName()); - int[] distances = matrix[col]; - int max = (Integer) Collections.max(Arrays.asList(ArrayUtils.toObject(distances))); - if (max>0) { - List> deckPool=new ArrayList<>(); - for(int k=0;k0){ - deckPool.add(new AbstractMap.SimpleEntry(integerCardMap.get(k),matrix[col][k])); - } - } - cardPools.put(card.getName(), deckPool); - } - } - return cardPools; - } - - //update the matrix by incrementing the connectivity count for each card in the deck - public static void updateLegendMatrix(Deck deck, PaperCard legend, Map cardIntegerMap, - Map legendIntegerMap, int[][] matrix){ - for (PaperCard pairCard:Iterables.filter(deck.getMain().toFlatList(), - Predicates.compose(Predicates.not(CardRulesPredicates.Presets.IS_BASIC_LAND_NOT_WASTES), PaperCard.FN_GET_RULES))){ - if (!pairCard.getName().equals(legend.getName())){ - try { - int old = matrix[legendIntegerMap.get(legend.getName())][cardIntegerMap.get(pairCard.getName())]; - matrix[legendIntegerMap.get(legend.getName())][cardIntegerMap.get(pairCard.getName())] = old + 1; - }catch (NullPointerException ne){ - //Todo: Not sure what was failing here - ne.printStackTrace(); - } - } - - } - //add partner commanders to matrix - if(deck.getCommanders().size()>1){ - for(PaperCard partner:deck.getCommanders()){ - if(!partner.equals(legend)){ - int old = matrix[legendIntegerMap.get(legend.getName())][cardIntegerMap.get(partner.getName())]; - matrix[legendIntegerMap.get(legend.getName())][cardIntegerMap.get(partner.getName())] = old + 1; - } - } - } - } - - public static class ArrayIndexComparator implements Comparator - { - private final Integer[] array; - - public ArrayIndexComparator(Integer[] array) - { - this.array = array; - } - - public Integer[] createIndexArray() - { - Integer[] indexes = new Integer[array.length]; - for (int i = 0; i < array.length; i++) - { - indexes[i] = i; // Autoboxing - } - return indexes; - } - - @Override - public int compare(Integer index1, Integer index2) - { - // Autounbox from Integer to int to use as array indexes - return array[index1].compareTo(array[index2]); - } - } }