From 3ebff03af4a55395a4211e780c2a6d2b2fcf5ac0 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 23 Jun 2024 10:03:03 -0400 Subject: [PATCH] [ACR] Implement Loyal Inventor --- Mage.Sets/src/mage/cards/l/LoyalInventor.java | 60 +++++++++++++++++++ Mage.Sets/src/mage/sets/AssassinsCreed.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/l/LoyalInventor.java diff --git a/Mage.Sets/src/mage/cards/l/LoyalInventor.java b/Mage.Sets/src/mage/cards/l/LoyalInventor.java new file mode 100644 index 00000000000..7d726765df2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LoyalInventor.java @@ -0,0 +1,60 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.abilities.effects.common.search.SearchLibraryPutOnLibraryEffect; +import mage.abilities.hint.ConditionHint; +import mage.abilities.hint.Hint; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetCardInLibrary; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LoyalInventor extends CardImpl { + + private static final Condition condition + = new PermanentsOnTheBattlefieldCondition(new FilterControlledPermanent(SubType.ASSASSIN)); + private static final Hint hint = new ConditionHint(condition, "You control an Assassin"); + + public LoyalInventor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ARTIFICER); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // When Loyal Inventor enters the battlefield, you may search your library for an artifact card, reveal it, then shuffle. Put that card into your hand if you control an Assassin. Otherwise, put that card on top of your library. + this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalOneShotEffect( + new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_ARTIFACT), true), + new SearchLibraryPutOnLibraryEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_ARTIFACT), true), + condition, "search your library for an artifact card, reveal it, then shuffle. " + + "Put that card into your hand if you control an Assassin. Otherwise, put that card on top of your library" + ), true).addHint(hint)); + } + + private LoyalInventor(final LoyalInventor card) { + super(card); + } + + @Override + public LoyalInventor copy() { + return new LoyalInventor(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AssassinsCreed.java b/Mage.Sets/src/mage/sets/AssassinsCreed.java index 5c7d6060739..55a6659f1da 100644 --- a/Mage.Sets/src/mage/sets/AssassinsCreed.java +++ b/Mage.Sets/src/mage/sets/AssassinsCreed.java @@ -69,6 +69,7 @@ public final class AssassinsCreed extends ExpansionSet { cards.add(new SetCardInfo("Keen-Eyed Raven", 279, Rarity.UNCOMMON, mage.cards.k.KeenEyedRaven.class)); cards.add(new SetCardInfo("Labyrinth Adversary", 290, Rarity.UNCOMMON, mage.cards.l.LabyrinthAdversary.class)); cards.add(new SetCardInfo("Leonardo da Vinci", 20, Rarity.MYTHIC, mage.cards.l.LeonardoDaVinci.class)); + cards.add(new SetCardInfo("Loyal Inventor", 21, Rarity.UNCOMMON, mage.cards.l.LoyalInventor.class)); cards.add(new SetCardInfo("Lydia Frye", 60, Rarity.UNCOMMON, mage.cards.l.LydiaFrye.class)); cards.add(new SetCardInfo("Mary Read and Anne Bonny", 61, Rarity.RARE, mage.cards.m.MaryReadAndAnneBonny.class)); cards.add(new SetCardInfo("Merciless Harlequin", 287, Rarity.COMMON, mage.cards.m.MercilessHarlequin.class));