From b8db0fea5e2e3ed202900d65a4e8be2ed4be4c5f Mon Sep 17 00:00:00 2001 From: Jetz Date: Sun, 17 Aug 2025 21:11:51 -0400 Subject: [PATCH] Disable custom cards conformity check in Adventure mode. --- .../src/main/java/forge/deck/DeckFormat.java | 14 ++++++++++++-- .../src/forge/adventure/scene/SettingsScene.java | 2 -- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 628c39a377f..0ec67606091 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -112,7 +112,13 @@ public enum DeckFormat { } }, PlanarConquest ( Range.of(40, Integer.MAX_VALUE), Range.is(0), 1), - Adventure ( Range.of(40, Integer.MAX_VALUE), Range.of(0, Integer.MAX_VALUE), 4), + Adventure ( Range.of(40, Integer.MAX_VALUE), Range.of(0, Integer.MAX_VALUE), 4) { + @Override + public boolean allowCustomCards() { + //If the player has them, may as well allow them. + return true; + } + }, Vanguard ( Range.of(60, Integer.MAX_VALUE), Range.is(0), 4), Planechase ( Range.of(60, Integer.MAX_VALUE), Range.is(0), 4), Archenemy ( Range.of(60, Integer.MAX_VALUE), Range.is(0), 4), @@ -402,7 +408,7 @@ public enum DeckFormat { // Should group all cards by name, so that different editions of same card are really counted as the same card for (final Entry cp : Aggregates.groupSumBy(allCards, pc -> StaticData.instance().getCommonCards().getName(pc.getName(), true))) { IPaperCard simpleCard = StaticData.instance().getCommonCards().getCard(cp.getKey()); - if (simpleCard != null && simpleCard.getRules().isCustom() && !StaticData.instance().allowCustomCardsInDecksConformance()) + if (simpleCard != null && simpleCard.getRules().isCustom() && !allowCustomCards()) return TextUtil.concatWithSpace("contains a Custom Card:", cp.getKey(), "\nPlease Enable Custom Cards in Forge Preferences to use this deck."); // Might cause issues since it ignores "Special" Cards if (simpleCard == null) { @@ -533,6 +539,10 @@ public enum DeckFormat { // Not needed by default } + public boolean allowCustomCards() { + return StaticData.instance().allowCustomCardsInDecksConformance(); + } + public boolean isLegalCard(PaperCard pc) { if (cardPoolFilter == null) { if (paperCardPoolFilter == null) { diff --git a/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java b/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java index 57b558e946d..dac7c6279ad 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java @@ -298,8 +298,6 @@ public class SettingsScene extends UIScene { Forge.getLocalizer().getMessage("lblRestartRequired") + ")", ForgePreferences.FPref.UI_LOAD_UNKNOWN_CARDS, this::restartForge); addCheckBox(Forge.getLocalizer().getMessage("lblEnableNonLegalCards") + " (" + Forge.getLocalizer().getMessage("lblRestartRequired") + ")", ForgePreferences.FPref.UI_LOAD_NONLEGAL_CARDS, this::restartForge); - addCheckBox(Forge.getLocalizer().getMessage("lblAllowCustomCardsInDecks") + " (" + - Forge.getLocalizer().getMessage("lblRestartRequired") + ")", ForgePreferences.FPref.ALLOW_CUSTOM_CARDS_IN_DECKS_CONFORMANCE, this::restartForge); addCheckBox(Forge.getLocalizer().getMessage("lblDisposeTextures"), ForgePreferences.FPref.UI_ENABLE_DISPOSE_TEXTURES); }