diff --git a/Mage.Sets/src/mage/cards/c/CabalTherapy.java b/Mage.Sets/src/mage/cards/c/CabalTherapy.java index fc3fc9fb449..52f43ffae5d 100644 --- a/Mage.Sets/src/mage/cards/c/CabalTherapy.java +++ b/Mage.Sets/src/mage/cards/c/CabalTherapy.java @@ -27,17 +27,13 @@ */ package mage.cards.c; -import java.util.UUID; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.NameACardEffect; import mage.abilities.keyword.FlashbackAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.TimingRule; @@ -47,6 +43,8 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetControlledCreaturePermanent; +import java.util.UUID; + /** * * @author jonubuu @@ -98,6 +96,15 @@ class CabalTherapyEffect extends OneShotEffect { Cards hand = targetPlayer.getHand(); for (Card card : hand.getCards(game)) { + if(card.isSplitCard()){ + SplitCard splitCard = (SplitCard) card; + if(splitCard.getLeftHalfCard().getName().equals(cardName)){ + targetPlayer.discard(card, source, game); + } + else if(splitCard.getRightHalfCard().getName().equals(cardName)){ + targetPlayer.discard(card, source, game); + } + } if (card.getName().equals(cardName)) { targetPlayer.discard(card, source, game); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DiscardTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DiscardTest.java index b1cd97178b2..795088dc07c 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DiscardTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/DiscardTest.java @@ -131,4 +131,19 @@ public class DiscardTest extends CardTestPlayerBase { assertLife(playerB, 18); } + + @Test + public void testCabalTherapyAfterMathCard(){ + addCard(Zone.HAND, playerA, "Cabal Therapy", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 10); + addCard(Zone.HAND, playerB, "Driven // Despair"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Cabal Therapy", playerB); + + setChoice(playerA, "Driven"); + setStopAt(1, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertHandCount(playerB, "Driven // Despair", 0); + } }