Add option to enable/disable Non-Legal Cards

Playtest and Un-sets Cards
This commit is contained in:
Anthony Calosa
2021-03-03 22:29:44 +08:00
parent ff4803c506
commit 36e55ae72f
14 changed files with 60 additions and 10 deletions

View File

@@ -54,11 +54,11 @@ public class StaticData {
private static StaticData lastInstance = null;
public StaticData(CardStorageReader cardReader, String editionFolder, String blockDataFolder, boolean enableUnknownCards) {
this(cardReader, null, editionFolder, blockDataFolder, enableUnknownCards);
public StaticData(CardStorageReader cardReader, String editionFolder, String blockDataFolder, boolean enableUnknownCards, boolean loadNonLegalCards) {
this(cardReader, null, editionFolder, blockDataFolder, enableUnknownCards, loadNonLegalCards);
}
public StaticData(CardStorageReader cardReader, CardStorageReader tokenReader, String editionFolder, String blockDataFolder, boolean enableUnknownCards) {
public StaticData(CardStorageReader cardReader, CardStorageReader tokenReader, String editionFolder, String blockDataFolder, boolean enableUnknownCards, boolean loadNonLegalCards) {
this.cardReader = cardReader;
this.tokenReader = tokenReader;
this.editions = new CardEdition.Collection(new CardEdition.Reader(new File(editionFolder)));
@@ -84,8 +84,8 @@ public class StaticData {
variantCards = new CardDb(variantsCards, editions);
//must initialize after establish field values for the sake of card image logic
commonCards.initialize(false, false, enableUnknownCards);
variantCards.initialize(false, false, enableUnknownCards);
commonCards.initialize(false, false, enableUnknownCards, loadNonLegalCards);
variantCards.initialize(false, false, enableUnknownCards, loadNonLegalCards);
}
{

View File

@@ -166,7 +166,7 @@ public final class CardDb implements ICardDatabase, IDeckGenPool {
reIndex();
}
public void initialize(boolean logMissingPerEdition, boolean logMissingSummary, boolean enableUnknownCards) {
public void initialize(boolean logMissingPerEdition, boolean logMissingSummary, boolean enableUnknownCards, boolean loadNonLegalCards) {
Set<String> allMissingCards = new LinkedHashSet<>();
List<String> missingCards = new ArrayList<>();
CardEdition upcomingSet = null;
@@ -184,6 +184,11 @@ public final class CardDb implements ICardDatabase, IDeckGenPool {
for (CardEdition.CardInSet cis : e.getAllCardsInSet()) {
CardRules cr = rulesByName.get(cis.name);
if (cr != null && !cr.getType().isBasicLand() && !loadNonLegalCards
&& (e.getCode().equals("CMB1") ||e.getCode().equals("UGL")
||e.getCode().equals("UNH")||e.getCode().equals("UND")||e.getCode().equals("UST")))
continue; //todo sets with nonlegal cards should have tags in them so we don't need to specify the code here
if (cr != null) {
addSetCard(e, cis, cr);
}