diff --git a/forge-gui/res/deckgendecks/Modern.lda.dat b/forge-gui/res/deckgendecks/Modern.lda.dat index 55c523f20a2..5c0f0bc850d 100644 Binary files a/forge-gui/res/deckgendecks/Modern.lda.dat and b/forge-gui/res/deckgendecks/Modern.lda.dat differ diff --git a/forge-gui/res/deckgendecks/Modern.raw.dat b/forge-gui/res/deckgendecks/Modern.raw.dat index 23f4a0f9b09..60e3ff853a7 100644 Binary files a/forge-gui/res/deckgendecks/Modern.raw.dat and b/forge-gui/res/deckgendecks/Modern.raw.dat differ diff --git a/forge-gui/res/deckgendecks/Standard.lda.dat b/forge-gui/res/deckgendecks/Standard.lda.dat index 91a567391a7..7f5103c8a86 100644 Binary files a/forge-gui/res/deckgendecks/Standard.lda.dat and b/forge-gui/res/deckgendecks/Standard.lda.dat differ diff --git a/forge-gui/res/deckgendecks/Standard.raw.dat b/forge-gui/res/deckgendecks/Standard.raw.dat index 7f31f2a199b..77e154365a6 100644 Binary files a/forge-gui/res/deckgendecks/Standard.raw.dat and b/forge-gui/res/deckgendecks/Standard.raw.dat differ diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java index 4d4823009bb..2b8a6da3c9f 100644 --- a/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java +++ b/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java @@ -2,18 +2,31 @@ package forge.gamemodes.limited; import java.util.List; +import forge.card.MagicColor; import forge.deck.DeckFormat; import forge.deck.io.Archetype; import forge.game.GameFormat; import forge.item.PaperCard; +import forge.model.FModel; +import forge.util.MyRandom; +import org.apache.commons.lang3.tuple.Pair; public class ArchetypeDeckBuilder extends CardThemedDeckBuilder{ private Archetype archetype; + private boolean needsSnowLands = false; public ArchetypeDeckBuilder(Archetype archetype0, PaperCard keyCard0, final List dList, GameFormat format, boolean isForAI){ super(keyCard0,null, dList, format, isForAI, DeckFormat.Constructed); archetype = archetype0; + for(Pair pair : archetype.getCardProbabilities()){ + for(int i=0;i<5;++i){ + if (pair.getLeft().equals(MagicColor.Constant.SNOW_LANDS.get(i)) && pair.getRight() > 0.04) { + needsSnowLands=true; + return; + } + } + } } /** @@ -25,6 +38,25 @@ public class ArchetypeDeckBuilder extends CardThemedDeckBuilder{ return archetype.getName() + " Generated Deck"; } + /** + * Get basic land. + * + * @param basicLand + * the set to take basic lands from (pass 'null' for random). + * @return card + */ + protected PaperCard getBasicLand(final int basicLand) { + if(needsSnowLands){ + for(String landSet : setsWithBasicLands){ + PaperCard land = FModel.getMagicDb().getCommonCards().getCard(MagicColor.Constant.SNOW_LANDS.get(basicLand), landSet); + if(land!=null){ + return land; + } + } + } + return super.getBasicLand(basicLand); + } + } diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java index f5f31c87892..08854347cae 100644 --- a/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java @@ -704,21 +704,8 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { System.out.printf("Basics[%s]: %d/%d = %f%% = %d cards%n", MagicColor.Constant.BASIC_LANDS.get(i), clrCnts[i], totalColor, 100*p, nLand + 1); } - PaperCard snowLand = null; - // if appropriate snow-covered lands are available, add them - for (final PaperCard cp : basicLands) { - if (cp.getName().equals(MagicColor.Constant.SNOW_LANDS.get(i))) { - snowLand = cp; - break; - } - } - for (int j = 0; j < nLand; j++) { - if(snowLand!=null){ - deckList.add(snowLand); - }else { - deckList.add(getBasicLand(i)); - } + deckList.add(getBasicLand(i)); } } } @@ -740,7 +727,7 @@ public class CardThemedDeckBuilder extends DeckGeneratorBase { * the set to take basic lands from (pass 'null' for random). * @return card */ - private PaperCard getBasicLand(final int basicLand) { + protected PaperCard getBasicLand(final int basicLand) { String set; if (setsWithBasicLands.size() > 1) { set = setsWithBasicLands.get(MyRandom.getRandom().nextInt(setsWithBasicLands.size() - 1));