diff --git a/Mage.Sets/src/mage/cards/c/Cloudpiercer.java b/Mage.Sets/src/mage/cards/c/Cloudpiercer.java new file mode 100644 index 00000000000..8261823742a --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Cloudpiercer.java @@ -0,0 +1,49 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.common.MutatesSourceTriggeredAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.MutateAbility; +import mage.abilities.keyword.ReachAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class Cloudpiercer extends CardImpl { + + public Cloudpiercer(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); + + this.subtype.add(SubType.DINOSAUR); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // Mutate {3}{R} + this.addAbility(new MutateAbility(this, "{3}{R}")); + + // Reach + this.addAbility(ReachAbility.getInstance()); + + // Whenever this creature mutates, you may discard a card. If you do, draw a card. + this.addAbility(new MutatesSourceTriggeredAbility(new DoIfCostPaid( + new DrawCardSourceControllerEffect(1), new DiscardCardCost() + ))); + } + + private Cloudpiercer(final Cloudpiercer card) { + super(card); + } + + @Override + public Cloudpiercer copy() { + return new Cloudpiercer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java index 5e596287e68..41e4ca76722 100644 --- a/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java +++ b/Mage.Sets/src/mage/sets/IkoriaLairOfBehemoths.java @@ -27,6 +27,7 @@ public final class IkoriaLairOfBehemoths extends ExpansionSet { this.maxCardNumberInBooster = 274; cards.add(new SetCardInfo("Bristling Boar", 146, Rarity.COMMON, mage.cards.b.BristlingBoar.class)); + cards.add(new SetCardInfo("Cloudpiercer", 112, Rarity.COMMON, mage.cards.c.Cloudpiercer.class)); cards.add(new SetCardInfo("Essence Scatter", 49, Rarity.COMMON, mage.cards.e.EssenceScatter.class)); cards.add(new SetCardInfo("Fully Grown", 154, Rarity.COMMON, mage.cards.f.FullyGrown.class)); cards.add(new SetCardInfo("Gloom Pangolin", 89, Rarity.COMMON, mage.cards.g.GloomPangolin.class)); diff --git a/Mage/src/main/java/mage/abilities/keyword/MutateAbility.java b/Mage/src/main/java/mage/abilities/keyword/MutateAbility.java new file mode 100644 index 00000000000..83872f3ebe5 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/MutateAbility.java @@ -0,0 +1,39 @@ +package mage.abilities.keyword; + +import mage.abilities.SpellAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.cards.Card; +import mage.constants.SpellAbilityType; +import mage.constants.TimingRule; + +public class MutateAbility extends SpellAbility { + + public MutateAbility(Card card, String manaString) { + super(new ManaCostsImpl(manaString), card.getName() + " using mutate"); + this.spellAbilityType = SpellAbilityType.BASE_ALTERNATE; + this.timing = TimingRule.SORCERY; + // TODO: Implement this + } + + private MutateAbility(final MutateAbility ability) { + super(ability); + } + + @Override + public MutateAbility copy() { + return new MutateAbility(this); + } + + @Override + public String getRule(boolean all) { + return getRule(); + } + + @Override + public String getRule() { + return "Mutate " + getManaCostsToPay().getText() + " (If you cast this spell for its mutate cost, " + + "put it over or under target non-Human creature you own. " + + "They mutate into the creature on top plus all abilities from under it.)"; + } + +}