mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Prevent adding basic lands to sealed deck by default for mobile game
This commit is contained in:
@@ -113,7 +113,7 @@ public enum CSubmenuSealed implements ICDoc {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private <T extends DeckBase> void setupSealed() {
|
||||
final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck();
|
||||
final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck(true);
|
||||
if (sealed == null) { return; }
|
||||
|
||||
final ACEditorBase<? extends InventoryItem, T> editor = (ACEditorBase<? extends InventoryItem, T>) new CEditorLimited(
|
||||
|
||||
@@ -46,7 +46,7 @@ public class SealedScreen extends LaunchScreen {
|
||||
ThreadUtil.invokeInGameThread(new Runnable() { //must run in game thread to prevent blocking UI thread
|
||||
@Override
|
||||
public void run() {
|
||||
final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck();
|
||||
final DeckGroup sealed = SealedCardPoolGenerator.generateSealedDeck(false);
|
||||
if (sealed == null) { return; }
|
||||
|
||||
FThreads.invokeInEdtLater(new Runnable() {
|
||||
|
||||
@@ -66,7 +66,7 @@ public class SealedCardPoolGenerator {
|
||||
/** The Land set code. */
|
||||
private String landSetCode = null;
|
||||
|
||||
public static DeckGroup generateSealedDeck() {
|
||||
public static DeckGroup generateSealedDeck(boolean addBasicLands) {
|
||||
final String prompt = "Choose Sealed Deck Format";
|
||||
final LimitedPoolType poolType = SGuiChoose.oneOrNone(prompt, LimitedPoolType.values());
|
||||
if (poolType == null) { return null; }
|
||||
@@ -107,23 +107,25 @@ public class SealedCardPoolGenerator {
|
||||
final Deck deck = new Deck(sDeckName);
|
||||
deck.getOrCreate(DeckSection.Sideboard).addAll(humanPool);
|
||||
|
||||
final int landsCount = 10;
|
||||
|
||||
final boolean isZendikarSet = sd.getLandSetCode().equals("ZEN"); // we want to generate one kind of Zendikar lands at a time only
|
||||
final boolean zendikarSetMode = MyRandom.getRandom().nextBoolean();
|
||||
|
||||
for (final String element : MagicColor.Constant.BASIC_LANDS) {
|
||||
int numArt = FModel.getMagicDb().getCommonCards().getArtCount(element, sd.getLandSetCode());
|
||||
int minArtIndex = isZendikarSet ? (zendikarSetMode ? 1 : 5) : 1;
|
||||
int maxArtIndex = isZendikarSet ? minArtIndex + 3 : numArt;
|
||||
|
||||
if (FModel.getPreferences().getPrefBoolean(FPref.UI_RANDOM_ART_IN_POOLS)) {
|
||||
for (int i = minArtIndex; i <= maxArtIndex; i++) {
|
||||
deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), i, numArt > 1 ? landsCount : 30);
|
||||
if (addBasicLands) {
|
||||
final int landsCount = 10;
|
||||
|
||||
final boolean isZendikarSet = sd.getLandSetCode().equals("ZEN"); // we want to generate one kind of Zendikar lands at a time only
|
||||
final boolean zendikarSetMode = MyRandom.getRandom().nextBoolean();
|
||||
|
||||
for (final String element : MagicColor.Constant.BASIC_LANDS) {
|
||||
int numArt = FModel.getMagicDb().getCommonCards().getArtCount(element, sd.getLandSetCode());
|
||||
int minArtIndex = isZendikarSet ? (zendikarSetMode ? 1 : 5) : 1;
|
||||
int maxArtIndex = isZendikarSet ? minArtIndex + 3 : numArt;
|
||||
|
||||
if (FModel.getPreferences().getPrefBoolean(FPref.UI_RANDOM_ART_IN_POOLS)) {
|
||||
for (int i = minArtIndex; i <= maxArtIndex; i++) {
|
||||
deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), i, numArt > 1 ? landsCount : 30);
|
||||
}
|
||||
}
|
||||
else {
|
||||
deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), 30);
|
||||
}
|
||||
}
|
||||
else {
|
||||
deck.get(DeckSection.Sideboard).add(element, sd.getLandSetCode(), 30);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user