From 0b4ef6b1e30370f3113f781b5eed2face1b7433a Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 17 Jan 2014 15:04:12 +0000 Subject: [PATCH] - Experimental: generate 50 basic lands for each art type in limited modes (Sealed Deck and Booster Draft, in particular). While this is not theoretically "unlimited" as the rules for limited modes provide, it guarantees at least 150-200 basic lands of each type for every set with three or four pictures, and at least 50 basic lands of each type even if there's only one art; this probably should be more than necessary for any sane limited play needs). Feedback welcome. --- .../controllers/CEditorDraftingProcess.java | 11 ++++++++--- .../forge/gui/home/sanctioned/CSubmenuSealed.java | 8 +++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index 713bdb149fc..65d9e74be90 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -154,10 +154,15 @@ public class CEditorDraftingProcess extends ACEditorBase { // add sideboard to deck deck.getOrCreate(DeckSection.Sideboard).addAll(this.getDeckManager().getPool()); - final CardEdition landSet = IBoosterDraft.LAND_SET_CODE[0]; - final int landsCount = 20; + final String landSet = IBoosterDraft.LAND_SET_CODE[0].getCode(); + + final int landsCount = 50; for(String landName : MagicColor.Constant.BASIC_LANDS) { - deck.get(DeckSection.Sideboard).add(landName, landSet.getCode(), -1, landsCount); + final int numArt = Singletons.getMagicDb().getCommonCards().getArtCount(landName, landSet); + + for (int i = 0; i < numArt; i++) { + deck.get(DeckSection.Sideboard).add(landName, landSet, i, landsCount); + } } return deck; diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java index e6539fedccd..475adb7887b 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java @@ -36,6 +36,7 @@ import forge.limited.SealedCardPoolGenerator; import forge.limited.SealedDeckBuilder; import forge.properties.ForgePreferences.FPref; import forge.util.ItemPool; +import forge.util.MyRandom; import forge.util.storage.IStorage; /** @@ -171,8 +172,13 @@ public enum CSubmenuSealed implements ICDoc { final Deck deck = new Deck(sDeckName); deck.getOrCreate(DeckSection.Sideboard).addAll(humanPool); + final int landsCount = 50; for (final String element : MagicColor.Constant.BASIC_LANDS) { - deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), -1, 18); + final int numArt = Singletons.getMagicDb().getCommonCards().getArtCount(element, sd.getLandSetCode()); + + for (int i = 0; i < numArt; i++) { + deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), i, landsCount); + } } final IStorage sealedDecks = Singletons.getModel().getDecks().getSealed();