From a2da45152d4cdc6fa9bdacb8f56cd73c8c604607 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Thu, 25 Apr 2013 14:48:54 +0000 Subject: [PATCH] Quest mode reward generation does not use booster generator - will create a printsheet and get directly from it. --- src/main/java/forge/card/UnOpenedProduct.java | 5 +---- src/main/java/forge/quest/BoosterUtils.java | 8 +++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/forge/card/UnOpenedProduct.java b/src/main/java/forge/card/UnOpenedProduct.java index 4c0550fe6d5..65a8974f18e 100644 --- a/src/main/java/forge/card/UnOpenedProduct.java +++ b/src/main/java/forge/card/UnOpenedProduct.java @@ -31,10 +31,7 @@ public class UnOpenedProduct implements IUnOpenedProduct { tpl = template; cards = null; } - - /* (non-Javadoc) - * @see com.google.common.base.Supplier#get() - */ + @Override public List get() { return cards == null && cardPoolFlat == null ? BoosterGenerator.getBoosterPack(tpl) diff --git a/src/main/java/forge/quest/BoosterUtils.java b/src/main/java/forge/quest/BoosterUtils.java index d382dc7fdc7..f68c52e7c77 100644 --- a/src/main/java/forge/quest/BoosterUtils.java +++ b/src/main/java/forge/quest/BoosterUtils.java @@ -38,6 +38,7 @@ import forge.item.CardDb; import forge.item.CardPrinted; import forge.item.IPaperCard; import forge.item.InventoryItem; +import forge.item.PrintSheet; import forge.item.TournamentPack; import forge.util.Aggregates; import forge.util.MyRandom; @@ -288,9 +289,10 @@ public final class BoosterUtils { if (Singletons.getModel().getQuest().getFormat() != null) { rarAndColor = Predicates.and(Singletons.getModel().getQuest().getFormat().getFilterPrinted(), rarAndColor); } - Iterable cardPool = Iterables.filter(CardDb.instance().getAllCards(), rarAndColor); - UnOpenedProduct product = new UnOpenedProduct(new SealedProductTemplate(qty), cardPool); - rewards.addAll(product.get()); + + PrintSheet ps = new PrintSheet("Quest rewards"); + ps.addAll(Iterables.filter(CardDb.instance().getAllCards(), rarAndColor)); + rewards.addAll(ps.random(qty, true)); } else if (temp.length == 2 && temp[0].equalsIgnoreCase("duplicate") && temp[1].equalsIgnoreCase("card")) { // Type 2: a duplicate card of the players choice rewards.add(new QuestRewardCardDuplicate());