diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/WolfOfDevilsBreach.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/WolfOfDevilsBreach.java
index b6a5659b6e..1a226328c4 100644
--- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/WolfOfDevilsBreach.java
+++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/WolfOfDevilsBreach.java
@@ -31,14 +31,20 @@ import java.util.UUID;
 import mage.MageInt;
 import mage.abilities.Ability;
 import mage.abilities.common.AttacksTriggeredAbility;
+import mage.abilities.costs.Cost;
+import mage.abilities.costs.Costs;
+import mage.abilities.costs.CostsImpl;
 import mage.abilities.costs.common.DiscardCardCost;
 import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.dynamicvalue.common.DiscardCostCardConvertedMana;
+import mage.abilities.dynamicvalue.DynamicValue;
+import mage.abilities.effects.Effect;
 import mage.abilities.effects.common.DamageTargetEffect;
 import mage.abilities.effects.common.DoIfCostPaid;
+import mage.cards.Card;
 import mage.cards.CardImpl;
 import mage.constants.CardType;
 import mage.constants.Rarity;
+import mage.game.Game;
 import mage.target.common.TargetCreatureOrPlaneswalker;
 
 /**
@@ -55,12 +61,15 @@ public class WolfOfDevilsBreach extends CardImpl {
         this.power = new MageInt(5);
         this.toughness = new MageInt(5);
 
-        // Whenever Wolf of Devil's Breach attacks, you may pay {1}{R} and discard a card. If you do, Wolf of Devil's Breach deals 
+        // Whenever Wolf of Devil's Breach attacks, you may pay {1}{R} and discard a card. If you do, Wolf of Devil's Breach deals
         // damage to target creature or planeswalker equal to the discarded card's converted mana cost.
-        Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new DamageTargetEffect(new DiscardCostCardConvertedMana()), new ManaCostsImpl("{1}{R}")), true,
+        Costs toPay = new CostsImpl<>();
+        toPay.add(new ManaCostsImpl<>("{1}{R}"));
+        toPay.add(new DiscardCardCost());
+        Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new DamageTargetEffect(new WolfOfDevilsBreachDiscardCostCardConvertedMana()), toPay,
+                "Pay {1}{R} and discard a card to let {this} do damage to target creature or planeswalker equal to the discarded card's converted mana cost?", true), false,
                 "Whenever {this} attacks you may pay {1}{R} and discard a card. If you do, {this} deals damage to target creature or planeswalker "
-                        + "equal to the discarded card's converted mana cost.");
-        ability.addCost(new DiscardCardCost());
+                + "equal to the discarded card's converted mana cost.");
         ability.addTarget(new TargetCreatureOrPlaneswalker());
         this.addAbility(ability);
     }
@@ -74,3 +83,44 @@ public class WolfOfDevilsBreach extends CardImpl {
         return new WolfOfDevilsBreach(this);
     }
 }
+
+class WolfOfDevilsBreachDiscardCostCardConvertedMana implements DynamicValue {
+
+    @Override
+    public int calculate(Game game, Ability sourceAbility, Effect effect) {
+        for (Effect sourceEffect : sourceAbility.getEffects()) {
+            if (sourceEffect instanceof DoIfCostPaid) {
+                Cost doCosts = ((DoIfCostPaid) sourceEffect).getCost();
+                if (doCosts instanceof Costs) {
+                    Costs costs = (Costs) doCosts;
+                    for (Object cost : costs) {
+                        if (cost instanceof DiscardCardCost) {
+                            DiscardCardCost discardCost = (DiscardCardCost) cost;
+                            int cmc = 0;
+                            for (Card card : discardCost.getCards()) {
+                                cmc += card.getManaCost().convertedManaCost();
+                            }
+                            return cmc;
+                        }
+                    }
+                }
+            }
+        }
+        return 0;
+    }
+
+    @Override
+    public WolfOfDevilsBreachDiscardCostCardConvertedMana copy() {
+        return new WolfOfDevilsBreachDiscardCostCardConvertedMana();
+    }
+
+    @Override
+    public String toString() {
+        return "";
+    }
+
+    @Override
+    public String getMessage() {
+        return "the discarded card's converted mana cost";
+    }
+}
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/WolfOfDevilsBreachTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/WolfOfDevilsBreachTest.java
index 0223b44a08..1e3dbf00da 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/WolfOfDevilsBreachTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/soi/WolfOfDevilsBreachTest.java
@@ -6,54 +6,54 @@ import org.junit.Test;
 import org.mage.test.serverside.base.CardTestPlayerBase;
 
 /**
- * 3RR
-Creature - Elemental Wolf 
- *Whenever Wolf of Devil's Breach attacks, you may pay 1R and discard a card. 
- * If you do, Wolf of Devil's Breach deals damage to target creature or planeswalker equal to the discarded card's converted mana cost. 
+ * 3RR Creature - Elemental Wolf Whenever Wolf of Devil's Breach attacks, you
+ * may pay 1R and discard a card. If you do, Wolf of Devil's Breach deals damage
+ * to target creature or planeswalker equal to the discarded card's converted
+ * mana cost.
+ *
  * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
  */
 public class WolfOfDevilsBreachTest extends CardTestPlayerBase {
-    
-    /**
-     *
-     */
+
     @Test
     public void attackChooseToPay() {
-      
+        // Whenever Wolf of Devil's Breach attacks, you may pay {1}{R} and discard a card. If you do, Wolf of Devil's Breach deals
+        // damage to target creature or planeswalker equal to the discarded card's converted mana cost.
         addCard(Zone.BATTLEFIELD, playerA, "Wolf of Devil's Breach", 1);
         addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
         addCard(Zone.HAND, playerA, "Bronze Sable", 1); // (2) 2/1
         addCard(Zone.BATTLEFIELD, playerB, "Grizzly Bears", 1); // 2/2
-        
+
         attack(1, playerA, "Wolf of Devil's Breach");
         setChoice(playerA, "Yes");
         setChoice(playerA, "Bronze Sable");
         addTarget(playerA, "Grizzly Bears");
         setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
         execute();
-        
+
         assertGraveyardCount(playerA, "Bronze Sable", 1);
         assertGraveyardCount(playerB, "Grizzly Bears", 1);
     }
-    
+
     /**
      *
      */
     @Test
     public void attackDoNotPay() {
-      
+        // Whenever Wolf of Devil's Breach attacks, you may pay {1}{R} and discard a card. If you do, Wolf of Devil's Breach deals
+        // damage to target creature or planeswalker equal to the discarded card's converted mana cost.
         addCard(Zone.BATTLEFIELD, playerA, "Wolf of Devil's Breach", 1);
         addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
         addCard(Zone.HAND, playerA, "Bronze Sable", 1); // (2) 2/1
         addCard(Zone.BATTLEFIELD, playerB, "Grizzly Bears", 1); // 2/2
-        
+
         attack(1, playerA, "Wolf of Devil's Breach");
         setChoice(playerA, "No");
         setChoice(playerA, "Bronze Sable");
         addTarget(playerA, "Grizzly Bears");
         setStopAt(1, PhaseStep.POSTCOMBAT_MAIN);
         execute();
-        
+
         assertHandCount(playerA, "Bronze Sable", 1); // never discarded
         assertGraveyardCount(playerA, "Bronze Sable", 0);
         assertGraveyardCount(playerB, "Grizzly Bears", 0);
diff --git a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java
index e16c66de7b..edc48080f5 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DoIfCostPaid.java
@@ -90,6 +90,10 @@ public class DoIfCostPaid extends OneShotEffect {
         return game.getPlayer(source.getControllerId());
     }
 
+    public Cost getCost() {
+        return cost;
+    }
+
     @Override
     public String getText(Mode mode) {
         if (!staticText.isEmpty()) {