From 75ddf28c84d202715b7dda1192f65fd26174c75b Mon Sep 17 00:00:00 2001
From: Evan Kranzler <theelk801@gmail.com>
Date: Mon, 6 Apr 2020 22:07:54 -0400
Subject: [PATCH] Implemented Glademuse

---
 Mage.Sets/src/mage/cards/g/Glademuse.java     | 60 +++++++++++++++++++
 .../src/mage/sets/Commander2020Edition.java   |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 Mage.Sets/src/mage/cards/g/Glademuse.java

diff --git a/Mage.Sets/src/mage/cards/g/Glademuse.java b/Mage.Sets/src/mage/cards/g/Glademuse.java
new file mode 100644
index 0000000000..6c94ccb35d
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/g/Glademuse.java
@@ -0,0 +1,60 @@
+package mage.cards.g;
+
+import mage.MageInt;
+import mage.abilities.common.SpellCastAllTriggeredAbility;
+import mage.abilities.effects.common.DrawCardTargetEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.SetTargetPointer;
+import mage.constants.SubType;
+import mage.filter.FilterSpell;
+import mage.filter.predicate.Predicate;
+import mage.game.Game;
+import mage.game.stack.StackObject;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class Glademuse extends CardImpl {
+
+    private static final FilterSpell filter = new FilterSpell("a spell, if it's not their turn");
+
+    static {
+        filter.add(GlademusePredicate.instance);
+    }
+
+    public Glademuse(UUID ownerId, CardSetInfo setInfo) {
+        super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
+
+        this.subtype.add(SubType.BEAST);
+        this.power = new MageInt(2);
+        this.toughness = new MageInt(4);
+
+        // Whenever a player casts a spell, if it's not their turn, that player draws a card.
+        this.addAbility(new SpellCastAllTriggeredAbility(
+                new DrawCardTargetEffect(1).setText("that player draws a card"),
+                filter, false, SetTargetPointer.PLAYER
+        ));
+    }
+
+    private Glademuse(final Glademuse card) {
+        super(card);
+    }
+
+    @Override
+    public Glademuse copy() {
+        return new Glademuse(this);
+    }
+}
+
+enum GlademusePredicate implements Predicate<StackObject> {
+    instance;
+
+    @Override
+    public boolean apply(StackObject spell, Game game) {
+        return spell != null && !spell.getControllerId().equals(game.getActivePlayerId());
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/Commander2020Edition.java b/Mage.Sets/src/mage/sets/Commander2020Edition.java
index 4d34920924..d22aa3fe23 100644
--- a/Mage.Sets/src/mage/sets/Commander2020Edition.java
+++ b/Mage.Sets/src/mage/sets/Commander2020Edition.java
@@ -76,6 +76,7 @@ public final class Commander2020Edition extends ExpansionSet {
         cards.add(new SetCardInfo("Fierce Guardianship", 35, Rarity.RARE, mage.cards.f.FierceGuardianship.class));
         cards.add(new SetCardInfo("Flawless Maneuver", 26, Rarity.RARE, mage.cards.f.FlawlessManeuver.class));
         cards.add(new SetCardInfo("Fluctuator", 241, Rarity.RARE, mage.cards.f.Fluctuator.class));
+        cards.add(new SetCardInfo("Glademuse", 60, Rarity.RARE, mage.cards.g.Glademuse.class));
         cards.add(new SetCardInfo("Herald of the Forgotten", 27, Rarity.RARE, mage.cards.h.HeraldOfTheForgotten.class));
         cards.add(new SetCardInfo("Jace, Architect of Thought", 114, Rarity.MYTHIC, mage.cards.j.JaceArchitectOfThought.class));
         cards.add(new SetCardInfo("Jirina Kudro", 8, Rarity.MYTHIC, mage.cards.j.JirinaKudro.class));