From 56623c8dc2932cffc246e4c59011c4db453625d7 Mon Sep 17 00:00:00 2001
From: Evan Kranzler <theelk801@gmail.com>
Date: Tue, 2 Nov 2021 19:38:40 -0400
Subject: [PATCH] [VOW] Implemented Honeymoon Hearse

---
 Mage.Sets/src/mage/cards/d/Dermotaxi.java     | 15 ++----
 .../src/mage/cards/h/HoneymoonHearse.java     | 52 +++++++++++++++++++
 .../src/mage/sets/InnistradCrimsonVow.java    |  1 +
 3 files changed, 57 insertions(+), 11 deletions(-)
 create mode 100644 Mage.Sets/src/mage/cards/h/HoneymoonHearse.java

diff --git a/Mage.Sets/src/mage/cards/d/Dermotaxi.java b/Mage.Sets/src/mage/cards/d/Dermotaxi.java
index b2448f0b5f..2ef6426827 100644
--- a/Mage.Sets/src/mage/cards/d/Dermotaxi.java
+++ b/Mage.Sets/src/mage/cards/d/Dermotaxi.java
@@ -12,9 +12,6 @@ import mage.cards.CardImpl;
 import mage.cards.CardSetInfo;
 import mage.constants.*;
 import mage.filter.StaticFilters;
-import mage.filter.common.FilterControlledCreaturePermanent;
-import mage.filter.common.FilterControlledPermanent;
-import mage.filter.predicate.permanent.TappedPredicate;
 import mage.game.Game;
 import mage.game.permanent.Permanent;
 import mage.game.permanent.PermanentCard;
@@ -29,13 +26,6 @@ import java.util.UUID;
  */
 public final class Dermotaxi extends CardImpl {
 
-    private static final FilterControlledPermanent filter
-            = new FilterControlledCreaturePermanent("untapped creatures you control");
-
-    static {
-        filter.add(TappedPredicate.UNTAPPED);
-    }
-
     public Dermotaxi(UUID ownerId, CardSetInfo setInfo) {
         super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
 
@@ -51,7 +41,10 @@ public final class Dermotaxi extends CardImpl {
 
         // Tap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the imprinted card, except it's a Vehicle artifact in addition to its other types.
         this.addAbility(new SimpleActivatedAbility(
-                new DermotaxiCopyEffect(), new TapTargetCost(new TargetControlledPermanent(2, filter))
+                new DermotaxiCopyEffect(),
+                new TapTargetCost(new TargetControlledPermanent(
+                        2, StaticFilters.FILTER_CONTROLLED_UNTAPPED_CREATURES
+                ))
         ));
     }
 
diff --git a/Mage.Sets/src/mage/cards/h/HoneymoonHearse.java b/Mage.Sets/src/mage/cards/h/HoneymoonHearse.java
new file mode 100644
index 0000000000..ea51f5fb58
--- /dev/null
+++ b/Mage.Sets/src/mage/cards/h/HoneymoonHearse.java
@@ -0,0 +1,52 @@
+package mage.cards.h;
+
+import mage.MageInt;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapTargetCost;
+import mage.abilities.effects.common.continuous.AddCardTypeSourceEffect;
+import mage.abilities.keyword.TrampleAbility;
+import mage.cards.CardImpl;
+import mage.cards.CardSetInfo;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.SubType;
+import mage.filter.StaticFilters;
+import mage.target.common.TargetControlledPermanent;
+
+import java.util.UUID;
+
+/**
+ * @author TheElk801
+ */
+public final class HoneymoonHearse extends CardImpl {
+
+    public HoneymoonHearse(UUID ownerId, CardSetInfo setInfo) {
+        super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{R}");
+
+        this.subtype.add(SubType.VEHICLE);
+        this.power = new MageInt(5);
+        this.toughness = new MageInt(5);
+
+        // Trample
+        this.addAbility(TrampleAbility.getInstance());
+
+        // Tap two untapped creatures you control: Honeymoon Hearse becomes an artifact creature until end of turn.
+        this.addAbility(new SimpleActivatedAbility(
+                new AddCardTypeSourceEffect(
+                        Duration.EndOfTurn, CardType.ARTIFACT, CardType.CREATURE
+                ),
+                new TapTargetCost(new TargetControlledPermanent(
+                        2, StaticFilters.FILTER_CONTROLLED_UNTAPPED_CREATURES
+                ))
+        ));
+    }
+
+    private HoneymoonHearse(final HoneymoonHearse card) {
+        super(card);
+    }
+
+    @Override
+    public HoneymoonHearse copy() {
+        return new HoneymoonHearse(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java
index 2a7f3e0fa6..a5e8477453 100644
--- a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java
+++ b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java
@@ -73,6 +73,7 @@ public final class InnistradCrimsonVow extends ExpansionSet {
         cards.add(new SetCardInfo("Hallowed Haunting", 17, Rarity.MYTHIC, mage.cards.h.HallowedHaunting.class));
         cards.add(new SetCardInfo("Headless Rider", 118, Rarity.RARE, mage.cards.h.HeadlessRider.class));
         cards.add(new SetCardInfo("Hero's Downfall", 120, Rarity.UNCOMMON, mage.cards.h.HerosDownfall.class));
+        cards.add(new SetCardInfo("Honeymoon Hearse", 160, Rarity.UNCOMMON, mage.cards.h.HoneymoonHearse.class));
         cards.add(new SetCardInfo("Honored Heirloom", 257, Rarity.COMMON, mage.cards.h.HonoredHeirloom.class));
         cards.add(new SetCardInfo("Inspired Idea", 64, Rarity.RARE, mage.cards.i.InspiredIdea.class));
         cards.add(new SetCardInfo("Investigator's Journal", 258, Rarity.RARE, mage.cards.i.InvestigatorsJournal.class));