From 498d7522947ab24c03bc653f597ecfb39d1304a6 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 22 Jun 2019 11:46:35 -0400 Subject: [PATCH] Implemented Mu Yanling, Celestial Wind --- .../mage/cards/m/MuYanlingCelestialWind.java | 65 +++++++++++++++++++ Mage.Sets/src/mage/sets/CoreSet2020.java | 1 + 2 files changed, 66 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/m/MuYanlingCelestialWind.java diff --git a/Mage.Sets/src/mage/cards/m/MuYanlingCelestialWind.java b/Mage.Sets/src/mage/cards/m/MuYanlingCelestialWind.java new file mode 100644 index 00000000000..07092fc2257 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MuYanlingCelestialWind.java @@ -0,0 +1,65 @@ +package mage.cards.m; + +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class MuYanlingCelestialWind extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control with flying"); + + static { + filter.add(new AbilityPredicate(FlyingAbility.class)); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public MuYanlingCelestialWind(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{U}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.YANLING); + this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5)); + + // +1: Until your next turn, up to one target creature gets -5/-0. + Ability ability = new LoyaltyAbility(new BoostTargetEffect( + -5, 0, Duration.UntilYourNextTurn + ).setText("Until your next turn, up to one target creature gets -5/-0."), 1); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // −3: Return up to two target creatures to their owners' hands. + ability = new LoyaltyAbility(new ReturnToHandTargetEffect(true), -3); + ability.addTarget(new TargetCreaturePermanent(0, 2)); + this.addAbility(ability); + + // −7: Creatures you control with flying get +5/+5 until end of turn. + this.addAbility(new LoyaltyAbility(new BoostAllEffect( + 5, 5, Duration.EndOfTurn, filter, false + ), -7)); + } + + private MuYanlingCelestialWind(final MuYanlingCelestialWind card) { + super(card); + } + + @Override + public MuYanlingCelestialWind copy() { + return new MuYanlingCelestialWind(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2020.java b/Mage.Sets/src/mage/sets/CoreSet2020.java index 9e3eb43486b..f9c264116c3 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2020.java +++ b/Mage.Sets/src/mage/sets/CoreSet2020.java @@ -122,6 +122,7 @@ public final class CoreSet2020 extends ExpansionSet { cards.add(new SetCardInfo("Mask of Immolation", 151, Rarity.UNCOMMON, mage.cards.m.MaskOfImmolation.class)); cards.add(new SetCardInfo("Moat Piranhas", 67, Rarity.COMMON, mage.cards.m.MoatPiranhas.class)); cards.add(new SetCardInfo("Moldervine Reclamation", 214, Rarity.UNCOMMON, mage.cards.m.MoldervineReclamation.class)); + cards.add(new SetCardInfo("Mu Yanling, Celestial Wind", 286, Rarity.MYTHIC, mage.cards.m.MuYanlingCelestialWind.class)); cards.add(new SetCardInfo("Mu Yanling, Sky Dancer", 68, Rarity.MYTHIC, mage.cards.m.MuYanlingSkyDancer.class)); cards.add(new SetCardInfo("Murder", 109, Rarity.COMMON, mage.cards.m.Murder.class)); cards.add(new SetCardInfo("Negate", 69, Rarity.COMMON, mage.cards.n.Negate.class));