diff --git a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
index cbf814751bb..a4705db82e3 100644
--- a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
+++ b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java
@@ -30,14 +30,13 @@ package mage.sets.alliances;
import java.util.UUID;
import mage.Mana;
import mage.abilities.Ability;
-import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.EnterBattlefieldPayCostOrPutGraveyardEffect;
-import mage.abilities.effects.common.LookLibraryMayPutToBottomEffect;
+import mage.abilities.effects.keyword.ScryEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -70,13 +69,12 @@ public class SoldeviExcavations extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter)))));
// {tap}: Add {1}{U} to your mana pool.
- this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1,0 ), new TapSourceCost()));
- // {1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryMayPutToBottomEffect(), new GenericManaCost(1));
+ this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1, 0), new TapSourceCost()));
+
+ // {1}, {tap}: Scry 1.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
-
-
}
public SoldeviExcavations(final SoldeviExcavations card) {
diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelPendant.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelPendant.java
index c6bb0a5889c..f3e93931423 100644
--- a/Mage.Sets/src/mage/sets/darksteel/DarksteelPendant.java
+++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelPendant.java
@@ -32,7 +32,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
-import mage.abilities.effects.common.LookLibraryMayPutToBottomEffect;
+import mage.abilities.effects.keyword.ScryEffect;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -51,8 +51,8 @@ public class DarksteelPendant extends CardImpl {
// Darksteel Pendant is indestructible.
this.addAbility(IndestructibleAbility.getInstance());
- // {1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LookLibraryMayPutToBottomEffect(), new GenericManaCost(1));
+ // {1}, {tap}: Scry 1.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/gatecrash/BiomassMutation.java b/Mage.Sets/src/mage/sets/gatecrash/BiomassMutation.java
index 434c10e426b..051d2268d04 100644
--- a/Mage.Sets/src/mage/sets/gatecrash/BiomassMutation.java
+++ b/Mage.Sets/src/mage/sets/gatecrash/BiomassMutation.java
@@ -28,14 +28,13 @@
package mage.sets.gatecrash;
import java.util.UUID;
-
-import mage.constants.CardType;
-import mage.constants.Rarity;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.ManacostVariableValue;
import mage.abilities.effects.common.continuous.SetPowerToughnessAllEffect;
import mage.cards.CardImpl;
+import mage.constants.CardType;
import mage.constants.Duration;
+import mage.constants.Rarity;
import mage.filter.common.FilterControlledCreaturePermanent;
/**
@@ -49,7 +48,7 @@ public class BiomassMutation extends CardImpl {
this.expansionSetCode = "GTC";
- // Creatures you control become X/X until end of turn.
+ // Creatures you control have base power and toughness X/X until end of turn.
DynamicValue variableMana = new ManacostVariableValue();
this.getSpellAbility().addEffect(new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control"), true));
}
diff --git a/Mage.Sets/src/mage/sets/invasion/Opt.java b/Mage.Sets/src/mage/sets/invasion/Opt.java
index 00a8fe58780..132c5a085a8 100644
--- a/Mage.Sets/src/mage/sets/invasion/Opt.java
+++ b/Mage.Sets/src/mage/sets/invasion/Opt.java
@@ -29,7 +29,7 @@ package mage.sets.invasion;
import java.util.UUID;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
-import mage.abilities.effects.common.LookLibraryMayPutToBottomEffect;
+import mage.abilities.effects.keyword.ScryEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
@@ -44,9 +44,8 @@ public class Opt extends CardImpl {
super(ownerId, 64, "Opt", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{U}");
this.expansionSetCode = "INV";
-
- // Look at the top card of your library. You may put that card on the bottom of your library.
- this.getSpellAbility().addEffect(new LookLibraryMayPutToBottomEffect());
+ // Scry 1.
+ this.getSpellAbility().addEffect(new ScryEffect(1));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
diff --git a/Mage.Sets/src/mage/sets/magic2014/DarkProphecy.java b/Mage.Sets/src/mage/sets/magic2014/DarkProphecy.java
index 416208588f3..fcd3c1e9aa5 100644
--- a/Mage.Sets/src/mage/sets/magic2014/DarkProphecy.java
+++ b/Mage.Sets/src/mage/sets/magic2014/DarkProphecy.java
@@ -30,6 +30,7 @@ package mage.sets.magic2014;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.DiesCreatureTriggeredAbility;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
@@ -55,9 +56,13 @@ public class DarkProphecy extends CardImpl {
this.expansionSetCode = "M14";
- // Whenever a creature you control dies, you draw a card and lose 1 life.
- Ability ability = new DiesCreatureTriggeredAbility(new DrawCardSourceControllerEffect(1), false, filter);
- ability.addEffect(new LoseLifeSourceControllerEffect(1));
+ // Whenever a creature you control dies, you draw a card and you lose 1 life.
+ Effect effect = new DrawCardSourceControllerEffect(1);
+ effect.setText("you draw a card");
+ Ability ability = new DiesCreatureTriggeredAbility(effect, false, filter);
+ effect = new LoseLifeSourceControllerEffect(1);
+ effect.setText("and you lose 1 life");
+ ability.addEffect(effect);
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/modernmasters/TestOfFaith.java b/Mage.Sets/src/mage/sets/modernmasters/TestOfFaith.java
index 4baaf12bab9..40a9ea2a357 100644
--- a/Mage.Sets/src/mage/sets/modernmasters/TestOfFaith.java
+++ b/Mage.Sets/src/mage/sets/modernmasters/TestOfFaith.java
@@ -50,11 +50,9 @@ public class TestOfFaith extends CardImpl {
super(ownerId, 33, "Test of Faith", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{W}");
this.expansionSetCode = "MMA";
-
- // Prevent the next 3 damage that would be dealt to target creature this turn, and put a +1/+1 counter on that creature for each 1 damage prevented this way.
+ // Prevent the next 3 damage that would be dealt to target creature this turn. For each 1 damage prevented this way, put a +1/+1 counter on that creature.
this.getSpellAbility().addEffect(new TestOfFaithPreventDamageTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
-
}
public TestOfFaith(final TestOfFaith card) {
@@ -73,7 +71,7 @@ class TestOfFaithPreventDamageTargetEffect extends PreventionEffectImpl {
public TestOfFaithPreventDamageTargetEffect(Duration duration) {
super(duration);
- staticText = "Prevent the next 3 damage that would be dealt to target creature this turn, and put a +1/+1 counter on that creature for each 1 damage prevented this way";
+ staticText = "Prevent the next 3 damage that would be dealt to target creature this turn. For each 1 damage prevented this way, put a +1/+1 counter on that creature";
}
public TestOfFaithPreventDamageTargetEffect(final TestOfFaithPreventDamageTargetEffect effect) {
diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/ShapeStealer.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/ShapeStealer.java
index f0384b087dd..51cddc6978c 100644
--- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/ShapeStealer.java
+++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/ShapeStealer.java
@@ -56,13 +56,13 @@ public class ShapeStealer extends CardImpl {
this.subtype.add("Spirit");
this.power = new MageInt(1);
this.toughness = new MageInt(1);
-
// This ability triggers once for each creature blocked by or blocking Shape Stealer.
// If multiple creatures block it, Shape Stealer's power and toughness will change for
// each one in succession. The first trigger put on the stack will be the last to resolve,
// so that will set Shape Stealer's final power and toughness.
- // Whenever Shape Stealer blocks or becomes blocked by a creature, change Shape Stealer's power and toughness to that creature's power and toughness until end of turn.
+
+ // Whenever Shape Stealer blocks or becomes blocked by a creature, change Shape Stealer's base power and toughness to that creature's power and toughness until end of turn.
this.addAbility(new BlocksOrBecomesBlockedByCreatureTriggeredAbility(new ShapeStealerEffect(), false));
}
@@ -80,7 +80,7 @@ class ShapeStealerEffect extends OneShotEffect {
public ShapeStealerEffect() {
super(Outcome.Detriment);
- this.staticText = "change {this}'s power and toughness to that creature's power and toughness until end of turn";
+ this.staticText = "change {this}'s base power and toughness to that creature's power and toughness until end of turn";
}
public ShapeStealerEffect(final ShapeStealerEffect effect) {
diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoriokReplica.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoriokReplica.java
index d8919a383a6..2c94a0706da 100644
--- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MoriokReplica.java
+++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MoriokReplica.java
@@ -29,17 +29,18 @@
package mage.sets.scarsofmirrodin;
import java.util.UUID;
-import mage.constants.CardType;
-import mage.constants.Rarity;
-import mage.constants.Zone;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
/**
*
@@ -53,9 +54,15 @@ public class MoriokReplica extends CardImpl {
this.subtype.add("Warrior");
this.power = new MageInt(2);
this.toughness = new MageInt(2);
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new ManaCostsImpl("{1}{B}"));
+
+ // {1}{B}, Sacrifice Moriok Replica: You draw two cards and you lose 2 life.
+ Effect effect = new DrawCardSourceControllerEffect(2);
+ effect.setText("You draw two cards");
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{B}"));
+ effect = new LoseLifeSourceControllerEffect(2);
+ effect.setText("and you lose 2 life");
ability.addCost(new SacrificeSourceCost());
- ability.addEffect(new LoseLifeSourceControllerEffect(2));
+ ability.addEffect(effect);
this.addAbility(ability);
}
diff --git a/Mage/src/mage/abilities/keyword/BushidoAbility.java b/Mage/src/mage/abilities/keyword/BushidoAbility.java
index 30b239ece1a..3d51c036986 100644
--- a/Mage/src/mage/abilities/keyword/BushidoAbility.java
+++ b/Mage/src/mage/abilities/keyword/BushidoAbility.java
@@ -55,7 +55,7 @@ public class BushidoAbility extends BlocksOrBecomesBlockedTriggeredAbility {
}
static String getReminder(String xValue) {
- return " (When this blocks or becomes blocked, it gets +" + xValue+ "/+" + xValue + " until end of turn.)";
+ return " (Whenever this creature blocks or becomes blocked, it gets +" + xValue+ "/+" + xValue + " until end of turn.)";
}
public BushidoAbility(final BushidoAbility ability) {
diff --git a/Mage/src/mage/abilities/keyword/ChangelingAbility.java b/Mage/src/mage/abilities/keyword/ChangelingAbility.java
index f36020d1bf6..94fb1debb65 100644
--- a/Mage/src/mage/abilities/keyword/ChangelingAbility.java
+++ b/Mage/src/mage/abilities/keyword/ChangelingAbility.java
@@ -29,9 +29,9 @@
package mage.abilities.keyword;
import java.io.ObjectStreamException;
-import mage.constants.Zone;
import mage.abilities.MageSingleton;
import mage.abilities.StaticAbility;
+import mage.constants.Zone;
/**
@@ -61,7 +61,7 @@ public class ChangelingAbility extends StaticAbility implements MageSingleton {
@Override
public String getRule() {
- return "Changeling (This card is every creature type at all times.)";
+ return "Changeling (This card is every creature type.)";
}
@Override
diff --git a/Mage/src/mage/abilities/keyword/ProvokeAbility.java b/Mage/src/mage/abilities/keyword/ProvokeAbility.java
index 595d85a4a49..94b4c53f65d 100644
--- a/Mage/src/mage/abilities/keyword/ProvokeAbility.java
+++ b/Mage/src/mage/abilities/keyword/ProvokeAbility.java
@@ -55,7 +55,7 @@ import mage.target.common.TargetCreaturePermanent;
public class ProvokeAbility extends AttacksTriggeredAbility {
public ProvokeAbility() {
- super(new UntapTargetEffect(), true, "Provoke (When this attacks, you may have target creature defending player controls untap and block it if able.)");
+ super(new UntapTargetEffect(), true, "Provoke (Whenever this attacks, you may have target creature defending player controls untap and block it if able.)");
this.addEffect(new ProvokeRequirementEffect());
}
diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt
index c0b550a7c16..66cd2ae3041 100644
--- a/Utils/mtg-cards-data.txt
+++ b/Utils/mtg-cards-data.txt
@@ -12513,7 +12513,7 @@ Override|Mirrodin|45|C|{2}{U}|Instant|||Counter target spell unless its controll
Psychic Membrane|Mirrodin|46|U|{2}{U}|Creature - Wall|0|3|Defender (This creature can't attack.)$Whenever Psychic Membrane blocks, you may draw a card.|
Quicksilver Elemental|Mirrodin|47|R|{3}{U}{U}|Creature - Elemental|3|4|{U}: Quicksilver Elemental gains all activated abilities of target creature until end of turn. (If any of the abilities use that creature's name, use this creature's name instead.)$You may spend blue mana as though it were mana of any color to pay the activation costs of Quicksilver Elemental's abilities.|
Regress|Mirrodin|48|C|{2}{U}|Instant|||Return target permanent to its owner's hand.|
-Shared Fate|Mirrodin|49|R|{4}{U}|Enchantment|||If a player would draw a card, that player exiles the top card of an opponent's library face down instead.$Each player may look at and play cards he or she exiled with Shared Fate.|
+Shared Fate|Mirrodin|49|R|{4}{U}|Enchantment|||If a player would draw a card, that player exiles the top card of one of his or her opponents' libraries face down instead.$Each player may look at and play cards he or she exiled with Shared Fate.|
Auriok Transfixer|Mirrodin|5|C|{W}|Creature - Human Scout|1|1|{W}, {tap}: Tap target artifact.|
Slith Strider|Mirrodin|50|U|{1}{U}{U}|Creature - Slith|1|1|Whenever Slith Strider becomes blocked, draw a card.$Whenever Slith Strider deals combat damage to a player, put a +1/+1 counter on it.|
Somber Hoverguard|Mirrodin|51|C|{5}{U}|Creature - Drone|3|2|Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)$Flying|
@@ -15733,7 +15733,7 @@ Zephyr Spirit|Ravnica: City of Guilds|76|C|{5}{U}|Creature - Spirit|0|6|When Zep
Blood Funnel|Ravnica: City of Guilds|77|R|{1}{B}|Enchantment|||Noncreature spells you cast cost {2} less to cast.$Whenever you cast a noncreature spell, counter that spell unless you sacrifice a creature.|
Brainspoil|Ravnica: City of Guilds|78|C|{3}{B}{B}|Sorcery|||Destroy target creature that isn't enchanted. It can't be regenerated.$Transmute {1}{B}{B} ({1}{B}{B}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery.)|
Carrion Howler|Ravnica: City of Guilds|79|U|{3}{B}|Creature - Zombie Wolf|2|2|Pay 1 life: Carrion Howler gets +2/-1 until end of turn.|
-Concerted Effort|Ravnica: City of Guilds|8|R|{2}{W}{W}|Enchantment|||At the beginning of each upkeep, all creatures you control gain flying until end of turn if a creature you control has flying. The same is true for fear, first strike, double strike, landwalk, protection, trample, and vigilance.|
+Concerted Effort|Ravnica: City of Guilds|8|R|{2}{W}{W}|Enchantment|||At the beginning of each upkeep, creatures you control gain flying until end of turn if a creature you control has flying. The same is true for fear, first strike, double strike, landwalk, protection, trample, and vigilance.|
Clinging Darkness|Ravnica: City of Guilds|80|C|{1}{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets -4/-1.|
Dark Confidant|Ravnica: City of Guilds|81|R|{1}{B}|Creature - Human Wizard|2|1|At the beginning of your upkeep, reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost.|
Darkblast|Ravnica: City of Guilds|82|U|{B}|Instant|||Target creature gets -1/-1 until end of turn.$Dredge 3 (If you would draw a card, instead you may put exactly three cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.)|