From e43da063ef79ae6e912bfcbd1782b1bebde94c8b Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 6 Oct 2020 19:33:39 -0400 Subject: [PATCH] updated verify check to ignore evergreen keywords --- .../java/mage/verify/VerifyCardDataTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 7a283981c2..fc5b9c17af 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -21,6 +21,7 @@ import mage.game.draft.RateCard; import mage.game.permanent.token.Token; import mage.game.permanent.token.TokenImpl; import mage.sets.TherosBeyondDeath; +import mage.util.CardUtil; import mage.verify.mtgjson.MtgJsonCard; import mage.verify.mtgjson.MtgJsonService; import mage.verify.mtgjson.MtgJsonSet; @@ -69,6 +70,10 @@ public class VerifyCardDataTest { private static final String SKIP_LIST_SCRYFALL_DOWNLOAD_SETS = "SCRYFALL_DOWNLOAD_SETS"; private static final String SKIP_LIST_WRONG_CARD_NUMBERS = "WRONG_CARD_NUMBERS"; private static final String SKIP_LIST_SAMPLE_DECKS = "SAMPLE_DECKS"; + private static final List evergreenKeywords = Arrays.asList( + "flying", "lifelink", "menace", "trample", "haste", "first strike", "hexproof", + "deathtouch", "double strike", "indestructible", "reach", "flash", "defender" + ); static { // skip lists for checks (example: unstable cards with same name may have different stats) @@ -1432,6 +1437,20 @@ public class VerifyCardDataTest { refText = refText.replace("[", "").replace("]", ""); } + // evergreen keyword fix + for (String s : refText.split("[\\$\\\n]")) { + if (Arrays + .stream(s.split(", ")) + .map(String::toLowerCase) + .allMatch(evergreenKeywords::contains)) { + String replacement = Arrays + .stream(s.split(", ")) + .map(CardUtil::getTextWithFirstCharUpperCase) + .reduce("", (a, b) -> a + "\n" + b); + refText = refText.replace(s, replacement); + } + } + String[] refRules = refText.split("[\\$\\\n]"); // ref card's abilities can be splited by \n or $ chars for (int i = 0; i < refRules.length; i++) { refRules[i] = prepareRule(card.getName(), refRules[i]);