From 4bf9153bc2590ef609dce191acb1c0ae244ddd64 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 22 Jun 2019 21:19:03 -0400 Subject: [PATCH] Implemented Vivien, Arkbow Ranger --- .../src/mage/cards/v/VivienArkbowRanger.java | 69 +++++++++++++++++++ Mage.Sets/src/mage/sets/CoreSet2020.java | 1 + 2 files changed, 70 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/v/VivienArkbowRanger.java diff --git a/Mage.Sets/src/mage/cards/v/VivienArkbowRanger.java b/Mage.Sets/src/mage/cards/v/VivienArkbowRanger.java new file mode 100644 index 0000000000..29d488866d --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VivienArkbowRanger.java @@ -0,0 +1,69 @@ +package mage.cards.v; + +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; +import mage.abilities.effects.common.DamageWithPowerTargetEffect; +import mage.abilities.effects.common.WishEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.counter.DistributeCountersEffect; +import mage.abilities.keyword.TrampleAbility; +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.counters.CounterType; +import mage.filter.StaticFilters; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreatureOrPlaneswalker; +import mage.target.common.TargetCreaturePermanentAmount; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class VivienArkbowRanger extends CardImpl { + + public VivienArkbowRanger(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{G}{G}{G}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.VIVIEN); + this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(4)); + + // +1: Distribute two +1/+1 counters among up to two target creatures. They gain trample until end of turn. + Ability ability = new LoyaltyAbility(new DistributeCountersEffect( + CounterType.P1P1, 2, false, "up to two target creatures" + ), 1); + ability.addEffect(new GainAbilityTargetEffect( + TrampleAbility.getInstance(), Duration.EndOfTurn, + "They gain trample until end of turn" + )); + ability.addTarget(new TargetCreaturePermanentAmount(2)); + this.addAbility(ability); + + // −3: Target creature you control deals damage equal to its power to target creature or planeswalker. + ability = new LoyaltyAbility( + new DamageWithPowerTargetEffect().setText("Target creature you control deals damage " + + "equal to its power to target creature or planeswalker."), -3 + ); + ability.addTarget(new TargetControlledCreaturePermanent()); + ability.addTarget(new TargetCreatureOrPlaneswalker()); + this.addAbility(ability); + + // −5: You may choose a creature card you own from outside the game, reveal it, and put it into your hand. + this.addAbility(new LoyaltyAbility(new WishEffect(StaticFilters.FILTER_CARD_CREATURE_A), -5)); + } + + private VivienArkbowRanger(final VivienArkbowRanger card) { + super(card); + } + + @Override + public VivienArkbowRanger copy() { + return new VivienArkbowRanger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2020.java b/Mage.Sets/src/mage/sets/CoreSet2020.java index 7808b5aa4d..bc0518e0f9 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2020.java +++ b/Mage.Sets/src/mage/sets/CoreSet2020.java @@ -184,6 +184,7 @@ public final class CoreSet2020 extends ExpansionSet { cards.add(new SetCardInfo("Vampire of the Dire Moon", 120, Rarity.UNCOMMON, mage.cards.v.VampireOfTheDireMoon.class)); cards.add(new SetCardInfo("Vial of Dragonfire", 241, Rarity.COMMON, mage.cards.v.VialOfDragonfire.class)); cards.add(new SetCardInfo("Vilis, Broker of Blood", 122, Rarity.RARE, mage.cards.v.VilisBrokerOfBlood.class)); + cards.add(new SetCardInfo("Vivien, Arkbow Ranger", 199, Rarity.MYTHIC, mage.cards.v.VivienArkbowRanger.class)); cards.add(new SetCardInfo("Vivien, Nature's Avenger", 298, Rarity.MYTHIC, mage.cards.v.VivienNaturesAvenger.class)); cards.add(new SetCardInfo("Voracious Hydra", 200, Rarity.RARE, mage.cards.v.VoraciousHydra.class)); cards.add(new SetCardInfo("Wakeroot Elemental", 202, Rarity.RARE, mage.cards.w.WakerootElemental.class));