Merge pull request #3226 from kevlahnota/newmaster2

filter out invalid option for BoosterDraft
This commit is contained in:
Anthony Calosa
2023-06-11 06:19:56 +08:00
committed by GitHub
3 changed files with 33 additions and 4 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;