diff --git a/Mage.Sets/src/mage/cards/v/VenomDeadlyDevourer.java b/Mage.Sets/src/mage/cards/v/VenomDeadlyDevourer.java new file mode 100644 index 00000000000..f519b2083e4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VenomDeadlyDevourer.java @@ -0,0 +1,97 @@ +package mage.cards.v; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.delayed.ReflexiveTriggeredAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetPermanent; +import mage.target.common.TargetCardInGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class VenomDeadlyDevourer extends CardImpl { + + public VenomDeadlyDevourer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{G}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.SYMBIOTE); + this.subtype.add(SubType.VILLAIN); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Menace + this.addAbility(new MenaceAbility()); + + // {3}: Exile target creature card from a graveyard. When you do, put X +1/+1 counters on target Symbiote, where X is the exiled card's toughness. + Ability ability = new SimpleActivatedAbility(new VenomDeadlyDevourerEffect(), new GenericManaCost(3)); + ability.addTarget(new TargetCardInGraveyard(StaticFilters.FILTER_CARD_CREATURE_A_GRAVEYARD)); + this.addAbility(ability); + } + + private VenomDeadlyDevourer(final VenomDeadlyDevourer card) { + super(card); + } + + @Override + public VenomDeadlyDevourer copy() { + return new VenomDeadlyDevourer(this); + } +} + +class VenomDeadlyDevourerEffect extends OneShotEffect { + + private static final FilterPermanent filter = new FilterPermanent(SubType.SYMBIOTE, "Symbiote"); + + VenomDeadlyDevourerEffect() { + super(Outcome.Benefit); + staticText = "exile target creature card from a graveyard. When you do, " + + "put X +1/+1 counters on target Symbiote, where X is the exiled card's toughness"; + } + + private VenomDeadlyDevourerEffect(final VenomDeadlyDevourerEffect effect) { + super(effect); + } + + @Override + public VenomDeadlyDevourerEffect copy() { + return new VenomDeadlyDevourerEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + Card card = game.getCard(getTargetPointer().getFirst(game, source)); + if (player == null || card == null) { + return false; + } + int toughness = card.getToughness().getValue(); + player.moveCards(card, Zone.EXILED, source, game); + ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( + new AddCountersTargetEffect(CounterType.P1P1.createInstance(toughness)), false + ); + ability.addTarget(new TargetPermanent(filter)); + game.fireReflexiveTriggeredAbility(ability, source); + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/MarvelsSpiderManEternal.java b/Mage.Sets/src/mage/sets/MarvelsSpiderManEternal.java index df0f9a2a0a1..f414e72ce46 100644 --- a/Mage.Sets/src/mage/sets/MarvelsSpiderManEternal.java +++ b/Mage.Sets/src/mage/sets/MarvelsSpiderManEternal.java @@ -21,5 +21,6 @@ public final class MarvelsSpiderManEternal extends ExpansionSet { this.hasBasicLands = false; // temporary cards.add(new SetCardInfo("Grasping Tentacles", 21, Rarity.RARE, mage.cards.g.GraspingTentacles.class)); + cards.add(new SetCardInfo("Venom, Deadly Devourer", 22, Rarity.RARE, mage.cards.v.VenomDeadlyDevourer.class)); } } diff --git a/Mage/src/main/java/mage/constants/SubType.java b/Mage/src/main/java/mage/constants/SubType.java index cbf9f006c19..727dc6e793b 100644 --- a/Mage/src/main/java/mage/constants/SubType.java +++ b/Mage/src/main/java/mage/constants/SubType.java @@ -394,6 +394,7 @@ public enum SubType { SULLUSTAN("Sullustan", SubTypeSet.CreatureType, true), // Star Wars SURRAKAR("Surrakar", SubTypeSet.CreatureType), SURVIVOR("Survivor", SubTypeSet.CreatureType), + SYMBIOTE("Symbiote", SubTypeSet.CreatureType), SYNTH("Synth", SubTypeSet.CreatureType), // T TENTACLE("Tentacle", SubTypeSet.CreatureType),