diff --git a/Mage/src/main/java/mage/abilities/ActivatedAbilityImpl.java b/Mage/src/main/java/mage/abilities/ActivatedAbilityImpl.java index 54575f46788..62cef1c9976 100644 --- a/Mage/src/main/java/mage/abilities/ActivatedAbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/ActivatedAbilityImpl.java @@ -8,7 +8,6 @@ import mage.abilities.costs.Costs; import mage.abilities.costs.mana.ManaCosts; import mage.abilities.effects.Effect; import mage.abilities.effects.Effects; -import mage.abilities.keyword.FlashAbility; import mage.abilities.mana.ManaOptions; import mage.cards.Card; import mage.constants.*; @@ -184,11 +183,6 @@ public abstract class ActivatedAbilityImpl extends AbilityImpl implements Activa game); asInstant = approvingObject != null; asInstant |= (timing == TimingRule.INSTANT); - Card card = game.getCard(getSourceId()); - if (card != null) { - asInstant |= card.isInstant(game); - asInstant |= card.hasAbility(FlashAbility.getInstance(), game); - } if (!asInstant && !game.canPlaySorcery(playerId)) { return ActivationStatus.getFalse(); } diff --git a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java index ea752b29bb5..f3ae5a2748b 100644 --- a/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/SuspendAbility.java @@ -126,8 +126,6 @@ public class SuspendAbility extends SpecialAction { public SuspendAbility(int suspend, ManaCost cost, Card card, boolean shortRule) { super(Zone.HAND); this.addCost(cost); - // suspend uses both sorcery/instant timing depends on object, so it checks with object, see canActivate - this.setTiming(TimingRule.SORCERY); this.addEffect(new SuspendExileEffect(suspend)); this.usesStack = false; if (suspend == Integer.MAX_VALUE) { @@ -210,7 +208,14 @@ public class SuspendAbility extends SpecialAction { if (game.getState().getZone(getSourceId()) != Zone.HAND) { return ActivationStatus.getFalse(); } - + // suspend uses card's timing restriction + Card card = game.getCard(getSourceId()); + if (card == null) { + return ActivationStatus.getFalse(); + } + if (!card.getSpellAbility().spellCanBeActivatedRegularlyNow(playerId, game)) { + return ActivationStatus.getFalse(); + } return super.canActivate(playerId, game); }