From aa227e2adcf83a1b60a08e6d3674e71118a39eb6 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Fri, 5 Nov 2021 09:18:43 -0400 Subject: [PATCH] [VOW] Implemented Markov Retribution --- .../src/mage/cards/m/MarkovRetribution.java | 60 +++++++++++++++++++ .../src/mage/sets/InnistradCrimsonVow.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/m/MarkovRetribution.java diff --git a/Mage.Sets/src/mage/cards/m/MarkovRetribution.java b/Mage.Sets/src/mage/cards/m/MarkovRetribution.java new file mode 100644 index 0000000000..5574bb9733 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MarkovRetribution.java @@ -0,0 +1,60 @@ +package mage.cards.m; + +import mage.abilities.Mode; +import mage.abilities.effects.common.DamageWithPowerFromOneToAnotherTargetEffect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.other.AnotherTargetPredicate; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class MarkovRetribution extends CardImpl { + + private static final FilterPermanent filter = new FilterControlledPermanent(SubType.VAMPIRE); + private static final FilterPermanent filter2 = new FilterCreaturePermanent("another target creature"); + + static { + filter2.add(new AnotherTargetPredicate(2)); + } + + public MarkovRetribution(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}"); + + // Choose one or both — + this.getSpellAbility().getModes().setMinModes(1); + this.getSpellAbility().getModes().setMinModes(2); + + // • Creatures you control get +1/+0 until end of turn. + this.getSpellAbility().addEffect(new BoostControlledEffect(1, 0, Duration.EndOfTurn)); + + // • Target Vampire you control deals damage equal to its power to another target creature. + Mode mode = new Mode(new DamageWithPowerFromOneToAnotherTargetEffect()); + TargetPermanent target = new TargetPermanent(filter); + target.setTargetTag(1); + mode.addTarget(target); + target = new TargetPermanent(filter2); + target.setTargetTag(2); + mode.addTarget(target); + this.getSpellAbility().addMode(mode); + } + + private MarkovRetribution(final MarkovRetribution card) { + super(card); + } + + @Override + public MarkovRetribution copy() { + return new MarkovRetribution(this); + } +} diff --git a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java index fc54181749..4fc1df8bdb 100644 --- a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java +++ b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java @@ -125,6 +125,7 @@ public final class InnistradCrimsonVow extends ExpansionSet { cards.add(new SetCardInfo("Lunar Rejection", 67, Rarity.UNCOMMON, mage.cards.l.LunarRejection.class)); cards.add(new SetCardInfo("Manaform Hellkite", 170, Rarity.MYTHIC, mage.cards.m.ManaformHellkite.class)); cards.add(new SetCardInfo("Markov Purifier", 241, Rarity.UNCOMMON, mage.cards.m.MarkovPurifier.class)); + cards.add(new SetCardInfo("Markov Retribution", 171, Rarity.UNCOMMON, mage.cards.m.MarkovRetribution.class)); cards.add(new SetCardInfo("Markov Waltzer", 242, Rarity.UNCOMMON, mage.cards.m.MarkovWaltzer.class)); cards.add(new SetCardInfo("Massive Might", 208, Rarity.COMMON, mage.cards.m.MassiveMight.class)); cards.add(new SetCardInfo("Militia Rallier", 24, Rarity.COMMON, mage.cards.m.MilitiaRallier.class));