diff --git a/forge-core/src/main/java/forge/card/BoosterGenerator.java b/forge-core/src/main/java/forge/card/BoosterGenerator.java index db37eaa0212..1a2d3cf3cfc 100644 --- a/forge-core/src/main/java/forge/card/BoosterGenerator.java +++ b/forge-core/src/main/java/forge/card/BoosterGenerator.java @@ -71,6 +71,7 @@ public class BoosterGenerator { CardEdition edition = StaticData.instance().getEditions().get(template.getEdition()); boolean hasFoil = edition != null && MyRandom.getRandom().nextInt(10000) <= edition.getFoilChanceInBooster() && edition.getFoilType() != FoilType.NOT_SUPPORTED; // FoilChanceInBooster is given with 1/10000th precision for a closer 1:6 (16.67%) approximation. + boolean foilAlwaysCommon = !hasFoil ? false : edition.getFoilAlwaysInCommonSlot(); String foilSlot = !hasFoil ? null : edition.getFoilAlwaysInCommonSlot() ? BoosterSlots.COMMON : Aggregates.random(template.getSlots()).getKey(); for(Pair slot : template.getSlots()) { @@ -87,9 +88,13 @@ public class BoosterGenerator { PrintSheet ps = getPrintSheet(sheetKey); result.addAll(ps.random(numCards, true)); sheetsUsed.add(ps); + + if (hasFoil && !foilAlwaysCommon && slotType.equals(foilSlot)) { + result.add(generateFoilCard(ps)); + } } - if (hasFoil) { + if (hasFoil && foilAlwaysCommon) { PrintSheet foilSheet = Aggregates.random(sheetsUsed); result.add(generateFoilCard(foilSheet)); }