From 91bfef86805b829ab92d42a2dc5e039fe09ce46f Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 6 Sep 2021 21:02:07 -0400 Subject: [PATCH] [MID] Implemented Voldaren Ambusher --- .../src/mage/cards/v/VoldarenAmbusher.java | 59 +++++++++++++++++++ .../src/mage/sets/InnistradMidnightHunt.java | 1 + 2 files changed, 60 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/v/VoldarenAmbusher.java diff --git a/Mage.Sets/src/mage/cards/v/VoldarenAmbusher.java b/Mage.Sets/src/mage/cards/v/VoldarenAmbusher.java new file mode 100644 index 00000000000..649da55f2f3 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VoldarenAmbusher.java @@ -0,0 +1,59 @@ +package mage.cards.v; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.OpponentsLostLifeCondition; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.abilities.hint.common.OpponentsLostLifeHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetCreatureOrPlaneswalker; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class VoldarenAmbusher extends CardImpl { + + private static final DynamicValue xValue + = new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.VAMPIRE)); + private static final Hint hint = new ValueHint("Vampires you control", xValue); + + public VoldarenAmbusher(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); + + this.subtype.add(SubType.VAMPIRE); + this.subtype.add(SubType.ARCHER); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Voldaren Ambusher enters the battlefield, if an opponent lost life this turn, it deals X damage to up to one target creature or planeswalker, where X is the number of Vampires you control. + Ability ability = new ConditionalInterveningIfTriggeredAbility( + new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(xValue)), + OpponentsLostLifeCondition.instance, "When {this} enters the battlefield, " + + "if an opponent lost life this turn, it deals X damage to up to one target " + + "creature or planeswalker, where X is the number of Vampires you control." + ); + ability.addTarget(new TargetCreatureOrPlaneswalker(0, 1)); + this.addAbility(ability.addHint(OpponentsLostLifeHint.instance).addHint(hint)); + } + + private VoldarenAmbusher(final VoldarenAmbusher card) { + super(card); + } + + @Override + public VoldarenAmbusher copy() { + return new VoldarenAmbusher(this); + } +} diff --git a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java index 138a5579171..8841f06246a 100644 --- a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java +++ b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java @@ -102,6 +102,7 @@ public final class InnistradMidnightHunt extends ExpansionSet { cards.add(new SetCardInfo("Vampire Socialite", 249, Rarity.UNCOMMON, mage.cards.v.VampireSocialite.class)); cards.add(new SetCardInfo("Village Reavers", 165, Rarity.UNCOMMON, mage.cards.v.VillageReavers.class)); cards.add(new SetCardInfo("Village Watch", 165, Rarity.UNCOMMON, mage.cards.v.VillageWatch.class)); + cards.add(new SetCardInfo("Voldaren Ambusher", 166, Rarity.UNCOMMON, mage.cards.v.VoldarenAmbusher.class)); cards.add(new SetCardInfo("Wrenn and Seven", 208, Rarity.MYTHIC, mage.cards.w.WrennAndSeven.class)); cards.removeIf(setCardInfo -> unfinished.contains(setCardInfo.getName())); // remove when mechanic is fully implemented