diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index 3217e4faf93..735189e8da2 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -508,6 +508,16 @@ public class QuestController { final List unlockedChallengeIds = new ArrayList(); final List availableChallengeIds = achievements.getCurrentChallenges(); + // clean up challenges potentially coming over from a different quest world + List nonExistentIds = new ArrayList(); + for (String cid : availableChallengeIds) { + if (this.getChallenges().get(cid) == null) { + System.out.println("Warning: removing a challenge that does not exist in the current quest world: " + cid); + nonExistentIds.add(cid); + } + } + availableChallengeIds.removeAll(nonExistentIds); + int maxChallenges = achievements.getWin() / getTurnsToUnlockChallenge() - achievements.getChallengesPlayed(); if (maxChallenges > 5) { maxChallenges = 5;