replaced apostrophes

This commit is contained in:
Evan Kranzler 2018-06-06 22:39:16 -04:00
parent 1ed85cef4d
commit c4a0d9f916
165 changed files with 286 additions and 286 deletions

View file

@ -49,7 +49,7 @@ public final class Aetherspouts extends CardImpl {
of their library. The active player (the player whose turn it is) makes all of of their library. The active player (the player whose turn it is) makes all of
their choices first, followed by each other player in turn order. their choices first, followed by each other player in turn order.
7/18/2014 If an effect puts two or more cards on the top or bottom of a library at the same time, 7/18/2014 If an effect puts two or more cards on the top or bottom of a library at the same time,
the owner of those cards may arrange them in any order. That librarys owner doesnt reveal the owner of those cards may arrange them in any order. That library's owner doesn't reveal
the order in which the cards go into their library. the order in which the cards go into their library.
*/ */
class AetherspoutsEffect extends OneShotEffect { class AetherspoutsEffect extends OneShotEffect {

View file

@ -45,7 +45,7 @@ public final class AngrathMinotaurPirate extends CardImpl {
Effects effects1 = new Effects(); Effects effects1 = new Effects();
effects1.add(new DamageTargetEffect(1)); effects1.add(new DamageTargetEffect(1));
effects1.add(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent()) effects1.add(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent())
.setText("and each creature that player or that planeswalkers controller controls") .setText("and each creature that player or that planeswalker's controller controls")
); );
LoyaltyAbility ability1 = new LoyaltyAbility(effects1, +2); LoyaltyAbility ability1 = new LoyaltyAbility(effects1, +2);
ability1.addTarget(new TargetOpponentOrPlaneswalker()); ability1.addTarget(new TargetOpponentOrPlaneswalker());

View file

@ -53,7 +53,7 @@ public final class AntiMagicAura extends CardImpl {
} }
} }
// 9/25/2006 ruling: If Consecrate Land enters the battlefield attached to a land thats enchanted by other Auras, those Auras are put into their owners graveyards. // 9/25/2006 ruling: If Consecrate Land enters the battlefield attached to a land that's enchanted by other Auras, those Auras are put into their owners' graveyards.
class AntiMagicAuraRuleEffect extends ContinuousRuleModifyingEffectImpl { class AntiMagicAuraRuleEffect extends ContinuousRuleModifyingEffectImpl {
public AntiMagicAuraRuleEffect() { public AntiMagicAuraRuleEffect() {

View file

@ -35,7 +35,7 @@ public final class ApocalypseDemon extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Apocalypse Demons power and toughness are each equal to the number of cards in your graveyard. // Apocalypse Demon's power and toughness are each equal to the number of cards in your graveyard.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInControllerGraveyardCount(), Duration.EndOfGame))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new CardsInControllerGraveyardCount(), Duration.EndOfGame)));
// At the beginning of your upkeep, tap Apocalypse Demon unless you sacrifice another creature. // At the beginning of your upkeep, tap Apocalypse Demon unless you sacrifice another creature.

View file

@ -37,7 +37,7 @@ public final class AquaticIncursion extends CardImpl {
// When Aquatic Incursion enters the battlefield, create two 1/1 blue Merfolk creature tokens with hexproof. // When Aquatic Incursion enters the battlefield, create two 1/1 blue Merfolk creature tokens with hexproof.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new MerfolkHexproofToken(), 2), false)); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new MerfolkHexproofToken(), 2), false));
// {3}{U}: Target Merfolk cant be blocked this turn. // {3}{U}: Target Merfolk can't be blocked this turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{3}{U}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{3}{U}"));
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability); this.addAbility(ability);

View file

@ -42,7 +42,7 @@ public final class AzorTheLawbringer extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// When Azor, the Lawbringer enters the battlefield, each opponent cant cast instant or sorcery spells during that players next turn. // When Azor, the Lawbringer enters the battlefield, each opponent can't cast instant or sorcery spells during that player's next turn.
this.addAbility(new EntersBattlefieldTriggeredAbility(new AzorTheLawbringerEntersBattlefieldEffect(), false)); this.addAbility(new EntersBattlefieldTriggeredAbility(new AzorTheLawbringerEntersBattlefieldEffect(), false));
// Whenever Azor attacks, you may pay {X}{W}{U}{U}. If you do, you gain X life and draw X cards. // Whenever Azor attacks, you may pay {X}{W}{U}{U}. If you do, you gain X life and draw X cards.

View file

@ -84,7 +84,7 @@ public final class BalanWanderingKnight extends CardImpl {
filter.add(new SubtypePredicate(SubType.EQUIPMENT)); filter.add(new SubtypePredicate(SubType.EQUIPMENT));
for (Permanent equipment : game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(),game)) { for (Permanent equipment : game.getBattlefield().getAllActivePermanents(filter, source.getControllerId(),game)) {
if (equipment != null) { if (equipment != null) {
//If an Equipment cant equip, it isnt attached, and it doesnt become unattached (if its attached to a creature). //If an Equipment can't equip, it isn't attached, and it doesn't become unattached (if it's attached to a creature).
if (!balan.cantBeAttachedBy(equipment, game)) { if (!balan.cantBeAttachedBy(equipment, game)) {
balan.addAttachment(equipment.getId(), game); balan.addAttachment(equipment.getId(), game);
} }

View file

@ -134,7 +134,7 @@ class BalduvianWarlordUnblockEffect extends OneShotEffect {
if (chosenGroup != null) { if (chosenGroup != null) {
// Relevant ruling for Balduvian Warlord: // Relevant ruling for Balduvian Warlord:
// 7/15/2006 If an attacking creature has an ability that triggers When this creature becomes blocked, // 7/15/2006 If an attacking creature has an ability that triggers When this creature becomes blocked,
// it triggers when a creature blocks it due to the Warlords ability only if it was unblocked at that point. // it triggers when a creature blocks it due to the Warlord's ability only if it was unblocked at that point.
boolean notYetBlocked = chosenGroup.getBlockers().isEmpty(); boolean notYetBlocked = chosenGroup.getBlockers().isEmpty();
chosenGroup.addBlockerToGroup(permanent.getId(), controller.getId(), game); chosenGroup.addBlockerToGroup(permanent.getId(), controller.getId(), game);
game.getCombat().addBlockingGroup(permanent.getId(), chosenPermanent.getId(), controller.getId(), game); // 702.21h game.getCombat().addBlockingGroup(permanent.getId(), chosenPermanent.getId(), controller.getId(), game); // 702.21h

View file

@ -45,7 +45,7 @@ class BlightningEffect extends OneShotEffect {
BlightningEffect() { BlightningEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "That player or that planeswalkers controller discards two cards."; this.staticText = "That player or that planeswalker's controller discards two cards.";
} }
BlightningEffect(final BlightningEffect effect) { BlightningEffect(final BlightningEffect effect) {

View file

@ -50,7 +50,7 @@ class BonfireOfTheDamnedEffect extends OneShotEffect {
public BonfireOfTheDamnedEffect() { public BonfireOfTheDamnedEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "{this} deals X damage to target player or planeswalker and each creature that player or that planeswalkers controller controls"; staticText = "{this} deals X damage to target player or planeswalker and each creature that player or that planeswalker's controller controls";
} }
public BonfireOfTheDamnedEffect(final BonfireOfTheDamnedEffect effect) { public BonfireOfTheDamnedEffect(final BonfireOfTheDamnedEffect effect) {

View file

@ -37,7 +37,7 @@ public final class CelestialColonnade extends CardImpl {
this.addAbility(new BlueManaAbility()); this.addAbility(new BlueManaAbility());
this.addAbility(new WhiteManaAbility()); this.addAbility(new WhiteManaAbility());
// {3}{W}{U}: Until end of turn, Celestial Colonnade becomes a 4/4 white and blue Elemental creature with flying and vigilance. Its still a land. // {3}{W}{U}: Until end of turn, Celestial Colonnade becomes a 4/4 white and blue Elemental creature with flying and vigilance. It's still a land.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect( this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(
new CreatureToken(4, 4, "4/4 white and blue Elemental creature with flying and vigilance") new CreatureToken(4, 4, "4/4 white and blue Elemental creature with flying and vigilance")
.withColor("WU") .withColor("WU")

View file

@ -78,11 +78,11 @@ class CelestialConvergenceEffect extends OneShotEffect {
/** /**
* 801.14. If an effect states that a player wins the game, all of * 801.14. If an effect states that a player wins the game, all of
* that players opponents within their range of influence lose the * that player's opponents within their range of influence lose the
* game instead. # * game instead. #
* *
* 801.15. If the effect of a spell or ability states that the game * 801.15. If the effect of a spell or ability states that the game
* is a draw, the game is a draw for that spell or abilitys * is a draw, the game is a draw for that spell or ability's
* controller and all players within their range of influence. They * controller and all players within their range of influence. They
* leave the game. All remaining players continue to play the game. * leave the game. All remaining players continue to play the game.
* *

View file

@ -50,7 +50,7 @@ public final class ChandraNalaar extends CardImpl {
Effects effects1 = new Effects(); Effects effects1 = new Effects();
effects1.add(new DamageTargetEffect(10)); effects1.add(new DamageTargetEffect(10));
effects1.add(new DamageAllControlledTargetEffect(10, new FilterCreaturePermanent()) effects1.add(new DamageAllControlledTargetEffect(10, new FilterCreaturePermanent())
.setText("and each creature that player or that planeswalkers controller controls") .setText("and each creature that player or that planeswalker's controller controls")
); );
LoyaltyAbility ability3 = new LoyaltyAbility(effects1, -8); LoyaltyAbility ability3 = new LoyaltyAbility(effects1, -8);
ability3.addTarget(new TargetPlayerOrPlaneswalker()); ability3.addTarget(new TargetPlayerOrPlaneswalker());

View file

@ -45,7 +45,7 @@ public final class ChandraPyrogenius extends CardImpl {
Effects effects = new Effects(); Effects effects = new Effects();
effects.add(new DamageTargetEffect(6)); effects.add(new DamageTargetEffect(6));
effects.add(new DamageAllControlledTargetEffect(6, new FilterCreaturePermanent()) effects.add(new DamageAllControlledTargetEffect(6, new FilterCreaturePermanent())
.setText("and each creature that player or that planeswalkers controller controls") .setText("and each creature that player or that planeswalker's controller controls")
); );
ability = new LoyaltyAbility(effects, -10); ability = new LoyaltyAbility(effects, -10);
ability.addTarget(new TargetPlayerOrPlaneswalker()); ability.addTarget(new TargetPlayerOrPlaneswalker());

View file

@ -71,7 +71,7 @@ class ChandraPyromasterEffect1 extends OneShotEffect {
public ChandraPyromasterEffect1() { public ChandraPyromasterEffect1() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to up to one target creature that player or that planeswalkers controller controls. That creature cant block this turn."; staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to up to one target creature that player or that planeswalker's controller controls. That creature can't block this turn.";
} }
public ChandraPyromasterEffect1(final ChandraPyromasterEffect1 effect) { public ChandraPyromasterEffect1(final ChandraPyromasterEffect1 effect) {

View file

@ -22,7 +22,7 @@ public final class ChandrasFury extends CardImpl {
// Chandra's Fury deals 4 damage to target player and 1 damage to each creature that player controls. // Chandra's Fury deals 4 damage to target player and 1 damage to each creature that player controls.
this.getSpellAbility().addEffect(new DamageTargetEffect(4)); this.getSpellAbility().addEffect(new DamageTargetEffect(4));
this.getSpellAbility().addEffect(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent()) this.getSpellAbility().addEffect(new DamageAllControlledTargetEffect(1, new FilterCreaturePermanent())
.setText("and each creature that player or that planeswalkers controller controls") .setText("and each creature that player or that planeswalker's controller controls")
); );
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
} }

View file

@ -48,7 +48,7 @@ class ConcussiveBoltEffect extends OneShotEffect {
public ConcussiveBoltEffect() { public ConcussiveBoltEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "Metalcraft - If you control three or more artifacts, creatures controlled by that player or by that planeswalkers controller cant block this turn."; this.staticText = "Metalcraft - If you control three or more artifacts, creatures controlled by that player or by that planeswalker's controller can't block this turn.";
} }
public ConcussiveBoltEffect(final ConcussiveBoltEffect effect) { public ConcussiveBoltEffect(final ConcussiveBoltEffect effect) {

View file

@ -53,7 +53,7 @@ public final class ConsecrateLand extends CardImpl {
} }
} }
// 9/25/2006 ruling: If Consecrate Land enters the battlefield attached to a land thats enchanted by other Auras, those Auras are put into their owners graveyards. // 9/25/2006 ruling: If Consecrate Land enters the battlefield attached to a land that's enchanted by other Auras, those Auras are put into their owners' graveyards.
class ConsecrateLandRuleEffect extends ContinuousRuleModifyingEffectImpl { class ConsecrateLandRuleEffect extends ContinuousRuleModifyingEffectImpl {
public ConsecrateLandRuleEffect() { public ConsecrateLandRuleEffect() {

View file

@ -53,7 +53,7 @@ class DacksDuplicateApplyToPermanent extends ApplyToPermanent {
@Override @Override
public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) { public boolean apply(Game game, Permanent permanent, Ability source, UUID copyToObjectId) {
/** /**
* 29/05/2014 The ability of Dacks Duplicate doesnt target the * 29/05/2014 The ability of Dack's Duplicate doesn't target the
* creature. * creature.
*/ */
permanent.addAbility(new DethroneAbility(), game); permanent.addAbility(new DethroneAbility(), game);

View file

@ -31,7 +31,7 @@ public final class DarksteelJuggernaut extends CardImpl {
// Indestructible // Indestructible
this.addAbility(IndestructibleAbility.getInstance()); this.addAbility(IndestructibleAbility.getInstance());
// Darksteel Juggernauts power and toughness are each equal to the number of artifacts you control. // Darksteel Juggernaut's power and toughness are each equal to the number of artifacts you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, this.addAbility(new SimpleStaticAbility(Zone.ALL,
new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledArtifactPermanent("artifacts you control")), Duration.EndOfGame))); new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledArtifactPermanent("artifacts you control")), Duration.EndOfGame)));

View file

@ -75,13 +75,13 @@ class DawnbreakReclaimerEffect extends OneShotEffect {
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
/** /**
* 04.11.2015 If any opponent has a creature card in their * 04.11.2015 If any opponent has a creature card in their
* graveyard as Dawnbreak Reclaimers ability resolves, then you must * graveyard as Dawnbreak Reclaimer's ability resolves, then you must
* choose one of those cards. You cant choose a different opponent with * choose one of those cards. You can't choose a different opponent with
* no creature cards in their graveyard to avoid returning one of * no creature cards in their graveyard to avoid returning one of
* those cards. * those cards.
* *
* 04.11.2015 If there are no creature cards in any opponents graveyard * 04.11.2015 If there are no creature cards in any opponent's graveyard
* as Dawnbreak Reclaimers ability resolves, youll still have the * as Dawnbreak Reclaimer's ability resolves, you'll still have the
* option to return a creature card from your graveyard to the * option to return a creature card from your graveyard to the
* battlefield. You choose which opponent will choose a creature card in * battlefield. You choose which opponent will choose a creature card in
* your graveyard. * your graveyard.

View file

@ -63,7 +63,7 @@ class DeicideExileEffect extends SearchTargetGraveyardHandLibraryForCardNameAndE
controller.moveCardToExileWithInfo(targetEnchantment, null, "", source.getSourceId(), game, Zone.BATTLEFIELD, true); controller.moveCardToExileWithInfo(targetEnchantment, null, "", source.getSourceId(), game, Zone.BATTLEFIELD, true);
// 4/26/2014 // 4/26/2014
// Deicide looks at the card in exile, not the permanent that was exiled, to determine // Deicide looks at the card in exile, not the permanent that was exiled, to determine
// if it is a God. For each of the Gods in the Theros block, it wont matter what your // if it is a God. For each of the Gods in the Theros block, it won't matter what your
// devotion to its color(s) was. The card is a God card when not on the battlefield. // devotion to its color(s) was. The card is a God card when not on the battlefield.
Card cardInExile = game.getExile().getCard(targetEnchantment.getId(), game); Card cardInExile = game.getExile().getCard(targetEnchantment.getId(), game);
if (cardInExile != null && cardInExile.hasSubtype(SubType.GOD, game)) { if (cardInExile != null && cardInExile.hasSubtype(SubType.GOD, game)) {

View file

@ -156,7 +156,7 @@ class TargetControlledSource extends TargetSource {
return true; return true;
} }
} }
// 108.4a If anything asks for the controller of a card that doesnt have one (because its not a permanent or spell), use its owner instead. // 108.4a If anything asks for the controller of a card that doesn't have one (because it's not a permanent or spell), use its owner instead.
for (Card card : game.getExile().getAllCards(game)) { for (Card card : game.getExile().getAllCards(game)) {
if (Objects.equals(card.getOwnerId(), sourceControllerId)) { if (Objects.equals(card.getOwnerId(), sourceControllerId)) {
count++; count++;
@ -189,7 +189,7 @@ class TargetControlledSource extends TargetSource {
for (Card card : player.getGraveyard().getCards(game)) { for (Card card : player.getGraveyard().getCards(game)) {
possibleTargets.add(card.getId()); possibleTargets.add(card.getId());
} }
// 108.4a If anything asks for the controller of a card that doesnt have one (because its not a permanent or spell), use its owner instead. // 108.4a If anything asks for the controller of a card that doesn't have one (because it's not a permanent or spell), use its owner instead.
for (Card card : game.getExile().getAllCards(game)) { for (Card card : game.getExile().getAllCards(game)) {
if (Objects.equals(card.getOwnerId(), sourceControllerId)) { if (Objects.equals(card.getOwnerId(), sourceControllerId)) {
possibleTargets.add(card.getId()); possibleTargets.add(card.getId());

View file

@ -140,7 +140,7 @@ class DrainPowerEffect extends OneShotEffect {
} }
// 106.12. One card (Drain Power) causes one player to lose unspent mana and another to add the mana lost this way. (Note that these may be the same player.) // 106.12. One card (Drain Power) causes one player to lose unspent mana and another to add the mana lost this way. (Note that these may be the same player.)
// This empties the former players mana pool and causes the mana emptied this way to be put into the latter players mana pool. Which permanents, spells, and/or // This empties the former player's mana pool and causes the mana emptied this way to be put into the latter player's mana pool. Which permanents, spells, and/or
// abilities produced that mana are unchanged, as are any restrictions or additional effects associated with any of that mana. // abilities produced that mana are unchanged, as are any restrictions or additional effects associated with any of that mana.
List<ManaPoolItem> manaItems = targetPlayer.getManaPool().getManaItems(); List<ManaPoolItem> manaItems = targetPlayer.getManaPool().getManaItems();
targetPlayer.getManaPool().emptyPool(game); targetPlayer.getManaPool().emptyPool(game);

View file

@ -102,9 +102,9 @@ class EarthshakerKhenraEffect extends OneShotEffect {
if (sourceObject != null) { if (sourceObject != null) {
Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source)); Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source));
/* /*
27.06.2017 The target creatures power is checked when you target it with Earthshaker Khenras ability 27.06.2017 The target creature's power is checked when you target it with Earthshaker Khenra's ability
and when that ability resolves. Once the ability resolves, if the creatures power increases and when that ability resolves. Once the ability resolves, if the creature's power increases
or Earthshaker Khenras power decreases, the target creature will still be unable to block. or Earthshaker Khenra's power decreases, the target creature will still be unable to block.
*/ */
if (targetCreature != null && targetCreature.getPower().getValue() <= sourceObject.getPower().getValue()) { if (targetCreature != null && targetCreature.getPower().getValue() <= sourceObject.getPower().getValue()) {
ContinuousEffect effect = new CantBlockTargetEffect(Duration.EndOfTurn); ContinuousEffect effect = new CantBlockTargetEffect(Duration.EndOfTurn);

View file

@ -32,8 +32,8 @@ public final class EndlessSands extends CardImpl {
exileAbility.addTarget(new TargetControlledCreaturePermanent()); exileAbility.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(exileAbility); this.addAbility(exileAbility);
// {4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owners control. // {4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owner's control.
ReturnCreaturesFromExileEffect returnFromExileEffect = new ReturnCreaturesFromExileEffect(this.getId(), true, "Return each creature card exiled with {this} to the battlefield under its owners control."); ReturnCreaturesFromExileEffect returnFromExileEffect = new ReturnCreaturesFromExileEffect(this.getId(), true, "Return each creature card exiled with {this} to the battlefield under its owner's control.");
Ability returnAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, returnFromExileEffect, new ManaCostsImpl("{4}")); Ability returnAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, returnFromExileEffect, new ManaCostsImpl("{4}"));
returnAbility.addCost(new TapSourceCost()); returnAbility.addCost(new TapSourceCost());
returnAbility.addCost(new SacrificeSourceCost()); returnAbility.addCost(new SacrificeSourceCost());

View file

@ -32,14 +32,14 @@ public final class FalkenrathGorger extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
/** /**
* 4/8/2016 Falkenrath Gorgers ability only applies while its on the * 4/8/2016 Falkenrath Gorger's ability only applies while it's on the
* battlefield. If you discard it, it wont give itself madness. * battlefield. If you discard it, it won't give itself madness.
* 4/8/2016 If Falkenrath Gorger leaves the battlefield before the * 4/8/2016 If Falkenrath Gorger leaves the battlefield before the
* madness trigger has resolved for a Vampire card that gained madness * madness trigger has resolved for a Vampire card that gained madness
* with its ability, the madness ability will still let you cast that * with its ability, the madness ability will still let you cast that
* Vampire card for the appropriate cost even though it no longer has * Vampire card for the appropriate cost even though it no longer has
* madness. 4/8/2016 If you discard a Vampire creature card that already * madness. 4/8/2016 If you discard a Vampire creature card that already
* has a madness ability, youll choose which madness ability exiles it. * has a madness ability, you'll choose which madness ability exiles it.
* You may choose either the one it normally has or the one it gains * You may choose either the one it normally has or the one it gains
* from Falkenrath Gorger. * from Falkenrath Gorger.
*/ */

View file

@ -156,7 +156,7 @@ class FalseOrdersUnblockEffect extends OneShotEffect {
if (chosenGroup != null) { if (chosenGroup != null) {
// Relevant ruling for Balduvian Warlord: // Relevant ruling for Balduvian Warlord:
// 7/15/2006 If an attacking creature has an ability that triggers When this creature becomes blocked, // 7/15/2006 If an attacking creature has an ability that triggers When this creature becomes blocked,
// it triggers when a creature blocks it due to the Warlords ability only if it was unblocked at that point. // it triggers when a creature blocks it due to the Warlord's ability only if it was unblocked at that point.
boolean notYetBlocked = chosenGroup.getBlockers().isEmpty(); boolean notYetBlocked = chosenGroup.getBlockers().isEmpty();
chosenGroup.addBlockerToGroup(permanent.getId(), controller.getId(), game); chosenGroup.addBlockerToGroup(permanent.getId(), controller.getId(), game);
game.getCombat().addBlockingGroup(permanent.getId(), chosenPermanent.getId(), controller.getId(), game); // 702.21h game.getCombat().addBlockingGroup(permanent.getId(), chosenPermanent.getId(), controller.getId(), game); // 702.21h

View file

@ -23,7 +23,7 @@ public final class FlameWave extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(4)); this.getSpellAbility().addEffect(new DamageTargetEffect(4));
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
this.getSpellAbility().addEffect(new DamageAllControlledTargetEffect(4, new FilterCreaturePermanent()) this.getSpellAbility().addEffect(new DamageAllControlledTargetEffect(4, new FilterCreaturePermanent())
.setText("and each creature that player or that planeswalkers controller controls") .setText("and each creature that player or that planeswalker's controller controls")
); );
} }

View file

@ -50,7 +50,7 @@ public final class ForebearsBlade extends CardImpl {
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
// Whenever equipped creature dies, attach Forebears Blade to target creature you control. // Whenever equipped creature dies, attach Forebear's Blade to target creature you control.
ability = new DiesAttachedTriggeredAbility( ability = new DiesAttachedTriggeredAbility(
new AttachEffect(Outcome.Neutral, "attach {this} to target creature you control"), "equipped creature", false); new AttachEffect(Outcome.Neutral, "attach {this} to target creature you control"), "equipped creature", false);
ability.addTarget(new TargetControlledCreaturePermanent()); ability.addTarget(new TargetControlledCreaturePermanent());

View file

@ -48,7 +48,7 @@ class GoblinLyreEffect extends OneShotEffect {
public GoblinLyreEffect() { public GoblinLyreEffect() {
super(Outcome.Damage); super(Outcome.Damage);
this.staticText = "Flip a coin. If you win the flip, {this} deals damage to target opponent or planeswalker equal to the number of creatures you control. " this.staticText = "Flip a coin. If you win the flip, {this} deals damage to target opponent or planeswalker equal to the number of creatures you control. "
+ "If you lose the flip, Goblin Lyre deals damage to you equal to the number of creatures that opponent or that planeswalkers controller controls"; + "If you lose the flip, Goblin Lyre deals damage to you equal to the number of creatures that opponent or that planeswalker's controller controls";
} }
public GoblinLyreEffect(final GoblinLyreEffect effect) { public GoblinLyreEffect(final GoblinLyreEffect effect) {

View file

@ -36,7 +36,7 @@ public final class GuardiansOfKoilos extends CardImpl {
this.power = new MageInt(4); this.power = new MageInt(4);
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// When Guardians of Koilos enters the battlefield, you may return another target historic permanent you control to its owners hand. // When Guardians of Koilos enters the battlefield, you may return another target historic permanent you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter) this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter)
.setText("you may return another target historic permanent you control to its owner's hand. <i>(Artifacts, legendaries, and Sagas are historic.)</i>"), true)); .setText("you may return another target historic permanent you control to its owner's hand. <i>(Artifacts, legendaries, and Sagas are historic.)</i>"), true));
} }

View file

@ -93,7 +93,7 @@ class HallOfGemstoneEffect extends ReplacementEffectImpl {
if (colorChosen != null) { if (colorChosen != null) {
ManaEvent manaEvent = (ManaEvent) event; ManaEvent manaEvent = (ManaEvent) event;
Mana mana = manaEvent.getMana(); Mana mana = manaEvent.getMana();
// 8/23/2016 Colorless mana added to a players mana pool isnt affected. // 8/23/2016 Colorless mana added to a player's mana pool isn't affected.
int genericAmount = mana.getGeneric(); int genericAmount = mana.getGeneric();
int colorlessAmount = mana.getColorless(); int colorlessAmount = mana.getColorless();
int coloredAmount = mana.countColored(); int coloredAmount = mana.countColored();

View file

@ -126,7 +126,7 @@ class HaphazardBombardmentEndOfTurnEffect extends OneShotEffect {
// 4/27/2018 If one or more of the permanents with aim counters on them have indestructible, // 4/27/2018 If one or more of the permanents with aim counters on them have indestructible,
// select the permanent destroyed at random from among the permanents with aim counters // select the permanent destroyed at random from among the permanents with aim counters
// that dont have indestructible. // that don't have indestructible.
FilterPermanent filter = new FilterPermanent("if two or more permanents you don't control have an aim counter on them"); FilterPermanent filter = new FilterPermanent("if two or more permanents you don't control have an aim counter on them");
filter.add(new ControllerPredicate(TargetController.NOT_YOU)); filter.add(new ControllerPredicate(TargetController.NOT_YOU));
filter.add(new CounterPredicate(CounterType.AIM)); filter.add(new CounterPredicate(CounterType.AIM));

View file

@ -77,7 +77,7 @@ class HeartOfBogardanTriggeredAbility extends TriggeredAbilityImpl {
public String getRule() { public String getRule() {
return "When a player doesn't pay {this}'s cumulative upkeep, " return "When a player doesn't pay {this}'s cumulative upkeep, "
+ "{this} deals X damage to target player or planeswalker " + "{this} deals X damage to target player or planeswalker "
+ "and each creature that player or that planeswalkers controller controls," + "and each creature that player or that planeswalker's controller controls,"
+ " where X is twice the number of age counters on {this} minus 2."; + " where X is twice the number of age counters on {this} minus 2.";
} }
} }
@ -87,7 +87,7 @@ class HeartOfBogardanEffect extends OneShotEffect {
public HeartOfBogardanEffect() { public HeartOfBogardanEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "{this} deals X damage to target player or planeswalker " staticText = "{this} deals X damage to target player or planeswalker "
+ "and each creature that player or that planeswalkers controller controls, " + "and each creature that player or that planeswalker's controller controls, "
+ "where X is twice the number of age counters on {this} minus 2"; + "where X is twice the number of age counters on {this} minus 2";
} }

View file

@ -78,6 +78,6 @@ class HellriderTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever a creature you control attacks, {this} deals 1 damage to the player or planeswalker its attacking."; return "Whenever a creature you control attacks, {this} deals 1 damage to the player or planeswalker it's attacking.";
} }
} }

View file

@ -31,7 +31,7 @@ public final class HelmOfTheHost extends CardImpl {
this.addSuperType(SuperType.LEGENDARY); this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.EQUIPMENT); this.subtype.add(SubType.EQUIPMENT);
// At the beginning of combat on your turn, create a token thats a copy of equipped creature, except the token isnt legendary if equipped creature is legendary. That token gains haste. // At the beginning of combat on your turn, create a token that's a copy of equipped creature, except the token isn't legendary if equipped creature is legendary. That token gains haste.
TriggeredAbility ability = new BeginningOfCombatTriggeredAbility( TriggeredAbility ability = new BeginningOfCombatTriggeredAbility(
new HelmOfTheHostEffect(), new HelmOfTheHostEffect(),
TargetController.YOU, TargetController.YOU,

View file

@ -24,7 +24,7 @@ public final class JayasImmolatingInferno extends CardImpl {
// (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) // (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.)
this.addAbility(new LegendarySpellAbility()); this.addAbility(new LegendarySpellAbility());
// Jayas Immolating Inferno deals X damage to each of up to three targets. // Jaya's Immolating Inferno deals X damage to each of up to three targets.
Effect effect = new DamageTargetEffect(new ManacostVariableValue()); Effect effect = new DamageTargetEffect(new ManacostVariableValue());
effect.setText("{this} deals X damage to each of up to three targets"); effect.setText("{this} deals X damage to each of up to three targets");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);

View file

@ -25,7 +25,7 @@ public final class JunglebornPioneer extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// When Jungleborn Pioneer enters the battlefield, create a 1/1 blue Merfolk creature token with hexproof. (It cant be the target of spells or abilities your opponents control.) // When Jungleborn Pioneer enters the battlefield, create a 1/1 blue Merfolk creature token with hexproof. (It can't be the target of spells or abilities your opponents control.)
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new MerfolkHexproofToken()),false); Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new MerfolkHexproofToken()),false);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -29,7 +29,7 @@ public final class KarnsTemporalSundering extends CardImpl {
// (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) // (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.)
this.addAbility(new LegendarySpellAbility()); this.addAbility(new LegendarySpellAbility());
// Target player takes an extra turn after this one. Return up to one target nonland permanent to its owners hand. Exile Karns Temporal Sundering. // Target player takes an extra turn after this one. Return up to one target nonland permanent to its owner's hand. Exile Karn's Temporal Sundering.
this.getSpellAbility().addEffect(new KarnsTemporalSunderingEffect()); this.getSpellAbility().addEffect(new KarnsTemporalSunderingEffect());
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());
this.getSpellAbility().addTarget(new TargetNonlandPermanent(0, 1, false)); this.getSpellAbility().addTarget(new TargetNonlandPermanent(0, 1, false));
@ -50,7 +50,7 @@ class KarnsTemporalSunderingEffect extends OneShotEffect {
public KarnsTemporalSunderingEffect() { public KarnsTemporalSunderingEffect() {
super(Outcome.ExtraTurn); super(Outcome.ExtraTurn);
this.staticText = "Target player takes an extra turn after this one. Return up to one target nonland permanent to its owners hand"; this.staticText = "Target player takes an extra turn after this one. Return up to one target nonland permanent to its owner's hand";
} }
public KarnsTemporalSunderingEffect(final KarnsTemporalSunderingEffect effect) { public KarnsTemporalSunderingEffect(final KarnsTemporalSunderingEffect effect) {

View file

@ -27,7 +27,7 @@ public final class KitesailCorsair extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Kitesail Corsair has flying as long as its attacking. // Kitesail Corsair has flying as long as it's attacking.
ContinuousEffect gainEffect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield); ContinuousEffect gainEffect = new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
gainEffect, gainEffect,

View file

@ -51,7 +51,7 @@ class LavalancheEffect extends OneShotEffect {
public LavalancheEffect(DynamicValue amount) { public LavalancheEffect(DynamicValue amount) {
super(Outcome.Damage); super(Outcome.Damage);
this.amount = amount; this.amount = amount;
staticText = "{this} deals X damage to target player or planeswalker and each creature that player or that planeswalkers controller controls"; staticText = "{this} deals X damage to target player or planeswalker and each creature that player or that planeswalker's controller controls";
} }
public LavalancheEffect(final LavalancheEffect effect) { public LavalancheEffect(final LavalancheEffect effect) {
@ -71,7 +71,7 @@ class LavalancheEffect extends OneShotEffect {
return false; return false;
} }
targetPlayer.damage(amount.calculate(game, source, this), source.getSourceId(), game, false, true); targetPlayer.damage(amount.calculate(game, source, this), source.getSourceId(), game, false, true);
FilterPermanent filter = new FilterPermanent("and each creature that player or that planeswalkers controller controls"); FilterPermanent filter = new FilterPermanent("and each creature that player or that planeswalker's controller controls");
filter.add(new CardTypePredicate(CardType.CREATURE)); filter.add(new CardTypePredicate(CardType.CREATURE));
filter.add(new ControllerIdPredicate(targetPlayer.getId())); filter.add(new ControllerIdPredicate(targetPlayer.getId()));
List<Permanent> permanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game); List<Permanent> permanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game);

View file

@ -47,7 +47,7 @@ class MageSlayerEffect extends OneShotEffect {
public MageSlayerEffect() { public MageSlayerEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "it deals damage equal to the player or planeswalker its attacking"; staticText = "it deals damage equal to the player or planeswalker it's attacking";
} }
public MageSlayerEffect(final MageSlayerEffect effect) { public MageSlayerEffect(final MageSlayerEffect effect) {

View file

@ -47,13 +47,13 @@ public final class ManorGargoyle extends CardImpl {
613.7. Within a layer or sublayer, determining which order effects are applied in is sometimes done using a dependency system. 613.7. Within a layer or sublayer, determining which order effects are applied in is sometimes done using a dependency system.
If a dependency exists, it will override the timestamp system. If a dependency exists, it will override the timestamp system.
613.7a An effect is said to depend on another if 613.7a An effect is said to depend on another if
(a) its applied in the same layer (and, if applicable, sublayer) as the other effect (see rules 613.1 and 613.3); (a) it's applied in the same layer (and, if applicable, sublayer) as the other effect (see rules 613.1 and 613.3);
(b) applying the other would change the text or the existence of the first effect, what it applies to, or what (b) applying the other would change the text or the existence of the first effect, what it applies to, or what
it does to any of the things it applies to; and it does to any of the things it applies to; and
(c) neither effect is from a characteristic-defining ability or both effects are from characteristic-defining (c) neither effect is from a characteristic-defining ability or both effects are from characteristic-defining
abilities. Otherwise, the effect is considered to be independent of the other effect. abilities. Otherwise, the effect is considered to be independent of the other effect.
613.7b An effect dependent on one or more other effects waits to apply until just after all of those effects have been applied. 613.7b An effect dependent on one or more other effects waits to apply until just after all of those effects have been applied.
If multiple dependent effects would apply simultaneously in this way, theyre applied in timestamp order relative to each If multiple dependent effects would apply simultaneously in this way, they're applied in timestamp order relative to each
other. If several dependent effects form a dependency loop, then this rule is ignored and the effects in the dependency other. If several dependent effects form a dependency loop, then this rule is ignored and the effects in the dependency
loop are applied in timestamp order. loop are applied in timestamp order.
613.7c After each effect is applied, the order of remaining effects is reevaluated and may change if an effect that has not yet 613.7c After each effect is applied, the order of remaining effects is reevaluated and may change if an effect that has not yet

View file

@ -43,9 +43,9 @@ public final class MarkOfSakiko extends CardImpl {
Ability ability = new EnchantAbility(auraTarget.getTargetName()); Ability ability = new EnchantAbility(auraTarget.getTargetName());
this.addAbility(ability); this.addAbility(ability);
// Enchanted creature has "Whenever this creature deals combat damage to a player, add that much {G}. Until end of turn, you dont lose this mana as steps and phases end." // Enchanted creature has "Whenever this creature deals combat damage to a player, add that much {G}. Until end of turn, you don't lose this mana as steps and phases end."
Effect effect = new GainAbilityAttachedEffect(new MarkOfSakikoTriggeredAbility(), AttachmentType.AURA); Effect effect = new GainAbilityAttachedEffect(new MarkOfSakikoTriggeredAbility(), AttachmentType.AURA);
effect.setText("Enchanted creature has \"Whenever this creature deals combat damage to a player, add that much {G}. Until end of turn, you dont lose this mana as steps and phases end.\""); effect.setText("Enchanted creature has \"Whenever this creature deals combat damage to a player, add that much {G}. Until end of turn, you don't lose this mana as steps and phases end.\"");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
} }
@ -87,7 +87,7 @@ class MarkOfSakikoTriggeredAbility extends TriggeredAbilityImpl {
this.getEffects().clear(); this.getEffects().clear();
Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true); Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true);
effect.setTargetPointer(new FixedTarget(getControllerId())); effect.setTargetPointer(new FixedTarget(getControllerId()));
effect.setText("add that much {G}. Until end of turn, you dont lose this mana as steps and phases end"); effect.setText("add that much {G}. Until end of turn, you don't lose this mana as steps and phases end");
this.addEffect(effect); this.addEffect(effect);
return true; return true;
} }
@ -98,6 +98,6 @@ class MarkOfSakikoTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever this creature deals combat damage to a player, add that much {G}. " return "Whenever this creature deals combat damage to a player, add that much {G}. "
+ "Until end of turn, you dont lose this mana as steps and phases end."; + "Until end of turn, you don't lose this mana as steps and phases end.";
} }
} }

View file

@ -39,7 +39,7 @@ public final class MarwynTheNurturer extends CardImpl {
// Whenever another Elf enters the battlefield under your control, put a +1/+1 counter on Marwyn, the Nurturer. // Whenever another Elf enters the battlefield under your control, put a +1/+1 counter on Marwyn, the Nurturer.
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter)); this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter));
// {T}: Add an amount of {G} equal to Marwyns power. // {T}: Add an amount of {G} equal to Marwyn's power.
this.addAbility(new DynamicManaAbility(Mana.GreenMana(1), new SourcePermanentPowerCount(), "Add an amount of {G} equal to {this}'s power")); this.addAbility(new DynamicManaAbility(Mana.GreenMana(1), new SourcePermanentPowerCount(), "Add an amount of {G} equal to {this}'s power"));
} }

View file

@ -49,7 +49,7 @@ public final class MazesEnd extends CardImpl {
// {T}: Add 1. // {T}: Add 1.
this.addAbility(new ColorlessManaAbility()); this.addAbility(new ColorlessManaAbility());
// 3, {T}, Return Maze's End to its owners hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game. // 3, {T}, Return Maze's End to its owner's hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterCard)), new GenericManaCost(3)); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterCard)), new GenericManaCost(3));
ability.addEffect(new MazesEndEffect()); ability.addEffect(new MazesEndEffect());
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());

View file

@ -22,19 +22,19 @@ import mage.players.Player;
/** /**
* As Meandering Towershell returns to the battlefield because of the delayed * As Meandering Towershell returns to the battlefield because of the delayed
* triggered ability, you choose which opponent or opposing planeswalker its * triggered ability, you choose which opponent or opposing planeswalker it's
* attacking. It doesnt have to attack the same opponent or opposing * attacking. It doesn't have to attack the same opponent or opposing
* planeswalker that it was when it was exiled. * planeswalker that it was when it was exiled.
* *
* If Meandering Towershell enters the battlefield attacking, it wasnt declared * If Meandering Towershell enters the battlefield attacking, it wasn't declared
* as an attacking creature that turn. Abilities that trigger when a creature * as an attacking creature that turn. Abilities that trigger when a creature
* attacks, including its own triggered ability, wont trigger. * attacks, including its own triggered ability, won't trigger.
* *
* On the turn Meandering Towershell attacks and is exiled, raid abilities will * On the turn Meandering Towershell attacks and is exiled, raid abilities will
* see it as a creature that attacked. Conversely, on the turn Meandering * see it as a creature that attacked. Conversely, on the turn Meandering
* Towershell enters the battlefield attacking, raid abilities will not. * Towershell enters the battlefield attacking, raid abilities will not.
* *
* If you attack with a Meandering Towershell that you dont own, youll control * If you attack with a Meandering Towershell that you don't own, you'll control
* it when it returns to the battlefield. * it when it returns to the battlefield.
* *
* @author LevelX2 * @author LevelX2

View file

@ -54,7 +54,7 @@ class MeddlingMageReplacementEffect extends ContinuousRuleModifyingEffectImpl {
public MeddlingMageReplacementEffect() { public MeddlingMageReplacementEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Spells with the chosen name cant be cast"; staticText = "Spells with the chosen name can't be cast";
} }
public MeddlingMageReplacementEffect(final MeddlingMageReplacementEffect effect) { public MeddlingMageReplacementEffect(final MeddlingMageReplacementEffect effect) {

View file

@ -61,6 +61,6 @@ class MemoricideEffect extends SearchTargetGraveyardHandLibraryForCardNameAndExi
@Override @Override
public String getText(Mode mode) { public String getText(Mode mode) {
return "Search target players graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles their library"; return "Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles their library";
} }
} }

View file

@ -78,6 +78,6 @@ class MisersCageTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "at the beginning of each opponents upkeep, if that player has five or more cards in hand, {this} deals 2 damage to that player"; return "at the beginning of each opponent's upkeep, if that player has five or more cards in hand, {this} deals 2 damage to that player";
} }
} }

View file

@ -22,7 +22,7 @@ public final class MistCloakedHerald extends CardImpl {
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Mist-Cloaked Herald cant be blocked. // Mist-Cloaked Herald can't be blocked.
this.addAbility(new CantBeBlockedSourceAbility()); this.addAbility(new CantBeBlockedSourceAbility());
} }

View file

@ -115,7 +115,7 @@ class MuldrothaTheGravetideWatcher extends Watcher {
final HashMap<MageObjectReference, Set<CardType>> sourcePlayedPermanentTypes = new HashMap<>(); // source that played permanent types from graveyard final HashMap<MageObjectReference, Set<CardType>> sourcePlayedPermanentTypes = new HashMap<>(); // source that played permanent types from graveyard
// final HashMap<UUID, Set<CardType>> playerPlayedPermanentTypes = new HashMap<>(); // player that played permanent types from graveyard // final HashMap<UUID, Set<CardType>> playerPlayedPermanentTypes = new HashMap<>(); // player that played permanent types from graveyard
// 4/27/2018 If multiple effects allow you to play a card from your graveyard, such as those of Gisa and Geralf and Karador, // 4/27/2018 If multiple effects allow you to play a card from your graveyard, such as those of Gisa and Geralf and Karador,
// Ghost Chieftain, you must announce which permission youre using as you begin to play the card. // Ghost Chieftain, you must announce which permission you're using as you begin to play the card.
// 4/27/2018: If you play a card from your graveyard and then have a new Muldrotha come under your control in the same turn, // 4/27/2018: If you play a card from your graveyard and then have a new Muldrotha come under your control in the same turn,
// you may play another card of that type from your graveyard that turn. // you may play another card of that type from your graveyard that turn.
private Zone fromZone; private Zone fromZone;

View file

@ -96,7 +96,7 @@ class MyrBattlesphereTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever {this} attacks, you may tap X untapped Myr you control. If you do, {this} gets +X/+0 until end of turn and deals X damage to the player or planeswalker its attacking."; return "Whenever {this} attacks, you may tap X untapped Myr you control. If you do, {this} gets +X/+0 until end of turn and deals X damage to the player or planeswalker it's attacking.";
} }
} }
@ -111,7 +111,7 @@ class MyrBattlesphereEffect extends OneShotEffect {
public MyrBattlesphereEffect() { public MyrBattlesphereEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "you may tap X untapped Myr you control. If you do, {this} gets +X/+0 until end of turn and deals X damage to the player or planeswalker its attacking."; staticText = "you may tap X untapped Myr you control. If you do, {this} gets +X/+0 until end of turn and deals X damage to the player or planeswalker it's attacking.";
} }
public MyrBattlesphereEffect(final MyrBattlesphereEffect effect) { public MyrBattlesphereEffect(final MyrBattlesphereEffect effect) {

View file

@ -25,7 +25,7 @@ public final class NavigatorsCompass extends CardImpl {
public NavigatorsCompass(UUID ownerId, CardSetInfo setInfo) { public NavigatorsCompass(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
// When Navigators Compass enters the battlefield, you gain 3 life. // When Navigator's Compass enters the battlefield, you gain 3 life.
Ability etbAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3)); Ability etbAbility = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(3));
this.addAbility(etbAbility); this.addAbility(etbAbility);
// {tap}: Until end of turn, target land you control becomes the basic land type of your choice in addition to its other types. // {tap}: Until end of turn, target land you control becomes the basic land type of your choice in addition to its other types.

View file

@ -49,7 +49,7 @@ class NevermoreEffect2 extends ContinuousRuleModifyingEffectImpl {
public NevermoreEffect2() { public NevermoreEffect2() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Spells with the chosen name cant be cast"; staticText = "Spells with the chosen name can't be cast";
} }
public NevermoreEffect2(final NevermoreEffect2 effect) { public NevermoreEffect2(final NevermoreEffect2 effect) {

View file

@ -53,7 +53,7 @@ public final class NicolBolasPlaneswalker extends CardImpl {
ability = new LoyaltyAbility(new DamageTargetEffect(7), -9); ability = new LoyaltyAbility(new DamageTargetEffect(7), -9);
ability.addTarget(new TargetPlayerOrPlaneswalker()); ability.addTarget(new TargetPlayerOrPlaneswalker());
ability.addEffect(new DiscardTargetEffect(7) ability.addEffect(new DiscardTargetEffect(7)
.setText("That player or that planeswalkers controller discards seven cards") .setText("That player or that planeswalker's controller discards seven cards")
); );
ability.addEffect(new SacrificeEffect(new FilterPermanent(), 7, "then") ability.addEffect(new SacrificeEffect(new FilterPermanent(), 7, "then")
.setText("then sacrifices seven permanents") .setText("then sacrifices seven permanents")

View file

@ -73,8 +73,8 @@ class OblivionSowerEffect extends OneShotEffect {
@Override @Override
public boolean apply(Game game, Ability source) { public boolean apply(Game game, Ability source) {
/* /*
8/25/2015: Oblivion Sowers ability allows you to put any land cards the player owns from exile onto the battlefield, regardless of how those cards were exiled. 8/25/2015: Oblivion Sower's ability allows you to put any land cards the player owns from exile onto the battlefield, regardless of how those cards were exiled.
8/25/2015: Cards that are face down in exile have no characteristics. Such cards cant be put onto the battlefield with Oblivion Sowers ability. 8/25/2015: Cards that are face down in exile have no characteristics. Such cards can't be put onto the battlefield with Oblivion Sower's ability.
*/ */
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());
Player targetPlayer = game.getPlayer(getTargetPointer().getFirst(game, source)); Player targetPlayer = game.getPlayer(getTargetPointer().getFirst(game, source));

View file

@ -52,7 +52,7 @@ class OmnathRuleEffect extends ContinuousEffectImpl {
public OmnathRuleEffect() { public OmnathRuleEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "You dont lose unspent green mana as steps and phases end"; staticText = "You don't lose unspent green mana as steps and phases end";
} }
public OmnathRuleEffect(final OmnathRuleEffect effect) { public OmnathRuleEffect(final OmnathRuleEffect effect) {

View file

@ -25,20 +25,20 @@ import mage.target.common.TargetCreaturePermanentAmount;
/** /**
* *
* * The value of X in Polukranoss last ability is equal to the value chosen * * The value of X in Polukranos's last ability is equal to the value chosen
* for X when its activated ability was activated. * for X when its activated ability was activated.
* *
* * The number of targets chosen for the triggered ability must be at least one * * The number of targets chosen for the triggered ability must be at least one
* (if X wasnt 0) and at most X. You choose the division of damage as you put * (if X wasn't 0) and at most X. You choose the division of damage as you put
* the ability on the stack, not as it resolves. Each target must be assigned * the ability on the stack, not as it resolves. Each target must be assigned
* at least 1 damage. In multiplayer games, you may choose creatures controlled * at least 1 damage. In multiplayer games, you may choose creatures controlled
* by different opponents. * by different opponents.
* *
* * If some, but not all, of the abilitys targets become illegal, you cant change * * If some, but not all, of the ability's targets become illegal, you can't change
* the division of damage. Damage that wouldve been dealt to illegal targets * the division of damage. Damage that would've been dealt to illegal targets
* simply isnt dealt. * simply isn't dealt.
* *
* * As Polukranoss triggered ability resolves, Polukranos deals damage first, then * * As Polukranos's triggered ability resolves, Polukranos deals damage first, then
* the target creatures do. Although no creature will die until after the ability * the target creatures do. Although no creature will die until after the ability
* finishes resolving, the order could matter if Polukranos has wither or infect. * finishes resolving, the order could matter if Polukranos has wither or infect.
* *

View file

@ -26,7 +26,7 @@ public final class Polyraptor extends CardImpl {
this.power = new MageInt(5); this.power = new MageInt(5);
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Enrage - Whenever Polyraptor is dealt damage, create a token thats a copy of Polyraptor. // Enrage - Whenever Polyraptor is dealt damage, create a token that's a copy of Polyraptor.
Ability ability = new DealtDamageToSourceTriggeredAbility( Ability ability = new DealtDamageToSourceTriggeredAbility(
Zone.BATTLEFIELD, Zone.BATTLEFIELD,
new CreateTokenCopySourceEffect(), new CreateTokenCopySourceEffect(),

View file

@ -29,7 +29,7 @@ public final class PowerSink extends CardImpl {
public PowerSink(UUID ownerId, CardSetInfo setInfo) { public PowerSink(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}");
// Counter target spell unless its controller pays {X}. If that player doesnt, they tap all lands with mana abilities they control and lose all unspent mana. // Counter target spell unless its controller pays {X}. If that player doesn't, they tap all lands with mana abilities they control and lose all unspent mana.
this.getSpellAbility().addEffect(new PowerSinkCounterUnlessPaysEffect()); this.getSpellAbility().addEffect(new PowerSinkCounterUnlessPaysEffect());
this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addTarget(new TargetSpell());
} }
@ -48,7 +48,7 @@ class PowerSinkCounterUnlessPaysEffect extends OneShotEffect {
public PowerSinkCounterUnlessPaysEffect() { public PowerSinkCounterUnlessPaysEffect() {
super(Outcome.Detriment); super(Outcome.Detriment);
this.staticText = "Counter target spell unless its controller pays {X}. If that player doesnt, they tap all lands with mana abilities they control and lose all unspent mana"; this.staticText = "Counter target spell unless its controller pays {X}. If that player doesn't, they tap all lands with mana abilities they control and lose all unspent mana";
} }
public PowerSinkCounterUnlessPaysEffect(final PowerSinkCounterUnlessPaysEffect effect) { public PowerSinkCounterUnlessPaysEffect(final PowerSinkCounterUnlessPaysEffect effect) {

View file

@ -77,11 +77,11 @@ class PrizedAmalgamTriggerdAbility extends EntersBattlefieldAllTriggeredAbility
@Override @Override
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
/** /**
* 4/8/2016 Prized Amalgams ability triggers only if its in your * 4/8/2016 Prized Amalgam's ability triggers only if it's in your
* graveyard immediately after a creature enters the battlefield from * graveyard immediately after a creature enters the battlefield from
* your graveyard or you cast a creature from your graveyard. A Prized * your graveyard or you cast a creature from your graveyard. A Prized
* Amalgam thats already on the battlefield wont be returned at the * Amalgam that's already on the battlefield won't be returned at the
* beginning of the next end step if its put into your graveyard later. * beginning of the next end step if it's put into your graveyard later.
*/ */
boolean result = false; boolean result = false;
if (super.checkTrigger(event, game)) { if (super.checkTrigger(event, game)) {

View file

@ -45,12 +45,12 @@ public final class RadiantDestiny extends CardImpl {
// As Radiant Destiny enters the battlefield, choose a creature type. // As Radiant Destiny enters the battlefield, choose a creature type.
this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature))); this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature)));
// Creatures you control of the chosen type get +1/+1. As long as you have the citys blessing, they also have vigilance. // Creatures you control of the chosen type get +1/+1. As long as you have the city's blessing, they also have vigilance.
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllOfChosenSubtypeEffect(1, 1, Duration.WhileOnBattlefield, filter, true)); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllOfChosenSubtypeEffect(1, 1, Duration.WhileOnBattlefield, filter, true));
ContinuousEffect effect = new ConditionalContinuousEffect( ContinuousEffect effect = new ConditionalContinuousEffect(
new GainAbilityAllOfChosenSubtypeEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, FILTER_PERMANENT_CREATURES_CONTROLLED), new GainAbilityAllOfChosenSubtypeEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, FILTER_PERMANENT_CREATURES_CONTROLLED),
CitysBlessingCondition.instance, CitysBlessingCondition.instance,
"As long as you have the citys blessing, they also have vigilance."); "As long as you have the city's blessing, they also have vigilance.");
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -46,7 +46,7 @@ class RakdossReturnEffect extends OneShotEffect {
RakdossReturnEffect() { RakdossReturnEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "That player or that planeswalkers controller discards X cards."; this.staticText = "That player or that planeswalker's controller discards X cards.";
} }
RakdossReturnEffect(final RakdossReturnEffect effect) { RakdossReturnEffect(final RakdossReturnEffect effect) {

View file

@ -114,7 +114,7 @@ class RavagerOfTheFellsAbility extends TriggeredAbilityImpl {
public String getRule() { public String getRule() {
return "Whenever this creature transforms into {this}, " return "Whenever this creature transforms into {this}, "
+ "it deals 2 damage to target opponent or planeswalker " + "it deals 2 damage to target opponent or planeswalker "
+ "and 2 damage to up to one target creature that player or that planeswalkers controller controls."; + "and 2 damage to up to one target creature that player or that planeswalker's controller controls.";
} }
} }

View file

@ -20,8 +20,8 @@ public final class RecklessRage extends CardImpl {
public RecklessRage(UUID ownerId, CardSetInfo setInfo) { public RecklessRage(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
// Reckless Rage deals 4 damage to target creature you dont control and 2 damage to target creature you control. // Reckless Rage deals 4 damage to target creature you don't control and 2 damage to target creature you control.
FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you dont control"); FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you don't control");
filter.add(new ControllerPredicate(TargetController.NOT_YOU)); filter.add(new ControllerPredicate(TargetController.NOT_YOU));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
this.getSpellAbility().addEffect(new DamageTargetEffect(4).setUseOnlyTargetPointer(true)); this.getSpellAbility().addEffect(new DamageTargetEffect(4).setUseOnlyTargetPointer(true));

View file

@ -31,19 +31,19 @@ import mage.target.common.TargetControlledCreaturePermanent;
/** /**
* *
* Once you announce youre casting Rescue from the Underworld, no player may * Once you announce you're casting Rescue from the Underworld, no player may
* attempt to stop you from casting the spell by removing the creature you want * attempt to stop you from casting the spell by removing the creature you want
* to sacrifice. * to sacrifice.
* *
* If you sacrifice a creature token to cast Rescue from the Underworld, it * If you sacrifice a creature token to cast Rescue from the Underworld, it
* wont return to the battlefield, although the target creature card will. * won't return to the battlefield, although the target creature card will.
* *
* If either the sacrificed creature or the target creature card leaves the * If either the sacrificed creature or the target creature card leaves the
* graveyard before the delayed triggered ability resolves during your next * graveyard before the delayed triggered ability resolves during your next
* upkeep, it wont return. * upkeep, it won't return.
* *
* However, if the sacrificed creature is put into another public zone instead * However, if the sacrificed creature is put into another public zone instead
* of the graveyard, perhaps because its your commander or because of another * of the graveyard, perhaps because it's your commander or because of another
* replacement effect, it will return to the battlefield from the zone it went * replacement effect, it will return to the battlefield from the zone it went
* to. * to.
* *
@ -212,7 +212,7 @@ class RescueFromTheUnderworldReturnEffect extends OneShotEffect {
} }
} }
// However, if the sacrificed creature is put into another public zone instead of the graveyard, // However, if the sacrificed creature is put into another public zone instead of the graveyard,
// perhaps because its your commander or because of another replacement effect, it will return // perhaps because it's your commander or because of another replacement effect, it will return
// to the battlefield from the zone it went to. // to the battlefield from the zone it went to.
if (source.getTargets().get(1) != null) { if (source.getTargets().get(1) != null) {
for (UUID targetId : source.getTargets().get(1).getTargets()) { for (UUID targetId : source.getTargets().get(1).getTargets()) {

View file

@ -42,7 +42,7 @@ public final class RunedArch extends CardImpl {
// {X}, {tap}, Sacrifice Runed Arch: X target creatures with power 2 or less are unblockable this turn. // {X}, {tap}, Sacrifice Runed Arch: X target creatures with power 2 or less are unblockable this turn.
Ability ability = new SimpleActivatedAbility( Ability ability = new SimpleActivatedAbility(
new CantBeBlockedTargetEffect(Duration.EndOfGame) new CantBeBlockedTargetEffect(Duration.EndOfGame)
.setText("X target creatures with power 2 or less cant be blocked this turn."), .setText("X target creatures with power 2 or less can't be blocked this turn."),
new ManaCostsImpl("{X}") new ManaCostsImpl("{X}")
); );
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());

View file

@ -35,7 +35,7 @@ public final class SakikoMotherOfSummer extends CardImpl {
this.power = new MageInt(3); this.power = new MageInt(3);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Whenever a creature you control deals combat damage to a player, add that much {G}. Until end of turn, you dont lose this mana as steps and phases end. // Whenever a creature you control deals combat damage to a player, add that much {G}. Until end of turn, you don't lose this mana as steps and phases end.
this.addAbility(new SakikoMotherOfSummerTriggeredAbility()); this.addAbility(new SakikoMotherOfSummerTriggeredAbility());
} }
@ -78,7 +78,7 @@ class SakikoMotherOfSummerTriggeredAbility extends TriggeredAbilityImpl {
this.getEffects().clear(); this.getEffects().clear();
Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true); Effect effect = new AddManaToManaPoolTargetControllerEffect(Mana.GreenMana(event.getAmount()), "that player", true);
effect.setTargetPointer(new FixedTarget(creature.getControllerId())); effect.setTargetPointer(new FixedTarget(creature.getControllerId()));
effect.setText("add that much {G}. Until end of turn, you dont lose this mana as steps and phases end"); effect.setText("add that much {G}. Until end of turn, you don't lose this mana as steps and phases end");
this.addEffect(effect); this.addEffect(effect);
return true; return true;
} }
@ -88,6 +88,6 @@ class SakikoMotherOfSummerTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever a creature you control deals combat damage to a player, add that much {G}. Until end of turn, you dont lose this mana as steps and phases end."; return "Whenever a creature you control deals combat damage to a player, add that much {G}. Until end of turn, you don't lose this mana as steps and phases end.";
} }
} }

View file

@ -28,9 +28,9 @@ public final class SakuraTribeSpringcaller extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// At the beginning of your upkeep, add {G}. Until end of turn, you dont lose this mana as steps and phases end. // At the beginning of your upkeep, add {G}. Until end of turn, you don't lose this mana as steps and phases end.
Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(Mana.GreenMana(1)), "your", true); Effect effect = new AddManaToManaPoolTargetControllerEffect(new Mana(Mana.GreenMana(1)), "your", true);
effect.setText("add {G}. Until end of turn, you dont lose this mana as steps and phases end"); effect.setText("add {G}. Until end of turn, you don't lose this mana as steps and phases end");
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false)); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false));
} }

View file

@ -53,7 +53,7 @@ class SearingBlazeEffect extends OneShotEffect {
public SearingBlazeEffect() { public SearingBlazeEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to target creature that player or that planeswalkers controller controls. \nLandfall - If you had a land enter the battlefield under your control this turn, {this} deals 3 damage to that player or planeswalker and 3 damage to that creature instead."; staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to target creature that player or that planeswalker's controller controls. \nLandfall - If you had a land enter the battlefield under your control this turn, {this} deals 3 damage to that player or planeswalker and 3 damage to that creature instead.";
} }
public SearingBlazeEffect(final SearingBlazeEffect effect) { public SearingBlazeEffect(final SearingBlazeEffect effect) {

View file

@ -171,9 +171,9 @@ class MoveAuraEffect extends OneShotEffect {
5/1/2006 5/1/2006
For the second ability, only the Aura is targeted. For the second ability, only the Aura is targeted.
When the ability resolves, you choose a permanent to move the Aura onto. When the ability resolves, you choose a permanent to move the Aura onto.
It cant be the permanent the Aura is already attached to, it must be controlled by the player who controls the permanent the Aura is attached to, and it must be able to be enchanted by the Aura. It can't be the permanent the Aura is already attached to, it must be controlled by the player who controls the permanent the Aura is attached to, and it must be able to be enchanted by the Aura.
(It doesnt matter who controls the Aura or who controls Simic Guildmage.) (It doesn't matter who controls the Aura or who controls Simic Guildmage.)
If no such permanent exists, the Aura doesnt move. If no such permanent exists, the Aura doesn't move.
*/ */
Player controller = game.getPlayer(source.getControllerId()); Player controller = game.getPlayer(source.getControllerId());

View file

@ -70,7 +70,7 @@ class SoulOfShandalarEffect extends OneShotEffect {
public SoulOfShandalarEffect() { public SoulOfShandalarEffect() {
super(Outcome.Damage); super(Outcome.Damage);
staticText = "{this} deals 3 damage to target player or planeswalker " staticText = "{this} deals 3 damage to target player or planeswalker "
+ "and 3 damage to up to one target creature that player or that planeswalkers controller controls"; + "and 3 damage to up to one target creature that player or that planeswalker's controller controls";
} }
public SoulOfShandalarEffect(final SoulOfShandalarEffect effect) { public SoulOfShandalarEffect(final SoulOfShandalarEffect effect) {

View file

@ -26,7 +26,7 @@ public final class StormFleetSprinter extends CardImpl {
// Haste // Haste
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());
// Storm Fleet Sprinter cant be blocked. // Storm Fleet Sprinter can't be blocked.
this.addAbility(new CantBeBlockedSourceAbility()); this.addAbility(new CantBeBlockedSourceAbility());
} }

View file

@ -92,7 +92,7 @@ class SunforgerEffect extends OneShotEffect {
/** /**
* 10/1/2005 Any card you find must be legally castable (for * 10/1/2005 Any card you find must be legally castable (for
* example, you have to be able to choose a legal target for * example, you have to be able to choose a legal target for
* it). If you cant find a castable card (or choose not to), * it). If you can't find a castable card (or choose not to),
* nothing happens and you shuffle your library. * nothing happens and you shuffle your library.
*/ */

View file

@ -75,7 +75,7 @@ class SurveyorsScopeEffect extends OneShotEffect {
} }
} }
game.informPlayers(new StringBuilder("Surveyor's Scope: X = ").append(numberOfLands).toString()); game.informPlayers(new StringBuilder("Surveyor's Scope: X = ").append(numberOfLands).toString());
// 10/17/2013 If no players control at least two more lands than you when the ability resolves, youll still search and shuffle your library. // 10/17/2013 If no players control at least two more lands than you when the ability resolves, you'll still search and shuffle your library.
return new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, numberOfLands, StaticFilters.FILTER_CARD_BASIC_LAND)).apply(game, source); return new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, numberOfLands, StaticFilters.FILTER_CARD_BASIC_LAND)).apply(game, source);
} }
return false; return false;

View file

@ -59,11 +59,11 @@ class TeferisProtectionEffect extends OneShotEffect {
* *
* 25.08.2017 If a player has protection from everything, it means three * 25.08.2017 If a player has protection from everything, it means three
* things: 1) All damage that would be dealt to that player is prevented. 2) * things: 1) All damage that would be dealt to that player is prevented. 2)
* Auras cant be attached to that player. 3) That player cant be the * Auras can't be attached to that player. 3) That player can't be the
* target of spells or abilities. * target of spells or abilities.
* *
* 25.08.2017 Nothing other than the specified events are prevented or * 25.08.2017 Nothing other than the specified events are prevented or
* illegal. An effect that doesnt target you could still cause you to * illegal. An effect that doesn't target you could still cause you to
* discard cards, for example. Creatures can still attack you while you have * discard cards, for example. Creatures can still attack you while you have
* protection from everything, although combat damage that they would deal * protection from everything, although combat damage that they would deal
* to you will be prevented. * to you will be prevented.

View file

@ -35,7 +35,7 @@ public final class TempleOfAclazotz extends CardImpl {
// {T}: Add {B} // {T}: Add {B}
this.addAbility(new BlackManaAbility()); this.addAbility(new BlackManaAbility());
// {T}, Sacrifice a creature: You gain life equal to the sacrificed creatures toughness. // {T}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TempleOfAclazotzEffect(), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TempleOfAclazotzEffect(), new TapSourceCost());
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability); this.addAbility(ability);

View file

@ -43,9 +43,9 @@ public final class TetsukoUmezawaFugitive extends CardImpl {
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Creatures you control with power or toughness 1 or less cant be blocked. // Creatures you control with power or toughness 1 or less can't be blocked.
Effect effect = new CantBeBlockedAllEffect(filter, Duration.Custom); Effect effect = new CantBeBlockedAllEffect(filter, Duration.Custom);
effect.setText("Creatures you control with power or toughness 1 or less cant be blocked"); effect.setText("Creatures you control with power or toughness 1 or less can't be blocked");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
} }

View file

@ -51,7 +51,7 @@ class ThoughtHemorrhageEffect extends OneShotEffect {
static final String rule = "Target player reveals their hand. " static final String rule = "Target player reveals their hand. "
+ "{this} deals 3 damage to that player for each card with the chosen name revealed this way. " + "{this} deals 3 damage to that player for each card with the chosen name revealed this way. "
+ "Search that players graveyard, hand, and library for all cards with that name and exile them. " + "Search that player's graveyard, hand, and library for all cards with that name and exile them. "
+ "Then that player shuffles their library"; + "Then that player shuffles their library";
public ThoughtHemorrhageEffect() { public ThoughtHemorrhageEffect() {

View file

@ -31,11 +31,11 @@ import mage.target.common.TargetCreaturePermanent;
/** /**
* Time to Feed has two targets: a creature an opponent controls and a creature you control. * Time to Feed has two targets: a creature an opponent controls and a creature you control.
* If only one of those creatures is a legal target when Time to Feed tries to resolve, the * If only one of those creatures is a legal target when Time to Feed tries to resolve, the
* creatures wont fight and neither will deal or be dealt damage. However, youll still gain * creatures won't fight and neither will deal or be dealt damage. However, you'll still gain
* 3 life when the creature you dont control dies that turn, even if it was the illegal target as Time to Feed resolved. * 3 life when the creature you don't control dies that turn, even if it was the illegal target as Time to Feed resolved.
* If neither creature is a legal target when Time to Feed tries to resolve, the spell will * If neither creature is a legal target when Time to Feed tries to resolve, the spell will
* be countered and none of its effects will happen. * be countered and none of its effects will happen.
* If the first target creature dies that turn, youll gain 3 life no matter what caused the creature to die or who controls the creature at that time. * If the first target creature dies that turn, you'll gain 3 life no matter what caused the creature to die or who controls the creature at that time.
* *
* @author LevelX2 * @author LevelX2
*/ */

View file

@ -33,7 +33,7 @@ public final class TombRobber extends CardImpl {
// Menace // Menace
this.addAbility(new MenaceAbility(false)); this.addAbility(new MenaceAbility(false));
// {1}, Discard a card: Tomb Robber explores. (Reveal the top card of your library. Put that card into your hand if its a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard.) // {1}, Discard a card: Tomb Robber explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard.)
Effect effect = new ExploreSourceEffect(true, "{this}"); Effect effect = new ExploreSourceEffect(true, "{this}");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new DiscardCardCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new DiscardCardCost());
ability.addCost(new ManaCostsImpl("{1}")); ability.addCost(new ManaCostsImpl("{1}"));

View file

@ -21,14 +21,14 @@ import mage.game.stack.StackObject;
/** /**
* Protection from a player is a new variant of the protection ability. It means * Protection from a player is a new variant of the protection ability. It means
* the following: -- True-Name Nemesis cant be the target of spells or * the following: -- True-Name Nemesis can't be the target of spells or
* abilities controlled by the chosen player. -- True-Name Nemesis cant be * abilities controlled by the chosen player. -- True-Name Nemesis can't be
* enchanted by Auras or equipped by Equipment controlled by the chosen player. * enchanted by Auras or equipped by Equipment controlled by the chosen player.
* (The same is true for Fortifications controlled by the chosen player, if * (The same is true for Fortifications controlled by the chosen player, if
* True-Name Nemesis becomes a land.) -- True-Name Nemesis cant be blocked by * True-Name Nemesis becomes a land.) -- True-Name Nemesis can't be blocked by
* creatures controlled by the chosen player. -- All damage that would be dealt * creatures controlled by the chosen player. -- All damage that would be dealt
* to True-Name Nemesis by sources controlled by the chosen player is prevented. * to True-Name Nemesis by sources controlled by the chosen player is prevented.
* (The same is true for sources owned by the chosen player that dont have * (The same is true for sources owned by the chosen player that don't have
* controllers.) * controllers.)
* *
* @author LevelX2 * @author LevelX2

View file

@ -46,7 +46,7 @@ class UpwellingRuleEffect extends ContinuousEffectImpl {
public UpwellingRuleEffect() { public UpwellingRuleEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Players dont lose unspent mana as steps and phases end"; staticText = "Players don't lose unspent mana as steps and phases end";
} }
public UpwellingRuleEffect(final UpwellingRuleEffect effect) { public UpwellingRuleEffect(final UpwellingRuleEffect effect) {

View file

@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.SupertypePredicate;
*/ */
public final class UrzasRuinousBlast extends CardImpl { public final class UrzasRuinousBlast extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("nonland permanents that arent legendary"); private static final FilterPermanent filter = new FilterPermanent("nonland permanents that aren't legendary");
static { static {
filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); filter.add(Predicates.not(new CardTypePredicate(CardType.LAND)));
@ -33,7 +33,7 @@ public final class UrzasRuinousBlast extends CardImpl {
// (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.) // (You may cast a legendary sorcery only if you control a legendary creature or planeswalker.)
this.addAbility(new LegendarySpellAbility()); this.addAbility(new LegendarySpellAbility());
// Exile all nonland permanents that arent legendary. // Exile all nonland permanents that aren't legendary.
this.getSpellAbility().addEffect(new ExileAllEffect(filter)); this.getSpellAbility().addEffect(new ExileAllEffect(filter));
} }

View file

@ -98,7 +98,7 @@ class VialSmasherTheFierceTriggeredAbility extends SpellCastControllerTriggeredA
@Override @Override
public String getRule() { public String getRule() {
return "Whenever you cast your first spell each turn, choose an opponent at random. " return "Whenever you cast your first spell each turn, choose an opponent at random. "
+ "{this} deals damage equal to that spells converted mana cost to that player or a planeswalker that player controls"; + "{this} deals damage equal to that spell's converted mana cost to that player or a planeswalker that player controls";
} }
} }
@ -106,7 +106,7 @@ class VialSmasherTheFierceEffect extends OneShotEffect {
public VialSmasherTheFierceEffect() { public VialSmasherTheFierceEffect() {
super(Outcome.Damage); super(Outcome.Damage);
this.staticText = "{this} choose an opponent at random. {this} deals damage equal to that spells converted mana cost to that player or a planeswalker that player controls"; this.staticText = "{this} choose an opponent at random. {this} deals damage equal to that spell's converted mana cost to that player or a planeswalker that player controls";
} }
public VialSmasherTheFierceEffect(final VialSmasherTheFierceEffect effect) { public VialSmasherTheFierceEffect(final VialSmasherTheFierceEffect effect) {

View file

@ -57,7 +57,7 @@ class VoidstoneGargoyleReplacementEffect1 extends ContinuousRuleModifyingEffectI
public VoidstoneGargoyleReplacementEffect1() { public VoidstoneGargoyleReplacementEffect1() {
super(Duration.WhileOnBattlefield, Outcome.Detriment); super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Spells with the chosen name cant be cast"; staticText = "Spells with the chosen name can't be cast";
} }
public VoidstoneGargoyleReplacementEffect1(final VoidstoneGargoyleReplacementEffect1 effect) { public VoidstoneGargoyleReplacementEffect1(final VoidstoneGargoyleReplacementEffect1 effect) {

View file

@ -69,7 +69,7 @@ public final class VulshokBattlemaster extends CardImpl {
filter.add(new SubtypePredicate(SubType.EQUIPMENT)); filter.add(new SubtypePredicate(SubType.EQUIPMENT));
for (Permanent equipment : game.getBattlefield().getAllActivePermanents(filter, game)) { for (Permanent equipment : game.getBattlefield().getAllActivePermanents(filter, game)) {
if (equipment != null) { if (equipment != null) {
//If an Equipment cant equip Vulshok Battlemaster, it isnt attached to the Battlemaster, and it doesnt become unattached (if its attached to a creature). (http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=48125) //If an Equipment can't equip Vulshok Battlemaster, it isn't attached to the Battlemaster, and it doesn't become unattached (if it's attached to a creature). (http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=48125)
if (!battlemaster.cantBeAttachedBy(equipment, game)) { if (!battlemaster.cantBeAttachedBy(equipment, game)) {
battlemaster.addAttachment(equipment.getId(), game); battlemaster.addAttachment(equipment.getId(), game);
} }

View file

@ -27,7 +27,7 @@ public final class WordOfUndoing extends CardImpl {
public WordOfUndoing(UUID ownerId, CardSetInfo setInfo) { public WordOfUndoing(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}");
//Return target creature and all white Auras you own attached to it to their owners hands. //Return target creature and all white Auras you own attached to it to their owners' hands.
this.getSpellAbility().addEffect(new WordOfUndoingReturnToHandEffect()); this.getSpellAbility().addEffect(new WordOfUndoingReturnToHandEffect());
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
@ -47,7 +47,7 @@ class WordOfUndoingReturnToHandEffect extends OneShotEffect {
public WordOfUndoingReturnToHandEffect() { public WordOfUndoingReturnToHandEffect() {
super(Outcome.ReturnToHand); super(Outcome.ReturnToHand);
this.staticText = "Return target creature and all white Auras you own attached to it to their owners hands."; this.staticText = "Return target creature and all white Auras you own attached to it to their owners' hands.";
} }
public WordOfUndoingReturnToHandEffect(final WordOfUndoingReturnToHandEffect effect) { public WordOfUndoingReturnToHandEffect(final WordOfUndoingReturnToHandEffect effect) {

View file

@ -30,7 +30,7 @@ public final class Worldpurge extends CardImpl {
public Worldpurge(UUID ownerId, CardSetInfo setInfo) { public Worldpurge(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W/U}{W/U}{W/U}{W/U}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W/U}{W/U}{W/U}{W/U}");
// Return all permanents to their owners hands. Each player chooses up to seven cards in their hand, then shuffles the rest into their library. Each player loses all unspent mana. // Return all permanents to their owners' hands. Each player chooses up to seven cards in their hand, then shuffles the rest into their library. Each player loses all unspent mana.
this.getSpellAbility().addEffect(new WorldpurgeEffect()); this.getSpellAbility().addEffect(new WorldpurgeEffect());
} }
@ -49,7 +49,7 @@ class WorldpurgeEffect extends OneShotEffect {
public WorldpurgeEffect() { public WorldpurgeEffect() {
super(Outcome.Discard); super(Outcome.Discard);
this.staticText = "Return all permanents to their owners hands. Each player chooses up to seven cards in their hand, then shuffles the rest into their library. Each player loses all unspent mana"; this.staticText = "Return all permanents to their owners' hands. Each player chooses up to seven cards in their hand, then shuffles the rest into their library. Each player loses all unspent mana";
} }
public WorldpurgeEffect(final WorldpurgeEffect effect) { public WorldpurgeEffect(final WorldpurgeEffect effect) {

View file

@ -43,7 +43,7 @@ public final class WormfangNewt extends CardImpl {
ability1.addTarget(target); ability1.addTarget(target);
this.addAbility(ability1); this.addAbility(ability1);
// When Wormfang Turtle leaves the battlefield, return the exiled card to the battlefield under its owners control. // When Wormfang Turtle leaves the battlefield, return the exiled card to the battlefield under its owner's control.
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false); Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false);
this.addAbility(ability2); this.addAbility(ability2);
} }

View file

@ -43,7 +43,7 @@ public final class WormfangTurtle extends CardImpl {
ability1.addTarget(target); ability1.addTarget(target);
this.addAbility(ability1); this.addAbility(ability1);
// When Wormfang Turtle leaves the battlefield, return the exiled card to the battlefield under its owners control. // When Wormfang Turtle leaves the battlefield, return the exiled card to the battlefield under its owner's control.
Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false); Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false);
this.addAbility(ability2); this.addAbility(ability2);
} }

View file

@ -42,7 +42,7 @@ public final class YawgmothsVileOffering extends CardImpl {
this.addAbility(new LegendarySpellAbility()); this.addAbility(new LegendarySpellAbility());
// Put up to one target creature or planeswalker from a graveyard onto the battlefield under your control. // Put up to one target creature or planeswalker from a graveyard onto the battlefield under your control.
// Destroy up to one target creature or planeswalker. Exile Yawgmoths Vile Offering. // Destroy up to one target creature or planeswalker. Exile Yawgmoth's Vile Offering.
this.getSpellAbility().addEffect(new YawgmothsVileOfferingEffect()); this.getSpellAbility().addEffect(new YawgmothsVileOfferingEffect());
this.getSpellAbility().addTarget(new TargetCardInGraveyard(0, 1, cardFilter)); this.getSpellAbility().addTarget(new TargetCardInGraveyard(0, 1, cardFilter));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker(0, 1, new FilterCreatureOrPlaneswalkerPermanent(), false)); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker(0, 1, new FilterCreatureOrPlaneswalkerPermanent(), false));

View file

@ -315,8 +315,8 @@ public class BloodMoonTest extends CardTestPlayerBase {
* If Blood Moon is on the battlefield, Flagstones of Trokair will enter the * If Blood Moon is on the battlefield, Flagstones of Trokair will enter the
* battlefield as a legendary non-basic Mountain. If Flagstones of Trokair * battlefield as a legendary non-basic Mountain. If Flagstones of Trokair
* is put into the graveyard due to Legends rule or because it was * is put into the graveyard due to Legends rule or because it was
* destroyed, its ability doesnt trigger, because it doesnt exist: it * destroyed, its ability doesn't trigger, because it doesn't exist: it
* wont fetch you a Plains. * won't fetch you a Plains.
*/ */
@Test @Test
public void testBloodMoonFlagstonesOfTrokair() { public void testBloodMoonFlagstonesOfTrokair() {
@ -350,13 +350,13 @@ public class BloodMoonTest extends CardTestPlayerBase {
} }
/** /**
* Because Blood Moons static ability operates only when its on the * Because Blood Moon's static ability operates only when it's on the
* battlefield and begins affecting any nonbasic lands immediately. In fact, * battlefield and begins affecting any nonbasic lands immediately. In fact,
* Blood Moons effect is so quick that once a non-basic land hits the * Blood Moon's effect is so quick that once a non-basic land hits the
* battlefield its going to be affected. Therefore: * battlefield it's going to be affected. Therefore:
* *
* If a nonbasic lands has EtB triggered abilities, these will not trigger * If a nonbasic land's has EtB triggered abilities, these will not trigger
* because the ability isnt there (its gone). Effects that modify the way * because the ability isn't there (it's gone). Effects that modify the way
* the land enters the battlefield are replacement effects. They are applied * the land enters the battlefield are replacement effects. They are applied
* before the permanent enters the battlefield and taking into account * before the permanent enters the battlefield and taking into account
* continuous effects that already exist and would apply to the permanent. * continuous effects that already exist and would apply to the permanent.

View file

@ -49,8 +49,8 @@ public class SkylineCascadeTest extends CardTestPlayerBase {
/** /**
* Reported bug on Skyline Cascade not working properly. * Reported bug on Skyline Cascade not working properly.
* *
* "Skyline Cascades triggered ability doesn't tap the creature. It can target any creature, tapped or untapped. * "Skyline Cascade's triggered ability doesn't tap the creature. It can target any creature, tapped or untapped.
* If that creature is already untapped at the beginning of its controllers next untap step, the effect wont do anything." * If that creature is already untapped at the beginning of its controller's next untap step, the effect won't do anything."
* http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=402038 * http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=402038
* *
* An untapped creature will remain untapped. * An untapped creature will remain untapped.

View file

@ -339,7 +339,7 @@ public class CloudshiftTest extends CardTestPlayerBase {
* of the end step even if Flickerwisp is no longer on the battlefield. * of the end step even if Flickerwisp is no longer on the battlefield.
* 8/1/2008 If the permanent that returns to the battlefield has any * 8/1/2008 If the permanent that returns to the battlefield has any
* abilities that trigger at the beginning of the end step, those abilities * abilities that trigger at the beginning of the end step, those abilities
* wont trigger that turn. * won't trigger that turn.
*/ */
@Test @Test
public void testDoubleFlickerwisp() { public void testDoubleFlickerwisp() {

View file

@ -52,7 +52,7 @@ public class AfflictTest extends CardTestPlayerBase {
// {T}: Add {C}. // {T}: Add {C}.
// {2}, {T}: Exile target creature you control. // {2}, {T}: Exile target creature you control.
// {4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owners control. // {4}, {T}, Sacrifice Endless Sands: Return each creature card exiled with Endless Sands to the battlefield under its owner's control.
addCard(Zone.BATTLEFIELD, playerA, "Endless Sands"); addCard(Zone.BATTLEFIELD, playerA, "Endless Sands");
// Deathtouch // Deathtouch

View file

@ -18,7 +18,7 @@ public class ChampionTest extends CardTestPlayerBase {
* 702.71a Champion represents two triggered abilities. Champion an [object] means When this * 702.71a Champion represents two triggered abilities. Champion an [object] means When this
* permanent enters the battlefield, sacrifice it unless you exile another [object] you control and * permanent enters the battlefield, sacrifice it unless you exile another [object] you control and
* When this permanent leaves the battlefield, return the exiled card to the battlefield under its * When this permanent leaves the battlefield, return the exiled card to the battlefield under its
* owners control. * owner's control.
* *
* 702.71b The two abilities represented by champion are linked. See rule 607, Linked Abilities. * 702.71b The two abilities represented by champion are linked. See rule 607, Linked Abilities.
* *

View file

@ -20,7 +20,7 @@ public class ConspireTest extends CardTestPlayerBase {
* As an additional cost to cast this spell, you may tap two untapped * As an additional cost to cast this spell, you may tap two untapped
* creatures you control that each share a color with it and When you cast * creatures you control that each share a color with it and When you cast
* this spell, if its conspire cost was paid, copy it. If the spell has any * this spell, if its conspire cost was paid, copy it. If the spell has any
* targets, you may choose new targets for the copy. Paying a spells * targets, you may choose new targets for the copy. Paying a spell's
* conspire cost follows the rules for paying additional costs in rules * conspire cost follows the rules for paying additional costs in rules
* 601.2b and 601.2eg. * 601.2b and 601.2eg.
* *

Some files were not shown because too many files have changed in this diff Show more