From 398f075c3ed8eb92f7654ccb3b221a8f4aa901f8 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 22 Jun 2019 12:05:11 -0400 Subject: [PATCH] Implemented Vivien, Nature's Avenger --- .../mage/cards/v/VivienNaturesAvenger.java | 62 +++++++++++++++++++ Mage.Sets/src/mage/sets/CoreSet2020.java | 1 + Utils/mtg-cards-data.txt | 4 +- 3 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/v/VivienNaturesAvenger.java diff --git a/Mage.Sets/src/mage/cards/v/VivienNaturesAvenger.java b/Mage.Sets/src/mage/cards/v/VivienNaturesAvenger.java new file mode 100644 index 00000000000..7dba938b624 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VivienNaturesAvenger.java @@ -0,0 +1,62 @@ +package mage.cards.v; + +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; +import mage.abilities.effects.common.RevealCardsFromLibraryUntilEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; +import mage.filter.StaticFilters; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class VivienNaturesAvenger extends CardImpl { + + public VivienNaturesAvenger(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{G}{G}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.VIVIEN); + this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3)); + + // +1: Put three +1/+1 counters on up to one target creature. + Ability ability = new LoyaltyAbility(new AddCountersTargetEffect( + CounterType.P1P1.createInstance(3) + ), 1); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // −1: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order. + this.addAbility(new LoyaltyAbility(new RevealCardsFromLibraryUntilEffect( + StaticFilters.FILTER_CARD_CREATURE_A, Zone.HAND, Zone.HAND, false, false + ))); + + // −6: Target creature gets +10/+10 and gains trample until end of turn. + ability = new LoyaltyAbility( + new BoostTargetEffect(10, 10).setText("target creature gets +10/+10"), -6 + ); + ability.addEffect(new GainAbilityTargetEffect( + TrampleAbility.getInstance(), Duration.EndOfTurn + ).setText("and gains trample until end of turn.")); + this.addAbility(ability); + } + + private VivienNaturesAvenger(final VivienNaturesAvenger card) { + super(card); + } + + @Override + public VivienNaturesAvenger copy() { + return new VivienNaturesAvenger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2020.java b/Mage.Sets/src/mage/sets/CoreSet2020.java index 0471fac8d0e..367b0a11898 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2020.java +++ b/Mage.Sets/src/mage/sets/CoreSet2020.java @@ -166,6 +166,7 @@ public final class CoreSet2020 extends ExpansionSet { cards.add(new SetCardInfo("Unsummon", 78, Rarity.COMMON, mage.cards.u.Unsummon.class)); 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("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)); cards.add(new SetCardInfo("Wind-Scarred Crag", 260, Rarity.COMMON, mage.cards.w.WindScarredCrag.class)); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 1f5c6ace0f7..955fcb5d35d 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -35487,7 +35487,7 @@ Creeping Trailblazer|Core Set 2020|207|U|{R}{G}|Creature - Elemental|2|2|Other E Empyrean Eagle|Core Set 2020|208|U|{1}{W}{U}|Creature - Bird Spirit|2|3|Flying$Other creatures you control with flying get +1/+1.| Ironroot Warlord|Core Set 2020|209|U|{1}{G}{W}|Creature - Treefolk Soldier|*|5|Ironroot Warlord's power is equal to the number of creatures you control.${3}{G}{W}: Create a 1/1 white Soldier creature token.| Kaalia, Zenith Seeker|Core Set 2020|210|M|{R}{W}{B}|Legendary Creature - Human Cleric|3|3|Flying, vigilance$When Kaalia, Zenith Seeker enters the battlefield, look at the top six cards of your library. You may reveal an Angel card, a Demon card, and/or a Dragon card from among them and put them into your hand. Put the rest on the bottom of your library in a random order.| -Kethis, the Hidden Hand|Core Set 2020|211|M|{W}{B}{G}|Legendary Creature - Elf Advisor|3|4|Legendary spells you cast cost {1} less to cast.$Exile two legendary cards from your graveyard: Until end of turn, each legendary card in your graveyard gains "You may pay this card from your graveyard."| +Kethis, the Hidden Hand|Core Set 2020|211|M|{W}{B}{G}|Legendary Creature - Elf Advisor|3|4|Legendary spells you cast cost {1} less to cast.$Exile two legendary cards from your graveyard: Until end of turn, each legendary card in your graveyard gains "You may play this card from your graveyard."| Kykar, Wind's Fury|Core Set 2020|212|M|{1}{U}{R}{W}|Legendary Creature - Bird Wizard|3|3|Flying$Whenever you cast a noncreature spell, create a 1/1 white Spirit creature token with flying.$Sacrifice a Spirit: Add {R}.| Moldervine Reclamation|Core Set 2020|214|U|{3}{B}{G}|Enchantment|||Whenever a creature you control dies, you gain 1 life and draw a card.| Ogre Siegebreaker|Core Set 2020|215|U|{2}{B}{R}|Creature - Ogre Berserker|4|3|{2}{B}{R}: Destroy target creature that was dealt damage this turn.| @@ -35529,4 +35529,4 @@ Ajani, Inspiring Leader|Core Set 2020|282|M|{4}{W}{W}|Legendary Planeswalker - A Mu Yanling, Celestial Wind|Core Set 2020|286|M|{4}{U}{U}|Legendary Planeswalker - Yanling|5|+1: Until your next turn, up to one target creature gets -5/-0.$−3: Return up to two target creatures to their owners' hands.$−7: Creatures you control with flying get +5/+5 until end of turn.| Sorin, Vampire Lord|Core Set 2020|290|M|{4}{B}{B}|Legendary Planeswalker - Sorin|4|+1: Up to one target creature gets +2/+0 until end of turn.$−2: Sorin, Vampire Lord deals 4 damage to any target. You gain 4 life.$−8: Until end of turn, each Vampire you control gains "{T}: Gain control of target creature."| Chandra, Flame's Fury|Core Set 2020|294|C|{4}{R}{R}|Legendary Planeswalker - Chandra|4|+1: Chandra, Flame's Fury deals 2 damage to any target.$−2: Chandra, Flame's Fury deals 4 damage to target creature and 2 damage to that creature's controller.$−8: Chandra, Flame's Fury deals 10 damage to target player and each creature that player controls.| -Vivien, Nature's Advantage|Core Set 2020|298|M|{4}{G}{G}|Legendary Planeswalker - Vivien|3|+1: Put three +1/+1 counters on up to one target creature.$−1: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.$−6: Target creature gets +10/+10 and gains trample until end of turn.| +Vivien, Nature's Avenger|Core Set 2020|298|M|{4}{G}{G}|Legendary Planeswalker - Vivien|3|+1: Put three +1/+1 counters on up to one target creature.$−1: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.$−6: Target creature gets +10/+10 and gains trample until end of turn.|