From 66cc29325c6a1a5c601bcb2fe81eda7765ae57f5 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Sun, 27 May 2018 00:41:53 +0200 Subject: [PATCH] * Some fixes to some Battleebond cards. --- .../card/dl/sources/MythicspoilerComSource.java | 1 + .../card/dl/sources/ScryfallImageSource.java | 1 + Mage.Sets/src/mage/cards/a/ArenaRector.java | 4 ++-- Mage.Sets/src/mage/cards/b/Brightling.java | 4 ++-- Mage.Sets/src/mage/cards/c/ChakramRetriever.java | 3 ++- Mage.Sets/src/mage/cards/f/FanFavorite.java | 3 ++- Mage.Sets/src/mage/cards/h/HuddleUp.java | 2 +- Mage.Sets/src/mage/cards/k/KissOfTheAmesha.java | 5 ++--- Mage.Sets/src/mage/cards/l/LoreWeaver.java | 3 ++- Mage.Sets/src/mage/cards/o/OkaunEyeOfChaos.java | 6 +++--- Mage.Sets/src/mage/cards/r/RecklessScholar.java | 9 ++++----- .../src/mage/cards/s/SoulbladeCorrupter.java | 15 ++++++++++++--- Mage.Sets/src/mage/cards/s/Spellseeker.java | 6 +++--- Mage.Sets/src/mage/cards/s/StunningReversal.java | 4 ++-- Mage.Sets/src/mage/cards/t/TheCrowdGoesWild.java | 4 ++-- .../src/mage/cards/t/ToothyImaginaryFriend.java | 8 +++++--- .../src/mage/cards/u/UnflinchingCourage.java | 12 ++++++------ Mage.Sets/src/mage/cards/v/VirtusTheVeiled.java | 4 ++-- .../common/WinsCoinFlipTriggeredAbility.java | 3 +-- .../effects/common/DrawCardTargetEffect.java | 2 +- .../abilities/keyword/PartnerWithAbility.java | 2 +- 21 files changed, 57 insertions(+), 44 deletions(-) diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java index b33a8b084655..1b7ff4125e1c 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/MythicspoilerComSource.java @@ -257,6 +257,7 @@ public String getSourceName() { supportedSets.add("UST"); supportedSets.add("RIX"); supportedSets.add("DOM"); + supportedSets.add("BBD"); sets = new LinkedHashMap<>(); setsAliases = new HashMap<>(); diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java index 3a43aec961dc..f38b1a80e6fd 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java @@ -210,6 +210,7 @@ public enum ScryfallImageSource implements CardImageSource { supportedSets.add("PPRO"); supportedSets.add("A25"); supportedSets.add("DOM"); + supportedSets.add("BBD"); // supportedSets.add("M19"); } diff --git a/Mage.Sets/src/mage/cards/a/ArenaRector.java b/Mage.Sets/src/mage/cards/a/ArenaRector.java index 63b5ab78fd2c..5ec9bbda564a 100644 --- a/Mage.Sets/src/mage/cards/a/ArenaRector.java +++ b/Mage.Sets/src/mage/cards/a/ArenaRector.java @@ -33,10 +33,10 @@ import mage.abilities.costs.common.ExileSourceFromGraveCost; import mage.abilities.effects.common.DoIfCostPaid; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.filter.common.FilterPlaneswalkerCard; import mage.target.common.TargetCardInLibrary; @@ -60,7 +60,7 @@ public ArenaRector(UUID ownerId, CardSetInfo setInfo) { new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterPlaneswalkerCard())), new ExileSourceFromGraveCost(), "Exile to search for a planeswalker?" - ), false + ).setText("you may exile it. If you do, search your library for a planeswalker card, put it onto the battlefield, then shuffle your library"), false )); } diff --git a/Mage.Sets/src/mage/cards/b/Brightling.java b/Mage.Sets/src/mage/cards/b/Brightling.java index 812dd97c1866..5ea0c973e6cb 100644 --- a/Mage.Sets/src/mage/cards/b/Brightling.java +++ b/Mage.Sets/src/mage/cards/b/Brightling.java @@ -32,7 +32,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ColoredManaCost; -import mage.abilities.costs.mana.ColorlessManaCost; +import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.ReturnToHandSourceEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -95,7 +95,7 @@ public Brightling(UUID ownerId, CardSetInfo setInfo) { this.addAbility(new SimpleActivatedAbility( Zone.BATTLEFIELD, new BrightlingEffect(), - new ColorlessManaCost(1) + new GenericManaCost(1) )); } diff --git a/Mage.Sets/src/mage/cards/c/ChakramRetriever.java b/Mage.Sets/src/mage/cards/c/ChakramRetriever.java index 4d0c17f88555..dda65506b73e 100644 --- a/Mage.Sets/src/mage/cards/c/ChakramRetriever.java +++ b/Mage.Sets/src/mage/cards/c/ChakramRetriever.java @@ -35,10 +35,10 @@ import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.UntapTargetEffect; import mage.abilities.keyword.PartnerWithAbility; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.target.common.TargetCreaturePermanent; /** @@ -65,6 +65,7 @@ public ChakramRetriever(UUID ownerId, CardSetInfo setInfo) { "Whenever you cast a spell during your turn, untap target creature." ); ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); } public ChakramRetriever(final ChakramRetriever card) { diff --git a/Mage.Sets/src/mage/cards/f/FanFavorite.java b/Mage.Sets/src/mage/cards/f/FanFavorite.java index d45b13cb129e..ff317b46270c 100644 --- a/Mage.Sets/src/mage/cards/f/FanFavorite.java +++ b/Mage.Sets/src/mage/cards/f/FanFavorite.java @@ -34,12 +34,12 @@ import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.InfoEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; -import mage.constants.SubType; import mage.abilities.keyword.AssistAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.TargetController; /** @@ -63,6 +63,7 @@ public FanFavorite(UUID ownerId, CardSetInfo setInfo) { ActivatedAbility ability = new SimpleActivatedAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(2)); ability.setMayActivate(TargetController.ANY); ability.addEffect(new InfoEffect("Any player may activate this ability")); + this.addAbility(ability); } public FanFavorite(final FanFavorite card) { diff --git a/Mage.Sets/src/mage/cards/h/HuddleUp.java b/Mage.Sets/src/mage/cards/h/HuddleUp.java index d2098c1cefc3..9236ba57c4eb 100644 --- a/Mage.Sets/src/mage/cards/h/HuddleUp.java +++ b/Mage.Sets/src/mage/cards/h/HuddleUp.java @@ -48,7 +48,7 @@ public HuddleUp(UUID ownerId, CardSetInfo setInfo) { this.addAbility(new AssistAbility()); // Two target players each draw a card. - this.getSpellAbility().addEffect(new DrawCardTargetEffect(1)); + this.getSpellAbility().addEffect(new DrawCardTargetEffect(1).setText("Two target players each draw a card")); this.getSpellAbility().addTarget(new TargetPlayer(2)); } diff --git a/Mage.Sets/src/mage/cards/k/KissOfTheAmesha.java b/Mage.Sets/src/mage/cards/k/KissOfTheAmesha.java index a0ce05c35562..05fa837b1c62 100644 --- a/Mage.Sets/src/mage/cards/k/KissOfTheAmesha.java +++ b/Mage.Sets/src/mage/cards/k/KissOfTheAmesha.java @@ -42,13 +42,12 @@ public class KissOfTheAmesha extends CardImpl { public KissOfTheAmesha(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{W}{U}"); - + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W}{U}"); // Target player gains 7 life and draws two cards. this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addEffect(new GainLifeTargetEffect(7)); - this.getSpellAbility().addEffect(new DrawCardTargetEffect(2)); + this.getSpellAbility().addEffect(new DrawCardTargetEffect(2).setText("and draws two cards")); } public KissOfTheAmesha(final KissOfTheAmesha card) { diff --git a/Mage.Sets/src/mage/cards/l/LoreWeaver.java b/Mage.Sets/src/mage/cards/l/LoreWeaver.java index 1e74242463dd..763f46f35d53 100644 --- a/Mage.Sets/src/mage/cards/l/LoreWeaver.java +++ b/Mage.Sets/src/mage/cards/l/LoreWeaver.java @@ -34,10 +34,10 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.DrawCardTargetEffect; import mage.abilities.keyword.PartnerWithAbility; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; import mage.target.TargetPlayer; /** @@ -60,6 +60,7 @@ public LoreWeaver(UUID ownerId, CardSetInfo setInfo) { // {5}{U}{U}: Target player draws two cards. Ability ability = new SimpleActivatedAbility(new DrawCardTargetEffect(2), new ManaCostsImpl("{5}{U}{U}")); ability.addTarget(new TargetPlayer()); + this.addAbility(ability); } public LoreWeaver(final LoreWeaver card) { diff --git a/Mage.Sets/src/mage/cards/o/OkaunEyeOfChaos.java b/Mage.Sets/src/mage/cards/o/OkaunEyeOfChaos.java index 35ce845d9093..018855572457 100644 --- a/Mage.Sets/src/mage/cards/o/OkaunEyeOfChaos.java +++ b/Mage.Sets/src/mage/cards/o/OkaunEyeOfChaos.java @@ -37,12 +37,12 @@ import mage.abilities.effects.common.FlipUntilLoseEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; import mage.abilities.keyword.PartnerWithAbility; -import mage.constants.SubType; -import mage.constants.SuperType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.SubType; +import mage.constants.SuperType; import mage.constants.TargetController; /** @@ -75,7 +75,7 @@ public OkaunEyeOfChaos(UUID ownerId, CardSetInfo setInfo) { sourceToughness, Duration.EndOfTurn, true - ).setText("double {this}'s power until end of turn") + ).setText("double {this}'s power and toughness until end of turn") )); } diff --git a/Mage.Sets/src/mage/cards/r/RecklessScholar.java b/Mage.Sets/src/mage/cards/r/RecklessScholar.java index 69ed4bd7b7f1..80abc1513765 100644 --- a/Mage.Sets/src/mage/cards/r/RecklessScholar.java +++ b/Mage.Sets/src/mage/cards/r/RecklessScholar.java @@ -32,8 +32,7 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.DrawCardTargetEffect; -import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.effects.common.DrawDiscardTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -48,15 +47,15 @@ public class RecklessScholar extends CardImpl { public RecklessScholar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.WIZARD); this.power = new MageInt(2); this.toughness = new MageInt(1); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardTargetEffect(1), new TapSourceCost()); - ability.addEffect(new DiscardTargetEffect(1)); + // {T}: Target player draws a card, then discards a card. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawDiscardTargetEffect(1, 1), new TapSourceCost()); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SoulbladeCorrupter.java b/Mage.Sets/src/mage/cards/s/SoulbladeCorrupter.java index 69a85513c71d..055cca537302 100644 --- a/Mage.Sets/src/mage/cards/s/SoulbladeCorrupter.java +++ b/Mage.Sets/src/mage/cards/s/SoulbladeCorrupter.java @@ -31,7 +31,6 @@ import mage.MageInt; import mage.abilities.common.AttacksAllTriggeredAbility; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.constants.SubType; import mage.abilities.keyword.DeathtouchAbility; import mage.abilities.keyword.PartnerWithAbility; import mage.cards.CardImpl; @@ -39,6 +38,7 @@ import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SetTargetPointer; +import mage.constants.SubType; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.CounterPredicate; @@ -46,6 +46,7 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.target.targetpointer.FixedTarget; /** * @@ -93,7 +94,7 @@ class SoulbladeCorrupterTriggeredAbility extends AttacksAllTriggeredAbility { super(new GainAbilityTargetEffect( DeathtouchAbility.getInstance(), Duration.EndOfTurn - ), false, filter2, SetTargetPointer.PERMANENT, false); + ).setText("that creature gains deathtouch until end of turn"), false, filter2, SetTargetPointer.PERMANENT, false); } SoulbladeCorrupterTriggeredAbility(final SoulbladeCorrupterTriggeredAbility effect) { @@ -106,12 +107,20 @@ public boolean checkTrigger(GameEvent event, Game game) { Permanent permanent = game.getPermanent(event.getSourceId()); if (permanent != null) { Player player = game.getPlayer(permanent.getControllerId()); - return player != null && player.hasOpponent(getControllerId(), game); + if (player != null && player.hasOpponent(getControllerId(), game)) { + getEffects().setTargetPointer(new FixedTarget(permanent, game)); + return true; + } } } return false; } + @Override + public String getRule() { + return "Whenever a creature with a +1/+1 counter on it attacks one of your opponents, that creature gains deathtouch until end of turn."; + } + @Override public SoulbladeCorrupterTriggeredAbility copy() { return new SoulbladeCorrupterTriggeredAbility(this); diff --git a/Mage.Sets/src/mage/cards/s/Spellseeker.java b/Mage.Sets/src/mage/cards/s/Spellseeker.java index 15efb2e2eec8..a94125d37827 100644 --- a/Mage.Sets/src/mage/cards/s/Spellseeker.java +++ b/Mage.Sets/src/mage/cards/s/Spellseeker.java @@ -31,11 +31,11 @@ import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; +import mage.constants.SubType; import mage.filter.common.FilterInstantOrSorceryCard; import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; import mage.target.common.TargetCardInLibrary; @@ -60,9 +60,9 @@ public Spellseeker(UUID ownerId, CardSetInfo setInfo) { this.power = new MageInt(1); this.toughness = new MageInt(1); - // When Spellseeker enters the battlefield, you may search your library for an instant or sorcery card with converted mana cost 2 or less, reveal it, put it into your hand, then shuffle your library. + // When Spellseeker enters the battlefield, you may search your library for an instant or sorcery card with converted mana cost 2 or less, reveal it, put it into your hand, then shuffle your library. this.addAbility(new EntersBattlefieldTriggeredAbility( - new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, filter), true, true), + new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), true )); } diff --git a/Mage.Sets/src/mage/cards/s/StunningReversal.java b/Mage.Sets/src/mage/cards/s/StunningReversal.java index 1e03ed575727..8300a0ead96a 100644 --- a/Mage.Sets/src/mage/cards/s/StunningReversal.java +++ b/Mage.Sets/src/mage/cards/s/StunningReversal.java @@ -49,7 +49,7 @@ public class StunningReversal extends CardImpl { public StunningReversal(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{B}"); - // The next time you would lose the game this turn, instead draw seven cards and your life total becomes 1. + // The next time you would lose the game this turn, instead draw seven cards and your life total becomes 1. this.getSpellAbility().addEffect(new StunningReversalEffect()); // Exile Stunning Reversal. @@ -70,7 +70,7 @@ class StunningReversalEffect extends ReplacementEffectImpl { public StunningReversalEffect() { super(Duration.EndOfTurn, Outcome.Benefit); - staticText = "The next time you would lose the game this turn, instead draw seven cards and your life total becomes 1. "; + staticText = "The next time you would lose the game this turn, instead draw seven cards and your life total becomes 1"; } public StunningReversalEffect(final StunningReversalEffect effect) { diff --git a/Mage.Sets/src/mage/cards/t/TheCrowdGoesWild.java b/Mage.Sets/src/mage/cards/t/TheCrowdGoesWild.java index ca3588b58ad8..6b5adcd6d659 100644 --- a/Mage.Sets/src/mage/cards/t/TheCrowdGoesWild.java +++ b/Mage.Sets/src/mage/cards/t/TheCrowdGoesWild.java @@ -50,7 +50,7 @@ */ public class TheCrowdGoesWild extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with a +1/+1 counter on it"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each creature with a +1/+1 counter on it"); static { filter.add(new CounterPredicate(CounterType.P1P1)); @@ -64,7 +64,7 @@ public TheCrowdGoesWild(UUID ownerId, CardSetInfo setInfo) { // Support X (Put a +1/+1 counter on each of up to X target creatures.) this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance()) - .setText("Support X (Put a +1/+1 counter on each of up to X target creatures.)") + .setText("Support X (Put a +1/+1 counter on each of up to X target creatures.)
") ); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/t/ToothyImaginaryFriend.java b/Mage.Sets/src/mage/cards/t/ToothyImaginaryFriend.java index d480130b858f..0a3515735159 100644 --- a/Mage.Sets/src/mage/cards/t/ToothyImaginaryFriend.java +++ b/Mage.Sets/src/mage/cards/t/ToothyImaginaryFriend.java @@ -35,11 +35,11 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.PartnerWithAbility; -import mage.constants.SubType; -import mage.constants.SuperType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; import mage.counters.CounterType; /** @@ -63,7 +63,9 @@ public ToothyImaginaryFriend(UUID ownerId, CardSetInfo setInfo) { this.addAbility(new DrawCardControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), true)); // When Toothy leaves the battlefield, draw a card for each +1/+1 counter on it. - this.addAbility(new LeavesBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.P1P1)), false)); + this.addAbility(new LeavesBattlefieldTriggeredAbility( + new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.P1P1)) + .setText("draw a card for each +1/+1 counter on it"), false)); } public ToothyImaginaryFriend(final ToothyImaginaryFriend card) { diff --git a/Mage.Sets/src/mage/cards/u/UnflinchingCourage.java b/Mage.Sets/src/mage/cards/u/UnflinchingCourage.java index 6b443fa376b7..7279c6c60d80 100644 --- a/Mage.Sets/src/mage/cards/u/UnflinchingCourage.java +++ b/Mage.Sets/src/mage/cards/u/UnflinchingCourage.java @@ -40,9 +40,9 @@ 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; @@ -54,10 +54,9 @@ public class UnflinchingCourage extends CardImpl { public UnflinchingCourage(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}{W}"); this.subtype.add(SubType.AURA); - // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); @@ -66,9 +65,10 @@ public UnflinchingCourage(UUID ownerId, CardSetInfo setInfo) { this.addAbility(ability); // Enchanted creature gets +2/+2 and has trample and lifelink. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA))); + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)); + ability.addEffect(new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA).setText("and has trample")); + ability.addEffect(new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA).setText("and lifelink")); + this.addAbility(ability); } public UnflinchingCourage(final UnflinchingCourage card) { diff --git a/Mage.Sets/src/mage/cards/v/VirtusTheVeiled.java b/Mage.Sets/src/mage/cards/v/VirtusTheVeiled.java index 65d21fe2422c..6a04329042b1 100644 --- a/Mage.Sets/src/mage/cards/v/VirtusTheVeiled.java +++ b/Mage.Sets/src/mage/cards/v/VirtusTheVeiled.java @@ -29,7 +29,7 @@ import java.util.UUID; import mage.MageInt; -import mage.abilities.common.DealsDamageToOpponentTriggeredAbility; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.effects.common.LoseHalfLifeTargetEffect; import mage.constants.SubType; import mage.constants.SuperType; @@ -61,7 +61,7 @@ public VirtusTheVeiled(UUID ownerId, CardSetInfo setInfo) { this.addAbility(DeathtouchAbility.getInstance()); // Whenever Virtus the Veiled deals combat damage to a player, that player loses half their life, rounded up. - this.addAbility(new DealsDamageToOpponentTriggeredAbility(new LoseHalfLifeTargetEffect(), false, true, true)); + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new LoseHalfLifeTargetEffect(), false, true)); } public VirtusTheVeiled(final VirtusTheVeiled card) { diff --git a/Mage/src/main/java/mage/abilities/common/WinsCoinFlipTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/WinsCoinFlipTriggeredAbility.java index 1d049cfb730d..2cd87803c801 100644 --- a/Mage/src/main/java/mage/abilities/common/WinsCoinFlipTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/WinsCoinFlipTriggeredAbility.java @@ -25,7 +25,6 @@ * authors and should not be interpreted as representing official policies, either expressed * or implied, of BetaSteward_at_googlemail.com. */ - package mage.abilities.common; import mage.abilities.TriggeredAbilityImpl; @@ -65,6 +64,6 @@ public boolean checkTrigger(GameEvent event, Game game) { @Override public String getRule() { - return "Whenever a player wins a coin flip," + super.getRule(); + return "Whenever a player wins a coin flip, " + super.getRule(); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java index 0068c5a7015d..ca91d4499742 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DrawCardTargetEffect.java @@ -115,7 +115,7 @@ public String getText(Mode mode) { } else { target = mode.getTargets().get(0); } - sb.append("Target ").append(target.getTargetName()); + sb.append("target ").append(target.getTargetName()); } else { sb.append("that player"); } diff --git a/Mage/src/main/java/mage/abilities/keyword/PartnerWithAbility.java b/Mage/src/main/java/mage/abilities/keyword/PartnerWithAbility.java index 63cbcf434389..77dc2461a566 100644 --- a/Mage/src/main/java/mage/abilities/keyword/PartnerWithAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/PartnerWithAbility.java @@ -117,7 +117,7 @@ class PartnersWithSearchEffect extends OneShotEffect { private final String partnerName; public PartnersWithSearchEffect(String partnerName) { - super(Outcome.Detriment); + super(Outcome.DrawCard); this.partnerName = partnerName; this.staticText = ""; }