diff --git a/forge-core/src/main/java/forge/deck/CardPool.java b/forge-core/src/main/java/forge/deck/CardPool.java index a3470cdce78..76f0fc0380e 100644 --- a/forge-core/src/main/java/forge/deck/CardPool.java +++ b/forge-core/src/main/java/forge/deck/CardPool.java @@ -56,36 +56,34 @@ public class CardPool extends ItemPool { } // NOTE: ART indices are "1" -based - public void add(final String cardName, final String setCode, final int artIndex, final int amount) { + public void add(final String cardName, String setCode, final int artIndex, final int amount) { PaperCard cp = StaticData.instance().getCommonCards().getCard(cardName, setCode, artIndex); boolean isCommonCard = cp != null; if ( !isCommonCard ) { cp = StaticData.instance().getVariantCards().getCard(cardName, setCode); } - int artCount = isCommonCard - ? StaticData.instance().getCommonCards().getArtCount(cardName, setCode) : 1; - - if ( cp != null) { - if (artIndex >= 0 || artCount <= 1) { - // either a specific art index is specified, or there is only one art, so just add the card - this.add(cp, amount); - } else { - // random art index specified, make sure we get different groups of cards with different art - int[] artGroups = MyRandom.splitIntoRandomGroups(amount, artCount); - for (int i = 1; i <= artGroups.length; i++) { - int cnt = artGroups[i-1]; - if (cnt <= 0) - continue; - PaperCard cp_random = isCommonCard - ? StaticData.instance().getCommonCards().getCard(cardName, setCode, i) - : StaticData.instance().getVariantCards().getCard(cardName, setCode, i); - this.add(cp_random, cnt); - } - } - } - else { + if (cp == null ) throw new RuntimeException(String.format("Card %s from %s is not supported by Forge, as it's neither a known common card nor one of casual variants' card.", cardName, setCode )); + + setCode = cp.getEdition(); + int artCount = isCommonCard ? StaticData.instance().getCommonCards().getArtCount(cardName, setCode) : 1; + + if (artIndex >= 0 || artCount <= 1) { + // either a specific art index is specified, or there is only one art, so just add the card + this.add(cp, amount); + } else { + // random art index specified, make sure we get different groups of cards with different art + int[] artGroups = MyRandom.splitIntoRandomGroups(amount, artCount); + for (int i = 1; i <= artGroups.length; i++) { + int cnt = artGroups[i-1]; + if (cnt <= 0) + continue; + PaperCard cp_random = isCommonCard + ? StaticData.instance().getCommonCards().getCard(cardName, setCode, i) + : StaticData.instance().getVariantCards().getCard(cardName, setCode, i); + this.add(cp_random, cnt); + } } } diff --git a/forge-core/src/main/java/forge/util/MyRandom.java b/forge-core/src/main/java/forge/util/MyRandom.java index 07519fcb537..85d148b96d2 100644 --- a/forge-core/src/main/java/forge/util/MyRandom.java +++ b/forge-core/src/main/java/forge/util/MyRandom.java @@ -60,7 +60,7 @@ public class MyRandom { int[] groups = new int[numGroups]; for (int i = 0; i < value; i++) { - groups[MyRandom.getRandom().nextInt(numGroups)]++; + groups[random.nextInt(numGroups)]++; } return groups; diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java index d95faf5cd0c..5a414b56727 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/controllers/CEditorDraftingProcess.java @@ -39,7 +39,6 @@ import forge.limited.BoosterDraft; import forge.limited.IBoosterDraft; import forge.properties.ForgePreferences.FPref; import forge.util.ItemPool; -import forge.util.MyRandom; /** * Updates the deck editor UI as necessary draft selection mode. diff --git a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java index 0c95a05d8b5..b2c53760164 100644 --- a/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java +++ b/forge-gui/src/main/java/forge/gui/home/sanctioned/CSubmenuSealed.java @@ -37,7 +37,6 @@ import forge.limited.SealedCardPoolGenerator; import forge.limited.SealedDeckBuilder; import forge.properties.ForgePreferences.FPref; import forge.util.ItemPool; -import forge.util.MyRandom; import forge.util.storage.IStorage; /**