diff --git a/Mage/src/main/java/mage/constants/SpellAbilityCastMode.java b/Mage/src/main/java/mage/constants/SpellAbilityCastMode.java index a57affc664b..eed7402ab97 100644 --- a/Mage/src/main/java/mage/constants/SpellAbilityCastMode.java +++ b/Mage/src/main/java/mage/constants/SpellAbilityCastMode.java @@ -8,8 +8,6 @@ import mage.cards.Card; import mage.game.Game; import mage.game.stack.Spell; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -22,8 +20,8 @@ public enum SpellAbilityCastMode { FLASHBACK("Flashback"), BESTOW("Bestow"), PROTOTYPE("Prototype"), - MORPH("Morph", false, SpellAbilityCastMode.MORPH_ADDITIONAL_RULE), - MEGAMORPH("Megamorph", false, SpellAbilityCastMode.MORPH_ADDITIONAL_RULE), + MORPH("Morph", false, true, SpellAbilityCastMode.MORPH_ADDITIONAL_RULE), + MEGAMORPH("Megamorph", false, true, SpellAbilityCastMode.MORPH_ADDITIONAL_RULE), TRANSFORMED("Transformed", true), DISTURB("Disturb", true), MORE_THAN_MEETS_THE_EYE("More than Meets the Eye", true); @@ -36,6 +34,8 @@ public enum SpellAbilityCastMode { // should the cast mode use the second face? private final boolean isTransformed; + private final boolean isFaceDown; + // use it to add additional info in stack object cause face down has nothing // TODO: is it possible to use InfoEffect or CardHint instead that? private final List additionalRulesOnStack; @@ -49,15 +49,20 @@ public enum SpellAbilityCastMode { } SpellAbilityCastMode(String text, boolean isTransformed) { - this(text, isTransformed, null); + this(text, isTransformed, false, null); } - SpellAbilityCastMode(String text, boolean isTransformed, String additionalRulesOnStack) { + SpellAbilityCastMode(String text, boolean isTransformed, boolean isFaceDown, String additionalRulesOnStack) { this.text = text; this.isTransformed = isTransformed; + this.isFaceDown = isFaceDown; this.additionalRulesOnStack = additionalRulesOnStack == null ? null : Collections.singletonList(additionalRulesOnStack); } + public boolean isFaceDown() { + return this.isFaceDown; + } + public List getAdditionalRulesOnStack() { return additionalRulesOnStack; } diff --git a/Mage/src/main/java/mage/game/stack/Spell.java b/Mage/src/main/java/mage/game/stack/Spell.java index 5d94377e08a..b3fcca29d38 100644 --- a/Mage/src/main/java/mage/game/stack/Spell.java +++ b/Mage/src/main/java/mage/game/stack/Spell.java @@ -100,8 +100,7 @@ public class Spell extends StackObjectImpl implements Card { this.ability = ability; this.ability.setControllerId(controllerId); - if (ability.getSpellAbilityCastMode() == SpellAbilityCastMode.MORPH - || ability.getSpellAbilityCastMode() == SpellAbilityCastMode.MEGAMORPH){ + if (ability.getSpellAbilityCastMode().isFaceDown()){ // TODO: need research: // - why it use game param for color and subtype (possible bug?) // - is it possible to use BecomesFaceDownCreatureEffect.makeFaceDownObject or like that?