From 406d61a55fd70fe77011e6e98eef1fc7dee39177 Mon Sep 17 00:00:00 2001
From: theelk801 <theelk801@gmail.com>
Date: Wed, 3 May 2023 10:12:53 -0400
Subject: [PATCH] [MAT] Implement Nissa, Resurgent Animist

---
 .../mage/cards/n/NissaResurgentAnimist.java   | 57 +++++++++++++++++++
 .../sets/MarchOfTheMachineTheAftermath.java   |  1 +
 .../IfAbilityHasResolvedXTimesEffect.java     |  2 +-
 3 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 Mage.Sets/src/mage/cards/n/NissaResurgentAnimist.java

diff --git a/Mage.Sets/src/mage/cards/n/NissaResurgentAnimist.java b/Mage.Sets/src/mage/cards/n/NissaResurgentAnimist.java
new file mode 100644
index 0000000000..370de1c2b2
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/n/NissaResurgentAnimist.java
@@ -0,0 +1,57 @@
+package mage.cards.n;
+
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.LandfallAbility;
+import mage.abilities.effects.common.IfAbilityHasResolvedXTimesEffect;
+import mage.abilities.effects.common.RevealCardsFromLibraryUntilEffect;
+import mage.abilities.effects.mana.AddManaOfAnyColorEffect;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.*;
+import mage.filter.FilterCard;
+import mage.filter.predicate.Predicates;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class NissaResurgentAnimist extends CardImpl {
+
+    private static final FilterCard filter = new FilterCard("an Elf or Elemental card");
+
+    static {
+        filter.add(Predicates.or(
+                SubType.ELF.getPredicate(),
+                SubType.ELEMENTAL.getPredicate()
+        ));
+    }
+
+    public NissaResurgentAnimist(UUID ownerId, CardSetInfo setInfo) {
+        super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
+
+        this.addSuperType(SuperType.LEGENDARY);
+        this.subtype.add(SubType.ELF);
+        this.subtype.add(SubType.SCOUT);
+        this.power = new MageInt(3);
+        this.toughness = new MageInt(3);
+
+        // Landfall--Whenever a land enters the battlefield under your control, add one mana of any color. Then if this is the second time this ability has resolved this turn, reveal cards from the top of your library until you reveal an Elf or Elemental card. Put that card into your hand and the rest on the bottom of your library in a random order.
+        Ability ability = new LandfallAbility(new AddManaOfAnyColorEffect());
+        ability.addEffect(new IfAbilityHasResolvedXTimesEffect(
+                Outcome.DrawCard, 2,
+                new RevealCardsFromLibraryUntilEffect(filter, Zone.HAND, Zone.LIBRARY)
+        ).concatBy("Then"));
+        this.addAbility(ability);
+    }
+
+    private NissaResurgentAnimist(final NissaResurgentAnimist card) {
+        super(card);
+    }
+
+    @Override
+    public NissaResurgentAnimist copy() {
+        return new NissaResurgentAnimist(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java b/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java
index abe72068e8..1cd613d3ed 100644
--- a/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java
+++ b/Mage.Sets/src/mage/sets/MarchOfTheMachineTheAftermath.java
@@ -37,6 +37,7 @@ public final class MarchOfTheMachineTheAftermath extends ExpansionSet {
         cards.add(new SetCardInfo("Kolaghan Warmonger", 17, Rarity.UNCOMMON, mage.cards.k.KolaghanWarmonger.class));
         cards.add(new SetCardInfo("Markov Baron", 14, Rarity.UNCOMMON, mage.cards.m.MarkovBaron.class));
         cards.add(new SetCardInfo("Metropolis Reformer", 4, Rarity.RARE, mage.cards.m.MetropolisReformer.class));
+        cards.add(new SetCardInfo("Nissa, Resurgent Animist", 22, Rarity.MYTHIC, mage.cards.n.NissaResurgentAnimist.class));
         cards.add(new SetCardInfo("Niv-Mizzet, Supreme", 40, Rarity.RARE, mage.cards.n.NivMizzetSupreme.class));
         cards.add(new SetCardInfo("Rebuild the City", 43, Rarity.RARE, mage.cards.r.RebuildTheCity.class));
         cards.add(new SetCardInfo("Reckless Handling", 19, Rarity.UNCOMMON, mage.cards.r.RecklessHandling.class));
diff --git a/Mage/src/main/java/mage/abilities/effects/common/IfAbilityHasResolvedXTimesEffect.java b/Mage/src/main/java/mage/abilities/effects/common/IfAbilityHasResolvedXTimesEffect.java
index cab6eee4c4..d345479907 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/IfAbilityHasResolvedXTimesEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/IfAbilityHasResolvedXTimesEffect.java
@@ -52,7 +52,7 @@ public class IfAbilityHasResolvedXTimesEffect extends OneShotEffect {
         if (staticText != null && !staticText.isEmpty()) {
             return staticText;
         }
-        return "If this is the " + CardUtil.numberToOrdinalText(resolutionNumber) +
+        return "if this is the " + CardUtil.numberToOrdinalText(resolutionNumber) +
                 " time this ability has resolved this turn, " + effect.getText(mode);
     }
 }