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));