diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java index 608d4032183..06b5ab69390 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MorphTest.java @@ -1101,4 +1101,21 @@ public class MorphTest extends CardTestPlayerBase { assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 1); } + + @Test + public void test_MorphIsColorlessFlash() { + addCard(Zone.HAND, playerA, "Pine Walker", 1); + addCard(Zone.HAND, playerA, "Zoetic Cavern", 1); + addCard(Zone.BATTLEFIELD, playerA, "Liberator, Urza's Battlethopter", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 6); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerA, "Pine Walker using Morph"); + castSpell(1, PhaseStep.BEGIN_COMBAT, playerA, "Zoetic Cavern using Morph"); + + setStrictChooseMode(true); + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertPermanentCount(playerA, EmptyNames.FACE_DOWN_CREATURE.toString(), 2); + } + } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/CastAsThoughItHadFlashAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/CastAsThoughItHadFlashAllEffect.java index b1835dd09e3..62b29ff8e8b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/CastAsThoughItHadFlashAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/CastAsThoughItHadFlashAllEffect.java @@ -1,11 +1,10 @@ package mage.abilities.effects.common.continuous; import mage.abilities.Ability; +import mage.abilities.SpellAbility; import mage.abilities.effects.AsThoughEffectImpl; -import mage.abilities.keyword.MorphAbility; import mage.cards.Card; import mage.constants.AsThoughEffectType; -import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Outcome; import mage.filter.FilterCard; @@ -50,25 +49,19 @@ public class CastAsThoughItHadFlashAllEffect extends AsThoughEffectImpl { } @Override - public boolean applies(UUID affectedSpellId, Ability source, UUID affectedControllerId, Game game) { - if (anyPlayer || source.isControlledBy(affectedControllerId)) { - Card card = game.getCard(affectedSpellId); + public boolean applies(UUID objectId, Ability affectedAbility, Ability source, Game game, UUID playerId) { + if (affectedAbility instanceof SpellAbility && (anyPlayer||source.isControlledBy(playerId))) { + Card card = ((SpellAbility) affectedAbility).getCharacteristics(game); if (card != null) { - //Allow lands with morph to be played at instant speed - if (card.isLand(game)) { - boolean morphAbility = card.getAbilities().stream().anyMatch(MorphAbility.class::isInstance); - if (morphAbility) { - Card cardCopy = card.copy(); - cardCopy.removeAllCardTypes(game); - cardCopy.addCardType(game, CardType.CREATURE); - return filter.match(cardCopy, affectedControllerId, source, game); - } - } - return filter.match(card, affectedControllerId, source, game); + return filter.match(card, playerId, source, game); } } return false; } + @Override + public boolean applies(UUID objectId, Ability source, UUID affectedControllerId, Game game) { + return false; + } private String setText() { StringBuilder sb = new StringBuilder(anyPlayer ? "any player" : "you");