diff --git a/Mage.Sets/src/mage/cards/c/ContagionEngine.java b/Mage.Sets/src/mage/cards/c/ContagionEngine.java index 9a21e1df5f1..c01a51ed040 100644 --- a/Mage.Sets/src/mage/cards/c/ContagionEngine.java +++ b/Mage.Sets/src/mage/cards/c/ContagionEngine.java @@ -1,7 +1,6 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; @@ -21,8 +20,9 @@ import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; +import java.util.UUID; + /** - * * @author Loki */ public final class ContagionEngine extends CardImpl { @@ -36,13 +36,13 @@ public final class ContagionEngine extends CardImpl { this.addAbility(ability); // {4}, {T}: Proliferate, then proliferate again. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there. Then do it again.) - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect(), new GenericManaCost(4)); + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ProliferateEffect().setText("proliferate,"), new GenericManaCost(4)); ability.addCost(new TapSourceCost()); - ability.addEffect(new ProliferateEffect()); + ability.addEffect(new ProliferateEffect().setText("then proliferate again (Choose any number of permanents and/or players, then give each another counter of each kind already there. Then do it again.)")); this.addAbility(ability); } - public ContagionEngine(final ContagionEngine card) { + private ContagionEngine(final ContagionEngine card) { super(card); } @@ -60,7 +60,7 @@ class ContagionEngineEffect extends OneShotEffect { staticText = "put a -1/-1 counter on each creature target player controls"; } - ContagionEngineEffect(final ContagionEngineEffect effect) { + private ContagionEngineEffect(final ContagionEngineEffect effect) { super(effect); } diff --git a/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java new file mode 100644 index 00000000000..fd13160d275 --- /dev/null +++ b/Mage.Sets/src/mage/cards/r/RoaleskApexHybrid.java @@ -0,0 +1,75 @@ +package mage.cards.r; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.abilities.effects.common.counter.ProliferateEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.counters.CounterType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.TargetPermanent; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class RoaleskApexHybrid extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledCreaturePermanent("another target creature you control"); + + static { + filter.add(AnotherPredicate.instance); + } + + public RoaleskApexHybrid(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}{U}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.MUTANT); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // When Roalesk, Apex Hybrid enters the battlefield, put two +1/+1 counters on another target creature you control. + Ability ability = new EntersBattlefieldTriggeredAbility( + new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)) + ); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + + // When Roalsk dies, proliferate, then proliferate again. + ability = new DiesTriggeredAbility(new ProliferateEffect().setText("proliferate,")); + ability.addEffect(new ProliferateEffect().setText( + "then proliferate again (Choose any number of permanents and/or players, " + + "then give each another counter of each kind already there. Then do it again.)" + )); + this.addAbility(ability); + } + + private RoaleskApexHybrid(final RoaleskApexHybrid card) { + super(card); + } + + @Override + public RoaleskApexHybrid copy() { + return new RoaleskApexHybrid(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WarOfTheSpark.java b/Mage.Sets/src/mage/sets/WarOfTheSpark.java index ff1e0245671..a3bae1be21f 100644 --- a/Mage.Sets/src/mage/sets/WarOfTheSpark.java +++ b/Mage.Sets/src/mage/sets/WarOfTheSpark.java @@ -119,6 +119,7 @@ public final class WarOfTheSpark extends ExpansionSet { cards.add(new SetCardInfo("Ravnica at War", 28, Rarity.RARE, mage.cards.r.RavnicaAtWar.class)); cards.add(new SetCardInfo("Relentless Advance", 64, Rarity.COMMON, mage.cards.r.RelentlessAdvance.class)); cards.add(new SetCardInfo("Rising Populace", 29, Rarity.COMMON, mage.cards.r.RisingPopulace.class)); + cards.add(new SetCardInfo("Roalesk, Apex Hybrid", 213, Rarity.MYTHIC, mage.cards.r.RoaleskApexHybrid.class)); cards.add(new SetCardInfo("Role Reversal", 214, Rarity.RARE, mage.cards.r.RoleReversal.class)); cards.add(new SetCardInfo("Samut's Sprint", 142, Rarity.COMMON, mage.cards.s.SamutsSprint.class)); cards.add(new SetCardInfo("Samut, Tyrant Smasher", 235, Rarity.UNCOMMON, mage.cards.s.SamutTyrantSmasher.class));