From 2f136e0ed17599063ad7edf7b76400646bed0c61 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 27 Aug 2022 10:48:17 -0400 Subject: [PATCH] [DMU] Implemented Pixie Illusionist --- .../src/mage/cards/g/GrixisIllusionist.java | 18 ++--- .../src/mage/cards/p/PixieIllusionist.java | 66 +++++++++++++++++++ Mage.Sets/src/mage/sets/DominariaUnited.java | 1 + 3 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/p/PixieIllusionist.java diff --git a/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java b/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java index 29dfbf79a9..11c98dc247 100644 --- a/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java +++ b/Mage.Sets/src/mage/cards/g/GrixisIllusionist.java @@ -1,7 +1,5 @@ - package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -10,20 +8,20 @@ import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; +import mage.constants.SubType; +import mage.filter.StaticFilters; import mage.target.TargetPermanent; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class GrixisIllusionist extends CardImpl { public GrixisIllusionist(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); @@ -31,8 +29,10 @@ public final class GrixisIllusionist extends CardImpl { this.toughness = new MageInt(1); // {tap}: Target land you control becomes the basic land type of your choice until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost()); - ability.addTarget(new TargetPermanent(new FilterControlledLandPermanent())); + Ability ability = new SimpleActivatedAbility( + new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost() + ); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PixieIllusionist.java b/Mage.Sets/src/mage/cards/p/PixieIllusionist.java new file mode 100644 index 0000000000..c34a10722f --- /dev/null +++ b/Mage.Sets/src/mage/cards/p/PixieIllusionist.java @@ -0,0 +1,66 @@ +package mage.cards.p; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.common.KickedCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.KickerAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class PixieIllusionist extends CardImpl { + + public PixieIllusionist(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}"); + + this.subtype.add(SubType.FAERIE); + this.subtype.add(SubType.WIZARD); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Kicker {3}{G} + this.addAbility(new KickerAbility("{3}{G}")); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // If Pixie Illusionist was kicked, it enters the battlefield with two +1/+1 counters on it. + this.addAbility(new EntersBattlefieldAbility( + new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), + KickedCondition.ONCE, "If {this} was kicked, " + + "it enters the battlefield with two +1/+1 counters on it.", "" + )); + + // {T}: Target land you control becomes the basic land type of your choice until end of turn. + Ability ability = new SimpleActivatedAbility( + new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost() + ); + ability.addTarget(new TargetPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND)); + this.addAbility(ability); + } + + private PixieIllusionist(final PixieIllusionist card) { + super(card); + } + + @Override + public PixieIllusionist copy() { + return new PixieIllusionist(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DominariaUnited.java b/Mage.Sets/src/mage/sets/DominariaUnited.java index b95bbac20e..2737978695 100644 --- a/Mage.Sets/src/mage/sets/DominariaUnited.java +++ b/Mage.Sets/src/mage/sets/DominariaUnited.java @@ -144,6 +144,7 @@ public final class DominariaUnited extends ExpansionSet { cards.add(new SetCardInfo("Phyrexian Vivisector", 100, Rarity.COMMON, mage.cards.p.PhyrexianVivisector.class)); cards.add(new SetCardInfo("Phyrexian Warhorse", 101, Rarity.COMMON, mage.cards.p.PhyrexianWarhorse.class)); cards.add(new SetCardInfo("Pilfer", 102, Rarity.UNCOMMON, mage.cards.p.Pilfer.class)); + cards.add(new SetCardInfo("Pixie Illusionist", 61, Rarity.COMMON, mage.cards.p.PixieIllusionist.class)); cards.add(new SetCardInfo("Plains", 262, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Prayer of Binding", 28, Rarity.UNCOMMON, mage.cards.p.PrayerOfBinding.class)); cards.add(new SetCardInfo("Protect the Negotiators", 62, Rarity.UNCOMMON, mage.cards.p.ProtectTheNegotiators.class));