diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java index fb1f164441c..301d917ad4f 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java @@ -208,7 +208,7 @@ public enum CSubmenuDraft implements ICDoc { private void setupDraft() { final Localizer localizer = Localizer.getInstance(); // Determine what kind of booster draft to run - final LimitedPoolType poolType = GuiChoose.oneOrNone(localizer.getMessage("lblChooseDraftFormat"), LimitedPoolType.values()); + final LimitedPoolType poolType = GuiChoose.oneOrNone(localizer.getMessage("lblChooseDraftFormat"), LimitedPoolType.values(true)); if (poolType == null) { return; } final BoosterDraft draft = BoosterDraft.createDraft(poolType); diff --git a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java index 922a6e18859..1e4aa8b2346 100644 --- a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java @@ -43,7 +43,7 @@ public class NewDraftScreen extends LaunchScreen { protected void startMatch() { //must run in game thread to prevent blocking UI thread ThreadUtil.invokeInGameThread(() -> { - final LimitedPoolType poolType = SGuiChoose.oneOrNone(Forge.getLocalizer().getMessage("lblChooseDraftFormat"), LimitedPoolType.values()); + final LimitedPoolType poolType = SGuiChoose.oneOrNone(Forge.getLocalizer().getMessage("lblChooseDraftFormat"), LimitedPoolType.values(true)); if (poolType == null) { return; } final BoosterDraft draft = BoosterDraft.createDraft(poolType); diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java index cb16a79c64c..3c264e69fa2 100644 --- a/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java +++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java @@ -5,16 +5,45 @@ import forge.util.Localizer; public enum LimitedPoolType { Full(Localizer.getInstance().getMessage("lblLimitedPoolFull")), Block(Localizer.getInstance().getMessage("lblLimitedBlock")), - Prerelease(Localizer.getInstance().getMessage("lblLimitedPrerelease")), + Prerelease(Localizer.getInstance().getMessage("lblLimitedPrerelease"), false), FantasyBlock(Localizer.getInstance().getMessage("lblLimitedFantasy")), Custom(Localizer.getInstance().getMessage("lblLimitedCustom")), Chaos(Localizer.getInstance().getMessage("lblLimitedChaos")); - + private final String displayName; + private final boolean draftable; + LimitedPoolType(String name) { + this(name, true); + } + + LimitedPoolType(String name, boolean draftable) { + this.draftable = draftable; displayName = name; } + public static LimitedPoolType[] values(boolean draftable) { + if (!draftable) { + return values(); + } + + int n = 0; + for (LimitedPoolType lpt : values()) { + if (lpt.draftable) { + n++; + } + } + LimitedPoolType[] draftableFormats = new LimitedPoolType[n]; + n = 0; + for (LimitedPoolType lpt : values()) { + if (lpt.draftable) { + draftableFormats[n] = lpt; + n++; + } + } + return draftableFormats; + } + @Override public String toString() { return displayName;