Reverted r29632 and r29649 for QuestWinLoseController, removing colored booster packs from the booster selection after winning a match.

This commit is contained in:
Krazy
2015-06-16 02:31:50 +00:00
parent eff5e34347
commit f92741282f

View File

@@ -3,7 +3,10 @@ package forge.quest;
import com.google.common.collect.ImmutableList;
import forge.LobbyPlayer;
import forge.assets.FSkinProp;
import forge.card.*;
import forge.card.BoosterSlots;
import forge.card.CardEdition;
import forge.card.IUnOpenedProduct;
import forge.card.UnOpenedProduct;
import forge.game.GameEndReason;
import forge.game.GameFormat;
import forge.game.GameOutcome;
@@ -492,13 +495,12 @@ public class QuestWinLoseController {
String title;
if (qData.getFormat() == null) {
//final List<GameFormat> formats = new ArrayList<>();
final List<String> formats = new ArrayList<>();
final List<GameFormat> formats = new ArrayList<>();
final String preferredFormat = FModel.getQuestPreferences().getPref(QPref.BOOSTER_FORMAT);
GameFormat pref = null;
for (final GameFormat f : FModel.getFormats().getOrderedList()) {
formats.add(f.toString());
formats.add(f);
if (f.toString().equals(preferredFormat)) {
pref = f;
}
@@ -506,43 +508,14 @@ public class QuestWinLoseController {
Collections.sort(formats);
formats.addAll(SealedProduct.specialSets);
String preferredSelection = null;
if (pref != null) {
preferredSelection = pref.toString();
} else if (SealedProduct.specialSets.contains(preferredFormat)) {
preferredSelection = preferredFormat;
}
final String selected = SGuiChoose.getChoices("Choose bonus booster format", 1, 1, formats, preferredSelection, null).get(0);
if (SealedProduct.specialSets.contains(selected)) {
BoosterPack boosterPack = BoosterPack.FN_FROM_COLOR.apply(selected);
assert boosterPack != null;
cardsWon = boosterPack.getCards();
FModel.getQuestPreferences().setPref(QPref.BOOSTER_FORMAT, selected);
title = "Bonus " + selected + " Booster Pack!";
} else {
GameFormat selectedFormat = null;
for (final GameFormat f : FModel.getFormats().getOrderedList()) {
if (f.toString().equals(selected)) {
selectedFormat = f;
}
}
assert selectedFormat != null;
FModel.getQuestPreferences().setPref(QPref.BOOSTER_FORMAT, selected);
cardsWon = qData.getCards().generateQuestBooster(selectedFormat.getFilterPrinted());
title = "Bonus booster pack from the \"" + selectedFormat.getName() + "\" format!";
}
final GameFormat selected = SGuiChoose.getChoices("Choose bonus booster format", 1, 1, formats, pref, null).get(0);
FModel.getQuestPreferences().setPref(QPref.BOOSTER_FORMAT, selected.toString());
cardsWon = qData.getCards().generateQuestBooster(selected.getFilterPrinted());
qData.getCards().addAllCards(cardsWon);
title = "Bonus booster pack from the \"" + selected.getName() + "\" format!";
} else {
final List<String> sets = new ArrayList<>();
@@ -576,43 +549,29 @@ public class QuestWinLoseController {
maxChoices += qData.getAssets().getItemLevel(QuestItemType.MEMBERSHIP_TOKEN);
}
final List<String> options = new ArrayList<>();
final List<CardEdition> options = new ArrayList<>();
while (!sets.isEmpty() && maxChoices > 0) {
final int ix = MyRandom.getRandom().nextInt(sets.size());
final String set = sets.get(ix);
sets.remove(ix);
if (SealedProduct.specialSets.contains(set)) {
options.add(set);
} else {
options.add(FModel.getMagicDb().getEditions().get(set).toString());
}
if (FModel.getQuestPreferences().getPrefInt(QPref.SPECIAL_BOOSTERS) == 1) {
if (Math.random() > 0.85 - (double) (maxChoices) / 10.0) {
options.add(SealedProduct.specialSets.get((int) (Math.random() * SealedProduct.specialSets.size())));
}
}
options.add(FModel.getMagicDb().getEditions().get(set));
maxChoices--;
}
String chooseEd = SGuiChoose.one("Choose bonus booster set", options);
final CardEdition chooseEd = SGuiChoose.one("Choose bonus booster set", options);
if (SealedProduct.specialSets.contains(chooseEd)) {
final IUnOpenedProduct product = new UnOpenedProduct(QuestUtilCards.getColoredBoosterTemplate(chooseEd));
cardsWon = product.get();
} else if (customBooster) {
List<PaperCard> cards = FModel.getMagicDb().getCommonCards().getAllCards(Predicates.printedInSet(FModel.getMagicDb().getEditions().get(chooseEd).getCode()));
if (customBooster) {
List<PaperCard> cards = FModel.getMagicDb().getCommonCards().getAllCards(Predicates.printedInSet(chooseEd.getCode()));
final IUnOpenedProduct product = new UnOpenedProduct(getBoosterTemplate(), cards);
cardsWon = product.get();
} else {
String chosenEdition = chooseEd.substring(chooseEd.lastIndexOf("(") + 1, chooseEd.lastIndexOf(")"));
chooseEd = chooseEd.substring(0, chooseEd.lastIndexOf("(")).trim();
final IUnOpenedProduct product = new UnOpenedProduct(FModel.getMagicDb().getBoosters().get(chosenEdition));
final IUnOpenedProduct product = new UnOpenedProduct(FModel.getMagicDb().getBoosters().get(chooseEd.getCode()));
cardsWon = product.get();
}
qData.getCards().addAllCards(cardsWon);
title = "Bonus " + chooseEd + " Booster Pack!";
title = "Bonus " + chooseEd.getName() + " Booster Pack!";
}