diff --git a/forge-core/src/main/java/forge/card/BoosterGenerator.java b/forge-core/src/main/java/forge/card/BoosterGenerator.java index 404b0c37b7e..393bb20896e 100644 --- a/forge-core/src/main/java/forge/card/BoosterGenerator.java +++ b/forge-core/src/main/java/forge/card/BoosterGenerator.java @@ -61,7 +61,7 @@ public class BoosterGenerator { List sheetsUsed = new ArrayList(); 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 21.43% approximation. + boolean hasFoil = edition != null && MyRandom.getRandom().nextDouble() < edition.getFoilChanceInBooster() && edition.getFoilType() != FoilType.NOT_SUPPORTED; boolean commonSlotFoil = !hasFoil ? false : edition.getFoilAlwaysInCommonSlot(); String foilSlot = !hasFoil ? null : edition.getFoilAlwaysInCommonSlot() ? BoosterSlots.COMMON : Aggregates.random(template.getSlots()).getKey(); diff --git a/forge-core/src/main/java/forge/card/CardEdition.java b/forge-core/src/main/java/forge/card/CardEdition.java index 194f6e7b71a..db19a4a59fb 100644 --- a/forge-core/src/main/java/forge/card/CardEdition.java +++ b/forge-core/src/main/java/forge/card/CardEdition.java @@ -99,7 +99,7 @@ public final class CardEdition implements Comparable { // immutable private String alias = null; private boolean whiteBorder = false; private FoilType foilType = FoilType.NOT_SUPPORTED; - private int foilChanceInBooster = 0; + private double foilChanceInBooster = 0; private boolean foilAlwaysInCommonSlot = false; private final CardInSet[] cards; @@ -151,7 +151,7 @@ public final class CardEdition implements Comparable { // immutable public String getName() { return name; } public String getAlias() { return alias; } public FoilType getFoilType() { return foilType; } - public int getFoilChanceInBooster() { return foilChanceInBooster; } + public double getFoilChanceInBooster() { return foilChanceInBooster; } public boolean getFoilAlwaysInCommonSlot() { return foilAlwaysInCommonSlot; } public CardInSet[] getCards() { return cards; } @@ -286,7 +286,8 @@ public final class CardEdition implements Comparable { // immutable res.foilType = FoilType.NOT_SUPPORTED; break; } - res.foilChanceInBooster = section.getInt("FoilChanceInBooster", 2143); // uses 1:10000 precision, 21.43% is roughly every 70th card foiled + res.foilChanceInBooster = section.getInt("FoilChanceInBooster", 2143) / 10000.0F; + System.out.println("chance = " + res.foilChanceInBooster); res.foilAlwaysInCommonSlot = section.getBoolean("FoilAlwaysInCommonSlot", false); return res;