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