diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java index 68e98aa7811..6b8173f387d 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java @@ -512,6 +512,7 @@ public class QuestWinLose extends ControlWinLose { int currentStreak = (qData.getAchievements().getWinStreakCurrent() + 1) % 50; final List cardsWon = new ArrayList<>(); + List cardsToAdd; String typeWon = ""; switch (currentStreak) { @@ -528,8 +529,9 @@ public class QuestWinLose extends ControlWinLose { typeWon = "rare"; break; case 10: - cardsWon.addAll(qData.getCards().addRandomMythicRare(1)); - if (cardsWon.size() > 0) { + cardsToAdd = qData.getCards().addRandomMythicRare(1); + if (cardsToAdd != null) { + cardsWon.addAll(cardsToAdd); typeWon = "mythic rare"; } else { cardsWon.addAll(qData.getCards().addRandomRareNotMythic(5)); @@ -537,8 +539,9 @@ public class QuestWinLose extends ControlWinLose { } break; case 25: - cardsWon.addAll(qData.getCards().addRandomMythicRare(5)); - if (cardsWon.size() > 0) { + cardsToAdd = qData.getCards().addRandomMythicRare(5); + if (cardsToAdd != null) { + cardsWon.addAll(cardsToAdd); typeWon = "mythic rare"; } else { cardsWon.addAll(qData.getCards().addRandomRareNotMythic(15)); @@ -546,8 +549,9 @@ public class QuestWinLose extends ControlWinLose { } break; case 0: //The 50th win in the streak is 0, since (50 % 50 == 0) - cardsWon.addAll(qData.getCards().addRandomMythicRare(10)); - if (cardsWon.size() > 0) { + cardsToAdd = qData.getCards().addRandomMythicRare(10); + if (cardsToAdd != null) { + cardsWon.addAll(cardsToAdd); typeWon = "mythic rare"; } else { cardsWon.addAll(qData.getCards().addRandomRareNotMythic(25)); diff --git a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java index cb104fc95f7..08b9ed897f6 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java @@ -278,9 +278,16 @@ public final class QuestUtilCards { public List addRandomMythicRare(final int n) { final Predicate myFilter = applyFormatFilter(QuestUtilCards.MYTHIC_PREDICATE); - final List newCards = Aggregates.random(Iterables.filter(FModel.getMagicDb().getCommonCards().getAllCards(), myFilter), n); + final Iterable cardPool = Iterables.filter(FModel.getMagicDb().getCommonCards().getAllCards(), myFilter); + + if (!cardPool.iterator().hasNext()) { + return null; + } + + final List newCards = Aggregates.random(cardPool, n); this.addAllCards(newCards); return newCards; + } /**