diff --git a/Mage.Sets/src/mage/cards/t/TempestHawk.java b/Mage.Sets/src/mage/cards/t/TempestHawk.java new file mode 100644 index 00000000000..2344e2b2c23 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TempestHawk.java @@ -0,0 +1,59 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.target.common.TargetCardInLibrary; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TempestHawk extends CardImpl { + + private static final FilterCard filter = new FilterCard("a card named Tempest Hawk"); + + static { + filter.add(new NamePredicate("Tempest Hawk")); + } + + public TempestHawk(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); + + this.subtype.add(SubType.BIRD); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever this creature deals combat damage to a player, you may search your library for a card named Tempest Hawk, reveal it, put it into your hand, then shuffle. + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( + new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true), true + )); + + // A deck can have any number of cards named Tempest Hawk. + this.addAbility(new SimpleStaticAbility( + new InfoEffect("a deck can have any number of cards named Tempest Hawk") + )); + } + + private TempestHawk(final TempestHawk card) { + super(card); + } + + @Override + public TempestHawk copy() { + return new TempestHawk(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java index 8d8ab0e75ce..da278094d80 100644 --- a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java +++ b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java @@ -63,6 +63,7 @@ public final class TarkirDragonstorm extends ExpansionSet { cards.add(new SetCardInfo("Summit Intimidator", 125, Rarity.COMMON, mage.cards.s.SummitIntimidator.class)); cards.add(new SetCardInfo("Swamp", 281, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Swiftwater Cliffs", 268, Rarity.COMMON, mage.cards.s.SwiftwaterCliffs.class)); + cards.add(new SetCardInfo("Tempest Hawk", 31, Rarity.COMMON, mage.cards.t.TempestHawk.class)); cards.add(new SetCardInfo("Thornwood Falls", 269, Rarity.COMMON, mage.cards.t.ThornwoodFalls.class)); cards.add(new SetCardInfo("Tranquil Cove", 270, Rarity.COMMON, mage.cards.t.TranquilCove.class)); cards.add(new SetCardInfo("Undergrowth Leopard", 165, Rarity.COMMON, mage.cards.u.UndergrowthLeopard.class)); diff --git a/Mage/src/main/java/mage/cards/decks/DeckValidator.java b/Mage/src/main/java/mage/cards/decks/DeckValidator.java index 79e7867f8b9..71f5f1ecafb 100644 --- a/Mage/src/main/java/mage/cards/decks/DeckValidator.java +++ b/Mage/src/main/java/mage/cards/decks/DeckValidator.java @@ -49,6 +49,7 @@ public abstract class DeckValidator implements Serializable { maxCopiesMap.put("Slime Against Humanity", Integer.MAX_VALUE); maxCopiesMap.put("Templar Knight", Integer.MAX_VALUE); maxCopiesMap.put("Hare Apparent", Integer.MAX_VALUE); + maxCopiesMap.put("Tempest Hawk", Integer.MAX_VALUE); maxCopiesMap.put("Once More with Feeling", 1); maxCopiesMap.put("Seven Dwarves", 7); maxCopiesMap.put("Nazgul", 9);