From 76150b2793ac6ee4d92b3038fc52df710b8559b6 Mon Sep 17 00:00:00 2001 From: Steven Knipe Date: Sun, 1 Oct 2023 16:47:42 -0700 Subject: [PATCH] Remove SpellAbilityType.FACE_DOWN_CREATURE, fix cast ability displayed on battlefield --- Mage/src/main/java/mage/abilities/AbilityImpl.java | 7 ++----- .../main/java/mage/abilities/keyword/MorphAbility.java | 8 ++------ Mage/src/main/java/mage/constants/SpellAbilityType.java | 1 - Mage/src/main/java/mage/game/command/Commander.java | 1 - 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java index df87f2be97f..5a59a134727 100644 --- a/Mage/src/main/java/mage/abilities/AbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java @@ -281,11 +281,8 @@ public abstract class AbilityImpl implements Ability { // as buyback, kicker, or convoke costs (see rules 117.8 and 117.9), the player announces his // or her intentions to pay any or all of those costs (see rule 601.2e). // A player can't apply two alternative methods of casting or two alternative costs to a single spell. - if (isMainPartAbility && !activateAlternateOrAdditionalCosts(sourceObject, noMana, controller, game)) { - if (getAbilityType() == AbilityType.SPELL - && ((SpellAbility) this).getSpellAbilityType() == SpellAbilityType.FACE_DOWN_CREATURE) { - return false; - } + if (isMainPartAbility) { + activateAlternateOrAdditionalCosts(sourceObject, noMana, controller, game); } // 117.6. Some mana costs contain no mana symbols. This represents an unpayable cost. An ability can diff --git a/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java b/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java index 93cba87cb62..b12f2bd4409 100644 --- a/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/MorphAbility.java @@ -13,10 +13,7 @@ import mage.abilities.costs.mana.ManaCost; import mage.abilities.effects.common.continuous.BecomesFaceDownCreatureEffect; import mage.abilities.effects.common.continuous.BecomesFaceDownCreatureEffect.FaceDownType; import mage.cards.Card; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.SpellAbilityCastMode; -import mage.constants.TimingRule; +import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; import mage.game.permanent.token.EmptyToken; @@ -86,8 +83,7 @@ public class MorphAbility extends SpellAbility { this.morphCosts.add(morphCost); this.megamorph = megamorph; this.setSpellAbilityCastMode(SpellAbilityCastMode.MORPH); - //this.setSpellAbilityType(SpellAbilityType.FACE_DOWN_CREATURE); - this.setWorksFaceDown(true); + this.setSpellAbilityType(SpellAbilityType.BASE_ALTERNATE); Ability ability = new SimpleStaticAbility(new BecomesFaceDownCreatureEffect( morphCosts, (megamorph ? FaceDownType.MEGAMORPHED : FaceDownType.MORPHED))); ability.setWorksFaceDown(true); diff --git a/Mage/src/main/java/mage/constants/SpellAbilityType.java b/Mage/src/main/java/mage/constants/SpellAbilityType.java index f32c86fa516..cb95677e060 100644 --- a/Mage/src/main/java/mage/constants/SpellAbilityType.java +++ b/Mage/src/main/java/mage/constants/SpellAbilityType.java @@ -6,7 +6,6 @@ package mage.constants; public enum SpellAbilityType { BASE("Basic SpellAbility"), BASE_ALTERNATE("Basic SpellAbility Alternate"), // used for Overload, Flashback to know they must be handled as Alternate casting costs - FACE_DOWN_CREATURE("Face down creature"), // used for Lands with Morph to cast as Face Down creature SPLIT("Split SpellAbility"), SPLIT_AFTERMATH("AftermathSplit SpellAbility"), SPLIT_FUSED("Split SpellAbility"), diff --git a/Mage/src/main/java/mage/game/command/Commander.java b/Mage/src/main/java/mage/game/command/Commander.java index c52a32e4e10..27c9c650d88 100644 --- a/Mage/src/main/java/mage/game/command/Commander.java +++ b/Mage/src/main/java/mage/game/command/Commander.java @@ -58,7 +58,6 @@ public class Commander extends CommandObjectImpl { abilities.add(spellAbility.copyWithZone(Zone.COMMAND)); } break; - case FACE_DOWN_CREATURE: // dynamic added spell for alternative cost like cast as face down case SPLICE: // only from hand case SPLIT_AFTERMATH: // only from graveyard // can't use from command zone