This commit is contained in:
Alex W. Jackson 2022-02-15 03:29:27 -05:00 committed by GitHub
parent 3b6a9c0a9b
commit 5725873aeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 9 deletions

View file

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

View file

@ -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);
}