From a7fb82e0cc0a4b2647d59c47fa60545fb05bf86d Mon Sep 17 00:00:00 2001
From: Evan Kranzler <theelk801@gmail.com>
Date: Sat, 14 Dec 2019 10:50:37 -0500
Subject: [PATCH] Implemented Staggering Insight

---
 .../src/mage/cards/s/StaggeringInsight.java   | 60 +++++++++++++++++++
 .../src/mage/sets/TherosBeyondDeath.java      |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 Mage.Sets/src/mage/cards/s/StaggeringInsight.java

diff --git a/Mage.Sets/src/mage/cards/s/StaggeringInsight.java b/Mage.Sets/src/mage/cards/s/StaggeringInsight.java
new file mode 100644
index 0000000000..b27cd45968
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/s/StaggeringInsight.java
@@ -0,0 +1,60 @@
+package mage.cards.s;
+
+import mage.abilities.Ability;
+import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.effects.common.AttachEffect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
+import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.keyword.EnchantAbility;
+import mage.abilities.keyword.LifelinkAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.*;
+import mage.target.TargetPermanent;
+import mage.target.common.TargetCreaturePermanent;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class StaggeringInsight extends CardImpl {
+
+    public StaggeringInsight(UUID ownerId, CardSetInfo setInfo) {
+        super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}{U}");
+
+        this.subtype.add(SubType.AURA);
+
+        // Enchant creature
+        TargetPermanent auraTarget = new TargetCreaturePermanent();
+        this.getSpellAbility().addTarget(auraTarget);
+        this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
+        Ability ability = new EnchantAbility(auraTarget.getTargetName());
+        this.addAbility(ability);
+
+        // Enchanted creature gets +1/+1 and has lifelink and "Whenever this creature deals combat damage to a player, draw a card."
+        ability = new SimpleStaticAbility(new BoostEnchantedEffect(1, 1));
+        ability.addEffect(new GainAbilityAttachedEffect(
+                LifelinkAbility.getInstance(), AttachmentType.AURA,
+                Duration.WhileOnBattlefield, "and has lifelink"
+        ));
+        ability.addEffect(new GainAbilityAttachedEffect(
+                new DealsCombatDamageToAPlayerTriggeredAbility(
+                        new DrawCardSourceControllerEffect(1), false
+                ), AttachmentType.AURA, Duration.WhileOnBattlefield,
+                "and \"Whenever this creature deals combat damage to a player, draw a card.\""
+        ));
+        this.addAbility(ability);
+    }
+
+    private StaggeringInsight(final StaggeringInsight card) {
+        super(card);
+    }
+
+    @Override
+    public StaggeringInsight copy() {
+        return new StaggeringInsight(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java
index 06fb38f48b..ea966eda2c 100644
--- a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java
+++ b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java
@@ -42,6 +42,7 @@ public final class TherosBeyondDeath extends ExpansionSet {
         cards.add(new SetCardInfo("Plains", 250, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
         cards.add(new SetCardInfo("Revoke Existence", 34, Rarity.COMMON, mage.cards.r.RevokeExistence.class));
         cards.add(new SetCardInfo("Setessan Champion", 198, Rarity.RARE, mage.cards.s.SetessanChampion.class));
+        cards.add(new SetCardInfo("Staggering Insight", 228, Rarity.UNCOMMON, mage.cards.s.StaggeringInsight.class));
         cards.add(new SetCardInfo("Swamp", 252, Rarity.LAND, mage.cards.basiclands.Swamp.class, FULL_ART_BFZ_VARIOUS));
     }
 }