diff --git a/Mage.Sets/src/mage/cards/r/RotCurseRakshasa.java b/Mage.Sets/src/mage/cards/r/RotCurseRakshasa.java new file mode 100644 index 00000000000..555110515f8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RotCurseRakshasa.java @@ -0,0 +1,61 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.costs.common.ExileSourceFromGraveCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.GetXValue; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.keyword.DecayedAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.target.targetadjustment.TargetsCountAdjuster; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RotCurseRakshasa extends CardImpl { + + public RotCurseRakshasa(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); + + this.subtype.add(SubType.DEMON); + this.power = new MageInt(5); + this.toughness = new MageInt(5); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // Decayed + this.addAbility(new DecayedAbility()); + + // Renew -- {X}{B}{B}, Exile this card from your graveyard: Put a decayed counter on each of X target creatures. Activate only as a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility( + Zone.GRAVEYARD, + new AddCountersTargetEffect(CounterType.DECAYED.createInstance(1)) + .setText("put a decayed counter on each of X target creatures"), + new ManaCostsImpl<>("{X}{B}{B}") + ); + ability.addCost(new ExileSourceFromGraveCost()); + ability.setTargetAdjuster(new TargetsCountAdjuster(GetXValue.instance)); + this.addAbility(ability.setAbilityWord(AbilityWord.RENEW)); + } + + private RotCurseRakshasa(final RotCurseRakshasa card) { + super(card); + } + + @Override + public RotCurseRakshasa copy() { + return new RotCurseRakshasa(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java index caabc721197..8eda800022a 100644 --- a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java +++ b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java @@ -195,6 +195,7 @@ public final class TarkirDragonstorm extends ExpansionSet { cards.add(new SetCardInfo("Roamer's Routine", 154, Rarity.COMMON, mage.cards.r.RoamersRoutine.class)); cards.add(new SetCardInfo("Roar of Endless Song", 220, Rarity.RARE, mage.cards.r.RoarOfEndlessSong.class)); cards.add(new SetCardInfo("Roiling Dragonstorm", 55, Rarity.UNCOMMON, mage.cards.r.RoilingDragonstorm.class)); + cards.add(new SetCardInfo("Rot-Curse Rakshasa", 87, Rarity.MYTHIC, mage.cards.r.RotCurseRakshasa.class)); cards.add(new SetCardInfo("Rugged Highlands", 265, Rarity.COMMON, mage.cards.r.RuggedHighlands.class)); cards.add(new SetCardInfo("Runescale Stormbrood", 221, Rarity.UNCOMMON, mage.cards.r.RunescaleStormbrood.class)); cards.add(new SetCardInfo("Sage of the Fang", 155, Rarity.UNCOMMON, mage.cards.s.SageOfTheFang.class)); diff --git a/Mage/src/main/java/mage/counters/CounterType.java b/Mage/src/main/java/mage/counters/CounterType.java index 20f71f266d2..0afd7f62cb5 100644 --- a/Mage/src/main/java/mage/counters/CounterType.java +++ b/Mage/src/main/java/mage/counters/CounterType.java @@ -54,6 +54,7 @@ public enum CounterType { CURRENCY("currency"), DEATH("death"), DEATHTOUCH("deathtouch"), + DECAYED("decayed"), DEFENSE("defense"), DELAY("delay"), DEPLETION("depletion"), @@ -315,6 +316,8 @@ public enum CounterType { return new BoostCounter(-2, -2, amount); case DEATHTOUCH: return new AbilityCounter(DeathtouchAbility.getInstance(), amount); + case DECAYED: + return new AbilityCounter(new DecayedAbility(), amount); case DOUBLE_STRIKE: return new AbilityCounter(DoubleStrikeAbility.getInstance(), amount); case EXALTED: diff --git a/Utils/keywords.txt b/Utils/keywords.txt index a3eea683be2..fb6f00141ca 100644 --- a/Utils/keywords.txt +++ b/Utils/keywords.txt @@ -25,6 +25,7 @@ Cycling|cost| Dash|manaString| Daybound|new| Deathtouch|instance| +Decayed|new| Demonstrate|new| Delve|new| Dethrone|new|