UI for choosing the Mulligan type

This commit is contained in:
Michael Kamensky
2019-06-11 04:02:16 +00:00
parent dad052fa07
commit 08e2ba54ea
11 changed files with 126 additions and 18 deletions

View File

@@ -0,0 +1,42 @@
package forge;
import com.google.common.collect.Lists;
import java.util.List;
/*
* A class that contains definitions of available Mulligan rule variants and helper methods to access them
*/
public class MulliganDefs {
public enum MulliganRule {
Original,
Paris,
Vancouver,
London
}
private static MulliganRule defaultRule = MulliganRule.Vancouver;
public static MulliganRule getDefaultRule() {
return defaultRule;
}
public static String[] getMulliganRuleNames() {
List<String> names = Lists.newArrayList();
for (MulliganRule mr : MulliganRule.values()) {
names.add(mr.name());
}
return names.toArray(new String[0]);
}
public static MulliganRule GetRuleByName(String rule) {
MulliganRule r;
try {
r = MulliganRule.valueOf(rule);
} catch (IllegalArgumentException ex) {
System.err.println("Warning: illegal Mulligan rule specified: " + rule + ", defaulting to " + getDefaultRule().name());
r = getDefaultRule();
}
return r;
}
}

View File

@@ -39,6 +39,8 @@ public class StaticData {
private boolean filteredHandsEnabled = false;
private MulliganDefs.MulliganRule mulliganRule = MulliganDefs.getDefaultRule();
// Loaded lazily:
private IStorage<SealedProduct.Template> boosters;
private IStorage<SealedProduct.Template> specialBoosters;
@@ -215,10 +217,6 @@ public class StaticData {
this.filteredHandsEnabled = filteredHandsEnabled;
}
public boolean getFilteredHandsEnabled(){
return filteredHandsEnabled;
}
public PaperCard getCardByEditionDate(PaperCard card, Date editionDate) {
PaperCard c = this.getCommonCards().getCardFromEdition(card.getName(), editionDate, CardDb.SetPreference.LatestCoreExp, card.getArtIndex());
@@ -242,4 +240,17 @@ public class StaticData {
// I give up!
return card;
}
public boolean getFilteredHandsEnabled(){
return filteredHandsEnabled;
}
public void setMulliganRule(MulliganDefs.MulliganRule rule) {
mulliganRule = rule;
}
public MulliganDefs.MulliganRule getMulliganRule() {
return mulliganRule;
}
}