Quest mode reward generation does not use booster generator - will create a printsheet and get directly from it.

This commit is contained in:
Maxmtg
2013-04-25 14:48:54 +00:00
parent b930e6fcb1
commit a2da45152d
2 changed files with 6 additions and 7 deletions

View File

@@ -32,9 +32,6 @@ public class UnOpenedProduct implements IUnOpenedProduct {
cards = null; cards = null;
} }
/* (non-Javadoc)
* @see com.google.common.base.Supplier#get()
*/
@Override @Override
public List<CardPrinted> get() { public List<CardPrinted> get() {
return cards == null && cardPoolFlat == null ? BoosterGenerator.getBoosterPack(tpl) return cards == null && cardPoolFlat == null ? BoosterGenerator.getBoosterPack(tpl)

View File

@@ -38,6 +38,7 @@ import forge.item.CardDb;
import forge.item.CardPrinted; import forge.item.CardPrinted;
import forge.item.IPaperCard; import forge.item.IPaperCard;
import forge.item.InventoryItem; import forge.item.InventoryItem;
import forge.item.PrintSheet;
import forge.item.TournamentPack; import forge.item.TournamentPack;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
@@ -288,9 +289,10 @@ public final class BoosterUtils {
if (Singletons.getModel().getQuest().getFormat() != null) { if (Singletons.getModel().getQuest().getFormat() != null) {
rarAndColor = Predicates.and(Singletons.getModel().getQuest().getFormat().getFilterPrinted(), rarAndColor); rarAndColor = Predicates.and(Singletons.getModel().getQuest().getFormat().getFilterPrinted(), rarAndColor);
} }
Iterable<CardPrinted> cardPool = Iterables.filter(CardDb.instance().getAllCards(), rarAndColor);
UnOpenedProduct product = new UnOpenedProduct(new SealedProductTemplate(qty), cardPool); PrintSheet ps = new PrintSheet("Quest rewards");
rewards.addAll(product.get()); 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")) { } else if (temp.length == 2 && temp[0].equalsIgnoreCase("duplicate") && temp[1].equalsIgnoreCase("card")) {
// Type 2: a duplicate card of the players choice // Type 2: a duplicate card of the players choice
rewards.add(new QuestRewardCardDuplicate()); rewards.add(new QuestRewardCardDuplicate());