From 46a8ee438afd22468356df338fb0d070e894ddd5 Mon Sep 17 00:00:00 2001 From: Neil Gentleman Date: Sun, 17 Jul 2016 11:26:32 -0700 Subject: [PATCH] fix "you control you control" in rules text GainAbilityControlledEffect + FilterControlledCreaturePermanent is redundant --- Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java | 4 ++-- .../src/mage/sets/battleforzendikar/FiremantleMage.java | 4 ++-- .../src/mage/sets/battleforzendikar/KorBladewhirl.java | 4 ++-- .../src/mage/sets/battleforzendikar/OnduChampion.java | 4 ++-- .../src/mage/sets/battleforzendikar/RuinationGuide.java | 2 +- .../sets/betrayersofkamigawa/KiraGreatGlassSpinner.java | 2 +- .../src/mage/sets/championsofkamigawa/DanceOfShadows.java | 8 +++----- .../src/mage/sets/dragonsoftarkir/DragonlordKolaghan.java | 4 ++-- .../src/mage/sets/fatereforged/KolaghanTheStormsFury.java | 2 +- Mage.Sets/src/mage/sets/invasion/SterlingGrove.java | 4 +--- Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheEdge.java | 2 +- .../src/mage/sets/khansoftarkir/ChiefOfTheScale.java | 2 +- Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java | 2 +- Mage.Sets/src/mage/sets/lorwyn/MadAuntie.java | 2 +- .../mage/sets/portalthreekingdoms/SunQuanLordOfWu.java | 4 ++-- Mage.Sets/src/mage/sets/scarsofmirrodin/Asceticism.java | 4 ++-- .../mage/sets/shadowsoverinnistrad/BehindTheScenes.java | 7 +++---- .../sets/shadowsoverinnistrad/NephaliaMoondrakes.java | 4 +--- 18 files changed, 29 insertions(+), 36 deletions(-) diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java b/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java index 0b0887b2d3..cb7e99d722 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java @@ -36,7 +36,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; /** * @@ -55,7 +55,7 @@ public class ChasmGuide extends CardImpl { // Rally — Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn. this.addAbility(new AllyEntersBattlefieldTriggeredAbility( - new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false)); + new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), false)); } public ChasmGuide(final ChasmGuide card) { diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java b/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java index 33b4b2ad59..dfe5f983a0 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java @@ -36,7 +36,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; /** * @@ -55,7 +55,7 @@ public class FiremantleMage extends CardImpl { // Rally — Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn. this.addAbility(new AllyEntersBattlefieldTriggeredAbility( - new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false)); + new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), false)); } public FiremantleMage(final FiremantleMage card) { diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java b/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java index 7495f8d213..776aa139f4 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java @@ -36,7 +36,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; /** * @@ -55,7 +55,7 @@ public class KorBladewhirl extends CardImpl { // Rally — Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn. this.addAbility(new AllyEntersBattlefieldTriggeredAbility( - new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false)); + new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), false)); } public KorBladewhirl(final KorBladewhirl card) { diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java b/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java index 124ad219fa..cdd9579ddf 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java @@ -36,7 +36,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; /** * @@ -55,7 +55,7 @@ public class OnduChampion extends CardImpl { // Rally — Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn. this.addAbility(new AllyEntersBattlefieldTriggeredAbility( - new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false)); + new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), false)); } public OnduChampion(final OnduChampion card) { diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/RuinationGuide.java b/Mage.Sets/src/mage/sets/battleforzendikar/RuinationGuide.java index 39b090b5d7..b39223f600 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/RuinationGuide.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/RuinationGuide.java @@ -47,7 +47,7 @@ import mage.filter.predicate.mageobject.ColorlessPredicate; */ public class RuinationGuide extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Other colorless creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("colorless creatures"); static { filter.add(new ColorlessPredicate()); diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/KiraGreatGlassSpinner.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/KiraGreatGlassSpinner.java index 9341c7caf2..c628292f4b 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/KiraGreatGlassSpinner.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/KiraGreatGlassSpinner.java @@ -73,7 +73,7 @@ public class KiraGreatGlassSpinner extends CardImpl { // Creatures you control have "Whenever this creature becomes the target of a spell or ability for the first time in a turn, counter that spell or ability." Effect effect = new CounterTargetEffect(); effect.setText("counter that spell or ability"); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(new KiraGreatGlassSpinnerAbility(effect), Duration.WhileOnBattlefield, new FilterCreaturePermanent("Creatures you control"))), + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(new KiraGreatGlassSpinnerAbility(effect), Duration.WhileOnBattlefield, new FilterCreaturePermanent("creatures"))), new CreatureWasTargetedThisTurnWatcher()); } diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/DanceOfShadows.java b/Mage.Sets/src/mage/sets/championsofkamigawa/DanceOfShadows.java index dff783534d..f508236094 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/DanceOfShadows.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/DanceOfShadows.java @@ -46,8 +46,6 @@ import mage.filter.common.FilterCreaturePermanent; */ public class DanceOfShadows extends CardImpl { - static private FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); - public DanceOfShadows (UUID ownerId) { super(ownerId, 108, "Dance of Shadows", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{B}{B}"); this.expansionSetCode = "CHK"; @@ -55,12 +53,12 @@ public class DanceOfShadows extends CardImpl { // Creatures you control get +1/+0 and gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.) - Effect effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter); + Effect effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, new FilterCreaturePermanent()); effect.setText("Creatures you control get +1/+0"); this.getSpellAbility().addEffect(effect); - effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter); + effect = new GainAbilityControlledEffect(FearAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()); effect.setText("and gain fear until end of turn"); - this.getSpellAbility().addEffect(new GainAbilityControlledEffect(FearAbility.getInstance(), Duration.EndOfTurn, filter)); + this.getSpellAbility().addEffect(effect); } public DanceOfShadows (final DanceOfShadows card) { diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonlordKolaghan.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonlordKolaghan.java index ce7c5851b7..f5d3e082be 100644 --- a/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonlordKolaghan.java +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/DragonlordKolaghan.java @@ -42,7 +42,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.stack.Spell; @@ -72,7 +72,7 @@ public class DragonlordKolaghan extends CardImpl { // Other creatures you control have haste. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent(), true))); + new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent(), true))); // Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, that player loses 10 life. Effect effect = new LoseLifeTargetEffect(10); diff --git a/Mage.Sets/src/mage/sets/fatereforged/KolaghanTheStormsFury.java b/Mage.Sets/src/mage/sets/fatereforged/KolaghanTheStormsFury.java index 1d8f49700e..c27c1b474b 100644 --- a/Mage.Sets/src/mage/sets/fatereforged/KolaghanTheStormsFury.java +++ b/Mage.Sets/src/mage/sets/fatereforged/KolaghanTheStormsFury.java @@ -69,7 +69,7 @@ public class KolaghanTheStormsFury extends CardImpl { // Whenever a Dragon you control attacks, creatures you control get +1/+0 until end of turn. this.addAbility(new AttacksAllTriggeredAbility( - new BoostControlledEffect(1, 0, Duration.EndOfTurn, new FilterCreaturePermanent("creatures you control"), false), + new BoostControlledEffect(1, 0, Duration.EndOfTurn, new FilterCreaturePermanent("creatures"), false), false, filter, SetTargetPointer.NONE, false)); // Dash {3}{B}{R} diff --git a/Mage.Sets/src/mage/sets/invasion/SterlingGrove.java b/Mage.Sets/src/mage/sets/invasion/SterlingGrove.java index d0c047aaaf..068bbacfce 100644 --- a/Mage.Sets/src/mage/sets/invasion/SterlingGrove.java +++ b/Mage.Sets/src/mage/sets/invasion/SterlingGrove.java @@ -44,7 +44,6 @@ import mage.constants.Zone; import mage.filter.FilterCard; import mage.filter.common.FilterControlledPermanent; import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetCardInLibrary; /** @@ -53,11 +52,10 @@ import mage.target.common.TargetCardInLibrary; */ public class SterlingGrove extends CardImpl { - private static final FilterControlledPermanent filterPermanent = new FilterControlledPermanent("Other enchantments you control"); + private static final FilterControlledPermanent filterPermanent = new FilterControlledPermanent("enchantments"); private static final FilterCard filterCard = new FilterCard("enchantment card"); static { filterPermanent.add(new CardTypePredicate(CardType.ENCHANTMENT)); - filterPermanent.add(new AnotherPredicate()); filterCard.add(new CardTypePredicate(CardType.ENCHANTMENT)); } diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheEdge.java b/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheEdge.java index 4c9b2dd8ee..65ef6cafc2 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheEdge.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheEdge.java @@ -45,7 +45,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public class ChiefOfTheEdge extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Warrior creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Warrior creatures"); static { filter.add(new SubtypePredicate("Warrior")); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheScale.java b/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheScale.java index e7d30be879..e22fc6c9d1 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheScale.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/ChiefOfTheScale.java @@ -45,7 +45,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate; */ public class ChiefOfTheScale extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Warrior creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Warrior creatures"); static { filter.add(new SubtypePredicate("Warrior")); diff --git a/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java b/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java index 7e9100827e..fee3b4235e 100644 --- a/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java +++ b/Mage.Sets/src/mage/sets/khansoftarkir/SecretPlans.java @@ -47,7 +47,7 @@ import mage.filter.predicate.other.FaceDownPredicate; */ public class SecretPlans extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Face-down creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Face-down creatures"); static { filter.add(new FaceDownPredicate()); diff --git a/Mage.Sets/src/mage/sets/lorwyn/MadAuntie.java b/Mage.Sets/src/mage/sets/lorwyn/MadAuntie.java index 565c2c103b..76d5490e7d 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/MadAuntie.java +++ b/Mage.Sets/src/mage/sets/lorwyn/MadAuntie.java @@ -53,7 +53,7 @@ import mage.target.common.TargetCreaturePermanent; public class MadAuntie extends CardImpl { private static final FilterCreaturePermanent filter1 = new FilterCreaturePermanent("another Goblin"); - private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Goblins you control"); + private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("Goblin creatures"); static { filter1.add(new SubtypePredicate("Goblin")); diff --git a/Mage.Sets/src/mage/sets/portalthreekingdoms/SunQuanLordOfWu.java b/Mage.Sets/src/mage/sets/portalthreekingdoms/SunQuanLordOfWu.java index d809ca5742..0f2962cc57 100644 --- a/Mage.Sets/src/mage/sets/portalthreekingdoms/SunQuanLordOfWu.java +++ b/Mage.Sets/src/mage/sets/portalthreekingdoms/SunQuanLordOfWu.java @@ -37,7 +37,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; /** * @@ -57,7 +57,7 @@ public class SunQuanLordOfWu extends CardImpl { // Creatures you control have horsemanship. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(HorsemanshipAbility.getInstance(), - Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("Creatures you control")))); + Duration.WhileOnBattlefield, new FilterCreaturePermanent("creatures")))); } public SunQuanLordOfWu(final SunQuanLordOfWu card) { diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/Asceticism.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/Asceticism.java index fa1614b091..e88d62edf6 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/Asceticism.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/Asceticism.java @@ -41,7 +41,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; import mage.target.common.TargetCreaturePermanent; /** @@ -55,7 +55,7 @@ public class Asceticism extends CardImpl { // Creatures you control have hexproof. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent()))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("creatures")))); // {1}{G}: Regenerate target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{1}{G}")); ability.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/BehindTheScenes.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/BehindTheScenes.java index 6d752ed66e..68b2103401 100644 --- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/BehindTheScenes.java +++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/BehindTheScenes.java @@ -39,7 +39,6 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; /** @@ -52,13 +51,13 @@ public class BehindTheScenes extends CardImpl { super(ownerId, 100, "Behind the Scenes", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); this.expansionSetCode = "SOI"; - // Creature you control have skulk. + // Creatures you control have skulk. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new GainAbilityControlledEffect(new SkulkAbility(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent()))); + new GainAbilityControlledEffect(new SkulkAbility(), Duration.WhileOnBattlefield, new FilterCreaturePermanent("creatures")))); // {4}{W}: Creatures you control get +1/+1 until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, - new BoostControlledEffect(1, 1, Duration.EndOfTurn, new FilterCreaturePermanent("Creatures you control")), + new BoostControlledEffect(1, 1, Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), new ManaCostsImpl("{4}{W}"))); } diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/NephaliaMoondrakes.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/NephaliaMoondrakes.java index 51bbb29ab4..fbb901fb37 100644 --- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/NephaliaMoondrakes.java +++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/NephaliaMoondrakes.java @@ -51,8 +51,6 @@ import mage.target.common.TargetCreaturePermanent; */ public class NephaliaMoondrakes extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures you control"); - public NephaliaMoondrakes(UUID ownerId) { super(ownerId, 75, "Nephalia Moondrakes", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); this.expansionSetCode = "SOI"; @@ -69,7 +67,7 @@ public class NephaliaMoondrakes extends CardImpl { this.addAbility(ability); // {4}{U}{U}, Exile Nephalia Moondrakes from your graveyard: Creatures you control gain flying until end of turn. - ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, filter), new ManaCostsImpl("{4}{U}{U}")); + ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent("creatures")), new ManaCostsImpl("{4}{U}{U}")); ability.addCost(new ExileSourceFromGraveCost()); this.addAbility(ability); }