From 34ae8d2a95a00f273d5f6023f55d4fd1eb43a9a0 Mon Sep 17 00:00:00 2001 From: t-my Date: Wed, 30 Jul 2025 15:25:23 +0300 Subject: [PATCH 1/4] Add [PRM] Gleemox --- Mage.Sets/src/mage/cards/g/Gleemox.java | 33 +++++++++++++++++++ .../serverside/deck/DeckValidatorTest.java | 9 +++++ .../java/mage/cards/decks/Constructed.java | 3 ++ 3 files changed, 45 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/g/Gleemox.java diff --git a/Mage.Sets/src/mage/cards/g/Gleemox.java b/Mage.Sets/src/mage/cards/g/Gleemox.java new file mode 100644 index 00000000000..4572a20157d --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/Gleemox.java @@ -0,0 +1,33 @@ + + +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.mana.AnyColorManaAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; + +/** + * @author Tuomas-Matti Soikkeli + */ + +public final class Gleemox extends CardImpl { + + public Gleemox(UUID ownerId, CardSetInfo setInfo) { + super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{0}"); + this.addAbility(new AnyColorManaAbility()); + this.addAbility(new SimpleStaticAbility(new InfoEffect("This card is banned."))); + } + + private Gleemox(final Gleemox card) { + super(card); + } + + @Override + public Gleemox copy() { + return new Gleemox(this); + } +} \ No newline at end of file diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java index b1cb8bcf99f..2b84b1f3523 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java @@ -4,6 +4,7 @@ import mage.cards.decks.DeckValidator; import mage.deck.Commander; import mage.deck.Limited; import mage.deck.Modern; +import mage.deck.Legacy; import mage.deck.Standard; import org.junit.Assert; import org.junit.Test; @@ -18,6 +19,14 @@ import static org.mage.test.serverside.deck.DeckValidationUtil.testDeckValid; */ public class DeckValidatorTest extends MageTestPlayerBase { + @Test + public void testGleemoxBanned() { + DeckTester deckTester = new DeckTester(new Legacy()); + deckTester.addMaindeck("Gleemox", 1); + deckTester.addMaindeck("Island", 59); + deckTester.validate("Gleemox is banned.", false); + } + @Test public void testStandardDeckCardsAmountValid() { DeckTester deckTester = new DeckTester(new Standard()); diff --git a/Mage/src/main/java/mage/cards/decks/Constructed.java b/Mage/src/main/java/mage/cards/decks/Constructed.java index 588eb807f8c..8f7ea73ef01 100644 --- a/Mage/src/main/java/mage/cards/decks/Constructed.java +++ b/Mage/src/main/java/mage/cards/decks/Constructed.java @@ -193,6 +193,9 @@ public class Constructed extends DeckValidator { banned.add("Vorthos, Steward of Myth"); banned.add("Water Gun Balloon Game"); banned.add("Well Done"); + + // Gleemox is banned + banned.add("Gleemox"); } public List getSetCodes() { From 796580c28f573f1e1393942e5ea08ed08c1e54c1 Mon Sep 17 00:00:00 2001 From: cybescodes Date: Mon, 1 Dec 2025 19:36:55 +0100 Subject: [PATCH 2/4] added gleemox to vintage ban list --- .../Mage.Deck.Constructed/src/mage/deck/Vintage.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java index 3dc25efc64f..cd967a0a355 100644 --- a/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/src/mage/deck/Vintage.java @@ -20,6 +20,7 @@ public class Vintage extends Constructed { // All attractions & sticker cards are banned. (to add if/when implemented) // this also includes the mtgo replacement "Name Sticker" Goblin. banned.add("\"Name Sticker\" Goblin"); + banned.add("Gleemox"); restricted.add("Ancestral Recall"); restricted.add("Balance"); From 9014cd1b21756cc5a483b8d1d9981b0bf2c0b660 Mon Sep 17 00:00:00 2001 From: cybescodes Date: Mon, 1 Dec 2025 19:36:55 +0100 Subject: [PATCH 3/4] added gleemox to MagicOnlinePromos set --- Mage.Sets/src/mage/sets/MagicOnlinePromos.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Mage.Sets/src/mage/sets/MagicOnlinePromos.java b/Mage.Sets/src/mage/sets/MagicOnlinePromos.java index ff038e56ea6..104298a6dc2 100644 --- a/Mage.Sets/src/mage/sets/MagicOnlinePromos.java +++ b/Mage.Sets/src/mage/sets/MagicOnlinePromos.java @@ -1078,6 +1078,7 @@ public class MagicOnlinePromos extends ExpansionSet { cards.add(new SetCardInfo("Gladehart Cavalry", 59661, Rarity.RARE, mage.cards.g.GladehartCavalry.class)); cards.add(new SetCardInfo("Glasspool Mimic", 83872, Rarity.RARE, mage.cards.g.GlasspoolMimic.class)); cards.add(new SetCardInfo("Gleancrawler", 32017, Rarity.RARE, mage.cards.g.Gleancrawler.class)); + cards.add(new SetCardInfo("Gleemox", 26584, Rarity.RARE, mage.cards.g.Gleemox.class)); cards.add(new SetCardInfo("Glimpse of Tomorrow", 91287, Rarity.RARE, mage.cards.g.GlimpseOfTomorrow.class)); cards.add(new SetCardInfo("Glimpse the Unthinkable", 102297, Rarity.RARE, mage.cards.g.GlimpseTheUnthinkable.class)); cards.add(new SetCardInfo("Glint Raker", 105660, Rarity.RARE, mage.cards.g.GlintRaker.class, NON_FULL_USE_VARIOUS)); From 8eef7f7e6090ca132ce1a2f3287056a778bb0418 Mon Sep 17 00:00:00 2001 From: cybescodes Date: Mon, 1 Dec 2025 19:36:56 +0100 Subject: [PATCH 4/4] added test for gleemox banned in vintage --- .../mage/test/serverside/deck/DeckValidatorTest.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java index 2b84b1f3523..1c6975051af 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/deck/DeckValidatorTest.java @@ -6,6 +6,7 @@ import mage.deck.Limited; import mage.deck.Modern; import mage.deck.Legacy; import mage.deck.Standard; +import mage.deck.Vintage; import org.junit.Assert; import org.junit.Test; import org.mage.test.serverside.base.MageTestPlayerBase; @@ -20,13 +21,21 @@ import static org.mage.test.serverside.deck.DeckValidationUtil.testDeckValid; public class DeckValidatorTest extends MageTestPlayerBase { @Test - public void testGleemoxBanned() { + public void testGleemoxBannedInLegacy() { DeckTester deckTester = new DeckTester(new Legacy()); deckTester.addMaindeck("Gleemox", 1); deckTester.addMaindeck("Island", 59); deckTester.validate("Gleemox is banned.", false); } + @Test + public void testGleemoxBannedInVintage() { + DeckTester deckTester = new DeckTester(new Vintage()); + deckTester.addMaindeck("Gleemox", 1); + deckTester.addMaindeck("Island", 59); + deckTester.validate("Gleemox is banned.", false); + } + @Test public void testStandardDeckCardsAmountValid() { DeckTester deckTester = new DeckTester(new Standard());