diff --git a/Mage.Sets/src/mage/cards/a/AnointedDeacon.java b/Mage.Sets/src/mage/cards/a/AnointedDeacon.java index fd6c5757a03..fff9f721308 100644 --- a/Mage.Sets/src/mage/cards/a/AnointedDeacon.java +++ b/Mage.Sets/src/mage/cards/a/AnointedDeacon.java @@ -32,13 +32,12 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.BeginningOfCombatTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.constants.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.constants.*; import mage.filter.common.FilterCreaturePermanent; -import mage.target.common.TargetCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; - +import mage.target.common.TargetCreaturePermanent; /** * @@ -54,14 +53,16 @@ public class AnointedDeacon extends CardImpl { public AnointedDeacon(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); - + this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.CLERIC); this.power = new MageInt(3); this.toughness = new MageInt(3); // At the beginning of combat on your turn, you may have target Vampire get +2/+0 until end of turn. - Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), TargetController.YOU, true, false); + Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, + new BoostTargetEffect(2, 0, Duration.EndOfTurn).setText("you may have target Vampire get +2/+0 until end of turn"), + TargetController.YOU, true, false); ability.addTarget(new TargetCreaturePermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BishopOfTheBloodstained.java b/Mage.Sets/src/mage/cards/b/BishopOfTheBloodstained.java index e0164886e0c..d301e788ac3 100644 --- a/Mage.Sets/src/mage/cards/b/BishopOfTheBloodstained.java +++ b/Mage.Sets/src/mage/cards/b/BishopOfTheBloodstained.java @@ -33,15 +33,15 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.LoseLifeTargetEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.permanent.ControllerPredicate; -import mage.target.TargetPlayer; +import mage.target.common.TargetOpponent; /** * @@ -64,9 +64,9 @@ public class BishopOfTheBloodstained extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(3); - // When Bishop of the Bloodstained enters the battlefield, target player loses 1 life for each vampire you control. + // When Bishop of the Bloodstained enters the battlefield, target opponent loses 1 life for each vampire you control. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(new PermanentsOnBattlefieldCount(filter))); - ability.addTarget(new TargetPlayer()); + ability.addTarget(new TargetOpponent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BlightKeeper.java b/Mage.Sets/src/mage/cards/b/BlightKeeper.java index 89303c6d926..b0c7d19305a 100644 --- a/Mage.Sets/src/mage/cards/b/BlightKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BlightKeeper.java @@ -36,11 +36,11 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; -import mage.constants.SubType; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.common.TargetOpponent; @@ -63,7 +63,7 @@ public class BlightKeeper extends CardImpl { // {7}{B}, {T}, Sacrifice Blight Keeper: Target opponent loses 4 life and you gain 4 life. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(4), new ManaCostsImpl("{7}{B}")); - ability.addEffect(new GainLifeEffect(4)); + ability.addEffect(new GainLifeEffect(4).setText("and you gain 4 life")); ability.addTarget(new TargetOpponent()); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); diff --git a/Mage.Sets/src/mage/cards/d/DarkNourishment.java b/Mage.Sets/src/mage/cards/d/DarkNourishment.java index a7709f9df8e..4ade700f3cc 100644 --- a/Mage.Sets/src/mage/cards/d/DarkNourishment.java +++ b/Mage.Sets/src/mage/cards/d/DarkNourishment.java @@ -42,9 +42,9 @@ import mage.target.common.TargetCreatureOrPlayer; public class DarkNourishment extends CardImpl { public DarkNourishment(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{9}{7}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{B}"); - // Dark Nourishment deals 3 damage to target creature or player. You gain 3 life. + // Dark Nourishment deals 3 damage to target creature or player. You gain 3 life. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); this.getSpellAbility().addEffect(new GainLifeEffect(3)); diff --git a/Mage.Sets/src/mage/cards/d/DeathlessAncient.java b/Mage.Sets/src/mage/cards/d/DeathlessAncient.java index d1c0ee4ab73..1db85ec80bb 100644 --- a/Mage.Sets/src/mage/cards/d/DeathlessAncient.java +++ b/Mage.Sets/src/mage/cards/d/DeathlessAncient.java @@ -31,7 +31,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapTargetCost; -import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -59,7 +59,7 @@ public class DeathlessAncient extends CardImpl { public DeathlessAncient(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}"); - + this.subtype.add(SubType.VAMPIRE); this.subtype.add(SubType.KNIGHT); this.power = new MageInt(4); @@ -69,7 +69,9 @@ public class DeathlessAncient extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Tap three untapped Vampires you control: Return Deathless Ancient from your graveyard to your hand. - this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), new TapTargetCost(new TargetControlledPermanent(3, 3, filter, true)))); + this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, + new ReturnSourceFromGraveyardToHandEffect(), + new TapTargetCost(new TargetControlledPermanent(3, 3, filter, true)))); } diff --git a/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java b/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java index a20944d0d79..cb3a84b6190 100644 --- a/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java +++ b/Mage.Sets/src/mage/cards/f/FathomFleetCutthroat.java @@ -32,10 +32,10 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -66,6 +66,7 @@ public class FathomFleetCutthroat extends CardImpl { // When Fathom Fleet Cutthroat enters the battlefield, destroy target creature an opponent controls that was dealt damage this turn. Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false); ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); } public FathomFleetCutthroat(final FathomFleetCutthroat card) { diff --git a/Mage.Sets/src/mage/cards/l/LurkingChupacabra.java b/Mage.Sets/src/mage/cards/l/LurkingChupacabra.java index 7f607f32f94..8740ed771a5 100644 --- a/Mage.Sets/src/mage/cards/l/LurkingChupacabra.java +++ b/Mage.Sets/src/mage/cards/l/LurkingChupacabra.java @@ -32,11 +32,11 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.effects.common.CreatureExploresTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.TargetController; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; @@ -65,6 +65,7 @@ public class LurkingChupacabra extends CardImpl { // Whenever a creature you control explores, target creature an opponent controls gets -2/-2 until end of turn Ability ability = new CreatureExploresTriggeredAbility(new BoostTargetEffect(-2, -2, Duration.EndOfTurn)); ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); } public LurkingChupacabra(final LurkingChupacabra card) { diff --git a/Mage.Sets/src/mage/cards/m/MarchOfTheDrowned.java b/Mage.Sets/src/mage/cards/m/MarchOfTheDrowned.java index f90824d1cd0..393917cb020 100644 --- a/Mage.Sets/src/mage/cards/m/MarchOfTheDrowned.java +++ b/Mage.Sets/src/mage/cards/m/MarchOfTheDrowned.java @@ -29,6 +29,7 @@ package mage.cards.m; import java.util.UUID; import mage.abilities.Mode; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -60,7 +61,7 @@ public class MarchOfTheDrowned extends CardImpl { this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); // • Return two target Pirate cards from your graveyard to your hand. Mode mode = new Mode(); - mode.getEffects().add(new ReturnToHandTargetEffect()); + mode.getEffects().add(new ReturnFromGraveyardToHandTargetEffect()); mode.getTargets().add(new TargetCardInYourGraveyard(2, filter)); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/m/MarkOfTheVampire.java b/Mage.Sets/src/mage/cards/m/MarkOfTheVampire.java index 0ffebe20cdc..1e192063002 100644 --- a/Mage.Sets/src/mage/cards/m/MarkOfTheVampire.java +++ b/Mage.Sets/src/mage/cards/m/MarkOfTheVampire.java @@ -28,6 +28,7 @@ package mage.cards.m; import java.util.UUID; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.continuous.BoostEnchantedEffect; @@ -38,9 +39,9 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.AttachmentType; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; import mage.constants.Outcome; +import mage.constants.SubType; import mage.constants.Zone; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; @@ -52,10 +53,9 @@ import mage.target.common.TargetCreaturePermanent; public class MarkOfTheVampire extends CardImpl { public MarkOfTheVampire(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{B}"); this.subtype.add(SubType.AURA); - // Enchant creature TargetPermanent target = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(target); @@ -63,8 +63,9 @@ public class MarkOfTheVampire extends CardImpl { this.addAbility(new EnchantAbility(target.getTargetName())); // Enchanted creature gets +2/+2 and has lifelink. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA))); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)); + ability.addEffect(new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA).setText("and has lifelink")); + this.addAbility(ability); } public MarkOfTheVampire(final MarkOfTheVampire card) { diff --git a/Mage.Sets/src/mage/cards/r/RuthlessKnave.java b/Mage.Sets/src/mage/cards/r/RuthlessKnave.java index 76d1c47b707..c78724c8d22 100644 --- a/Mage.Sets/src/mage/cards/r/RuthlessKnave.java +++ b/Mage.Sets/src/mage/cards/r/RuthlessKnave.java @@ -35,10 +35,10 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; @@ -53,7 +53,7 @@ import mage.target.common.TargetControlledPermanent; */ public class RuthlessKnave extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("three other creatures"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("three three Treasures"); static { filter.add(new SubtypePredicate(SubType.TREASURE)); diff --git a/Mage.Sets/src/mage/cards/s/SkymarchBloodletter.java b/Mage.Sets/src/mage/cards/s/SkymarchBloodletter.java index 6e873593d1f..ea776f269bf 100644 --- a/Mage.Sets/src/mage/cards/s/SkymarchBloodletter.java +++ b/Mage.Sets/src/mage/cards/s/SkymarchBloodletter.java @@ -33,11 +33,11 @@ import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.LoseLifeTargetEffect; -import mage.constants.SubType; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.target.Target; import mage.target.common.TargetOpponent; @@ -60,7 +60,7 @@ public class SkymarchBloodletter extends CardImpl { // When Skymarch Bloodletters enters the battlefield, target opponent loses 1 life and you gain 1 life. Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(1), false); - ability.addEffect(new GainLifeEffect(1)); + ability.addEffect(new GainLifeEffect(1).setText("and you gain 1 life")); Target target = new TargetOpponent(); ability.addTarget(target); this.addAbility(ability); diff --git a/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java index 9ec48797fd8..37f535e7a59 100644 --- a/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java @@ -102,6 +102,6 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI @Override public String getRule() { - return "When" + (once ? "" : "ever") + " a" + (filter.getMessage().startsWith("a") ? "n " : " ") + " attacks, " + super.getRule(); + return "When" + (once ? "" : "ever") + " a" + (filter.getMessage().startsWith("a") ? "n " : " ") + filter.getMessage() + " attacks, " + super.getRule(); } }