From e03a164bb33a49e1c754545e08411a7b72e460fc Mon Sep 17 00:00:00 2001 From: theelk801 Date: Tue, 1 Jul 2025 17:18:05 -0400 Subject: [PATCH] add verify check for "custom" subtypes that become official --- .../src/main/java/mage/verify/mtgjson/MtgJsonCard.java | 1 + .../src/test/java/mage/verify/VerifyCardDataTest.java | 8 +++++++- Mage/src/main/java/mage/constants/SubType.java | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonCard.java b/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonCard.java index fcbeae82ef9..2adafa6e7d0 100644 --- a/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonCard.java +++ b/Mage.Verify/src/main/java/mage/verify/mtgjson/MtgJsonCard.java @@ -42,6 +42,7 @@ public final class MtgJsonCard { public boolean isFullArt; public String frameVersion; public List printings; // set codes with that card + public boolean isFunny; @Override public String toString() { diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index c58738dac2f..d7506a09c4b 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -2055,7 +2055,13 @@ public class VerifyCardDataTest { expected.removeIf(subtypesToIgnore::contains); for (SubType subType : card.getSubtype()) { - if (!subType.isCustomSet() && !subType.canGain(card)) { + if (subType.isCustomSet()) { + if (!ref.isFunny) { + fail(card, "subtypes", "subtype " + subType + " is marked as \"custom\" but is in an official set"); + } + continue; + } + if (!subType.canGain(card)) { String cardTypeString = card .getCardType() .stream() diff --git a/Mage/src/main/java/mage/constants/SubType.java b/Mage/src/main/java/mage/constants/SubType.java index 78d376b1d53..fd8e6fc5893 100644 --- a/Mage/src/main/java/mage/constants/SubType.java +++ b/Mage/src/main/java/mage/constants/SubType.java @@ -186,7 +186,7 @@ public enum SubType { FROG("Frog", SubTypeSet.CreatureType), FUNGUS("Fungus", SubTypeSet.CreatureType), // G - GAMER("Gamer", SubTypeSet.CreatureType, true), // Un-sets + GAMER("Gamer", SubTypeSet.CreatureType), GAMORREAN("Gamorrean", SubTypeSet.CreatureType, true), // Star Wars GAND("Gand", SubTypeSet.CreatureType, true), // Star Wars GARGOYLE("Gargoyle", SubTypeSet.CreatureType), @@ -355,7 +355,7 @@ public enum SubType { SAPROLING("Saproling", SubTypeSet.CreatureType), SATYR("Satyr", SubTypeSet.CreatureType), SCARECROW("Scarecrow", SubTypeSet.CreatureType), - SCIENTIST("Scientist", SubTypeSet.CreatureType, true), // Unstable + SCIENTIST("Scientist", SubTypeSet.CreatureType), SCION("Scion", SubTypeSet.CreatureType), SCORPION("Scorpion", SubTypeSet.CreatureType), SCOUT("Scout", SubTypeSet.CreatureType), @@ -426,7 +426,7 @@ public enum SubType { VAMPIRE("Vampire", SubTypeSet.CreatureType), VARMINT("Varmint", SubTypeSet.CreatureType), VEDALKEN("Vedalken", SubTypeSet.CreatureType), - VILLAIN("Villain", SubTypeSet.CreatureType, true), // Unstable + VILLAIN("Villain", SubTypeSet.CreatureType), VOLVER("Volver", SubTypeSet.CreatureType), // W WALL("Wall", SubTypeSet.CreatureType),