* Slaughter Games, Counterflux, Surpreme Verdict - Fixed not working "Can't be countered ability (fixes #413).

This commit is contained in:
LevelX2 2014-04-19 10:58:23 +02:00
parent 90924fc244
commit cb15aecb06
4 changed files with 25 additions and 4 deletions

View file

@ -34,7 +34,9 @@ import java.util.UUID;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Outcome; import mage.constants.Outcome;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.CantCounterSourceEffect; import mage.abilities.effects.common.CantCounterSourceEffect;
import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.CounterTargetEffect;
@ -42,6 +44,7 @@ import mage.abilities.keyword.OverloadAbility;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.TargetController; import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.FilterSpell; import mage.filter.FilterSpell;
import mage.filter.predicate.permanent.ControllerPredicate; import mage.filter.predicate.permanent.ControllerPredicate;
import mage.game.Game; import mage.game.Game;
@ -70,7 +73,11 @@ public class Counterflux extends CardImpl<mage.sets.returntoravnica.Counterflux>
this.color.setRed(true); this.color.setRed(true);
// Counterflux can't be countered by spells or abilities. // Counterflux can't be countered by spells or abilities.
this.getSpellAbility().addEffect(new CantCounterSourceEffect()); Effect effect = new CantCounterSourceEffect();
effect.setText("{this} can't be countered by spells or abilities");
Ability ability = new SimpleStaticAbility(Zone.STACK,effect);
ability.setRuleAtTheTop(true);
this.addAbility(ability);
// Counter target spell you don't control. // Counter target spell you don't control.
this.getSpellAbility().addTarget(new TargetSpell(filter)); this.getSpellAbility().addTarget(new TargetSpell(filter));

View file

@ -34,6 +34,8 @@ import mage.constants.Outcome;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.Mode; import mage.abilities.Mode;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CantCounterSourceEffect; import mage.abilities.effects.common.CantCounterSourceEffect;
import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect; import mage.abilities.effects.common.search.SearchTargetGraveyardHandLibraryForCardNameAndExileEffect;
import mage.cards.Card; import mage.cards.Card;
@ -41,6 +43,7 @@ import mage.cards.CardImpl;
import mage.cards.repository.CardRepository; import mage.cards.repository.CardRepository;
import mage.choices.Choice; import mage.choices.Choice;
import mage.choices.ChoiceImpl; import mage.choices.ChoiceImpl;
import mage.constants.Zone;
import mage.game.Game; import mage.game.Game;
import mage.players.Player; import mage.players.Player;
import mage.target.common.TargetOpponent; import mage.target.common.TargetOpponent;
@ -59,7 +62,11 @@ public class SlaughterGames extends CardImpl<SlaughterGames> {
this.color.setRed(true); this.color.setRed(true);
// Slaughter Games can't be countered by spells or abilities. // Slaughter Games can't be countered by spells or abilities.
this.getSpellAbility().addEffect(new CantCounterSourceEffect()); Effect effect = new CantCounterSourceEffect();
effect.setText("{this} can't be countered by spells or abilities");
Ability ability = new SimpleStaticAbility(Zone.STACK,effect);
ability.setRuleAtTheTop(true);
this.addAbility(ability);
// Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library. // Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
this.getSpellAbility().addEffect(new SlaughterGamesEffect()); this.getSpellAbility().addEffect(new SlaughterGamesEffect());

View file

@ -29,11 +29,16 @@
package mage.sets.returntoravnica; package mage.sets.returntoravnica;
import java.util.UUID; import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.CantCounterAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.abilities.effects.common.CantCounterSourceEffect; import mage.abilities.effects.common.CantCounterSourceEffect;
import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.effects.common.DestroyAllEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent; import mage.filter.common.FilterCreaturePermanent;
/** /**
@ -50,7 +55,9 @@ public class SupremeVerdict extends CardImpl<SupremeVerdict> {
this.color.setBlue(true); this.color.setBlue(true);
// Supreme Verdict can't be countered. // Supreme Verdict can't be countered.
this.getSpellAbility().addEffect(new CantCounterSourceEffect()); Ability ability = new CantCounterAbility();
ability.setRuleAtTheTop(true);
this.addAbility(ability);
// Destroy all creatures. // Destroy all creatures.
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterCreaturePermanent())); this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterCreaturePermanent()));

View file

@ -28,9 +28,9 @@
package mage.abilities.common; package mage.abilities.common;
import mage.constants.Zone;
import mage.abilities.StaticAbility; import mage.abilities.StaticAbility;
import mage.abilities.effects.common.CantCounterSourceEffect; import mage.abilities.effects.common.CantCounterSourceEffect;
import mage.constants.Zone;
/** /**
* *