mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
if you're having text problems I feel bad for you son, I've got 99 problems and they're all text-related and I've only dealt with a small amount of them
This commit is contained in:
parent
c2ae2f89f0
commit
05a7c83a77
106 changed files with 133 additions and 129 deletions
|
@ -40,7 +40,7 @@ public final class AngrathsFury extends CardImpl {
|
|||
|
||||
// You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle it.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryGraveyardPutInHandEffect(filter)
|
||||
.setText("You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle it"));
|
||||
.setText("You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle"));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ class ArachnusSpinnerEffect extends OneShotEffect {
|
|||
super(Outcome.PutCardInPlay);
|
||||
this.staticText = "Search your graveyard and/or library for a card named Arachnus Web "
|
||||
+ "and put it onto the battlefield attached to target creature. "
|
||||
+ "If you search your library this way, shuffle it";
|
||||
+ "If you search your library this way, shuffle";
|
||||
}
|
||||
|
||||
public ArachnusSpinnerEffect(final ArachnusSpinnerEffect effect) {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
|
@ -12,27 +10,30 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.ComparisonType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterArtifactCard;
|
||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Plopman
|
||||
*/
|
||||
public final class ArtificersIntuition extends CardImpl {
|
||||
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with mana value 1 or less");
|
||||
|
||||
static {
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
public ArtificersIntuition(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
|
||||
|
||||
public ArtificersIntuition(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||
|
||||
// {U}, Discard an artifact card: Search your library for an artifact card with converted mana cost 1 or less, reveal that card, and put it into your hand. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true), new ManaCostsImpl("{U}"));
|
||||
ability.addCost(new DiscardCardCost(new FilterArtifactCard()));
|
||||
ability.addCost(new DiscardCardCost(StaticFilters.FILTER_CARD_ARTIFACT_AN));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -53,12 +53,12 @@ public final class AshlingsPrerogative extends CardImpl {
|
|||
|
||||
class AshlingsPrerogativeIncorrectOddityEffect extends PermanentsEnterBattlefieldTappedEffect {
|
||||
|
||||
private static final FilterCreaturePermanent creaturefilter = new FilterCreaturePermanent("Each creature without mana value of the chosen value");
|
||||
private static final FilterCreaturePermanent creaturefilter = new FilterCreaturePermanent("Each creature without mana value of the chosen quality");
|
||||
private static final ModeChoiceSourceCondition oddCondition = new ModeChoiceSourceCondition("Odd");
|
||||
|
||||
public AshlingsPrerogativeIncorrectOddityEffect() {
|
||||
super(creaturefilter);
|
||||
staticText = "Each creature without mana value of the chosen value enters the battlefield tapped.";
|
||||
staticText = "Each creature without mana value of the chosen quality enters the battlefield tapped.";
|
||||
}
|
||||
|
||||
public AshlingsPrerogativeIncorrectOddityEffect(final AshlingsPrerogativeIncorrectOddityEffect effect) {
|
||||
|
@ -88,12 +88,12 @@ class AshlingsPrerogativeIncorrectOddityEffect extends PermanentsEnterBattlefiel
|
|||
|
||||
class AshlingsPrerogativeCorrectOddityEffect extends GainAbilityAllEffect {
|
||||
|
||||
private static final FilterCreaturePermanent creaturefilter = new FilterCreaturePermanent("Each creature with mana value of the chosen value");
|
||||
private static final FilterCreaturePermanent creaturefilter = new FilterCreaturePermanent("Each creature with mana value of the chosen quality");
|
||||
private static final ModeChoiceSourceCondition oddCondition = new ModeChoiceSourceCondition("Odd");
|
||||
|
||||
public AshlingsPrerogativeCorrectOddityEffect() {
|
||||
super(HasteAbility.getInstance(), Duration.WhileOnBattlefield, creaturefilter);
|
||||
staticText = "Each creature with mana value of the chosen value has haste.";
|
||||
staticText = "Each creature with mana value of the chosen quality has haste.";
|
||||
}
|
||||
public AshlingsPrerogativeCorrectOddityEffect(final AshlingsPrerogativeCorrectOddityEffect effect) {
|
||||
super(effect);
|
||||
|
|
|
@ -63,7 +63,7 @@ class AvatarOfGrowthSearchEffect extends OneShotEffect {
|
|||
|
||||
public AvatarOfGrowthSearchEffect() {
|
||||
super(Outcome.Detriment);
|
||||
this.staticText = "each player searches their library for up to two basic land cards, puts them onto the battlefield, then shuffles their libarary";
|
||||
this.staticText = "each player searches their library for up to two basic land cards, puts them onto the battlefield, then shuffles";
|
||||
}
|
||||
|
||||
public AvatarOfGrowthSearchEffect(final AvatarOfGrowthSearchEffect effect) {
|
||||
|
|
|
@ -57,7 +57,7 @@ public final class AyliEternalPilgrim extends CardImpl {
|
|||
new ExileTargetEffect(),
|
||||
new ManaCostsImpl("{1}{W}{B}"),
|
||||
new AyliEternalPilgrimCondition(),
|
||||
"{1}{W}{B}, Sacrifice another creature: Exile target nonland permanent. Activate this ability only if you have at least 10 life more than your starting life total");
|
||||
"{1}{W}{B}, Sacrifice another creature: Exile target nonland permanent. Activate only if you have at least 10 life more than your starting life total");
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE)));
|
||||
ability.addTarget(new TargetNonlandPermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -33,8 +33,8 @@ public final class BeetleformMage extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {G}{U}: Beetleform Mage gets +2/+2 and gains flying until end of turn. Activate this ability only once each turn.
|
||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2,2, Duration.EndOfTurn), new ManaCostsImpl("{G}{U}"));
|
||||
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn));
|
||||
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2,2, Duration.EndOfTurn).setText("{this} gets +2/+2"), new ManaCostsImpl("{G}{U}"));
|
||||
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn).setText("and gains flying until end of turn"));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class BlackCarriage extends CardImpl {
|
|||
// Sacrifice a creature: Untap Black Carriage. Activate this ability only during your upkeep.
|
||||
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new UntapSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)),
|
||||
new IsStepCondition(PhaseStep.UPKEEP), "Sacrifice a creature: Untap {this}. Activate this ability only during your upkeep."));
|
||||
new IsStepCondition(PhaseStep.UPKEEP), "Sacrifice a creature: Untap {this}. Activate only during your upkeep."));
|
||||
}
|
||||
|
||||
private BlackCarriage(final BlackCarriage card) {
|
||||
|
|
|
@ -42,7 +42,7 @@ class BlastOfGeniusEffect extends OneShotEffect {
|
|||
|
||||
public BlastOfGeniusEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Choose any target. Draw three cards and discard a card. {this} deals damage equal to the mana value of the discard card to that permanent or player";
|
||||
this.staticText = "Choose any target. Draw three cards, then discard a card. {this} deals damage equal to the discard card's mana value to that permanent or player";
|
||||
}
|
||||
|
||||
public BlastOfGeniusEffect(final BlastOfGeniusEffect effect) {
|
||||
|
|
|
@ -37,9 +37,9 @@ public final class BlastZone extends CardImpl {
|
|||
|
||||
// Blast Zone enters the battlefield with a charge counter on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(
|
||||
new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1))
|
||||
,"with a charge counter")
|
||||
);
|
||||
new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)),
|
||||
"with a charge counter on it"
|
||||
));
|
||||
|
||||
// {T}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
|
|
|
@ -49,7 +49,7 @@ class BloodScrivenerReplacementEffect extends ReplacementEffectImpl {
|
|||
|
||||
public BloodScrivenerReplacementEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Benefit);
|
||||
staticText = "If you would draw a card while you have no cards in hand, instead draw two cards and lose 1 life";
|
||||
staticText = "If you would draw a card while you have no cards in hand, instead you draw two cards and you lose 1 life";
|
||||
}
|
||||
|
||||
public BloodScrivenerReplacementEffect(final BloodScrivenerReplacementEffect effect) {
|
||||
|
|
|
@ -51,7 +51,7 @@ public final class BloodshotTrainee extends CardImpl {
|
|||
class BloodshotTraineeCost extends CostImpl {
|
||||
|
||||
public BloodshotTraineeCost() {
|
||||
this.text = "Activate this ability only if Bloodshot Trainee's power is 4 or greater";
|
||||
this.text = "Activate only if Bloodshot Trainee's power is 4 or greater";
|
||||
}
|
||||
|
||||
public BloodshotTraineeCost(final BloodshotTraineeCost cost) {
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class BoggartHarbinger extends CardImpl {
|
|||
// When Boggart Harbinger enters the battlefield, you may search your library for a Goblin card, reveal it,
|
||||
// then shuffle your library and put that card on top of it.
|
||||
TargetCardInLibrary target = new TargetCardInLibrary(filter);
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true)));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutOnLibraryEffect(target, true, true),true));
|
||||
}
|
||||
|
||||
private BoggartHarbinger(final BoggartHarbinger card) {
|
||||
|
|
|
@ -54,7 +54,7 @@ class BoonweaverGiantEffect extends OneShotEffect {
|
|||
|
||||
public BoonweaverGiantEffect() {
|
||||
super(Outcome.UnboostCreature);
|
||||
this.staticText = "you may search your graveyard, hand, and/or library for an Aura card and put it onto the battlefield attached to {this}. If you search your library this way, shuffle it.";
|
||||
this.staticText = "you may search your graveyard, hand, and/or library for an Aura card and put it onto the battlefield attached to {this}. If you search your library this way, shuffle.";
|
||||
}
|
||||
|
||||
public BoonweaverGiantEffect(final BoonweaverGiantEffect effect) {
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class BraidwoodSextant extends CardImpl {
|
|||
|
||||
// {2}, {tap}, Sacrifice Braidwood Sextant: Search your library for a basic land card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
|
||||
new ManaCostsImpl("{2}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
|
|
|
@ -84,6 +84,6 @@ class ActivateAsSorceryConditionalActivatedAbility extends ActivatedAbilityImpl
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast a sorcery, and only if seven or more cards are in your graveyard.";
|
||||
return super.getRule() + " Activate only as a sorcery, and only if seven or more cards are in your graveyard.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class Carrionette extends CardImpl {
|
|||
// {2}{B}{B}: Exile Carrionette and target creature unless that creature's controller pays {2}. Activate this ability only if Carrionette is in your graveyard.
|
||||
DoUnlessTargetPlayerOrTargetsControllerPaysEffect effect = new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new ExileTargetEffect(), new ManaCostsImpl("{2}"));
|
||||
effect.addEffect(new ExileSourceEffect());
|
||||
effect.setText("Exile {this} and target creature unless that creature's controller pays {2}. Activate this ability only if {this} is in your graveyard");
|
||||
effect.setText("Exile {this} and target creature unless that creature's controller pays {2}. Activate only if {this} is in your graveyard");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, effect, new ManaCostsImpl("{2}{B}{B}"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -80,7 +80,7 @@ class CharmedPendantAbility extends ActivatedManaAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast an instant.";
|
||||
return super.getRule() + " Activate only as an instant.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class CleansingWildfire extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetLandPermanent());
|
||||
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private CleansingWildfire(final CleansingWildfire card) {
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class CropSigil extends CardImpl {
|
|||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(true), new ManaCostsImpl<>("{2}{G}"),
|
||||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — {2}{G}, Sacrifice {this}: Return up to one target creature card and up to one target land card from your graveyard to your hand. "
|
||||
+ "Activate this ability only if there are four or more card types among cards in your graveyard");
|
||||
+ "Activate only if there are four or more card types among cards in your graveyard");
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCardInYourGraveyard(0, 1, filterCreature));
|
||||
ability.addTarget(new TargetCardInYourGraveyard(0, 1, filterLand));
|
||||
|
|
|
@ -65,7 +65,7 @@ class DarkSupplicantEffect extends OneShotEffect {
|
|||
|
||||
public DarkSupplicantEffect() {
|
||||
super(Outcome.PutCardInPlay);
|
||||
this.staticText = "Search your graveyard, hand, and/or library for a card named Scion of Darkness and put it onto the battlefield. If you search your library this way, shuffle it";
|
||||
this.staticText = "Search your graveyard, hand, and/or library for a card named Scion of Darkness and put it onto the battlefield. If you search your library this way, shuffle";
|
||||
}
|
||||
|
||||
public DarkSupplicantEffect(final DarkSupplicantEffect effect) {
|
||||
|
|
|
@ -102,8 +102,8 @@ class DeathsOasisTriggeredAbility extends DiesCreatureTriggeredAbility {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a nontoken creature you control dies, put the top two cards of your library " +
|
||||
"into your graveyard. Then return a creature card with lesser mana value " +
|
||||
return "Whenever a nontoken creature you control dies, mill two cards. " +
|
||||
"Then return a creature card with lesser mana value " +
|
||||
"than the creature that died from your graveyard to your hand.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class DementiaSliver extends CardImpl {
|
|||
"All Slivers have \"{T}: Choose a card name. "
|
||||
+ "Target opponent reveals a card at random from their hand."
|
||||
+ " If that card has the chosen name, that player discards it."
|
||||
+ " Activate this ability only during your turn.\""
|
||||
+ " Activate only during your turn.\""
|
||||
)
|
||||
));
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class DrJuliusJumblemorph extends CardImpl {
|
|||
// TODO: Host currently isn't implemented, so this ability currently would never trigger
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
new InfoEffect("you may search your library and/or graveyard for a card with augment " +
|
||||
"and combine it with that host. If you search your library this way, shuffle it."), filter
|
||||
"and combine it with that host. If you search your library this way, shuffle."), filter
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class DreadWanderer extends CardImpl {
|
|||
new ManaCostsImpl("{2}{B}"),
|
||||
HeckbentCondition.instance,
|
||||
"{2}{B}: Return {this} from your graveyard to the battlefield. "
|
||||
+ "Activate this ability only any time you could cast a sorcery "
|
||||
+ "Activate only as a sorcery "
|
||||
+ "and only if you have one or fewer cards in hand."
|
||||
);
|
||||
ability.setTiming(TimingRule.SORCERY);
|
||||
|
|
|
@ -86,7 +86,7 @@ class DreadhordeArcanistEffect extends OneShotEffect {
|
|||
super(Outcome.PlayForFree);
|
||||
this.staticText = "you may cast target instant or sorcery card with mana value "
|
||||
+ "less than or equal to {this}'s power from your graveyard without paying its mana cost. "
|
||||
+ "If that card would be put into your graveyard this turn, exile it instead.";
|
||||
+ "If that spell would be put into your graveyard this turn, exile it instead.";
|
||||
}
|
||||
|
||||
private DreadhordeArcanistEffect(final DreadhordeArcanistEffect effect) {
|
||||
|
|
|
@ -27,7 +27,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class EdificeOfAuthority extends CardImpl {
|
||||
|
||||
private static final String rule = "{1}, {T}: Until your next turn, target creature can't attack or block and its activated abilities can't be activated. Activate this ability only if there are three or more brick counter on {this}.";
|
||||
private static final String rule = "{1}, {T}: Until your next turn, target creature can't attack or block and its activated abilities can't be activated. Activate only if there are three or more brick counter on {this}.";
|
||||
|
||||
public EdificeOfAuthority(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
|
|
@ -67,7 +67,7 @@ class EmissaryOfGrudgesEffect extends OneShotEffect {
|
|||
public EmissaryOfGrudgesEffect() {
|
||||
super(Outcome.Neutral);
|
||||
this.staticText = "Choose new targets for target spell or ability if it's controlled by the chosen player and" +
|
||||
" if it targets you or a permanent you control. Activate this ability only once.";
|
||||
" if it targets you or a permanent you control. Activate only once.";
|
||||
}
|
||||
|
||||
public EmissaryOfGrudgesEffect(final EmissaryOfGrudgesEffect effect) {
|
||||
|
|
|
@ -86,7 +86,7 @@ class ManaScrewAbility extends ActivatedManaAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast an instant.";
|
||||
return super.getRule() + " Activate only as an instant.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ class ExtinctionEventEffect extends OneShotEffect {
|
|||
|
||||
ExtinctionEventEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "Choose odd or even. Exile each creature with mana value of the chosen value. <i>(Zero is even.)</i>";
|
||||
staticText = "Choose odd or even. Exile each creature with mana value of the chosen quality. <i>(Zero is even.)</i>";
|
||||
}
|
||||
|
||||
private ExtinctionEventEffect(final ExtinctionEventEffect effect) {
|
||||
|
|
|
@ -81,7 +81,7 @@ class GateToTheAfterlifeEffect extends OneShotEffect {
|
|||
super(Outcome.Benefit);
|
||||
this.staticText = "Search your graveyard, hand, and/or library for a card named "
|
||||
+ cardName
|
||||
+ " and put it onto the battlefield. If you search your library this way, shuffle it";
|
||||
+ " and put it onto the battlefield. If you search your library this way, shuffle";
|
||||
}
|
||||
|
||||
public GateToTheAfterlifeEffect(final GateToTheAfterlifeEffect effect) {
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class Glory extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
// {2}{W}: Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate this ability only if Glory is in your graveyard.
|
||||
Effect effect = new GainProtectionFromColorAllEffect(Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control"));
|
||||
effect.setText("Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate this ability only if {this} is in your graveyard.");
|
||||
effect.setText("Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate only if {this} is in your graveyard.");
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, effect, new ManaCostsImpl("{2}{W}")));
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import mage.filter.predicate.mageobject.ManaValuePredicate;
|
|||
*/
|
||||
public final class Granulate extends CardImpl {
|
||||
|
||||
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland artifact with mana value 4 or less");
|
||||
private static final FilterNonlandPermanent filter = new FilterNonlandPermanent();
|
||||
static {
|
||||
filter.add(CardType.ARTIFACT.getPredicate());
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 5));
|
||||
|
@ -26,7 +26,7 @@ public final class Granulate extends CardImpl {
|
|||
|
||||
|
||||
// Destroy each nonland artifact with converted mana cost 4 or less.
|
||||
this.getSpellAbility().addEffect(new DestroyAllEffect(filter));
|
||||
this.getSpellAbility().addEffect(new DestroyAllEffect(filter).setText("destroy each nonland artifact with mana value 4 or less"));
|
||||
}
|
||||
|
||||
private Granulate(final Granulate card) {
|
||||
|
|
|
@ -81,6 +81,6 @@ class GreaterGargadonAbility extends ActivatedAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only if Greater Gargadon is suspended.";
|
||||
return super.getRule() + " Activate only if Greater Gargadon is suspended.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ public final class GreenhiltTrainee extends CardImpl {
|
|||
class GreenhiltTraineeCost extends CostImpl {
|
||||
|
||||
public GreenhiltTraineeCost() {
|
||||
this.text = "Activate this ability only if Greenhilt Trainee's power is 4 or greater";
|
||||
this.text = "Activate only if Greenhilt Trainee's power is 4 or greater";
|
||||
}
|
||||
|
||||
public GreenhiltTraineeCost(final GreenhiltTraineeCost cost) {
|
||||
|
|
|
@ -12,6 +12,7 @@ import mage.abilities.condition.common.IsStepCondition;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.decorator.ConditionalActivatedAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -46,7 +47,7 @@ public final class GrimReminder extends CardImpl {
|
|||
// {B}{B}: Return Grim Reminder from your graveyard to your hand. Activate this ability only during your upkeep.
|
||||
this.addAbility(new ConditionalActivatedAbility(
|
||||
Zone.GRAVEYARD,
|
||||
new ReturnToHandSourceEffect(),
|
||||
new ReturnSourceFromGraveyardToHandEffect(),
|
||||
new ManaCostsImpl("{B}{B}"),
|
||||
new IsStepCondition(PhaseStep.UPKEEP),
|
||||
null
|
||||
|
|
|
@ -51,7 +51,7 @@ public final class GroundlingPouncer extends CardImpl {
|
|||
new BoostSourceEffect(1, 3, Duration.EndOfTurn),
|
||||
new ManaCostsImpl("{G/U}"),
|
||||
new OpponentControlsPermanentCondition(filter),
|
||||
"{G/U}: {this} gets +1/+3 and gains flying until end of turn. Activate this ability only once each turn and only if an opponent controls a creature with flying.");
|
||||
"{G/U}: {this} gets +1/+3 and gains flying until end of turn. Activate only once each turn and only if an opponent controls a creature with flying.");
|
||||
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn, false, true));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ class GryffsBoonEffect extends OneShotEffect {
|
|||
|
||||
public GryffsBoonEffect() {
|
||||
super(Outcome.PutCardInPlay);
|
||||
staticText = "Return {this} from your graveyard to the battlefield attached to target creature. Activate this ability only any time you could cast a sorcery.";
|
||||
staticText = "Return {this} from your graveyard to the battlefield attached to target creature. Activate only as a sorcery.";
|
||||
}
|
||||
|
||||
public GryffsBoonEffect(final GryffsBoonEffect effect) {
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class HauntedPlateMail extends CardImpl {
|
|||
new BecomesCreatureSourceEffect(new HauntedPlateMailToken(), "", Duration.EndOfTurn),
|
||||
new ManaCostsImpl("{0}"),
|
||||
new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_CREATURE, ComparisonType.EQUAL_TO, 0),
|
||||
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate this ability only if you control no creatures.");
|
||||
"{0}: Until end of turn, Haunted Plate Mail becomes a 4/4 Spirit artifact creature that's no longer an Equipment. Activate only if you control no creatures.");
|
||||
this.addAbility(ability);
|
||||
// Equip {4}
|
||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl("{4}")));
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class ImminentDoom extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
|
||||
|
||||
// Imminent Doom enters the battlefield with a doom counter on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DOOM.createInstance(1))));
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.DOOM.createInstance(1)), "with a doom counter on it"));
|
||||
|
||||
// Whenever you cast a spell with converted mana cost equal to the number of doom counters on Imminent Doom, Imminent Doom deals that much damage to any target. Then put a doom counter on Imminent Doom.
|
||||
Ability ability = new ImminentDoomTriggeredAbility();
|
||||
|
|
|
@ -29,7 +29,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class JeweledAmulet extends CardImpl {
|
||||
|
||||
private static final String rule = "{1}, {T}: Put a charge counter on {this}. Note the type of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on {this}";
|
||||
private static final String rule = "{1}, {T}: Put a charge counter on {this}. Note the type of mana spent to pay this activation cost. Activate only if there are no charge counters on {this}";
|
||||
|
||||
public JeweledAmulet(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{0}");
|
||||
|
@ -63,7 +63,7 @@ class JeweledAmuletAddCounterEffect extends OneShotEffect {
|
|||
|
||||
public JeweledAmuletAddCounterEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Note the type of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on {this}";
|
||||
this.staticText = "Note the type of mana spent to pay this activation cost. Activate only if there are no charge counters on {this}";
|
||||
}
|
||||
|
||||
public JeweledAmuletAddCounterEffect(final JeweledAmuletAddCounterEffect effect) {
|
||||
|
|
|
@ -24,7 +24,7 @@ public final class JourneyOfDiscovery extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
||||
|
||||
// Choose one - Search your library for up to two basic land cards, reveal them, put them into your hand, then shuffle your library;
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND)));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||
|
||||
// or you may play up to two additional lands this turn.
|
||||
Mode mode = new Mode();
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class LammastideWeave extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ class LavabrinkVenturerEffect extends GainAbilitySourceEffect {
|
|||
LavabrinkVenturerEffect() {
|
||||
super(new ProtectionAbility(nullFilter));
|
||||
this.ability.setRuleVisible(false);
|
||||
staticText = "{this} has protection from each mana value of the chosen value. <i>(Zero is even.)</i>";
|
||||
staticText = "{this} has protection from each mana value of the chosen quality. <i>(Zero is even.)</i>";
|
||||
}
|
||||
|
||||
private LavabrinkVenturerEffect(final LavabrinkVenturerEffect effect) {
|
||||
|
|
|
@ -21,7 +21,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public final class LeoninSquire extends CardImpl {
|
||||
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard("target artifact card with mana value 1 or less from your graveyard");
|
||||
private static final FilterArtifactCard filter = new FilterArtifactCard("artifact card with mana value 1 or less from your graveyard");
|
||||
static {
|
||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 2));
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class LifeMatrix extends CardImpl {
|
|||
new GenericManaCost(4),
|
||||
new IsStepCondition(PhaseStep.UPKEEP), "Put a matrix counter on target creature and "
|
||||
+ "that creature gains “Remove a matrix counter from this creature: "
|
||||
+ "Regenerate this creature.” Activate this ability only during your upkeep.");
|
||||
+ "Regenerate this creature.” Activate only during your upkeep.");
|
||||
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new RegenerateSourceEffect(),
|
||||
new RemoveCountersSourceCost(CounterType.MATRIX.createInstance()));
|
||||
|
|
|
@ -27,7 +27,7 @@ import mage.target.targetadjustment.TargetAdjuster;
|
|||
*/
|
||||
public final class LilianaDefiantNecromancer extends CardImpl {
|
||||
|
||||
protected static final FilterCreatureCard filter = new FilterCreatureCard("nonlegendary creature with mana value X from your graveyard");
|
||||
protected static final FilterCreatureCard filter = new FilterCreatureCard("nonlegendary creature card with mana value X from your graveyard");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(SuperType.LEGENDARY.getPredicate()));
|
||||
|
|
|
@ -72,6 +72,6 @@ class LionsEyeDiamondAbility extends ActivatedManaAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast an instant.";
|
||||
return super.getRule() + " Activate only as an instant.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ class LongTermPlansEffect extends OneShotEffect {
|
|||
|
||||
LongTermPlansEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Search your library for a card, shuffle your library, then put that card third from the top";
|
||||
this.staticText = "Search your library for a card, then shuffle and put that card third from the top";
|
||||
}
|
||||
|
||||
LongTermPlansEffect(final LongTermPlansEffect effect) {
|
||||
|
|
|
@ -87,7 +87,7 @@ class SourceHasCountersCost extends CostImpl {
|
|||
public SourceHasCountersCost(int counters, CounterType counterType) {
|
||||
this.counters = counters;
|
||||
this.counterType = counterType;
|
||||
this.text = "Activate this ability only if Luminarch Ascension has 4 or more quest counters on it";
|
||||
this.text = "Activate only if Luminarch Ascension has 4 or more quest counters on it";
|
||||
}
|
||||
|
||||
public SourceHasCountersCost(final SourceHasCountersCost cost) {
|
||||
|
|
|
@ -23,7 +23,7 @@ import mage.counters.CounterType;
|
|||
*/
|
||||
public final class LuxaRiverShrine extends CardImpl {
|
||||
|
||||
private static final String rule = "{T}: You gain 2 life. Activate this ability only if there are three or more brick counters on {this}.";
|
||||
private static final String rule = "{T}: You gain 2 life. Activate only if there are three or more brick counters on {this}.";
|
||||
|
||||
public LuxaRiverShrine(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
|
|
@ -54,7 +54,7 @@ public final class MaddeningImp extends CardImpl {
|
|||
new TapSourceCost(), new MaddeningImpTurnCondition(),
|
||||
"{T}: Non-Wall creatures the active player controls attack this turn if able. "
|
||||
+ "At the beginning of the next end step, destroy each of those creatures that didn't attack this turn. "
|
||||
+ "Activate this ability only during an opponent's turn and only before combat.");
|
||||
+ "Activate only during an opponent's turn and only before combat.");
|
||||
ability.addEffect(new MaddeningImpCreateDelayedTriggeredAbilityEffect());
|
||||
this.addAbility(ability, new AttackedThisTurnWatcher());
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ class ManaScrewAbility extends ActivatedManaAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast an instant.";
|
||||
return super.getRule() + " Activate only as an instant.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ class ManipulateFateEffect extends SearchEffect {
|
|||
ManipulateFateEffect() {
|
||||
super(new TargetCardInLibrary(3, StaticFilters.FILTER_CARD), Outcome.Benefit);
|
||||
staticText = "Search your library for three cards, exile them, "
|
||||
+ "then shuffle. Draw a card";
|
||||
+ "then shuffle.<br>Draw a card";
|
||||
}
|
||||
|
||||
private ManipulateFateEffect(final ManipulateFateEffect effect) {
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class MetallurgicSummonings extends CardImpl {
|
|||
new MetallurgicSummoningsReturnEffect(), new ManaCostsImpl("{3}{U}{U}"),
|
||||
new PermanentsOnTheBattlefieldCondition(new FilterControlledArtifactPermanent(), ComparisonType.MORE_THAN, 5),
|
||||
"{3}{U}{U}, Exile {this}: Return all instant and sorcery cards from your graveyard to your hand."
|
||||
+ " Activate this ability only if you control six or more artifacts.");
|
||||
+ " Activate only if you control six or more artifacts.");
|
||||
ability.addCost(new ExileSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ class MetallurgicSummoningsReturnEffect extends OneShotEffect {
|
|||
|
||||
MetallurgicSummoningsReturnEffect() {
|
||||
super(Outcome.PutCardInPlay);
|
||||
this.staticText = "Return all instant and sorcery cards from your graveyard to your hand. Activate this ability only if you control six or more artifacts";
|
||||
this.staticText = "Return all instant and sorcery cards from your graveyard to your hand. Activate only if you control six or more artifacts";
|
||||
}
|
||||
|
||||
MetallurgicSummoningsReturnEffect(final MetallurgicSummoningsReturnEffect effect) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class MindwhipSliver extends CardImpl {
|
|||
gainedAbility.addCost(new SacrificeSourceCost());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
|
||||
new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, filter,
|
||||
"All Slivers have \"{2}, Sacrifice this permanent: Target player discards a card at random. Activate this ability only any time you could cast a sorcery.\"")));
|
||||
"All Slivers have \"{2}, Sacrifice this permanent: Target player discards a card at random. Activate only as a sorcery.\"")));
|
||||
}
|
||||
|
||||
private MindwhipSliver(final MindwhipSliver card) {
|
||||
|
|
|
@ -87,7 +87,7 @@ class MishraArtificerProdigyTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you cast an artifact spell, you may search your graveyard, hand, and/or library for a card with the same name as that spell and put it onto the battlefield. If you search your library this way, shuffle it.";
|
||||
return "Whenever you cast an artifact spell, you may search your graveyard, hand, and/or library for a card with the same name as that spell and put it onto the battlefield. If you search your library this way, shuffle.";
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ class MishraArtificerProdigyEffect extends OneShotEffect {
|
|||
|
||||
MishraArtificerProdigyEffect() {
|
||||
super(Outcome.PutCardInPlay);
|
||||
this.staticText = "Search your graveyard, hand, and/or library for a card named <i>" + cardName + "</i> and put it onto the battlefield. If you search your library this way, shuffle it.";
|
||||
this.staticText = "Search your graveyard, hand, and/or library for a card named <i>" + cardName + "</i> and put it onto the battlefield. If you search your library this way, shuffle.";
|
||||
}
|
||||
|
||||
MishraArtificerProdigyEffect(final MishraArtificerProdigyEffect effect) {
|
||||
|
|
|
@ -52,7 +52,7 @@ public final class NettlingImp extends CardImpl {
|
|||
new TapSourceCost(), new NettlingImpTurnCondition(),
|
||||
"{T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. "
|
||||
+ "That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. "
|
||||
+ "Activate this ability only during an opponent's turn, before attackers are declared.");
|
||||
+ "Activate only during an opponent's turn, before attackers are declared.");
|
||||
ability.addEffect(new NettlingImpDelayedDestroyEffect());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability, new AttackedThisTurnWatcher());
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class NimDevourer extends CardImpl {
|
|||
|
||||
// {B}{B}: Return Nim Devourer from your graveyard to the battlefield, then sacrifice a creature. Activate this ability only during your upkeep.
|
||||
Ability ability = new ConditionalActivatedAbility(Zone.GRAVEYARD,
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(),
|
||||
new ReturnSourceFromGraveyardToBattlefieldEffect(false, false),
|
||||
new ManaCostsImpl("{B}{B}"),
|
||||
new IsStepCondition(PhaseStep.UPKEEP), null);
|
||||
ability.addEffect(new NimDevourerEffect());
|
||||
|
@ -64,7 +64,7 @@ class NimDevourerEffect extends OneShotEffect {
|
|||
|
||||
public NimDevourerEffect() {
|
||||
super(Outcome.Sacrifice);
|
||||
this.staticText = "then sacrifice a creature";
|
||||
this.staticText = ", then sacrifice a creature";
|
||||
}
|
||||
|
||||
public NimDevourerEffect(final NimDevourerEffect effect) {
|
||||
|
|
|
@ -66,7 +66,7 @@ public final class Norritt extends CardImpl {
|
|||
new TapSourceCost(), BeforeAttackersAreDeclaredCondition.instance,
|
||||
"{T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. "
|
||||
+ "That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. "
|
||||
+ "Activate this ability only before attackers are declared.");
|
||||
+ "Activate only before attackers are declared.");
|
||||
ability2.addEffect(new NorrittDelayedDestroyEffect());
|
||||
ability2.addTarget(new TargetCreaturePermanent(filterCreature));
|
||||
this.addAbility(ability2, new AttackedThisTurnWatcher());
|
||||
|
|
|
@ -42,7 +42,7 @@ public final class OraclesVault extends CardImpl {
|
|||
this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new OraclesVaultFreeEffect(), new TapSourceCost(), new SourceHasCounterCondition(CounterType.BRICK, 3, Integer.MAX_VALUE),
|
||||
"{T}: Exile the top card of your library. Until end of turn, you may play that card without paying its mana cost. "
|
||||
+ "Activate this ability only if there are three or more brick counters on {this}"));
|
||||
+ "Activate only if there are three or more brick counters on {this}"));
|
||||
}
|
||||
|
||||
private OraclesVault(final OraclesVault card) {
|
||||
|
|
|
@ -46,7 +46,7 @@ class OverloadEffect extends OneShotEffect {
|
|||
|
||||
OverloadEffect() {
|
||||
super(Outcome.DestroyPermanent);
|
||||
this.staticText = "Destroy target artifact if its mana value is 2 or less. if this spell was kicked, destroy that artifact if its mana value is 5 or less instead.";
|
||||
this.staticText = "Destroy target artifact if its mana value is 2 or less. If this spell was kicked, destroy that artifact if its mana value is 5 or less instead.";
|
||||
}
|
||||
|
||||
OverloadEffect(final OverloadEffect effect) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class Prophecy extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Prophecy(final Prophecy card) {
|
||||
|
|
|
@ -88,7 +88,7 @@ class PsychicBattleEffect extends OneShotEffect {
|
|||
|
||||
public PsychicBattleEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "each player reveals the top card of their library. The player who reveals the card with the highest mana value may change the target or targets. If two or more cards are tied for highest cost, the target or targets remain unchanged";
|
||||
this.staticText = "each player reveals the top card of their library. The player who reveals the card with the highest mana value may change the target or targets. If two or more cards are tied for highest, the target or targets remain unchanged";
|
||||
}
|
||||
|
||||
public PsychicBattleEffect(final PsychicBattleEffect effect) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class ReaperOfFlightMoonsilver extends CardImpl {
|
|||
new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)),
|
||||
DeliriumCondition.instance,
|
||||
"<i>Delirium</i> — Sacrifice another creature: Reaper of Flight Moonsilver gets +2/+1 until end of turn. "
|
||||
+ "Activate this ability only if there are four or more card types among cards in your graveyard")
|
||||
+ "Activate only if there are four or more card types among cards in your graveyard")
|
||||
.addHint(DeliriumHint.instance));
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.target.common.TargetCardInLibrary;
|
|||
*/
|
||||
public final class RelicSeeker extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Equipment card");
|
||||
private static final FilterCard filter = new FilterCard("an Equipment card");
|
||||
|
||||
static {
|
||||
filter.add(CardType.ARTIFACT.getPredicate());
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class Renewal extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND)));
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
|
||||
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Renewal(final Renewal card) {
|
||||
|
|
|
@ -77,7 +77,7 @@ class RhysticCaveManaAbility extends ActivatedManaAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return super.getRule() + " Activate this ability only any time you could cast an instant.";
|
||||
return super.getRule() + " Activate only as an instant.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package mage.cards.r;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
|
||||
import mage.abilities.effects.common.DoIfClashWonEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
|
@ -29,7 +30,7 @@ public final class Ringskipper extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When {this} is put into graveyard from play, clash with an opponent. If you win return {this} to its owner's hand
|
||||
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new DoIfClashWonEffect(new ReturnToHandSourceEffect())));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new DoIfClashWonEffect(new ReturnToHandSourceEffect(false,true))));
|
||||
}
|
||||
|
||||
private Ringskipper(final Ringskipper card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class RotFarmSkeleton extends CardImpl {
|
|||
this.addAbility(new CantBlockAbility());
|
||||
|
||||
// 2{B}{G}, Put the top four cards of your library into your graveyard: Return Rot Farm Skeleton from your graveyard to the battlefield. Activate this ability only any time you could cast a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), new ManaCostsImpl("{2}{B}{G}"));
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(false,false), new ManaCostsImpl("{2}{B}{G}"));
|
||||
ability.addCost(new MillCardsCost(4));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ class RunedCrownEffect extends OneShotEffect {
|
|||
RunedCrownEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "you may search your library, hand, and/or graveyard for a Rune card " +
|
||||
"and put it onto the battlefield attached to {this}. If you search your library this way, shuffle it";
|
||||
"and put it onto the battlefield attached to {this}. If you search your library this way, shuffle";
|
||||
}
|
||||
|
||||
private RunedCrownEffect(final RunedCrownEffect effect) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class RuneforgeChampion extends CardImpl {
|
|||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryGraveyardPutInHandEffect(
|
||||
filter, false, false
|
||||
).setText("search your library and/or graveyard for a Rune card, reveal it, " +
|
||||
"and put it into your hand. If you search your library this way, shuffle it"), true));
|
||||
"and put it into your hand. If you search your library this way, shuffle"), true));
|
||||
|
||||
// You may pay {1} rather than pay the mana cost for Rune spells you cast.
|
||||
this.addAbility(new SimpleStaticAbility(new RuneforgeChampionEffect()));
|
||||
|
|
|
@ -24,7 +24,7 @@ import mage.target.common.TargetCardInYourGraveyard;
|
|||
*/
|
||||
public final class SalvagingStation extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("noncreature artifact card with mana value 1 or less");
|
||||
private static final FilterCard filter = new FilterCard("noncreature artifact card with mana value 1 or less from your graveyard");
|
||||
|
||||
static {
|
||||
filter.add(CardType.ARTIFACT.getPredicate());
|
||||
|
@ -36,7 +36,7 @@ public final class SalvagingStation extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}");
|
||||
|
||||
// {tap}: Return target noncreature artifact card with converted mana cost 1 or less from your graveyard to the battlefield.
|
||||
Ability secondAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(), new TapSourceCost());
|
||||
Ability secondAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToBattlefieldTargetEffect(false, false), new TapSourceCost());
|
||||
secondAbility.addTarget(new TargetCardInYourGraveyard(filter));
|
||||
this.addAbility(secondAbility);
|
||||
// Whenever a creature dies, you may untap Salvaging Station.
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.RecruiterEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterBasicLandCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LoneFox
|
||||
*/
|
||||
public final class ScoutingTrek extends CardImpl {
|
||||
|
||||
public ScoutingTrek(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
|
||||
|
||||
// Search your library for any number of basic land cards. Reveal those cards, then shuffle your library and put them on top of it.
|
||||
this.getSpellAbility().addEffect(new RecruiterEffect(new FilterBasicLandCard("basic land cards")));
|
||||
this.getSpellAbility().addEffect(new RecruiterEffect(StaticFilters.FILTER_CARD_BASIC_LANDS).setText("search your library for any number of basic land cards, reveal those cards, then shuffle and put them on top"));
|
||||
}
|
||||
|
||||
private ScoutingTrek(final ScoutingTrek card) {
|
||||
|
|
|
@ -19,7 +19,7 @@ import mage.target.common.TargetCardInLibrary;
|
|||
*/
|
||||
public final class SeedguideAsh extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Forest");
|
||||
private static final FilterCard filter = new FilterCard("Forest cards");
|
||||
|
||||
static {
|
||||
filter.add(SubType.FOREST.getPredicate());
|
||||
|
@ -33,7 +33,7 @@ public final class SeedguideAsh extends CardImpl {
|
|||
this.power = new MageInt(4);
|
||||
this.toughness = new MageInt(4);
|
||||
// When Seedguide Ash dies, you may search your library for up to three Forest cards and put them onto the battlefield tapped. If you do, shuffle your library.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, filter), true, false, Outcome.PutLandInPlay), true));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, filter), true, true, Outcome.PutLandInPlay), true));
|
||||
}
|
||||
|
||||
private SeedguideAsh(final SeedguideAsh card) {
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class SeersVision extends CardImpl {
|
|||
// Your opponents play with their hands revealed.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayWithHandRevealedEffect(TargetController.OPPONENT)));
|
||||
// Sacrifice Seer's Vision: Look at target player's hand and choose a card from it. That player discards that card. Activate this ability only any time you could cast a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(TargetController.ANY), new SacrificeSourceCost());
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardCardYouChooseTargetEffect(TargetController.ANY).setText("look at target player's hand and choose a card from it. That player discards that card"), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ class ShadowsVerdictEffect extends OneShotEffect {
|
|||
|
||||
ShadowsVerdictEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "exile all creatures and all planeswalkers with mana value 3 or less from the battlefield " +
|
||||
staticText = "exile all creatures and planeswalkers with mana value 3 or less from the battlefield " +
|
||||
"and all creature and planeswalker cards with mana value 3 or less from all graveyards";
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class SkarrganHellkite extends CardImpl {
|
|||
Zone.BATTLEFIELD, new DamageMultiEffect(2),
|
||||
new ManaCostsImpl("{3}{R}"), new SourceHasCounterCondition(CounterType.P1P1),
|
||||
"{3}{R}: {this} deals 2 damage divided as you choose among one or two targets. " +
|
||||
"Activate this ability only if {this} has a +1/+1 counter on it."
|
||||
"Activate only if {this} has a +1/+1 counter on it."
|
||||
);
|
||||
ability.addTarget(new TargetAnyTargetAmount(2));
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class Skygames extends CardImpl {
|
|||
Ability gainAbility = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new TapSourceCost());
|
||||
gainAbility.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainAbility, AttachmentType.AURA,
|
||||
Duration.WhileOnBattlefield, "Enchanted land has \"{T}: Target creature gains flying until end of turn. Activate this ability only any time you could cast a sorcery.\"")));
|
||||
Duration.WhileOnBattlefield, "Enchanted land has \"{T}: Target creature gains flying until end of turn. Activate only as a sorcery.\"")));
|
||||
}
|
||||
|
||||
private Skygames(final Skygames card) {
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class SliverHive extends CardImpl {
|
|||
// {5}, {T}: Create a 1/1 colorless Sliver creature token. Activate this ability only if you control a Sliver.
|
||||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SliverToken()), new TapSourceCost(),
|
||||
new PermanentsOnTheBattlefieldCondition(filter),
|
||||
"{5}, {T}: Create a 1/1 colorless Sliver creature token. Activate this ability only if you control a Sliver.");
|
||||
"{5}, {T}: Create a 1/1 colorless Sliver creature token. Activate only if you control a Sliver.");
|
||||
ability.addCost(new GenericManaCost(5));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class SmolderingTar extends CardImpl {
|
|||
ability.addTarget(new TargetPlayer());
|
||||
this.addAbility(ability);
|
||||
// Sacrifice Smoldering Tar: Smoldering Tar deals 4 damage to target creature. Activate this ability only any time you could cast a sorcery.
|
||||
ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new SacrificeSourceCost());
|
||||
ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4, "it"), new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ class StalkingLeoninEffect extends OneShotEffect {
|
|||
|
||||
public StalkingLeoninEffect() {
|
||||
super(Outcome.Exile);
|
||||
this.staticText = "Exile target creature that's attacking you if it's controlled by the chosen player. Activate this ability only once";
|
||||
this.staticText = "Exile target creature that's attacking you if it's controlled by the chosen player. Activate only once";
|
||||
}
|
||||
|
||||
public StalkingLeoninEffect(final StalkingLeoninEffect effect) {
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class SteelshapersGift extends CardImpl {
|
|||
|
||||
|
||||
// Search your library for an Equipment card, reveal that card, and put it into your hand. Then shuffle your library.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(1, 1, filter), true));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true));
|
||||
}
|
||||
|
||||
private SteelshapersGift(final SteelshapersGift card) {
|
||||
|
|
|
@ -37,7 +37,7 @@ public final class TIEBomber extends CardImpl {
|
|||
new LoseAbilitySourceEffect(SpaceflightAbility.getInstance(), Duration.EndOfTurn),
|
||||
new GenericManaCost(1),
|
||||
new IsPhaseCondition(TurnPhase.COMBAT),
|
||||
"{1}: {this} loses Spaceflight until end od turn. Activate this ability only during combat."));
|
||||
"{1}: {this} loses Spaceflight until end od turn. Activate only during combat."));
|
||||
}
|
||||
|
||||
private TIEBomber(final TIEBomber card) {
|
||||
|
|
|
@ -64,7 +64,7 @@ class TectonicEdgeCost extends CostImpl {
|
|||
|
||||
|
||||
public TectonicEdgeCost() {
|
||||
this.text = "Activate this ability only if an opponent controls four or more lands";
|
||||
this.text = "Activate only if an opponent controls four or more lands";
|
||||
}
|
||||
|
||||
public TectonicEdgeCost(final TectonicEdgeCost cost) {
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class Timesifter extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{5}");
|
||||
|
||||
// At the beginning of each upkeep, each player exiles the top card of their library. The player who exiled the card with the highest converted mana cost takes an extra turn after this one. If two or more players' cards are tied for highest cost, the tied players repeat this process until the tie is broken.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TimesifterEffect(), TargetController.ANY, false));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TimesifterEffect(), TargetController.EACH_PLAYER, false));
|
||||
}
|
||||
|
||||
private Timesifter(final Timesifter card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class Tolaria extends CardImpl {
|
|||
// {T}: Target creature loses banding and all "bands with other" abilities until end of turn. Activate this ability only during any upkeep step.
|
||||
ActivatedAbilityImpl ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD,
|
||||
new LoseAbilityTargetEffect(BandingAbility.getInstance(), Duration.EndOfTurn), new TapSourceCost(), new IsStepCondition(PhaseStep.UPKEEP, false),
|
||||
"{T}: Target creature loses banding and all \"bands with other\" abilities until end of turn. Activate this ability only during any upkeep step.");
|
||||
"{T}: Target creature loses banding and all \"bands with other\" abilities until end of turn. Activate only during any upkeep step.");
|
||||
ability.addEffect(new LoseAbilityTargetEffect(new BandsWithOtherAbility(), Duration.EndOfTurn));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class TradeCaravan extends CardImpl {
|
|||
// Remove two currency counters from Trade Caravan: Untap target basic land. Activate this ability only during an opponent's upkeep.
|
||||
Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new RemoveCountersSourceCost(CounterType.CURRENCY.createInstance(2)),
|
||||
new CompoundCondition(OnOpponentsTurnCondition.instance, new IsStepCondition(PhaseStep.UPKEEP, false)),
|
||||
"Remove two currency counters from {this}: Untap target basic land. Activate this ability only during an opponent's upkeep.");
|
||||
"Remove two currency counters from {this}: Untap target basic land. Activate only during an opponent's upkeep.");
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class TriassicEgg extends CardImpl {
|
|||
new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_CREATURE_A),
|
||||
new SacrificeSourceCost(),
|
||||
new SourceHasCounterCondition(CounterType.HATCHLING, 2, Integer.MAX_VALUE),
|
||||
"Sacrifice Triassic Egg: Choose one - You may put a creature card from your hand onto the battlefield; or return target creature card from your graveyard to the battlefield. Activate this ability only if two or more hatchling counters are on {this}.");
|
||||
"Sacrifice Triassic Egg: Choose one - You may put a creature card from your hand onto the battlefield; or return target creature card from your graveyard to the battlefield. Activate only if two or more hatchling counters are on {this}.");
|
||||
|
||||
// or return target creature card from your graveyard to the battlefield. Activate this ability only if two or more hatchling counters are on Triassic Egg.
|
||||
Mode mode = new Mode();
|
||||
|
|
|
@ -40,7 +40,7 @@ public final class VerazolTheSplitCurrent extends CardImpl {
|
|||
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||
new DoIfCostPaid(
|
||||
new CopyTargetSpellEffect(false, true)
|
||||
.setText("copy that spell. You may choose new targets for that copy"),
|
||||
.setText("copy that spell. You may choose new targets for the copy"),
|
||||
new RemoveCountersSourceCost(CounterType.P1P1.createInstance(2))
|
||||
), StaticFilters.FILTER_SPELL_KICKED_A, false, true
|
||||
));
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class ViviensJaguar extends CardImpl {
|
|||
new ManaCostsImpl("{2}{G}"),
|
||||
new PermanentsOnTheBattlefieldCondition(filter),
|
||||
"{2}{G}: Return {this} from your graveyard to your hand. "
|
||||
+ "Activate this ability only if you control a Vivien planeswalker"
|
||||
+ "Activate only if you control a Vivien planeswalker"
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ class SearchLibraryPutInGraveyard extends SearchEffect {
|
|||
|
||||
public SearchLibraryPutInGraveyard(FilterCard filter) {
|
||||
super(new TargetCardInLibrary(filter), Outcome.Neutral);
|
||||
staticText = "search for a creature card with eternalize or embalm, put that card into your graveyard, then shuffle.";
|
||||
staticText = "search your library for a creature card with eternalize or embalm, put that card into your graveyard, then shuffle.";
|
||||
}
|
||||
|
||||
public SearchLibraryPutInGraveyard(final SearchLibraryPutInGraveyard effect) {
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class VraskasScorn extends CardImpl {
|
|||
|
||||
// You may search your library and/or graveyard for a card named Vraska, Scheming Gorgon, reveal it, and put it into your hand. If you search your library this way, shuffle it.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryGraveyardPutInHandEffect(filter)
|
||||
.setText("You may search your library and/or graveyard for a card named Vraska, Scheming Gorgon, reveal it, and put it into your hand. If you search your library this way, shuffle it"));
|
||||
.setText("You may search your library and/or graveyard for a card named Vraska, Scheming Gorgon, reveal it, and put it into your hand. If you search your library this way, shuffle"));
|
||||
}
|
||||
|
||||
private VraskasScorn(final VraskasScorn card) {
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class WallOfForgottenPharaohs extends CardImpl {
|
|||
new DamageTargetEffect(1),
|
||||
new TapSourceCost(),
|
||||
new OrCondition(
|
||||
"only if you control a Desert or there is a Desert card in your graveyard",
|
||||
"you control a Desert or there is a Desert card in your graveyard",
|
||||
new PermanentsOnTheBattlefieldCondition(new FilterControlledPermanent(filterDesertPermanent)),
|
||||
new CardsInControllerGraveyardCondition(1, filterDesertCard)
|
||||
)
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class WoodlandGuidance extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new DoIfClashWonEffect(new UntapAllLandsControllerEffect(new FilterLandPermanent(SubType.FOREST, "Forests"))));
|
||||
|
||||
// Remove WoodlandGuidance from the game
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect().concatBy("<br>"));
|
||||
}
|
||||
|
||||
private WoodlandGuidance(final WoodlandGuidance card) {
|
||||
|
|
|
@ -44,7 +44,7 @@ public class LimitedTimesPerTurnActivatedAbility extends ActivatedAbilityImpl {
|
|||
public String getRule() {
|
||||
StringBuilder sb = new StringBuilder(super.getRule()).append(" Activate ");
|
||||
if (condition != null) {
|
||||
sb.append("only ").append(condition.toString()).append(" and ");
|
||||
sb.append("only if ").append(condition.toString()).append(" and ");
|
||||
}
|
||||
if (getTiming() == TimingRule.SORCERY) {
|
||||
sb.append("only as a sorcery and ");
|
||||
|
|
|
@ -10,6 +10,7 @@ import mage.game.Game;
|
|||
import mage.game.events.GameEvent;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.target.targetpointer.FixedTarget;
|
||||
import mage.util.CardUtil;
|
||||
|
||||
/**
|
||||
* @author LevelX2
|
||||
|
@ -78,7 +79,7 @@ public class SpellCastAllTriggeredAbility extends TriggeredAbilityImpl {
|
|||
if (rule != null && !rule.isEmpty()) {
|
||||
return rule;
|
||||
}
|
||||
return "Whenever a player casts " + filter.getMessage() + ", " + super.getRule();
|
||||
return "Whenever a player casts " + CardUtil.addArticle(filter.getMessage()) + ", " + super.getRule();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,7 +13,7 @@ public class ControlPermanentCost extends CostImpl {
|
|||
|
||||
public ControlPermanentCost(FilterControlledPermanent filter) {
|
||||
this.filter = filter.copy();
|
||||
this.text = "Activate this ability only if you control " + filter.getMessage();
|
||||
this.text = "Activate only if you control " + filter.getMessage();
|
||||
}
|
||||
|
||||
public ControlPermanentCost(final ControlPermanentCost cost) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
|
|||
this.filter = filter;
|
||||
this.forceToSearchBoth = forceToSearchBoth;
|
||||
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
|
||||
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
|
||||
+ ", reveal it, then put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
|
||||
}
|
||||
|
||||
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {
|
||||
|
|
|
@ -34,7 +34,7 @@ public class SearchLibraryGraveyardPutOntoBattlefieldEffect extends OneShotEffec
|
|||
this.filter = filter;
|
||||
this.forceToSearchBoth = forceToSearchBoth;
|
||||
staticText = (youMay ? "You may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a " + filter.getMessage()
|
||||
+ " and put it onto the battlefield. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle it");
|
||||
+ " and put it onto the battlefield. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
|
||||
}
|
||||
|
||||
public SearchLibraryGraveyardPutOntoBattlefieldEffect(final SearchLibraryGraveyardPutOntoBattlefieldEffect effect) {
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue