- 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.

This commit is contained in:
Agetian
2014-01-17 15:04:12 +00:00
parent 8921ce16e6
commit 0b4ef6b1e3
2 changed files with 15 additions and 4 deletions

View File

@@ -154,10 +154,15 @@ public class CEditorDraftingProcess extends ACEditorBase<PaperCard, DeckGroup> {
// add sideboard to deck // add sideboard to deck
deck.getOrCreate(DeckSection.Sideboard).addAll(this.getDeckManager().getPool()); deck.getOrCreate(DeckSection.Sideboard).addAll(this.getDeckManager().getPool());
final CardEdition landSet = IBoosterDraft.LAND_SET_CODE[0]; final String landSet = IBoosterDraft.LAND_SET_CODE[0].getCode();
final int landsCount = 20;
final int landsCount = 50;
for(String landName : MagicColor.Constant.BASIC_LANDS) { 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; return deck;

View File

@@ -36,6 +36,7 @@ import forge.limited.SealedCardPoolGenerator;
import forge.limited.SealedDeckBuilder; import forge.limited.SealedDeckBuilder;
import forge.properties.ForgePreferences.FPref; import forge.properties.ForgePreferences.FPref;
import forge.util.ItemPool; import forge.util.ItemPool;
import forge.util.MyRandom;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
/** /**
@@ -171,8 +172,13 @@ public enum CSubmenuSealed implements ICDoc {
final Deck deck = new Deck(sDeckName); final Deck deck = new Deck(sDeckName);
deck.getOrCreate(DeckSection.Sideboard).addAll(humanPool); deck.getOrCreate(DeckSection.Sideboard).addAll(humanPool);
final int landsCount = 50;
for (final String element : MagicColor.Constant.BASIC_LANDS) { 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<DeckGroup> sealedDecks = Singletons.getModel().getDecks().getSealed(); final IStorage<DeckGroup> sealedDecks = Singletons.getModel().getDecks().getSealed();