diff --git a/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java b/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java index 0a66219f2c..112a06f0fe 100644 --- a/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java +++ b/Mage.Sets/src/mage/cards/c/CreamOfTheCrop.java @@ -36,7 +36,7 @@ public final class CreamOfTheCrop extends CardImpl { + "you may look at the top X cards of your library, where X " + "is that creature's power. If you do, put one of those cards " + "on top of your library and the rest on the bottom of " - + "your library in any order")); + + "your library in any order.")); } private CreamOfTheCrop(final CreamOfTheCrop card) { diff --git a/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java b/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java index acbece3d2f..67a4940ef1 100644 --- a/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java +++ b/Mage.Sets/src/mage/cards/d/DoorOfDestinies.java @@ -85,7 +85,7 @@ class AddCounterAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever you cast a spell of the chosen type, put a charge counter on {this}"; + return "Whenever you cast a spell of the chosen type, put a charge counter on {this}."; } } diff --git a/Mage.Sets/src/mage/cards/e/EverbarkShaman.java b/Mage.Sets/src/mage/cards/e/EverbarkShaman.java index 8a1533f8cf..a7630c31fe 100644 --- a/Mage.Sets/src/mage/cards/e/EverbarkShaman.java +++ b/Mage.Sets/src/mage/cards/e/EverbarkShaman.java @@ -24,7 +24,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class EverbarkShaman extends CardImpl { - private static final FilterCard filterForest = new FilterCard("Forest"); + private static final FilterCard filterForest = new FilterCard("Forest cards"); private static final FilterCard filterTreefolk = new FilterCard("Treefolk card from your graveyard"); static { @@ -41,7 +41,7 @@ public final class EverbarkShaman extends CardImpl { this.toughness = new MageInt(5); // {T}, Exile a Treefolk card from your graveyard: Search your library for up to two Forest cards and put them onto the battlefield tapped. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(2, filterForest), true, Outcome.PutLandInPlay), new TapSourceCost()); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, filterForest), true, Outcome.PutLandInPlay), new TapSourceCost()); ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filterTreefolk))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FendeepSummoner.java b/Mage.Sets/src/mage/cards/f/FendeepSummoner.java index d74e4f91e0..6189ac7307 100644 --- a/Mage.Sets/src/mage/cards/f/FendeepSummoner.java +++ b/Mage.Sets/src/mage/cards/f/FendeepSummoner.java @@ -1,4 +1,3 @@ - package mage.cards.f; import mage.MageInt; @@ -11,10 +10,9 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; +import mage.filter.FilterPermanent; import mage.game.permanent.token.custom.CreatureToken; -import mage.target.common.TargetLandPermanent; +import mage.target.TargetPermanent; import java.util.UUID; @@ -23,11 +21,7 @@ import java.util.UUID; */ public final class FendeepSummoner extends CardImpl { - static final FilterLandPermanent filter = new FilterLandPermanent("Swamp"); - - static { - filter.add(SubType.SWAMP.getPredicate()); - } + static final FilterPermanent filter = new FilterPermanent(SubType.SWAMP, "Swamps"); public FendeepSummoner(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); @@ -38,10 +32,11 @@ public final class FendeepSummoner extends CardImpl { this.toughness = new MageInt(5); // {T}: Up to two target Swamps each become 3/5 Treefolk Warrior creatures in addition to their other types until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect( - new CreatureToken(3, 5, "3/5 Treefolk Warrior", SubType.TREEFOLK, SubType.WARRIOR), - false, false, Duration.EndOfTurn), new TapSourceCost()); - ability.addTarget(new TargetLandPermanent(0, 2, filter, false)); + Ability ability = new SimpleActivatedAbility(new BecomesCreatureTargetEffect(new CreatureToken( + 3, 5, "3/5 Treefolk Warrior creatures " + + "in addition to their other types", SubType.TREEFOLK, SubType.WARRIOR + ), false, false, Duration.EndOfTurn), new TapSourceCost()); + ability.addTarget(new TargetPermanent(0, 2, filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/Festercreep.java b/Mage.Sets/src/mage/cards/f/Festercreep.java index 2d423ee32f..355a5375f9 100644 --- a/Mage.Sets/src/mage/cards/f/Festercreep.java +++ b/Mage.Sets/src/mage/cards/f/Festercreep.java @@ -1,7 +1,6 @@ package mage.cards.f; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldAbility; @@ -13,18 +12,25 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.counters.CounterType; -import mage.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.AnotherPredicate; + +import java.util.UUID; /** - * * @author Loki */ public final class Festercreep extends CardImpl { + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all other creatures"); + + static { + filter.add(AnotherPredicate.instance); + } + public Festercreep(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}"); this.subtype.add(SubType.ELEMENTAL); @@ -33,10 +39,12 @@ public final class Festercreep extends CardImpl { this.toughness = new MageInt(0); // Festercreep enters the battlefield with a +1/+1 counter on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)))); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it")); // {1}{B}, Remove a +1/+1 counter from Festercreep: All other creatures get -1/-1 until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(-1, -1, Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, true), new ManaCostsImpl("{1}{B}")); + Ability ability = new SimpleActivatedAbility(new BoostAllEffect( + -1, -1, Duration.EndOfTurn, filter, false + ), new ManaCostsImpl<>("{1}{B}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/Floodchaser.java b/Mage.Sets/src/mage/cards/f/Floodchaser.java index 773fccb7ee..7155cc4dd5 100644 --- a/Mage.Sets/src/mage/cards/f/Floodchaser.java +++ b/Mage.Sets/src/mage/cards/f/Floodchaser.java @@ -36,7 +36,7 @@ public final class Floodchaser extends CardImpl { this.toughness = new MageInt(0); // Floodchaser enters the battlefield with six +1/+1 counters on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "{this} enters the battlefield with six +1/+1 counters on it")); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(6)), "with six +1/+1 counters on it")); // Floodchaser can't attack unless defending player controls an Island. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND,"an Island")))); diff --git a/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java b/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java index 2fb280e358..8f64e8251e 100644 --- a/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java +++ b/Mage.Sets/src/mage/cards/g/GiltLeafArchdruid.java @@ -1,7 +1,5 @@ - package mage.cards.g; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -13,27 +11,35 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SubType; import mage.filter.FilterSpell; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; import mage.target.TargetPlayer; -import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetControlledPermanent; import mage.target.targetpointer.FixedTarget; +import java.util.UUID; + /** - * * @author Plopman */ public final class GiltLeafArchdruid extends CardImpl { - private static final FilterSpell filterSpell = new FilterSpell("a Druid spell"); + private static final FilterSpell filter = new FilterSpell("a Druid spell"); + private static final FilterControlledPermanent filter2 + = new FilterControlledPermanent(SubType.DRUID, "untapped Druids you control"); static { - filterSpell.add(SubType.DRUID.getPredicate()); + filter.add(SubType.DRUID.getPredicate()); + filter2.add(TappedPredicate.UNTAPPED); } public GiltLeafArchdruid(UUID ownerId, CardSetInfo setInfo) { @@ -45,10 +51,15 @@ public final class GiltLeafArchdruid extends CardImpl { this.toughness = new MageInt(3); // Whenever you cast a Druid spell, you may draw a card. - this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1), filterSpell, true)); + this.addAbility(new SpellCastControllerTriggeredAbility( + new DrawCardSourceControllerEffect(1), filter, true + )); // Tap seven untapped Druids you control: Gain control of all lands target player controls. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GiltLeafArchdruidEffect(), new TapTargetCost(new TargetControlledCreaturePermanent(7, 7, new FilterControlledCreaturePermanent(SubType.DRUID, "Druids you control"), true))); + Ability ability = new SimpleActivatedAbility( + new GiltLeafArchdruidEffect(), + new TapTargetCost(new TargetControlledPermanent(7, filter2)) + ); ability.addTarget(new TargetPlayer()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GrimoireThief.java b/Mage.Sets/src/mage/cards/g/GrimoireThief.java index ac8ddc947e..04eaba460a 100644 --- a/Mage.Sets/src/mage/cards/g/GrimoireThief.java +++ b/Mage.Sets/src/mage/cards/g/GrimoireThief.java @@ -120,7 +120,7 @@ class GrimoireThiefLookEffect extends AsThoughEffectImpl { public GrimoireThiefLookEffect() { super(AsThoughEffectType.LOOK_AT_FACE_DOWN, Duration.EndOfGame, Outcome.Benefit); - staticText = "You may look at the cards exiled with {this}"; + staticText = "You may look at cards exiled with {this}"; } public GrimoireThiefLookEffect(final GrimoireThiefLookEffect effect) { diff --git a/Mage.Sets/src/mage/cards/k/KinsbaileBorderguard.java b/Mage.Sets/src/mage/cards/k/KinsbaileBorderguard.java index 9cedbc1ba6..ac33842d1e 100644 --- a/Mage.Sets/src/mage/cards/k/KinsbaileBorderguard.java +++ b/Mage.Sets/src/mage/cards/k/KinsbaileBorderguard.java @@ -79,7 +79,7 @@ class AllCountersCount implements DynamicValue { @Override public String getMessage() { - return "for each counter on it"; + return "counter on it"; } @Override diff --git a/Mage.Sets/src/mage/cards/p/PrimalBeyond.java b/Mage.Sets/src/mage/cards/p/PrimalBeyond.java index 6df864fd9f..4154f90de1 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalBeyond.java +++ b/Mage.Sets/src/mage/cards/p/PrimalBeyond.java @@ -28,7 +28,7 @@ import mage.target.common.TargetCardInHand; */ public final class PrimalBeyond extends CardImpl { - private static final FilterCard filter = new FilterCard("a Elemental card from your hand"); + private static final FilterCard filter = new FilterCard("an Elemental card from your hand"); static { filter.add(SubType.ELEMENTAL.getPredicate()); @@ -38,7 +38,7 @@ public final class PrimalBeyond extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped. - this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Elemental card from your hand. If you don't, {this} enters the battlefield tapped")); + this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal an Elemental card from your hand. If you don't, {this} enters the battlefield tapped")); // {tap}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {tap}: Add one mana of any color. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental. @@ -65,7 +65,7 @@ class PrimalBeyondManaBuilder extends ConditionalManaBuilder { @Override public String getRule() { - return "Spend this mana only to cast Elemental spells or activate abilities of Elementals"; + return "Spend this mana only to cast an Elemental spell or activate an ability of an Elemental"; } } @@ -73,7 +73,7 @@ class PrimalBeyondConditionalMana extends ConditionalMana { public PrimalBeyondConditionalMana(Mana mana) { super(mana); - this.staticText = "Spend this mana only to cast Elemental spells or activate abilities of Elementals"; + this.staticText = "Spend this mana only to cast an Elemental spell or activate an ability of an Elemental"; addCondition(new PrimalBeyondManaCondition()); } } diff --git a/Mage.Sets/src/mage/cards/s/Scapeshift.java b/Mage.Sets/src/mage/cards/s/Scapeshift.java index 350f1ab5a3..f122727553 100644 --- a/Mage.Sets/src/mage/cards/s/Scapeshift.java +++ b/Mage.Sets/src/mage/cards/s/Scapeshift.java @@ -45,7 +45,7 @@ class ScapeshiftEffect extends OneShotEffect { public ScapeshiftEffect() { super(Outcome.Neutral); - staticText = "Sacrifice any number of lands. Search your library for that many land cards, put them onto the battlefield tapped, then shuffle"; + staticText = "Sacrifice any number of lands. Search your library for up to that many land cards, put them onto the battlefield tapped, then shuffle"; } public ScapeshiftEffect(final ScapeshiftEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SeethingPathblazer.java b/Mage.Sets/src/mage/cards/s/SeethingPathblazer.java index e1ffa05c12..93e6dd8d95 100644 --- a/Mage.Sets/src/mage/cards/s/SeethingPathblazer.java +++ b/Mage.Sets/src/mage/cards/s/SeethingPathblazer.java @@ -1,7 +1,5 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -14,31 +12,32 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.SubType; -import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; -import mage.target.common.TargetControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; /** - * * @author Loki */ public final class SeethingPathblazer extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Elemental"); - - static { - filter.add(SubType.ELEMENTAL.getPredicate()); - } + private static final FilterControlledPermanent filter = new FilterControlledCreaturePermanent(SubType.ELEMENTAL, "Elemental"); public SeethingPathblazer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add(SubType.ELEMENTAL); this.subtype.add(SubType.WARRIOR); this.power = new MageInt(2); this.toughness = new MageInt(2); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false))); - ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + Ability ability = new SimpleActivatedAbility(new BoostSourceEffect( + 2, 0, Duration.EndOfTurn + ).setText("{this} gets +2/+0"), new SacrificeTargetCost(new TargetControlledPermanent(filter))); + ability.addEffect(new GainAbilitySourceEffect( + FirstStrikeAbility.getInstance(), Duration.EndOfTurn + ).setText("and gains first strike until end of turn")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/Shinewend.java b/Mage.Sets/src/mage/cards/s/Shinewend.java index 3891cc5d50..cee7c93558 100644 --- a/Mage.Sets/src/mage/cards/s/Shinewend.java +++ b/Mage.Sets/src/mage/cards/s/Shinewend.java @@ -36,10 +36,10 @@ public final class Shinewend extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Shinewend enters the battlefield with a +1/+1 counter on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)))); - + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), "with a +1/+1 counter on it")); + // {1}{W}, Remove a +1/+1 counter from Shinewend: Destroy target enchantment. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ManaCostsImpl("{1}{W}")); + Ability ability = new SimpleActivatedAbility( new DestroyTargetEffect(), new ManaCostsImpl<>("{1}{W}")); ability.addCost(new RemoveCountersSourceCost(CounterType.P1P1.createInstance(1))); ability.addTarget(new TargetEnchantmentPermanent()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/Stenchskipper.java b/Mage.Sets/src/mage/cards/s/Stenchskipper.java index 882c78f60e..2dd8118e19 100644 --- a/Mage.Sets/src/mage/cards/s/Stenchskipper.java +++ b/Mage.Sets/src/mage/cards/s/Stenchskipper.java @@ -1,9 +1,8 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.effects.common.SacrificeSourceEffect; import mage.abilities.keyword.FlyingAbility; @@ -12,14 +11,21 @@ import mage.cards.CardSetInfo; import mage.constants.*; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** - * * @author emerald000 */ public final class Stenchskipper extends CardImpl { + private static final Condition condition = new PermanentsOnTheBattlefieldCondition( + new FilterControlledCreaturePermanent( + SubType.GOBLIN, "if you control no Goblins" + ), ComparisonType.FEWER_THAN, 1 + ); + public Stenchskipper(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(6); this.toughness = new MageInt(5); @@ -29,14 +35,9 @@ public final class Stenchskipper extends CardImpl { // At the beginning of the end step, if you control no Goblins, sacrifice Stenchskipper. this.addAbility(new BeginningOfEndStepTriggeredAbility( - Zone.BATTLEFIELD, - new SacrificeSourceEffect(), - TargetController.ANY, - new PermanentsOnTheBattlefieldCondition( - new FilterControlledCreaturePermanent(SubType.GOBLIN, "if you control no Goblins"), - ComparisonType.FEWER_THAN, - 1), - false)); + Zone.BATTLEFIELD, new SacrificeSourceEffect(), + TargetController.NEXT, condition, false + )); } private Stenchskipper(final Stenchskipper card) { diff --git a/Mage.Sets/src/mage/cards/w/WaterspoutWeavers.java b/Mage.Sets/src/mage/cards/w/WaterspoutWeavers.java index c7443a563d..2f626530d2 100644 --- a/Mage.Sets/src/mage/cards/w/WaterspoutWeavers.java +++ b/Mage.Sets/src/mage/cards/w/WaterspoutWeavers.java @@ -1,7 +1,5 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.abilityword.KinshipAbility; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; @@ -9,18 +7,19 @@ import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.filter.common.FilterCreaturePermanent; +import mage.constants.SubType; +import mage.filter.StaticFilters; + +import java.util.UUID; /** - * * @author LevelX2 */ public final class WaterspoutWeavers extends CardImpl { public WaterspoutWeavers(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.WIZARD); @@ -29,7 +28,10 @@ public final class WaterspoutWeavers extends CardImpl { // Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Waterspout Weavers, you may reveal it. // If you do, each creature you control gains flying until end of turn. - this.addAbility(new KinshipAbility(new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent()))); + this.addAbility(new KinshipAbility(new GainAbilityControlledEffect( + FlyingAbility.getInstance(), Duration.EndOfTurn, + StaticFilters.FILTER_PERMANENT_CREATURE + ).setText("each creature you control gains flying until end of turn"))); } private WaterspoutWeavers(final WaterspoutWeavers card) { diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index fb64a2ab65..21a22c7543 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -62,7 +62,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "SHM"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "MOR"; // check all abilities and output cards with wrong abilities texts; private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages diff --git a/Mage/src/main/java/mage/abilities/condition/common/ProwlCostWasPaidCondition.java b/Mage/src/main/java/mage/abilities/condition/common/ProwlCostWasPaidCondition.java index e280ee7ef9..9060d68151 100644 --- a/Mage/src/main/java/mage/abilities/condition/common/ProwlCostWasPaidCondition.java +++ b/Mage/src/main/java/mage/abilities/condition/common/ProwlCostWasPaidCondition.java @@ -32,7 +32,7 @@ public enum ProwlCostWasPaidCondition implements Condition { @Override public String toString() { - return "{this}'s prowl cost was paid"; + return "this spell's prowl cost was paid"; } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureAllEffect.java index 041d14fe3e..fdcbd7e4d4 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CanBlockAdditionalCreatureAllEffect.java @@ -13,7 +13,6 @@ import mage.game.permanent.Permanent; import mage.util.CardUtil; /** - * * @author emerald000 */ @@ -47,8 +46,7 @@ public class CanBlockAdditionalCreatureAllEffect extends ContinuousEffectImpl { // maxBlocks = 0 equals to "can block any number of creatures" if (amount > 0) { permanent.setMaxBlocks(permanent.getMaxBlocks() + amount); - } - else { + } else { permanent.setMaxBlocks(0); } } @@ -64,12 +62,16 @@ public class CanBlockAdditionalCreatureAllEffect extends ContinuousEffectImpl { private String setText() { StringBuilder sb = new StringBuilder(filter.getMessage()); sb.append(" can block "); - switch(amount) { + switch (amount) { case 0: sb.append("any number of creatures"); break; + case 1: + sb.append("an additional creature each combat"); + break; default: - sb.append(CardUtil.numberToText(amount, "an")).append(" additional creature").append(amount > 1 ? "s" : ""); + sb.append(CardUtil.numberToText(amount)); + sb.append(" additional creatures"); } return sb.toString(); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java index 0e200bb74c..61249801e7 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesCreatureTargetEffect.java @@ -171,7 +171,7 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl { if (loseAllAbilities) { sb.append(" lose all their abilities and "); } - sb.append(" each become "); + sb.append(" each become "); } else { sb.append("target ").append(target.getTargetName()); if (loseAllAbilities && !keepAbilities) {