From 53844daddf8f2d69b84e0ea1b614ba89b6a5f45e Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sat, 2 Nov 2024 16:33:17 -0400 Subject: [PATCH] [FDN] Implement Hare Apparent --- Mage.Sets/src/mage/cards/h/HareApparent.java | 64 +++++++++++++++++++ Mage.Sets/src/mage/sets/Foundations.java | 1 + .../java/mage/cards/decks/DeckValidator.java | 1 + 3 files changed, 66 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HareApparent.java diff --git a/Mage.Sets/src/mage/cards/h/HareApparent.java b/Mage.Sets/src/mage/cards/h/HareApparent.java new file mode 100644 index 00000000000..ef347f862e8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HareApparent.java @@ -0,0 +1,64 @@ +package mage.cards.h; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.AnotherPredicate; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.game.permanent.token.RabbitToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HareApparent extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledPermanent("other creatures you control named Hare Apparent"); + + static { + filter.add(AnotherPredicate.instance); + filter.add(new NamePredicate("Hare Apparent")); + } + + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter); + private static final Hint hint = new ValueHint("Other creatures you control named Hare Apparent", xValue); + + public HareApparent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.RABBIT); + this.subtype.add(SubType.NOBLE); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When this creature enters, create a number of 1/1 white Rabbit creature tokens equal to the number of other creatures you control named Hare Apparent. + this.addAbility(new EntersBattlefieldTriggeredAbility( + new CreateTokenEffect(new RabbitToken(), xValue) + ).addHint(hint)); + + // A deck can have any number of cards named Hare Apparent. + this.getSpellAbility().addEffect(new InfoEffect("a deck can have any number of cards named Hare Apparent")); + } + + private HareApparent(final HareApparent card) { + super(card); + } + + @Override + public HareApparent copy() { + return new HareApparent(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Foundations.java b/Mage.Sets/src/mage/sets/Foundations.java index 01f962543e7..711e18a5a1c 100644 --- a/Mage.Sets/src/mage/sets/Foundations.java +++ b/Mage.Sets/src/mage/sets/Foundations.java @@ -230,6 +230,7 @@ public final class Foundations extends ExpansionSet { cards.add(new SetCardInfo("Guttersnipe", 716, Rarity.UNCOMMON, mage.cards.g.Guttersnipe.class)); cards.add(new SetCardInfo("Halana and Alena, Partners", 659, Rarity.RARE, mage.cards.h.HalanaAndAlenaPartners.class)); cards.add(new SetCardInfo("Harbinger of the Tides", 593, Rarity.RARE, mage.cards.h.HarbingerOfTheTides.class)); + cards.add(new SetCardInfo("Hare Apparent", 15, Rarity.COMMON, mage.cards.h.HareApparent.class)); cards.add(new SetCardInfo("Harmless Offering", 625, Rarity.RARE, mage.cards.h.HarmlessOffering.class)); cards.add(new SetCardInfo("Healer's Hawk", 142, Rarity.COMMON, mage.cards.h.HealersHawk.class)); cards.add(new SetCardInfo("Heartfire Immolator", 201, Rarity.UNCOMMON, mage.cards.h.HeartfireImmolator.class)); diff --git a/Mage/src/main/java/mage/cards/decks/DeckValidator.java b/Mage/src/main/java/mage/cards/decks/DeckValidator.java index 6f5d8a8fa37..79e7867f8b9 100644 --- a/Mage/src/main/java/mage/cards/decks/DeckValidator.java +++ b/Mage/src/main/java/mage/cards/decks/DeckValidator.java @@ -48,6 +48,7 @@ public abstract class DeckValidator implements Serializable { maxCopiesMap.put("Dragon's Approach", Integer.MAX_VALUE); maxCopiesMap.put("Slime Against Humanity", Integer.MAX_VALUE); maxCopiesMap.put("Templar Knight", Integer.MAX_VALUE); + maxCopiesMap.put("Hare Apparent", Integer.MAX_VALUE); maxCopiesMap.put("Once More with Feeling", 1); maxCopiesMap.put("Seven Dwarves", 7); maxCopiesMap.put("Nazgul", 9);