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();