From ef010bc2f3c428d8709e517432569486ece4495c Mon Sep 17 00:00:00 2001 From: "jeff@delmarus.com" <> Date: Sat, 14 Aug 2021 12:15:58 -0500 Subject: [PATCH] Wrenn and Six emblem can now add the retrace ability to their legal sides. But, the issue with casting fused split-cards remains. It should not be allowed from the graveyard zone, only the hand. --- .../command/emblems/WrennAndSixEmblem.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Mage/src/main/java/mage/game/command/emblems/WrennAndSixEmblem.java b/Mage/src/main/java/mage/game/command/emblems/WrennAndSixEmblem.java index be51a060e39..7433864b775 100644 --- a/Mage/src/main/java/mage/game/command/emblems/WrennAndSixEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/WrennAndSixEmblem.java @@ -12,6 +12,10 @@ import mage.game.command.Emblem; import mage.players.Player; import java.util.UUID; +import mage.cards.ModalDoubleFacesCard; +import mage.cards.ModalDoubleFacesCardHalf; +import mage.cards.SplitCard; +import mage.cards.SplitCardHalf; /** * @author TheElk801 @@ -26,6 +30,7 @@ public final class WrennAndSixEmblem extends Emblem { } class WrennAndSixEmblemEffect extends ContinuousEffectImpl { + WrennAndSixEmblemEffect() { super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); staticText = "Instant and sorcery cards in your graveyard have retrace."; @@ -46,6 +51,38 @@ class WrennAndSixEmblemEffect extends ContinuousEffectImpl { if (card == null) { continue; } + if (card instanceof SplitCard) { + SplitCardHalf leftHalfCard = ((SplitCard) card).getLeftHalfCard(); + SplitCardHalf rightHalfCard = ((SplitCard) card).getRightHalfCard(); + if (leftHalfCard.isInstantOrSorcery(game)) { + Ability ability = new RetraceAbility(leftHalfCard); + ability.setSourceId(cardId); + ability.setControllerId(leftHalfCard.getOwnerId()); + game.getState().addOtherAbility(leftHalfCard, ability); + } + if (rightHalfCard.isInstantOrSorcery(game)) { + Ability ability = new RetraceAbility(rightHalfCard); + ability.setSourceId(cardId); + ability.setControllerId(rightHalfCard.getOwnerId()); + game.getState().addOtherAbility(rightHalfCard, ability); + } + } + if (card instanceof ModalDoubleFacesCard) { + ModalDoubleFacesCardHalf leftHalfCard = ((ModalDoubleFacesCard) card).getLeftHalfCard(); + ModalDoubleFacesCardHalf rightHalfCard = ((ModalDoubleFacesCard) card).getRightHalfCard(); + if (leftHalfCard.isInstantOrSorcery(game)) { + Ability ability = new RetraceAbility(leftHalfCard); + ability.setSourceId(cardId); + ability.setControllerId(leftHalfCard.getOwnerId()); + game.getState().addOtherAbility(leftHalfCard, ability); + } + if (rightHalfCard.isInstantOrSorcery(game)) { + Ability ability = new RetraceAbility(rightHalfCard); + ability.setSourceId(cardId); + ability.setControllerId(rightHalfCard.getOwnerId()); + game.getState().addOtherAbility(rightHalfCard, ability); + } + } if (card instanceof AdventureCard) { // Adventure cards are castable per https://twitter.com/elishffrn/status/1179047911729946624 card = ((AdventureCard) card).getSpellCard();