diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index d8629f992c1..99a93a8718f 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -167,7 +167,7 @@ public class SSubmenuQuestUtil { // Show or hide the set unlocking button - view0.getBtnUnlock().setVisible(qCtrl.getUnlocksTokens() > 0); + view0.getBtnUnlock().setVisible(qCtrl.getUnlocksTokens() > 0 && qCtrl.getWorldFormat() == null); // Challenge in wins final int num = SSubmenuQuestUtil.nextChallengeInWins(); diff --git a/src/main/java/forge/quest/QuestController.java b/src/main/java/forge/quest/QuestController.java index 04a70208a07..6ace56ab105 100644 --- a/src/main/java/forge/quest/QuestController.java +++ b/src/main/java/forge/quest/QuestController.java @@ -135,7 +135,8 @@ public class QuestController { * @return GameFormatQuest, the game format (if persistent). */ public GameFormatQuest getFormat() { - return this.questFormat; + + return (getWorldFormat() == null ? this.questFormat : getWorldFormat()); } /** @@ -286,6 +287,24 @@ public class QuestController { this.model.setWorldId(newWorld == null ? null : newWorld.getName()); } + /** + * Gets the QuestWorld Format, if any. + * + * @return QuestWorld Format or null. + */ + public GameFormatQuest getWorldFormat() { + if (this.model == null || this.model.getWorldId() == null) { + return null; + } + + final QuestWorld curQw = Singletons.getModel().getWorlds().get(this.model.getWorldId()); + + if (curQw == null) { + return null; + } + + return curQw.getFormat(); + } /** * TODO: Write javadoc for this method.