From 6c69939c0dee468c36bb8742c42f20170653d9e1 Mon Sep 17 00:00:00 2001 From: jeffwadsworth Date: Thu, 25 Jun 2020 17:45:24 -0500 Subject: [PATCH] - Fixed some text issues related to Bug 6675... --- .../src/mage/cards/a/AkromaAngelOfFury.java | 4 +-- .../src/mage/cards/a/AllosaurusShepherd.java | 13 ++++---- Mage.Sets/src/mage/cards/a/AlteredEgo.java | 4 +-- .../src/mage/cards/b/BlurredMongoose.java | 4 +-- Mage.Sets/src/mage/cards/c/CarnageTyrant.java | 4 +-- .../mage/cards/c/ChandraAwakenedInferno.java | 4 +-- .../src/mage/cards/c/ChromiumTheMutable.java | 4 +-- .../src/mage/cards/c/CommenceTheEndgame.java | 4 +-- .../src/mage/cards/d/DragonlordDromoka.java | 4 +-- .../src/mage/cards/e/EmrakulTheAeonsTorn.java | 4 +-- Mage.Sets/src/mage/cards/f/Fry.java | 4 +-- .../src/mage/cards/i/InescapableBlaze.java | 4 +-- .../mage/cards/i/IsaoEnlightenedBushi.java | 4 +-- Mage.Sets/src/mage/cards/l/LastWord.java | 4 +-- Mage.Sets/src/mage/cards/l/LightningMare.java | 4 +-- Mage.Sets/src/mage/cards/l/LoxodonSmiter.java | 4 +-- .../src/mage/cards/m/MistcutterHydra.java | 4 +-- .../src/mage/cards/n/NezahalPrimalTide.java | 4 +-- .../src/mage/cards/n/NivMizzetParun.java | 4 +-- Mage.Sets/src/mage/cards/o/Obliterate.java | 4 +-- .../src/mage/cards/p/PearlLakeAncient.java | 4 +-- .../src/mage/cards/p/PetrifiedWoodKin.java | 4 +-- .../src/mage/cards/p/ProwlingSerpopard.java | 4 +-- .../src/mage/cards/s/SavageSummoning.java | 4 +-- Mage.Sets/src/mage/cards/s/Scragnoth.java | 4 +-- .../src/mage/cards/s/ShiftingCeratops.java | 4 +-- Mage.Sets/src/mage/cards/s/Skylasher.java | 4 +-- .../mage/cards/s/SphinxOfTheFinalWord.java | 4 +-- .../src/mage/cards/s/SupremeVerdict.java | 4 +-- .../src/mage/cards/s/SurrakDragonclaw.java | 4 +-- .../src/mage/cards/t/ThoughtDistortion.java | 4 +-- Mage.Sets/src/mage/cards/v/VexingShusher.java | 4 +-- .../src/mage/cards/v/VolcanicFallout.java | 4 +-- Mage.Sets/src/mage/cards/w/WreakHavoc.java | 4 +-- .../common/CantBeCounteredSourceAbility.java | 32 +++++++++++++++++++ 35 files changed, 105 insertions(+), 72 deletions(-) create mode 100644 Mage/src/main/java/mage/abilities/common/CantBeCounteredSourceAbility.java diff --git a/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java b/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java index 6e65dda3ce4..42aaaa5096b 100644 --- a/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java +++ b/Mage.Sets/src/mage/cards/a/AkromaAngelOfFury.java @@ -4,7 +4,7 @@ package mage.cards.a; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.continuous.BoostSourceEffect; @@ -31,7 +31,7 @@ public final class AkromaAngelOfFury extends CardImpl { this.toughness = new MageInt(6); // Akroma, Angel of Fury can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); // Trample diff --git a/Mage.Sets/src/mage/cards/a/AllosaurusShepherd.java b/Mage.Sets/src/mage/cards/a/AllosaurusShepherd.java index a9ec318ff67..dc32fd4fd62 100644 --- a/Mage.Sets/src/mage/cards/a/AllosaurusShepherd.java +++ b/Mage.Sets/src/mage/cards/a/AllosaurusShepherd.java @@ -3,7 +3,7 @@ package mage.cards.a; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -14,15 +14,15 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.FilterPermanent; -import mage.filter.FilterSpell; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.ColorPredicate; import java.util.UUID; +import mage.filter.FilterSpell; public class AllosaurusShepherd extends CardImpl { - private static final FilterSpell greenSpellsFilter = new FilterSpell("green spells"); + private static final FilterSpell greenSpellsFilter = new FilterSpell("Green spells you control"); private static final FilterPermanent elvesFilter = new FilterControlledCreaturePermanent("each Elf creature you control"); static { @@ -31,7 +31,7 @@ public class AllosaurusShepherd extends CardImpl { } public AllosaurusShepherd(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}"); this.subtype.add(SubType.ELF); this.subtype.add(SubType.SHAMAN); @@ -39,13 +39,14 @@ public class AllosaurusShepherd extends CardImpl { this.toughness = new MageInt(1); //Allosaurus Shepherd can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); //Green spells you control can't be countered. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(greenSpellsFilter, null, Duration.WhileOnBattlefield))); - //4GG: Until end of turn, each Elf creature you control has base power and toughness 5/5 and becomes a Dinosaur in addition to its other creature types. + //4GG: Until end of turn, each Elf creature you control has base power and toughness 5/5 + // and becomes a Dinosaur in addition to its other creature types. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SetPowerToughnessAllEffect(5, 5, Duration.EndOfTurn, elvesFilter, true) .setText("Until end of turn, each Elf creature you control has base power and toughness 5/5"), diff --git a/Mage.Sets/src/mage/cards/a/AlteredEgo.java b/Mage.Sets/src/mage/cards/a/AlteredEgo.java index ae603d05669..3cb307ca5bc 100644 --- a/Mage.Sets/src/mage/cards/a/AlteredEgo.java +++ b/Mage.Sets/src/mage/cards/a/AlteredEgo.java @@ -4,7 +4,7 @@ package mage.cards.a; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.CopyPermanentEffect; @@ -32,7 +32,7 @@ public final class AlteredEgo extends CardImpl { this.toughness = new MageInt(0); // Altered Ego can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // You may have Altered Ego enter the battlefield as a copy of any creature on the battlefield, except it enters with an additional X +1/+1 counters on it. Effect effect = new CopyPermanentEffect(StaticFilters.FILTER_PERMANENT_CREATURE, null); diff --git a/Mage.Sets/src/mage/cards/b/BlurredMongoose.java b/Mage.Sets/src/mage/cards/b/BlurredMongoose.java index 2ea3ba023c6..675a16d753d 100644 --- a/Mage.Sets/src/mage/cards/b/BlurredMongoose.java +++ b/Mage.Sets/src/mage/cards/b/BlurredMongoose.java @@ -3,7 +3,7 @@ package mage.cards.b; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.keyword.ShroudAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -24,7 +24,7 @@ public final class BlurredMongoose extends CardImpl { this.toughness = new MageInt(1); // Blurred Mongoose can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); this.addAbility(ShroudAbility.getInstance()); } diff --git a/Mage.Sets/src/mage/cards/c/CarnageTyrant.java b/Mage.Sets/src/mage/cards/c/CarnageTyrant.java index d252b783900..ed47c44b286 100644 --- a/Mage.Sets/src/mage/cards/c/CarnageTyrant.java +++ b/Mage.Sets/src/mage/cards/c/CarnageTyrant.java @@ -3,7 +3,7 @@ package mage.cards.c; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.HexproofAbility; import mage.cards.CardImpl; @@ -25,7 +25,7 @@ public final class CarnageTyrant extends CardImpl { this.toughness = new MageInt(6); // Carnage Tyrant can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Trample this.addAbility(TrampleAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/c/ChandraAwakenedInferno.java b/Mage.Sets/src/mage/cards/c/ChandraAwakenedInferno.java index c0f61cb557c..8a28de03eb0 100644 --- a/Mage.Sets/src/mage/cards/c/ChandraAwakenedInferno.java +++ b/Mage.Sets/src/mage/cards/c/ChandraAwakenedInferno.java @@ -2,7 +2,7 @@ package mage.cards.c; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.costs.Cost; import mage.abilities.costs.common.PayVariableLoyaltyCost; @@ -46,7 +46,7 @@ public final class ChandraAwakenedInferno extends CardImpl { this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(6)); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // +2: Each opponent gets an emblem with "At the beginning of your upkeep, this emblem deals 1 damage to you." this.addAbility(new LoyaltyAbility(new ChandraAwakenedInfernoEffect(), 2)); diff --git a/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java b/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java index 4ec39507c56..8de4373ece8 100644 --- a/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java +++ b/Mage.Sets/src/mage/cards/c/ChromiumTheMutable.java @@ -3,7 +3,7 @@ package mage.cards.c; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.DiscardCardCost; import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect; @@ -38,7 +38,7 @@ public final class ChromiumTheMutable extends CardImpl { this.addAbility(FlashAbility.getInstance()); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/c/CommenceTheEndgame.java b/Mage.Sets/src/mage/cards/c/CommenceTheEndgame.java index b9d1fe568cb..1c58d22cf9f 100644 --- a/Mage.Sets/src/mage/cards/c/CommenceTheEndgame.java +++ b/Mage.Sets/src/mage/cards/c/CommenceTheEndgame.java @@ -1,7 +1,7 @@ package mage.cards.c; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.keyword.AmassEffect; import mage.cards.CardImpl; @@ -22,7 +22,7 @@ public final class CommenceTheEndgame extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{U}{U}"); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Draw two cards, then amass X, where X is the number of cards in your hand. this.getSpellAbility().addEffect(new CommenceTheEndgameEffect()); diff --git a/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java b/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java index c24d6985bce..36d69f9f500 100644 --- a/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java +++ b/Mage.Sets/src/mage/cards/d/DragonlordDromoka.java @@ -4,7 +4,7 @@ package mage.cards.d; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.keyword.FlyingAbility; @@ -30,7 +30,7 @@ public final class DragonlordDromoka extends CardImpl { this.toughness = new MageInt(7); // Dragonlord Dromoka can't be countered - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); // Lifelink diff --git a/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java b/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java index b08775abcbc..91caa63e32f 100644 --- a/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java +++ b/Mage.Sets/src/mage/cards/e/EmrakulTheAeonsTorn.java @@ -3,7 +3,7 @@ package mage.cards.e; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.PutIntoGraveFromAnywhereSourceTriggeredAbility; import mage.abilities.effects.common.CastSourceTriggeredAbility; import mage.abilities.effects.common.ShuffleIntoLibraryGraveOfSourceOwnerEffect; @@ -39,7 +39,7 @@ public final class EmrakulTheAeonsTorn extends CardImpl { this.toughness = new MageInt(15); // Emrakul, the Aeons Torn can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // When you cast Emrakul, take an extra turn after this one. this.addAbility(new CastSourceTriggeredAbility(new AddExtraTurnControllerEffect())); diff --git a/Mage.Sets/src/mage/cards/f/Fry.java b/Mage.Sets/src/mage/cards/f/Fry.java index c9c9f7eca34..faa409a226c 100644 --- a/Mage.Sets/src/mage/cards/f/Fry.java +++ b/Mage.Sets/src/mage/cards/f/Fry.java @@ -1,7 +1,7 @@ package mage.cards.f; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,7 +33,7 @@ public final class Fry extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Fry deals 5 damage to target creature or planeswalker that's white or blue. this.getSpellAbility().addEffect(new DamageTargetEffect(5)); diff --git a/Mage.Sets/src/mage/cards/i/InescapableBlaze.java b/Mage.Sets/src/mage/cards/i/InescapableBlaze.java index 2aa756c1baf..ba670d533c7 100644 --- a/Mage.Sets/src/mage/cards/i/InescapableBlaze.java +++ b/Mage.Sets/src/mage/cards/i/InescapableBlaze.java @@ -1,7 +1,7 @@ package mage.cards.i; import java.util.UUID; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -18,7 +18,7 @@ public final class InescapableBlaze extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{R}{R}"); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility().setRuleAtTheTop(true)); + this.addAbility(new CantBeCounteredSourceAbility().setRuleAtTheTop(true)); // Inescapable Flame deals 6 damage to any target. this.getSpellAbility().addEffect(new DamageTargetEffect(6)); diff --git a/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java b/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java index 7f69d6bb9f5..d0f044d1ed8 100644 --- a/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java +++ b/Mage.Sets/src/mage/cards/i/IsaoEnlightenedBushi.java @@ -4,7 +4,7 @@ package mage.cards.i; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.RegenerateTargetEffect; @@ -40,7 +40,7 @@ public final class IsaoEnlightenedBushi extends CardImpl { this.toughness = new MageInt(1); // Isao, Enlightened Bushi can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); this.addAbility(new BushidoAbility(2)); // {2}: Regenerate target Samurai. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/cards/l/LastWord.java b/Mage.Sets/src/mage/cards/l/LastWord.java index aa94e9991a2..bf8cb38408c 100644 --- a/Mage.Sets/src/mage/cards/l/LastWord.java +++ b/Mage.Sets/src/mage/cards/l/LastWord.java @@ -3,7 +3,7 @@ package mage.cards.l; import java.util.UUID; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.CounterTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -19,7 +19,7 @@ public final class LastWord extends CardImpl { public LastWord (UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{U}{U}"); - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); } diff --git a/Mage.Sets/src/mage/cards/l/LightningMare.java b/Mage.Sets/src/mage/cards/l/LightningMare.java index 557cd1daa89..7d33dde8d3c 100644 --- a/Mage.Sets/src/mage/cards/l/LightningMare.java +++ b/Mage.Sets/src/mage/cards/l/LightningMare.java @@ -3,7 +3,7 @@ package mage.cards.l; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.ManaCostsImpl; @@ -39,7 +39,7 @@ public final class LightningMare extends CardImpl { this.toughness = new MageInt(1); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Lightning Mare can't be blocked by blue creatures. this.addAbility(new SimpleStaticAbility( diff --git a/Mage.Sets/src/mage/cards/l/LoxodonSmiter.java b/Mage.Sets/src/mage/cards/l/LoxodonSmiter.java index f43e90bebae..834e7544cdf 100644 --- a/Mage.Sets/src/mage/cards/l/LoxodonSmiter.java +++ b/Mage.Sets/src/mage/cards/l/LoxodonSmiter.java @@ -3,7 +3,7 @@ package mage.cards.l; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.DiscardOntoBattlefieldEffect; import mage.cards.CardImpl; @@ -26,7 +26,7 @@ public final class LoxodonSmiter extends CardImpl { this.toughness = new MageInt(4); // Loxodon Smiter can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // If a spell or ability an opponent controls causes you to discard Loxodon Smiter, put it onto the battlefield instead of putting it into your graveyard. this.addAbility(new SimpleStaticAbility(Zone.HAND, new DiscardOntoBattlefieldEffect())); diff --git a/Mage.Sets/src/mage/cards/m/MistcutterHydra.java b/Mage.Sets/src/mage/cards/m/MistcutterHydra.java index 92fb0c947a8..6078203b18d 100644 --- a/Mage.Sets/src/mage/cards/m/MistcutterHydra.java +++ b/Mage.Sets/src/mage/cards/m/MistcutterHydra.java @@ -4,7 +4,7 @@ package mage.cards.m; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.common.EntersBattlefieldWithXCountersEffect; import mage.abilities.keyword.HasteAbility; @@ -29,7 +29,7 @@ public final class MistcutterHydra extends CardImpl { this.toughness = new MageInt(0); // Mistcutter Hydra can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Haste this.addAbility(HasteAbility.getInstance()); // protection from blue diff --git a/Mage.Sets/src/mage/cards/n/NezahalPrimalTide.java b/Mage.Sets/src/mage/cards/n/NezahalPrimalTide.java index 3a28e370c3f..4332784352f 100644 --- a/Mage.Sets/src/mage/cards/n/NezahalPrimalTide.java +++ b/Mage.Sets/src/mage/cards/n/NezahalPrimalTide.java @@ -3,7 +3,7 @@ package mage.cards.n; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.common.SpellCastOpponentTriggeredAbility; @@ -47,7 +47,7 @@ public final class NezahalPrimalTide extends CardImpl { this.toughness = new MageInt(7); // Nezahal, Primal Tide can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // You have no maximum hand size. Effect effect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.WhileOnBattlefield, MaximumHandSizeControllerEffect.HandSizeModification.SET); diff --git a/Mage.Sets/src/mage/cards/n/NivMizzetParun.java b/Mage.Sets/src/mage/cards/n/NivMizzetParun.java index 8cfccd5137c..eabca9b30c2 100644 --- a/Mage.Sets/src/mage/cards/n/NivMizzetParun.java +++ b/Mage.Sets/src/mage/cards/n/NivMizzetParun.java @@ -3,7 +3,7 @@ package mage.cards.n; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.DrawCardControllerTriggeredAbility; import mage.abilities.common.SpellCastAllTriggeredAbility; import mage.abilities.effects.common.DamageTargetEffect; @@ -33,7 +33,7 @@ public final class NivMizzetParun extends CardImpl { this.toughness = new MageInt(5); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/o/Obliterate.java b/Mage.Sets/src/mage/cards/o/Obliterate.java index 8cfd66e0b3a..03b8ddba0da 100644 --- a/Mage.Sets/src/mage/cards/o/Obliterate.java +++ b/Mage.Sets/src/mage/cards/o/Obliterate.java @@ -2,7 +2,7 @@ package mage.cards.o; import java.util.UUID; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -30,7 +30,7 @@ public final class Obliterate extends CardImpl { // Obliterate can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Destroy all artifacts, creatures, and lands. They can't be regenerated. this.getSpellAbility().addEffect(new DestroyAllEffect(filter)); } diff --git a/Mage.Sets/src/mage/cards/p/PearlLakeAncient.java b/Mage.Sets/src/mage/cards/p/PearlLakeAncient.java index 194cb439234..09d36f2957d 100644 --- a/Mage.Sets/src/mage/cards/p/PearlLakeAncient.java +++ b/Mage.Sets/src/mage/cards/p/PearlLakeAncient.java @@ -3,7 +3,7 @@ package mage.cards.p; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; import mage.abilities.effects.common.ReturnToHandSourceEffect; @@ -34,7 +34,7 @@ public final class PearlLakeAncient extends CardImpl { this.addAbility(FlashAbility.getInstance()); // Pearl Lake Ancient can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Prowess this.addAbility(new ProwessAbility()); diff --git a/Mage.Sets/src/mage/cards/p/PetrifiedWoodKin.java b/Mage.Sets/src/mage/cards/p/PetrifiedWoodKin.java index a42b819797a..140cb43463f 100644 --- a/Mage.Sets/src/mage/cards/p/PetrifiedWoodKin.java +++ b/Mage.Sets/src/mage/cards/p/PetrifiedWoodKin.java @@ -7,7 +7,7 @@ import java.util.UUID; import mage.MageInt; import mage.MageObjectReference; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.effects.OneShotEffect; import mage.constants.SubType; @@ -44,7 +44,7 @@ public final class PetrifiedWoodKin extends CardImpl { this.toughness = new MageInt(3); // Petrified Wood-Kin can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Bloodthirst X this.addAbility(new EntersBattlefieldAbility( diff --git a/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java b/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java index e676d6beb9a..c3b547c582c 100644 --- a/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java +++ b/Mage.Sets/src/mage/cards/p/ProwlingSerpopard.java @@ -3,7 +3,7 @@ package mage.cards.p; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantBeCounteredControlledEffect; import mage.cards.CardImpl; @@ -35,7 +35,7 @@ public final class ProwlingSerpopard extends CardImpl { this.toughness = new MageInt(3); // Prowling Serpopard can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Creature spells you control can't be countered. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filterTarget, null, Duration.WhileOnBattlefield))); diff --git a/Mage.Sets/src/mage/cards/s/SavageSummoning.java b/Mage.Sets/src/mage/cards/s/SavageSummoning.java index 8c4d07ebba3..15228dd8449 100644 --- a/Mage.Sets/src/mage/cards/s/SavageSummoning.java +++ b/Mage.Sets/src/mage/cards/s/SavageSummoning.java @@ -3,7 +3,7 @@ package mage.cards.s; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.AsThoughEffectImpl; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.ReplacementEffectImpl; @@ -34,7 +34,7 @@ public final class SavageSummoning extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}"); // Savage Summoning can't be countered. - Ability ability = new CantBeCounteredAbility(); + Ability ability = new CantBeCounteredSourceAbility(); ability.setRuleAtTheTop(true); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/Scragnoth.java b/Mage.Sets/src/mage/cards/s/Scragnoth.java index c6497821d74..d1a5604e187 100644 --- a/Mage.Sets/src/mage/cards/s/Scragnoth.java +++ b/Mage.Sets/src/mage/cards/s/Scragnoth.java @@ -4,7 +4,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.keyword.ProtectionAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -25,7 +25,7 @@ public final class Scragnoth extends CardImpl { this.toughness = new MageInt(4); // Scragnoth can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Protection from blue this.addAbility(ProtectionAbility.from(ObjectColor.BLUE)); } diff --git a/Mage.Sets/src/mage/cards/s/ShiftingCeratops.java b/Mage.Sets/src/mage/cards/s/ShiftingCeratops.java index 6a501a6451f..efc57339c04 100644 --- a/Mage.Sets/src/mage/cards/s/ShiftingCeratops.java +++ b/Mage.Sets/src/mage/cards/s/ShiftingCeratops.java @@ -3,7 +3,7 @@ package mage.cards.s; import mage.MageInt; import mage.ObjectColor; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; @@ -40,7 +40,7 @@ public final class ShiftingCeratops extends CardImpl { this.toughness = new MageInt(4); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Protection from blue this.addAbility(ProtectionAbility.from(ObjectColor.BLUE)); diff --git a/Mage.Sets/src/mage/cards/s/Skylasher.java b/Mage.Sets/src/mage/cards/s/Skylasher.java index af737ceda6d..0d0f8c8df88 100644 --- a/Mage.Sets/src/mage/cards/s/Skylasher.java +++ b/Mage.Sets/src/mage/cards/s/Skylasher.java @@ -5,7 +5,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; import mage.ObjectColor; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.keyword.FlashAbility; import mage.abilities.keyword.ProtectionAbility; import mage.abilities.keyword.ReachAbility; @@ -30,7 +30,7 @@ public final class Skylasher extends CardImpl { // Flash this.addAbility(FlashAbility.getInstance()); // Skylasher can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Reach, protection from blue this.addAbility(ReachAbility.getInstance()); this.addAbility(ProtectionAbility.from(ObjectColor.BLUE)); diff --git a/Mage.Sets/src/mage/cards/s/SphinxOfTheFinalWord.java b/Mage.Sets/src/mage/cards/s/SphinxOfTheFinalWord.java index 038b3928859..678629eaeed 100644 --- a/Mage.Sets/src/mage/cards/s/SphinxOfTheFinalWord.java +++ b/Mage.Sets/src/mage/cards/s/SphinxOfTheFinalWord.java @@ -3,7 +3,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantBeCounteredControlledEffect; import mage.abilities.keyword.FlyingAbility; @@ -37,7 +37,7 @@ public final class SphinxOfTheFinalWord extends CardImpl { this.toughness = new MageInt(5); // Sphinx of the Final Word can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Flying this.addAbility(FlyingAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/s/SupremeVerdict.java b/Mage.Sets/src/mage/cards/s/SupremeVerdict.java index e7249c4f7b1..7dd6932c060 100644 --- a/Mage.Sets/src/mage/cards/s/SupremeVerdict.java +++ b/Mage.Sets/src/mage/cards/s/SupremeVerdict.java @@ -3,7 +3,7 @@ package mage.cards.s; import java.util.UUID; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DestroyAllEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -21,7 +21,7 @@ public final class SupremeVerdict extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{W}{W}{U}"); // Supreme Verdict can't be countered. - Ability ability = new CantBeCounteredAbility(); + Ability ability = new CantBeCounteredSourceAbility(); ability.setRuleAtTheTop(true); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java b/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java index bb5cfb86242..8b38d589d55 100644 --- a/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java +++ b/Mage.Sets/src/mage/cards/s/SurrakDragonclaw.java @@ -3,7 +3,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.CantBeCounteredControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -44,7 +44,7 @@ public final class SurrakDragonclaw extends CardImpl { this.addAbility(FlashAbility.getInstance()); // Surrak Dragonclaw can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Creature spells you control can't be countered. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeCounteredControlledEffect(filterTarget, null, Duration.WhileOnBattlefield))); diff --git a/Mage.Sets/src/mage/cards/t/ThoughtDistortion.java b/Mage.Sets/src/mage/cards/t/ThoughtDistortion.java index 743f64978c2..98ca1755d97 100644 --- a/Mage.Sets/src/mage/cards/t/ThoughtDistortion.java +++ b/Mage.Sets/src/mage/cards/t/ThoughtDistortion.java @@ -1,7 +1,7 @@ package mage.cards.t; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.OneShotEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -28,7 +28,7 @@ public final class ThoughtDistortion extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}{B}"); // This spell can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Target opponent reveals their hand. Exile all noncreature, nonland cards from that player's hand and graveyard. this.getSpellAbility().addEffect(new ThoughtDistortionEffect()); diff --git a/Mage.Sets/src/mage/cards/v/VexingShusher.java b/Mage.Sets/src/mage/cards/v/VexingShusher.java index a4a58098a46..c82812672ea 100644 --- a/Mage.Sets/src/mage/cards/v/VexingShusher.java +++ b/Mage.Sets/src/mage/cards/v/VexingShusher.java @@ -5,7 +5,7 @@ import java.util.UUID; import mage.MageInt; import mage.MageObject; import mage.abilities.Ability; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; @@ -36,7 +36,7 @@ public final class VexingShusher extends CardImpl { this.toughness = new MageInt(2); // Vexing Shusher can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // {R/G}: Target spell can't be countered. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new VexingShusherCantCounterTargetEffect(), new ManaCostsImpl("{R/G}")); ability.addTarget(new TargetSpell()); diff --git a/Mage.Sets/src/mage/cards/v/VolcanicFallout.java b/Mage.Sets/src/mage/cards/v/VolcanicFallout.java index cd3e245bf21..829ef5a25de 100644 --- a/Mage.Sets/src/mage/cards/v/VolcanicFallout.java +++ b/Mage.Sets/src/mage/cards/v/VolcanicFallout.java @@ -2,7 +2,7 @@ package mage.cards.v; import java.util.UUID; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DamageEverythingEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -19,7 +19,7 @@ public final class VolcanicFallout extends CardImpl { // Volcanic Fallout can't be countered. - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); // Volcanic Fallout deals 2 damage to each creature and each player. this.getSpellAbility().addEffect(new DamageEverythingEffect(2)); } diff --git a/Mage.Sets/src/mage/cards/w/WreakHavoc.java b/Mage.Sets/src/mage/cards/w/WreakHavoc.java index ee85f28431e..ea29cbbd8a7 100644 --- a/Mage.Sets/src/mage/cards/w/WreakHavoc.java +++ b/Mage.Sets/src/mage/cards/w/WreakHavoc.java @@ -2,7 +2,7 @@ package mage.cards.w; import java.util.UUID; -import mage.abilities.common.CantBeCounteredAbility; +import mage.abilities.common.CantBeCounteredSourceAbility; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -29,7 +29,7 @@ public final class WreakHavoc extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{R}{G}"); - this.addAbility(new CantBeCounteredAbility()); + this.addAbility(new CantBeCounteredSourceAbility()); this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addTarget(new TargetPermanent(filter)); } diff --git a/Mage/src/main/java/mage/abilities/common/CantBeCounteredSourceAbility.java b/Mage/src/main/java/mage/abilities/common/CantBeCounteredSourceAbility.java new file mode 100644 index 00000000000..1d1fdaf76ba --- /dev/null +++ b/Mage/src/main/java/mage/abilities/common/CantBeCounteredSourceAbility.java @@ -0,0 +1,32 @@ + + +package mage.abilities.common; + +import mage.abilities.StaticAbility; +import mage.abilities.effects.common.CantBeCounteredSourceEffect; +import mage.constants.Zone; + +/** + * + * @author BetaSteward_at_googlemail.com + */ +public class CantBeCounteredSourceAbility extends StaticAbility { + + public CantBeCounteredSourceAbility() { + super(Zone.STACK, new CantBeCounteredSourceEffect()); + } + + public CantBeCounteredSourceAbility(CantBeCounteredSourceAbility ability) { + super(ability); + } + + @Override + public String getRule() { + return "{this} can't be countered."; + } + + @Override + public CantBeCounteredSourceAbility copy() { + return new CantBeCounteredSourceAbility(this); + } +}