diff --git a/Mage.Sets/src/mage/cards/b/BearUmbra.java b/Mage.Sets/src/mage/cards/b/BearUmbra.java
index 66a746ee6f2..d0a3fe5b28f 100644
--- a/Mage.Sets/src/mage/cards/b/BearUmbra.java
+++ b/Mage.Sets/src/mage/cards/b/BearUmbra.java
@@ -1,7 +1,5 @@
-
package mage.cards.b;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
@@ -13,33 +11,36 @@ import mage.abilities.keyword.EnchantAbility;
import mage.abilities.keyword.TotemArmorAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
-import mage.constants.*;
+import mage.constants.AttachmentType;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.SubType;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
+import java.util.UUID;
+
/**
- *
* @author jeffwadsworth
*/
public final class BearUmbra extends CardImpl {
public BearUmbra(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}{G}");
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{G}");
this.subtype.add(SubType.AURA);
-
// Enchant creature
TargetPermanent auraTarget = new TargetCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
- Ability ability = new EnchantAbility(auraTarget.getTargetName());
- this.addAbility(ability);
-
+ this.addAbility(new EnchantAbility(auraTarget.getTargetName()));
+
// Enchanted creature gets +2/+2 and has "Whenever this creature attacks, untap all lands you control."
- Ability attachedAbility = new AttacksTriggeredAbility(new UntapAllLandsControllerEffect(), false);
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield)));
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(attachedAbility, AttachmentType.AURA)));
-
+ Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2));
+ ability.addEffect(new GainAbilityAttachedEffect(new AttacksTriggeredAbility(
+ new UntapAllLandsControllerEffect(), false
+ ), AttachmentType.AURA).setText("and has \"Whenever this creature attacks, untap all lands you control.\""));
+
// Totem armor
this.addAbility(new TotemArmorAbility());
}
diff --git a/Mage.Sets/src/mage/cards/c/CyberdriveAwakener.java b/Mage.Sets/src/mage/cards/c/CyberdriveAwakener.java
index a2296452cbb..a1cfa8d872e 100644
--- a/Mage.Sets/src/mage/cards/c/CyberdriveAwakener.java
+++ b/Mage.Sets/src/mage/cards/c/CyberdriveAwakener.java
@@ -41,7 +41,7 @@ public final class CyberdriveAwakener extends CardImpl {
// Other artifact creatures you control have flying.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield,
- StaticFilters.FILTER_PERMANENTS_ARTIFACT_CREATURE
+ StaticFilters.FILTER_PERMANENTS_ARTIFACT_CREATURE, true
)));
// When Cyberdrive Awakener enters the battlefield, until end of turn, each noncreature artifact you control becomes an artifact creature with base power and toughness 4/4.
diff --git a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
index d60674eeb85..fa861bae0ab 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinRazerunners.java
@@ -44,7 +44,7 @@ public final class GoblinRazerunners extends CardImpl {
this.addAbility(ability);
// At the beginning of your end step, you may have Goblin Razerunners deal damage equal to the number of +1/+1 counters on it to target player.
- ability = new BeginningOfYourEndStepTriggeredAbility(new DamageTargetEffect(new CountersSourceCount(CounterType.P1P1)), true);
+ ability = new BeginningOfYourEndStepTriggeredAbility(new DamageTargetEffect(new CountersSourceCount(CounterType.P1P1)).setText("you may have {this} deal damage equal to the number of +1/+1 counters on it to target player or planeswalker"), true);
ability.addTarget(new TargetPlayerOrPlaneswalker());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/i/ImposterMech.java b/Mage.Sets/src/mage/cards/i/ImposterMech.java
index ccf9234b973..f48be1ad829 100644
--- a/Mage.Sets/src/mage/cards/i/ImposterMech.java
+++ b/Mage.Sets/src/mage/cards/i/ImposterMech.java
@@ -40,10 +40,11 @@ public final class ImposterMech extends CardImpl {
this.toughness = new MageInt(1);
// You may have Imposter Mech enter the battlefield as a copy of a creature an opponent controls, except its a Vehicle artifact with crew 3 and it loses all other card types.
- this.addAbility(new EntersBattlefieldAbility(new CopyPermanentEffect(
- StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE, applier
- ).setText("You may have {this} enter the battlefield as a copy of a creature an opponent controls, " +
- "except its a Vehicle artifact with crew 3 and it loses all other card types.")));
+ this.addAbility(new EntersBattlefieldAbility(
+ new CopyPermanentEffect(StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE, applier),
+ null, "You may have {this} enter the battlefield as a copy of a creature " +
+ "an opponent controls, except its a Vehicle artifact with crew 3 and it loses all other card types.", null
+ ));
// Crew 3
this.addAbility(new CrewAbility(3));
diff --git a/Mage.Sets/src/mage/cards/k/KatsumasaTheAnimator.java b/Mage.Sets/src/mage/cards/k/KatsumasaTheAnimator.java
index df4f6e83499..a4609e36b3a 100644
--- a/Mage.Sets/src/mage/cards/k/KatsumasaTheAnimator.java
+++ b/Mage.Sets/src/mage/cards/k/KatsumasaTheAnimator.java
@@ -59,7 +59,9 @@ public final class KatsumasaTheAnimator extends CardImpl {
// At the beginning of your upkeep, put a +1/+1 counter on each of up to three target noncreature artifacts.
ability = new BeginningOfUpkeepTriggeredAbility(
- new AddCountersTargetEffect(CounterType.P1P1.createInstance()), TargetController.YOU, false
+ new AddCountersTargetEffect(CounterType.P1P1.createInstance())
+ .setText("put a +1/+1 counter on each of up to three target noncreature artifacts"),
+ TargetController.YOU, false
);
ability.addTarget(new TargetPermanent(0, 3, filter2));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/m/MageSlayer.java b/Mage.Sets/src/mage/cards/m/MageSlayer.java
index 61b083e1595..9f416778e54 100644
--- a/Mage.Sets/src/mage/cards/m/MageSlayer.java
+++ b/Mage.Sets/src/mage/cards/m/MageSlayer.java
@@ -47,7 +47,7 @@ class MageSlayerEffect extends OneShotEffect {
public MageSlayerEffect() {
super(Outcome.Damage);
- staticText = "it deals damage equal to the player or planeswalker it's attacking";
+ staticText = "it deals damage equal to its power to the player or planeswalker it's attacking";
}
public MageSlayerEffect(final MageSlayerEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/o/OneWithTheKami.java b/Mage.Sets/src/mage/cards/o/OneWithTheKami.java
index b4da7cc1629..b8b699132e9 100644
--- a/Mage.Sets/src/mage/cards/o/OneWithTheKami.java
+++ b/Mage.Sets/src/mage/cards/o/OneWithTheKami.java
@@ -30,7 +30,7 @@ import java.util.UUID;
public final class OneWithTheKami extends CardImpl {
private static final FilterPermanent filter
- = new FilterControlledCreaturePermanent("{this} or another modified creature you control");
+ = new FilterControlledCreaturePermanent("enchanted creature or another modified creature you control");
static {
filter.add(ModifiedPredicate.instance);
diff --git a/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java b/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java
index 963bb2ccd04..4666bc3d435 100644
--- a/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java
+++ b/Mage.Sets/src/mage/cards/r/RishkarPeemaRenegade.java
@@ -43,7 +43,7 @@ public final class RishkarPeemaRenegade extends CardImpl {
// When Rishkar, Peema Renegade enters the battlefield, put a +1/+1 counter on each of up to two target creatures.
Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance());
- effect.setText("Put a +1/+1 counter on each of up to two target creatures");
+ effect.setText("put a +1/+1 counter on each of up to two target creatures");
Ability ability = new EntersBattlefieldTriggeredAbility(effect, false);
ability.addTarget(new TargetCreaturePermanent(0, 2));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/r/RuthlessTechnomancer.java b/Mage.Sets/src/mage/cards/r/RuthlessTechnomancer.java
index 957365f1689..e825319f923 100644
--- a/Mage.Sets/src/mage/cards/r/RuthlessTechnomancer.java
+++ b/Mage.Sets/src/mage/cards/r/RuthlessTechnomancer.java
@@ -52,8 +52,8 @@ public final class RuthlessTechnomancer extends CardImpl {
// {2}{B}, Sacrifice X artifacts: Return target creature card with power X or less from your graveyard to the battlefield. X can't be 0.
Ability ability = new SimpleActivatedAbility(
new ReturnFromGraveyardToBattlefieldTargetEffect()
- .setText("return target creature card with power X " +
- "or less from your graveyard to the battlefield"),
+ .setText("return target creature card with power X or less " +
+ "from your graveyard to the battlefield. X can't be 0"),
new ManaCostsImpl<>("{2}{B}")
);
ability.addCost(new SacrificeXTargetCost(filter, false, 1));
@@ -90,7 +90,7 @@ class RuthlessTechnomancerEffect extends OneShotEffect {
RuthlessTechnomancerEffect() {
super(Outcome.Benefit);
staticText = "you may sacrifice another creature you control. If you do, " +
- "create a number of Treasure tokens equal to that creature's power. X can't be 0";
+ "create a number of Treasure tokens equal to that creature's power";
}
private RuthlessTechnomancerEffect(final RuthlessTechnomancerEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/s/Silkguard.java b/Mage.Sets/src/mage/cards/s/Silkguard.java
index 5f95a98af5a..c22d3a855b7 100644
--- a/Mage.Sets/src/mage/cards/s/Silkguard.java
+++ b/Mage.Sets/src/mage/cards/s/Silkguard.java
@@ -26,7 +26,7 @@ import java.util.UUID;
public final class Silkguard extends CardImpl {
private static final FilterPermanent filter
- = new FilterControlledPermanent("Auras, Equipment, and modified creatures you control");
+ = new FilterControlledPermanent("Auras, Equipment, and modified creatures");
static {
filter.add(Predicates.or(
@@ -50,7 +50,7 @@ public final class Silkguard extends CardImpl {
// Auras, Equipment, and modified creatures you control gain hexproof until end of turn.
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(
HexproofAbility.getInstance(), Duration.EndOfTurn, filter
- ));
+ ).concatBy("
"));
}
private Silkguard(final Silkguard card) {
diff --git a/Mage.Sets/src/mage/cards/t/ThopterSpyNetwork.java b/Mage.Sets/src/mage/cards/t/ThopterSpyNetwork.java
index 7f3f104d419..feb59d0f8e1 100644
--- a/Mage.Sets/src/mage/cards/t/ThopterSpyNetwork.java
+++ b/Mage.Sets/src/mage/cards/t/ThopterSpyNetwork.java
@@ -76,7 +76,7 @@ class ThopterSpyNetworkUpkeepTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "At the beginning of your upkeep, if you control an artifact, create a 1/1 colorless Thopter artifact creature token with flying";
+ return "At the beginning of your upkeep, if you control an artifact, create a 1/1 colorless Thopter artifact creature token with flying.";
}
}
@@ -123,6 +123,6 @@ class ThopterSpyNetworkDamageTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "Whenever one or more artifact creatures you control deal combat damage to a player, draw a card";
+ return "Whenever one or more artifact creatures you control deal combat damage to a player, draw a card.";
}
}
diff --git a/Mage.Sets/src/mage/cards/w/WhiptongueHydra.java b/Mage.Sets/src/mage/cards/w/WhiptongueHydra.java
index a37a3aaecef..f42b3b81156 100644
--- a/Mage.Sets/src/mage/cards/w/WhiptongueHydra.java
+++ b/Mage.Sets/src/mage/cards/w/WhiptongueHydra.java
@@ -60,7 +60,7 @@ class WhiptongueHydraEffect extends OneShotEffect {
public WhiptongueHydraEffect() {
super(Outcome.DestroyPermanent);
this.staticText = "destroy all creatures with flying. "
- + "Put a +1/+1 counter on {this} for each permanent destroyed this way";
+ + "Put a +1/+1 counter on {this} for each creature destroyed this way";
}
public WhiptongueHydraEffect(final WhiptongueHydraEffect effect) {
diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
index 512b0cdab8c..d54062e0ada 100644
--- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
+++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
@@ -59,7 +59,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
- private static final String FULL_ABILITIES_CHECK_SET_CODE = "NEO"; // check all abilities and output cards with wrong abilities texts;
+ private static final String FULL_ABILITIES_CHECK_SET_CODE = "NEC"; // 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/keyword/CrewAbility.java b/Mage/src/main/java/mage/abilities/keyword/CrewAbility.java
index 913a6fbbe19..ad4f98a5730 100644
--- a/Mage/src/main/java/mage/abilities/keyword/CrewAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/CrewAbility.java
@@ -61,7 +61,7 @@ public class CrewAbility extends SimpleActivatedAbility {
@Override
public String getRule() {
- return "Crew " + value + " (Tap any number of creatures you control with total power "
+ return "crew " + value + " (Tap any number of creatures you control with total power "
+ value + " or more: This Vehicle becomes an artifact creature until end of turn.)";
}
}