diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index ac033a2ff2c..3d2b496b392 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -536,6 +536,7 @@ public class DeckgenUtil { public static Map suggestBasicLandCount(Deck d) { int W=0, U=0, R=0, B=0, G=0, total=0; List cards = d.getOrCreate(DeckSection.Main).toFlatList(); + HashMap suggestionMap = new HashMap<>(); // determine how many additional lands we need, but don't take lands already in deck into consideration, // or we risk incorrectly determining the target deck size @@ -548,6 +549,16 @@ public class DeckgenUtil { int numLandsToAdd = targetDeckSize - cards.size(); + if (numLandsToAdd == 0) { + // already at target deck size, do nothing + suggestionMap.put(ManaCostShard.WHITE, 0); + suggestionMap.put(ManaCostShard.BLUE, 0); + suggestionMap.put(ManaCostShard.RED, 0); + suggestionMap.put(ManaCostShard.BLACK, 0); + suggestionMap.put(ManaCostShard.GREEN, 0); + return suggestionMap; + } + for (PaperCard c : d.getMain().toFlatList()) { ManaCost m = c.getRules().getManaCost(); W += m.getShardCount(ManaCostShard.WHITE); @@ -588,7 +599,6 @@ public class DeckgenUtil { else if (greenSources > 0) { greenSources += numLandsToAdd; } } - HashMap suggestionMap = new HashMap<>(); suggestionMap.put(ManaCostShard.WHITE, whiteSources); suggestionMap.put(ManaCostShard.BLUE, blueSources); suggestionMap.put(ManaCostShard.RED, redSources);