Make Add Land dialog no longer add a random mix of regular and snow-covered basic lands (#9353)

The Add Land dialog now only adds regular basic lands and never snow-covered ones, unless you specifically select a set that only contains snow basics (e.g. MH1) Sets that only contain snow basics are not selectable when adding lands to a Limited deck.
This commit is contained in:
sprangg 2022-08-11 03:11:01 +03:00 committed by GitHub
parent ebdb6b53a4
commit 7554a2b6b5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 13 deletions

View file

@ -870,19 +870,23 @@ public class VerifyCardDataTest {
// TODO: add test to check num cards (hasBasicLands and numLand > 0)
}
// CHECK: wrong snow land info
// CHECK: wrong snow land info - set needs to have exclusively snow basics to qualify
for (ExpansionSet set : sets) {
boolean needSnow = CardRepository.haveSnowLands(set.getCode());
boolean haveSnow = false;
boolean haveNonSnow = false;
for (ExpansionSet.SetCardInfo card : set.getSetCardInfo()) {
if (card.getName().startsWith("Snow-Covered ")) {
haveSnow = true;
}
if (isNonSnowBasicLandName(card.getName())) {
haveNonSnow = true;
break;
}
}
if (needSnow != haveSnow) {
if (needSnow != (haveSnow && !haveNonSnow)) {
errorsList.add("Error: found incorrect snow land info in set " + set.getCode() + ": "
+ (haveSnow ? "set has snow cards" : "set doesn't have snow card")
+ ((haveSnow && !haveNonSnow) ? "set has exclusively snow basics" : "set doesn't have exclusively snow basics")
+ ", but xmage thinks that it " + (needSnow ? "does" : "doesn't"));
}
}
@ -1820,6 +1824,14 @@ public class VerifyCardDataTest {
|| checkName.equals("Plains")
|| checkName.equals("Mountain");
}
private boolean isNonSnowBasicLandName(String name) {
return name.equals("Island")
|| name.equals("Forest")
|| name.equals("Swamp")
|| name.equals("Plains")
|| name.equals("Mountain");
}
private void checkBasicLands(Card card, MtgJsonCard ref) {