diff --git a/Mage.Sets/src/mage/cards/c/Copycrook.java b/Mage.Sets/src/mage/cards/c/Copycrook.java new file mode 100644 index 00000000000..a7c0b1bf413 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Copycrook.java @@ -0,0 +1,63 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.EntersBattlefieldEffect; +import mage.abilities.effects.common.CopyPermanentEffect; +import mage.abilities.effects.keyword.ConniveSourceEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.util.functions.CopyApplier; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class Copycrook extends CardImpl { + + public Copycrook(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); + + this.subtype.add(SubType.SHAPESHIFTER); + this.subtype.add(SubType.ROGUE); + this.power = new MageInt(0); + this.toughness = new MageInt(0); + + // You may have Copycrook enter the battlefield as a copy of any creature on the battlefield, except it has "Whenever this creature attacks, it connives." + this.addAbility(new SimpleStaticAbility(Zone.ALL, new EntersBattlefieldEffect( + new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, new CopycrookApplier()), + "you may have {this} enter the battlefield as a copy of any creature on the battlefield, " + + "except it has \"Whenever this creature attacks, it connives.\"", true + ))); + } + + private Copycrook(final Copycrook card) { + super(card); + } + + @Override + public Copycrook copy() { + return new Copycrook(this); + } +} + +class CopycrookApplier extends CopyApplier { + + @Override + public boolean apply(Game game, MageObject blueprint, Ability source, UUID copyToObjectId) { + blueprint + .getAbilities() + .add(new AttacksTriggeredAbility(new ConniveSourceEffect()) + .setTriggerPhrase("Whenever this creature attacks, ")); + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons3.java b/Mage.Sets/src/mage/sets/ModernHorizons3.java index 4a79224891a..e86ae1dc9ca 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons3.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons3.java @@ -37,6 +37,7 @@ public final class ModernHorizons3 extends ExpansionSet { cards.add(new SetCardInfo("Chthonian Nightmare", 83, Rarity.RARE, mage.cards.c.ChthonianNightmare.class)); cards.add(new SetCardInfo("Collective Resistance", 147, Rarity.UNCOMMON, mage.cards.c.CollectiveResistance.class)); cards.add(new SetCardInfo("Conduit Goblin", 179, Rarity.COMMON, mage.cards.c.ConduitGoblin.class)); + cards.add(new SetCardInfo("Copycrook", 55, Rarity.UNCOMMON, mage.cards.c.Copycrook.class)); cards.add(new SetCardInfo("Cranial Ram", 180, Rarity.COMMON, mage.cards.c.CranialRam.class)); cards.add(new SetCardInfo("Cursed Mirror", 279, Rarity.RARE, mage.cards.c.CursedMirror.class)); cards.add(new SetCardInfo("Deep Analysis", 268, Rarity.UNCOMMON, mage.cards.d.DeepAnalysis.class));