From 6656ebf950a2e28cf5ffd5f135f9d0e82561d6fd Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 15 Jun 2018 21:26:22 -0400 Subject: [PATCH] Implemented Sarkhan Dragonsoul --- .../src/mage/cards/s/SarkhanDragonsoul.java | 64 +++++++++++++++++++ Mage.Sets/src/mage/sets/CoreSet2019.java | 1 + 2 files changed, 65 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/s/SarkhanDragonsoul.java diff --git a/Mage.Sets/src/mage/cards/s/SarkhanDragonsoul.java b/Mage.Sets/src/mage/cards/s/SarkhanDragonsoul.java new file mode 100644 index 00000000000..548fd4b9e7f --- /dev/null +++ b/Mage.Sets/src/mage/cards/s/SarkhanDragonsoul.java @@ -0,0 +1,64 @@ +package mage.cards.s; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.effects.common.DamageAllEffect; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; +import mage.filter.StaticFilters; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCardInLibrary; +import mage.target.common.TargetPlayerOrPlaneswalker; + +/** + * + * @author TheElk801 + */ +public final class SarkhanDragonsoul extends CardImpl { + + private static final FilterCreatureCard filter = new FilterCreatureCard("Dragon creature cards"); + + static { + filter.add(new SubtypePredicate(SubType.DRAGON)); + } + + public SarkhanDragonsoul(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{4}{R}{R}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.SARKHAN); + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5)); + + // +2: Sarkhan, Dragonsoul deals 1 damage to each opponent and each creature your opponents control. + Ability ability = new LoyaltyAbility(new DamagePlayersEffect(1, TargetController.OPPONENT), 2); + ability.addEffect(new DamageAllEffect(1, StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE) + .setText("and each creature your opponents control") + ); + + // −3: Sarkhan, Dragonsoul deals 4 damage to target player or planeswalker. + ability = new LoyaltyAbility(new DamageTargetEffect(4), -3); + ability.addTarget(new TargetPlayerOrPlaneswalker()); + + // −9: Search your library for any number of Dragon creature cards, put them onto the battlefield, then shuffle your library. + this.addAbility(new LoyaltyAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, Integer.MAX_VALUE, filter)), -9)); + } + + public SarkhanDragonsoul(final SarkhanDragonsoul card) { + super(card); + } + + @Override + public SarkhanDragonsoul copy() { + return new SarkhanDragonsoul(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CoreSet2019.java b/Mage.Sets/src/mage/sets/CoreSet2019.java index 4970be560e7..3fa69186aeb 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2019.java +++ b/Mage.Sets/src/mage/sets/CoreSet2019.java @@ -115,6 +115,7 @@ public final class CoreSet2019 extends ExpansionSet { cards.add(new SetCardInfo("Rogue's Gloves", 243, Rarity.UNCOMMON, mage.cards.r.RoguesGloves.class)); cards.add(new SetCardInfo("Rustwing Falcon", 36, Rarity.COMMON, mage.cards.r.RustwingFalcon.class)); cards.add(new SetCardInfo("Salvager of Secrets", 70, Rarity.COMMON, mage.cards.s.SalvagerOfSecrets.class)); + cards.add(new SetCardInfo("Sarkhan, Dragonsoul", 296, Rarity.MYTHIC, mage.cards.s.SarkhanDragonsoul.class)); cards.add(new SetCardInfo("Scholar of Stars", 71, Rarity.COMMON, mage.cards.s.ScholarOfStars.class)); cards.add(new SetCardInfo("Serra's Guardian", 284, Rarity.RARE, mage.cards.s.SerrasGuardian.class)); cards.add(new SetCardInfo("Shivan Dragon", 300, Rarity.RARE, mage.cards.s.ShivanDragon.class));