diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index 60803d64eb1..76a75c1ac4f 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -226,10 +226,22 @@ public abstract class ExpansionSet implements Serializable { if (theBooster.size() > 15 && theBooster.get(0).getRarity() == Rarity.LAND) { theBooster.remove(0); } + int keepCards = 4; + ArrayList dontRemove = new ArrayList<>(Arrays.asList(Rarity.UNCOMMON, Rarity.RARE, Rarity.MYTHIC)); + int toRemove; while (theBooster.size() > 15) { - theBooster.remove(RandomUtil.nextInt(theBooster.size() - 4)); + if (theBooster.size() > keepCards) { + toRemove = RandomUtil.nextInt(theBooster.size() - keepCards); + if( dontRemove.contains( theBooster.get(toRemove).getRarity() )) { + keepCards = theBooster.size() - toRemove ; + } else { + theBooster.remove(toRemove); + } + } else { + theBooster.remove(0); + } } - + return theBooster; }