From 07043c393cfaaeff892b4f31559133a164086144 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 1 Mar 2022 17:48:38 -0500 Subject: [PATCH] [Y22] Implemented Tireless Angler --- .../src/mage/cards/t/TirelessAngler.java | 72 +++++++++++++++++++ Mage.Sets/src/mage/sets/AlchemyInnistrad.java | 1 + 2 files changed, 73 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/TirelessAngler.java diff --git a/Mage.Sets/src/mage/cards/t/TirelessAngler.java b/Mage.Sets/src/mage/cards/t/TirelessAngler.java new file mode 100644 index 00000000000..efa0a2bb708 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TirelessAngler.java @@ -0,0 +1,72 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.effects.common.DraftFromSpellbookEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.predicate.Predicates; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TirelessAngler extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("an Island or Swamp"); + + static { + filter.add(Predicates.or( + SubType.ISLAND.getPredicate(), + SubType.SWAMP.getPredicate() + )); + } + + private static final List spellbook = Collections.unmodifiableList(Arrays.asList( + // "Archipelagore", mutate card + "Fleet Swallower", + "Moat Piranhas", + "Mystic Skyfish", + "Nadir Kraken", + // "Pouncing Shoreshark", mutate card + "Riptide Turtle", + "Ruin Crab", + // "Sea-Dasher Octopus", mutate card + "Serpent of Yawning Depths", + "Sigiled Starfish", + "Spined Megalodon", + "Stinging Lionfish", + "Voracious Greatshark", + "Wormhole Serpent" + )); + + public TirelessAngler(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.ROGUE); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + + // Whenever an Island or Swamp enters the battlefield under your control, draft a card from Tireless Angler's spellbook. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility( + new DraftFromSpellbookEffect(spellbook), filter + )); + } + + private TirelessAngler(final TirelessAngler card) { + super(card); + } + + @Override + public TirelessAngler copy() { + return new TirelessAngler(this); + } +} diff --git a/Mage.Sets/src/mage/sets/AlchemyInnistrad.java b/Mage.Sets/src/mage/sets/AlchemyInnistrad.java index 7af743f6874..7be3e7dbc73 100644 --- a/Mage.Sets/src/mage/sets/AlchemyInnistrad.java +++ b/Mage.Sets/src/mage/sets/AlchemyInnistrad.java @@ -23,5 +23,6 @@ public final class AlchemyInnistrad extends ExpansionSet { cards.add(new SetCardInfo("Cursebound Witch", 24, Rarity.UNCOMMON, mage.cards.c.CurseboundWitch.class)); cards.add(new SetCardInfo("Faithful Disciple", 7, Rarity.UNCOMMON, mage.cards.f.FaithfulDisciple.class)); cards.add(new SetCardInfo("Key to the Archive", 59, Rarity.RARE, mage.cards.k.KeyToTheArchive.class)); + cards.add(new SetCardInfo("Tireless Angler", 23, Rarity.RARE, mage.cards.t.TirelessAngler.class)); } }