From 6b047a498fd7a741af4d7c3f0e57716e1cdffe77 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 12 Apr 2022 08:24:27 -0400 Subject: [PATCH] [SNC] Implemented Aven Heartstabber --- .../src/mage/cards/a/AvenHeartstabber.java | 66 +++++++++++++++++++ .../src/mage/sets/StreetsOfNewCapenna.java | 1 + 2 files changed, 67 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AvenHeartstabber.java diff --git a/Mage.Sets/src/mage/cards/a/AvenHeartstabber.java b/Mage.Sets/src/mage/cards/a/AvenHeartstabber.java new file mode 100644 index 0000000000..a276b93fce --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AvenHeartstabber.java @@ -0,0 +1,66 @@ +package mage.cards.a; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesSourceTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.DifferentManaValuesInGraveCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.MillCardsControllerEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.hint.common.DifferentManaValuesInGraveHint; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class AvenHeartstabber extends CardImpl { + + public AvenHeartstabber(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{B}"); + + this.subtype.add(SubType.BIRD); + this.subtype.add(SubType.ASSASSIN); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // As long as there are five or more mana values among cards in your graveyard, Aven Heartstabber gets +2/+2 and has deathtouch. + Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect( + new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), + DifferentManaValuesInGraveCondition.FIVE, "as long as there are five " + + "or more mana values among cards in your graveyard, {this} gets +2/+2" + )); + ability.addEffect(new ConditionalContinuousEffect( + new GainAbilitySourceEffect(DeathtouchAbility.getInstance()), + DifferentManaValuesInGraveCondition.FIVE, "and has deathtouch" + )); + this.addAbility(ability.addHint(DifferentManaValuesInGraveHint.instance)); + + // When Aven Heartstabber dies, mill two cards, then draw a card. + ability = new DiesSourceTriggeredAbility(new MillCardsControllerEffect(2)); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then")); + this.addAbility(ability); + } + + private AvenHeartstabber(final AvenHeartstabber card) { + super(card); + } + + @Override + public AvenHeartstabber copy() { + return new AvenHeartstabber(this); + } +} diff --git a/Mage.Sets/src/mage/sets/StreetsOfNewCapenna.java b/Mage.Sets/src/mage/sets/StreetsOfNewCapenna.java index e5045b814d..dfb796b3f3 100644 --- a/Mage.Sets/src/mage/sets/StreetsOfNewCapenna.java +++ b/Mage.Sets/src/mage/sets/StreetsOfNewCapenna.java @@ -29,6 +29,7 @@ public final class StreetsOfNewCapenna extends ExpansionSet { cards.add(new SetCardInfo("A Little Chat", 47, Rarity.UNCOMMON, mage.cards.a.ALittleChat.class)); cards.add(new SetCardInfo("An Offer You Can't Refuse", 51, Rarity.UNCOMMON, mage.cards.a.AnOfferYouCantRefuse.class)); cards.add(new SetCardInfo("Arc Spitter", 233, Rarity.UNCOMMON, mage.cards.a.ArcSpitter.class)); + cards.add(new SetCardInfo("Aven Heartstabber", 166, Rarity.RARE, mage.cards.a.AvenHeartstabber.class)); cards.add(new SetCardInfo("Ballroom Brawlers", 3, Rarity.UNCOMMON, mage.cards.b.BallroomBrawlers.class)); cards.add(new SetCardInfo("Black Market Tycoon", 167, Rarity.RARE, mage.cards.b.BlackMarketTycoon.class)); cards.add(new SetCardInfo("Botanical Plaza", 247, Rarity.COMMON, mage.cards.b.BotanicalPlaza.class));