[TDM] Implement Tempest Hawk

This commit is contained in:
theelk801 2025-03-20 09:58:32 -04:00
parent 3089dc3698
commit d7fcec5670
3 changed files with 61 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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));

View file

@ -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);