Fix text [RAV] [GPT] [DIS] (#10359)

* Fix text: capitalization of regenerate

* Fix text: Circle of Protection Artifacts

* Fix text [RAV] [GPT] [DIS]
This commit is contained in:
xenohedron 2023-06-02 12:36:22 +03:00 committed by GitHub
parent 5c8b5f23bb
commit 7531263fb9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
59 changed files with 75 additions and 71 deletions

View file

@ -55,7 +55,7 @@ class BatheInLightEffect extends OneShotEffect {
public BatheInLightEffect() {
super(Outcome.Benefit);
this.staticText = "Target creature and each other creature that shares a color with it gain protection from the chosen color until end of turn";
this.staticText = "Choose a color. Target creature and each other creature that shares a color with it gain protection from the chosen color until end of turn";
}
public BatheInLightEffect(final BatheInLightEffect effect) {

View file

@ -30,7 +30,7 @@ public final class BloodletterQuill extends CardImpl {
// {2}, {T}, Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2));
ability.addEffect(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.BLOOD))
.setText(", then lose 1 life for each blood counter on {this}"));
.setText(", then you lose 1 life for each blood counter on {this}"));
ability.addCost(new TapSourceCost());
ability.addCost(new PutCountersSourceCost(CounterType.BLOOD.createInstance()));
this.addAbility(ability);

View file

@ -25,7 +25,7 @@ public final class BondOfAgony extends CardImpl {
this.getSpellAbility().addCost(new PayLifeCost(xValue, "X life"));
// Each other player loses X life.
this.getSpellAbility().addEffect(new LoseLifeOpponentsEffect(xValue));
this.getSpellAbility().addEffect(new LoseLifeOpponentsEffect(xValue).setText("each other player loses X life"));
}
private BondOfAgony(final BondOfAgony card) {

View file

@ -97,7 +97,7 @@ class BreathOfFuryEffect extends OneShotEffect {
public BreathOfFuryEffect() {
super(Outcome.Benefit);
staticText = "sacrifice enchanted creature and attach {this} to a creature you control. If you do, untap all creatures you control and after this phase, there is an additional combat phase";
staticText = "sacrifice it and attach {this} to a creature you control. If you do, untap all creatures you control and after this phase, there is an additional combat phase";
}
public BreathOfFuryEffect(final BreathOfFuryEffect effect) {

View file

@ -48,7 +48,7 @@ class CerebralVortexEffect extends OneShotEffect {
CerebralVortexEffect() {
super(Outcome.Damage);
this.staticText = ", then Cerebral Vortex deals damage to that player equal to the number of cards they have drawn this turn";
this.staticText = ", then Cerebral Vortex deals damage to that player equal to the number of cards they've drawn this turn";
}
CerebralVortexEffect(final CerebralVortexEffect effect) {

View file

@ -103,7 +103,7 @@ class CircuDimirLobotomistRuleModifyingEffect extends ContinuousRuleModifyingEff
public CircuDimirLobotomistRuleModifyingEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "Your opponents can't cast nonland cards with the same name as a card exiled with {this}";
staticText = "Your opponents can't cast spells with the same name as a card exiled with {this}";
}
public CircuDimirLobotomistRuleModifyingEffect(final CircuDimirLobotomistRuleModifyingEffect effect) {

View file

@ -27,7 +27,7 @@ public final class ConcertedEffort extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}");
// At the beginning of each upkeep, creatures you control gain flying until end of turn if a creature you control has flying. The same is true for fear, first strike, double strike, landwalk, protection, trample, and vigilance.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConcertedEffortEffect(), TargetController.ANY, false));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConcertedEffortEffect(), TargetController.EACH_PLAYER, false));
}
private ConcertedEffort(final ConcertedEffort card) {

View file

@ -46,7 +46,7 @@ class ConjurersBanEffect extends ContinuousRuleModifyingEffectImpl {
ConjurersBanEffect() {
super(Duration.UntilYourNextTurn, Outcome.Detriment, true, false);
this.staticText = "Until your next turn spells with the chosen name can't be cast and lands with the chosen name can't be played";
this.staticText = "Until your next turn, spells with the chosen name can't be cast and lands with the chosen name can't be played";
}
private ConjurersBanEffect(final ConjurersBanEffect effect) {

View file

@ -38,7 +38,7 @@ public final class CrashLanding extends CardImpl {
DynamicValue amount = new PermanentsOnBattlefieldCount(filter);
this.getSpellAbility().addEffect(new LoseAbilityTargetEffect(
FlyingAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addEffect(new DamageTargetEffect(amount));
this.getSpellAbility().addEffect(new DamageTargetEffect(amount).setText("{this} deals damage to that creature equal to the number of Forests you control"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter2));
}

View file

@ -25,7 +25,7 @@ public final class CullingSun extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}{W}{B}");
this.getSpellAbility().addEffect(new DestroyAllEffect(filter));
this.getSpellAbility().addEffect(new DestroyAllEffect(filter).setText("destroy each creature with mana value 3 or less"));
}
private CullingSun(final CullingSun card) {

View file

@ -27,7 +27,7 @@ public final class CyclopeanSnare extends CardImpl {
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new GenericManaCost(3));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
ability.addEffect(new ReturnToHandSourceEffect(true));
ability.addEffect(new ReturnToHandSourceEffect(true).concatBy(", then"));
this.addAbility(ability);
}

View file

@ -17,7 +17,7 @@ import java.util.UUID;
*/
public final class DjinnIlluminatus extends CardImpl {
private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell();
private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell("instant and sorcery spell");
public DjinnIlluminatus(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U/R}{U/R}");
@ -40,4 +40,4 @@ public final class DjinnIlluminatus extends CardImpl {
public DjinnIlluminatus copy() {
return new DjinnIlluminatus(this);
}
}
}

View file

@ -20,7 +20,7 @@ public final class DouseInGloom extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(2));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new GainLifeEffect(2));
this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and"));
}
private DouseInGloom(final DouseInGloom card) {

View file

@ -37,7 +37,7 @@ public final class DreamLeash extends CardImpl {
// You can't choose an untapped permanent as Dream Leash's target as you cast Dream Leash.
Effect effect = new ControlEnchantedEffect("permanent");
effect.setText("You can't choose an untapped permanent as {this}'s target as you cast {this}.<br>" + effect.getText(null));
effect.setText("You can't choose an untapped permanent as this spell's target as you cast it.<br>" + effect.getText(null));
// You control enchanted permanent.
this.addAbility(new SimpleStaticAbility(effect));

View file

@ -33,7 +33,7 @@ public final class DrownedRusalka extends CardImpl {
// {U}, Sacrifice a creature: Discard a card, then draw a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardControllerEffect(1), new ManaCostsImpl<>("{U}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
ability.addEffect(new DrawCardSourceControllerEffect(1));
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then"));
this.addAbility(ability);
}

View file

@ -57,7 +57,7 @@ class FollowedFootstepsEffect extends OneShotEffect {
public FollowedFootstepsEffect() {
super(Outcome.PutCreatureInPlay);
this.staticText = "You create a token that's a copy of enchanted creature";
this.staticText = "create a token that's a copy of enchanted creature";
}
public FollowedFootstepsEffect(final FollowedFootstepsEffect effect) {

View file

@ -43,7 +43,7 @@ public final class FreewindEquenaut extends CardImpl {
new ConditionalContinuousEffect(
new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield),
new EnchantedSourceCondition(),
"As long as {this} is enchanted, it has \"{T}: {this} deals 2 damage to target attacking or blocking creature\"")));
"As long as {this} is enchanted, it has \"{T}: {this} deals 2 damage to target attacking or blocking creature.\"")));
}
private FreewindEquenaut(final FreewindEquenaut card) {

View file

@ -30,7 +30,7 @@ public final class GoblinFlectomancer extends CardImpl {
this.toughness = new MageInt(2);
// Sacrifice Goblin Flectomancer: You may change the targets of target instant or sorcery spell.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseNewTargetsTargetEffect(), new SacrificeSourceCost());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseNewTargetsTargetEffect().setText("you may change the targets of target instant or sorcery spell"), new SacrificeSourceCost());
ability.addTarget(new TargetSpell(new FilterInstantOrSorcerySpell()));
this.addAbility(ability);
}

View file

@ -26,7 +26,7 @@ public final class GolgariBrownscale extends CardImpl {
// When Golgari Brownscale is put into your hand from your graveyard, you gain 2 life.
this.addAbility(new ZoneChangeTriggeredAbility(Zone.ALL, Zone.GRAVEYARD, Zone.HAND, new GainLifeEffect(2),
"When {this} is put into your hand from your graveyard,", false));
"When {this} is put into your hand from your graveyard, ", false));
// Dredge 2
this.addAbility(new DredgeAbility(2));

View file

@ -3,7 +3,7 @@ package mage.cards.g;
import java.util.UUID;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BecomesColorTargetEffect;
import mage.abilities.effects.common.continuous.BecomesColorOrColorsTargetEffect;
import mage.abilities.effects.common.continuous.GainControlTargetEffect;
import mage.abilities.keyword.ForecastAbility;
import mage.cards.CardImpl;
@ -34,7 +34,7 @@ public final class GovernTheGuildless extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// Forecast - {1}{U}, Reveal Govern the Guildless from your hand: Target creature becomes the color or colors of your choice until end of turn.
ForecastAbility ability = new ForecastAbility(new BecomesColorTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}"));
ForecastAbility ability = new ForecastAbility(new BecomesColorOrColorsTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}

View file

@ -30,7 +30,7 @@ public final class GruulScrapper extends CardImpl {
this.toughness = new MageInt(2);
//When Gruul Scrapper enters the battlefield, if Red was spent to cast Gruul Scrapper, it gains haste until end of turn.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), ManaWasSpentCondition.RED, " if {R} was spent to cast this spell, it gains haste until end of turn")));
this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), ManaWasSpentCondition.RED, "if {R} was spent to cast it, it gains haste until end of turn")));
}

View file

@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate;
*/
public final class HammerfistGiant extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each creature without flying");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying");
static {
filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class)));

View file

@ -21,7 +21,7 @@ public final class HissingMiasma extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}{B}");
// Whenever a creature attacks you, its controller loses 1 life.
this.addAbility(new AttackedByCreatureTriggeredAbility(new LoseLifeTargetEffect(1), false, SetTargetPointer.PLAYER));
this.addAbility(new AttackedByCreatureTriggeredAbility(new LoseLifeTargetEffect(1).setText("its controller loses 1 life"), false, SetTargetPointer.PLAYER));
}
private HissingMiasma(final HissingMiasma card) {

View file

@ -44,7 +44,7 @@ public final class LeafdrakeRoost extends CardImpl {
Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LeafdrakeRoostDrakeToken()), new ManaCostsImpl<>("{G}{U}"));
abilityToGain.addCost(new TapSourceCost());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA, Duration.WhileOnBattlefield,
"Enchanted land has \"{G}{U}, {t}: Create a 2/2 green and blue Drake creature token with flying.\"")));
"Enchanted land has \"{G}{U}, {T}: Create a 2/2 green and blue Drake creature token with flying.\"")));
}

View file

@ -46,7 +46,7 @@ class LeylineOfLightningEffect extends DamageTargetEffect {
LeylineOfLightningEffect() {
super(1);
this.staticText = "you may pay {1}. If you do, {this} deals 1 damage to target player.";
this.staticText = "you may pay {1}. If you do, {this} deals 1 damage to target player or planeswalker.";
}
LeylineOfLightningEffect(final LeylineOfLightningEffect effect) {

View file

@ -30,7 +30,7 @@ public final class LoreBroker extends CardImpl {
// {tap}: Each player draws a card, then discards a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardAllEffect(1), new TapSourceCost());
ability.addEffect(new DiscardEachPlayerEffect());
ability.addEffect(new DiscardEachPlayerEffect().setText(", then discards a card"));
this.addAbility(ability);
}

View file

@ -45,7 +45,7 @@ class NightcreepLandEffect extends BecomesBasicLandTargetEffect {
public NightcreepLandEffect() {
super(Duration.EndOfTurn, SubType.SWAMP);
this.staticText = "";
this.staticText = "and all lands become Swamps";
}
public NightcreepLandEffect(NightcreepLandEffect effect) {
@ -69,7 +69,7 @@ class NightcreepCreatureEffect extends BecomesColorTargetEffect {
public NightcreepCreatureEffect() {
super(ObjectColor.BLACK, Duration.EndOfTurn);
this.staticText = "Until end of turn, all creatures become black and all lands become Swamps";
this.staticText = "Until end of turn, all creatures become black";
}
public NightcreepCreatureEffect(NightcreepCreatureEffect effect) {
@ -87,4 +87,4 @@ class NightcreepCreatureEffect extends BecomesColorTargetEffect {
public NightcreepCreatureEffect copy() {
return new NightcreepCreatureEffect(this);
}
}
}

View file

@ -56,7 +56,7 @@ class NivixAerieOfTheFiremindEffect extends OneShotEffect {
NivixAerieOfTheFiremindEffect() {
super(Outcome.Benefit);
this.staticText = "Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery card";
this.staticText = "Exile the top card of your library. Until your next turn, you may cast it if it's an instant or sorcery spell";
}
NivixAerieOfTheFiremindEffect(final NivixAerieOfTheFiremindEffect effect) {

View file

@ -32,8 +32,8 @@ public final class OathswornGiant extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// Other creatures you control get +0/+2 and have vigilance.
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, true));
ability.addEffect(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, true));
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, true));
ability.addEffect(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, true).setText("and have vigilance"));
this.addAbility(ability);
}

View file

@ -32,7 +32,7 @@ public final class OgreSavant extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(),false);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.BLUE,
"if {U} was spent to cast this spell, return target creature to its owner's hand."));
"When {this} enters the battlefield, if {U} was spent to cast it, return target creature to its owner's hand."));
}
private OgreSavant(final OgreSavant card) {

View file

@ -31,7 +31,7 @@ public final class Omnibian extends CardImpl {
// {T}: Target creature becomes a 3/3 Frog until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect(
new CreatureToken(3, 3, "3/3 Frog", SubType.FROG),
new CreatureToken(3, 3, "Frog with base power and toughness 3/3", SubType.FROG),
false, false, Duration.EndOfTurn), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
@ -45,4 +45,4 @@ public final class Omnibian extends CardImpl {
public Omnibian copy() {
return new Omnibian(this);
}
}
}

View file

@ -26,7 +26,7 @@ public final class OrzhovaTheChurchOfDeals extends CardImpl {
this.addAbility(new ColorlessManaAbility());
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl<>("{3}{W}{B}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new GainLifeEffect(1));
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
ability.addTarget(new TargetPlayer(1));
this.addAbility(ability);
}

View file

@ -91,7 +91,7 @@ class PsychicPossessionTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever enchanted opponent draws a card, you may draw a card";
return "Whenever enchanted opponent draws a card, you may draw a card.";
}
}

View file

@ -38,7 +38,7 @@ public final class RakdosAugermage extends CardImpl {
// {tap}: Reveal your hand and discard a card of target opponents choice. Then that player reveals their hand and discards a card of your choice. Activate this ability only any time you could cast a sorcery.
ActivateAsSorceryActivatedAbility ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new RakdosAugermageEffect(), new TapSourceCost());
ability.addEffect(new DiscardCardYouChooseTargetEffect());
ability.addEffect(new DiscardCardYouChooseTargetEffect().setText(". Then that player reveals their hand and discards a card of your choice"));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
}
@ -87,4 +87,4 @@ class RakdosAugermageEffect extends OneShotEffect {
public RakdosAugermageEffect copy() {
return new RakdosAugermageEffect(this);
}
}
}

View file

@ -48,7 +48,7 @@ public final class RakdosRiteknife extends CardImpl {
Ability ability = new SimpleActivatedAbility(
new SacrificeEffect(StaticFilters.FILTER_PERMANENT, xValue, "Target player")
.setText("target player sacrifices a permanent for each blood counter on {this}"),
new ManaCostsImpl<>("{R}{B}")
new ManaCostsImpl<>("{B}{R}")
);
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetPlayer());

View file

@ -47,7 +47,7 @@ class ResearchEffect extends OneShotEffect {
public ResearchEffect() {
super(Outcome.Benefit);
this.staticText = "Choose up to four cards you own from outside the game and shuffle them into your library";
this.staticText = "Shuffle up to four cards you own from outside the game into your library";
}
public ResearchEffect(final ResearchEffect effect) {

View file

@ -32,7 +32,7 @@ public final class RevenantPatriarch extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new SkipCombatStepEffect(Duration.OneUse).setText("target player skips their next combat phase."), false);
ability.addTarget(new TargetPlayer());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.WHITE,
"if {W} was spent to cast it, target player skips their next combat phase."));
"When {this} enters the battlefield, if {W} was spent to cast it, target player skips their next combat phase."));
// Revenant Patriarch can't block.
this.addAbility(new CantBlockAbility());
}

View file

@ -132,7 +132,7 @@ class SavraSacrificeEffect extends OneShotEffect {
class SavraSacrificeGreenCreatureAbility extends TriggeredAbilityImpl {
public SavraSacrificeGreenCreatureAbility() {
super(Zone.BATTLEFIELD, new GainLifeEffect(2));
super(Zone.BATTLEFIELD, new GainLifeEffect(2), true);
setTriggerPhrase("Whenever you sacrifice a green creature, ");
}

View file

@ -35,7 +35,7 @@ public final class ShriekingGrotesque extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1), false);
ability.addTarget(new TargetPlayer());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.BLACK,
"if {B} was spent to cast this spell, target player discards a card."));
"When {this} enters the battlefield, if {B} was spent to cast it, target player discards a card."));
}
private ShriekingGrotesque(final ShriekingGrotesque card) {

View file

@ -3,7 +3,7 @@ package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.common.ChooseColorEffect;
import mage.abilities.effects.mana.AddManaChosenColorEffect;
@ -34,7 +34,7 @@ public final class SilhanaStarfletcher extends CardImpl {
this.addAbility(ReachAbility.getInstance());
// As Silhana Starfletcher enters the battlefield, choose a color.
this.addAbility(new EntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)));
this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral)));
// {tap}: Add one mana of the chosen color.
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaChosenColorEffect(), new TapSourceCost()));

View file

@ -42,7 +42,10 @@ public final class SimicBasilisk extends CardImpl {
Effect effect = new CreateDelayedTriggeredAbilityEffect(
new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()), true);
effect.setText("destroy that creature at end of combat");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(new DealsDamageToACreatureTriggeredAbility(effect, true, false, true), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(
new DealsDamageToACreatureTriggeredAbility(effect, true, false, true), Duration.EndOfTurn)
.setText("Until end of turn, target creature with a +1/+1 counter on it gains \"Whenever this creature deals combat damage to a creature, destroy that creature at end of combat.\""),
new ManaCostsImpl<>("{1}{G}"));
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_A_CREATURE_P1P1));
this.addAbility(ability);
}

View file

@ -151,7 +151,7 @@ class MoveAuraEffect extends OneShotEffect {
public MoveAuraEffect() {
super(Outcome.AIDontUseIt);
staticText = "Attach target Aura enchanting a permanent to another permanent with the same controller.";
staticText = "Attach target Aura attached to a permanent to another permanent with the same controller.";
}
public MoveAuraEffect(final MoveAuraEffect effect) {

View file

@ -46,7 +46,7 @@ class SinsOfThePastEffect extends OneShotEffect {
SinsOfThePastEffect() {
super(Outcome.PlayForFree);
this.staticText = "Until end of turn, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead";
this.staticText = "Until end of turn, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that spell would be put into your graveyard, exile it instead";
}
SinsOfThePastEffect(final SinsOfThePastEffect effect) {
@ -72,4 +72,3 @@ class SinsOfThePastEffect extends OneShotEffect {
return false;
}
}

View file

@ -35,7 +35,7 @@ public final class SpelltitheEnforcer extends CardImpl {
this.addAbility(new SpellCastOpponentTriggeredAbility(
Zone.BATTLEFIELD,
new SpelltitheEnforcerEffect(),
StaticFilters.FILTER_SPELL,
StaticFilters.FILTER_SPELL_A,
false,
SetTargetPointer.PLAYER
));

View file

@ -34,7 +34,7 @@ public final class SporebackTroll extends CardImpl {
// {1}{G}: Regenerate target creature with a +1/+1 counter on it.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{1}{G}"));
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_A_CREATURE_P1P1));
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_P1P1));
this.addAbility(ability);
}

View file

@ -31,7 +31,7 @@ public final class SteamcoreWeird extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it"));
ability.addTarget(new TargetAnyTarget());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.RED,
"if {R} was spent to cast this spell, it deals 2 damage to any target."));
"When {this} enters the battlefield, if {R} was spent to cast it, it deals 2 damage to any target."));
}
private SteamcoreWeird(final SteamcoreWeird card) {

View file

@ -33,7 +33,7 @@ public final class StoneshakerShaman extends CardImpl {
this.toughness = new MageInt(1);
// At the beginning of each player's end step, that player sacrifices an untapped land.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeEffect(filter, 1, "that player "), TargetController.ANY, false));
this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeEffect(filter, 1, "that player"), TargetController.EACH_PLAYER, false));
}
private StoneshakerShaman(final StoneshakerShaman card) {

View file

@ -55,7 +55,7 @@ class StormscaleAnarchEffect extends OneShotEffect {
super(Outcome.Benefit);
this.staticText = "{this} deals 2 damage to any target. "
+ "If the discarded card was multicolored, "
+ "{this} deals 4 damage to that permanent or player instead.";
+ "{this} deals 4 damage instead.";
}
public StormscaleAnarchEffect(final StormscaleAnarchEffect effect) {

View file

@ -33,7 +33,7 @@ public final class TinStreetHooligan extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()),
ManaWasSpentCondition.GREEN,
"When {this} enters the battlefield, if {G} was spent to cast Tin Street Hooligan, destroy target artifact.");
"When {this} enters the battlefield, if {G} was spent to cast it, destroy target artifact.");
ability.addTarget(new TargetArtifactPermanent());
this.addAbility(ability);
}

View file

@ -24,7 +24,7 @@ public final class ValorMadeReal extends CardImpl {
// Target creature can block any number of creatures this turn.
Ability gainedAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(0));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn).setText("target creature can block any number of creatures this turn"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}

View file

@ -21,7 +21,7 @@ import mage.filter.common.FilterCreaturePermanent;
*/
public final class VindictiveMob extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("can't be blocked by Saprolings");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Saprolings");
static {
filter.add(SubType.SAPROLING.getPredicate());

View file

@ -19,7 +19,7 @@ public final class Voidslime extends CardImpl {
// Counter target spell, activated ability, or triggered ability.
this.getSpellAbility().addEffect(new CounterTargetEffect());
this.getSpellAbility().addEffect(new CounterTargetEffect().setText("Counter target spell, activated ability, or triggered ability"));
this.getSpellAbility().addTarget(new TargetStackObject());
}

View file

@ -36,7 +36,7 @@ public final class WalkingArchive extends CardImpl {
this.addAbility(DefenderAbility.getInstance());
// Walking Archive enters the battlefield with a +1/+1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), "Walking Archive enters the battlefield with a +1/+1 counter on it"));
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), "with a +1/+1 counter on it"));
// At the beginning of each player's upkeep, that player draws a card for each +1/+1 counter on Walking Archive.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardTargetEffect(new CountersSourceCount(CounterType.P1P1)), TargetController.ANY, false));

View file

@ -97,9 +97,9 @@ public class CreateTokenTargetEffect extends OneShotEffect {
if (token.getDescription().endsWith("token")) {
sb.append("s");
}
int tokenLocation = sb.indexOf("token");
int tokenLocation = sb.indexOf("token ");
if (tokenLocation != -1) {
sb.replace(tokenLocation, tokenLocation + 6, "tokens");
sb.replace(tokenLocation, tokenLocation + 6, "tokens ");
}
}
if (attacking) {

View file

@ -12,6 +12,7 @@ import mage.filter.FilterObject;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.target.TargetSource;
import mage.util.CardUtil;
/**
*
@ -68,7 +69,7 @@ public class PreventNextDamageFromChosenSourceToYouEffect extends PreventionEffe
}
private String setText() {
StringBuilder sb = new StringBuilder("The next time a ").append(targetSource.getFilter().getMessage());
StringBuilder sb = new StringBuilder("The next time ").append(CardUtil.addArticle(targetSource.getFilter().getMessage()));
sb.append(" of your choice would deal damage to you");
if (duration == Duration.EndOfTurn) {
sb.append(" this turn");

View file

@ -19,13 +19,12 @@ import java.util.UUID;
public class RegenerateSourceEffect extends ReplacementEffectImpl {
public RegenerateSourceEffect() {
super(Duration.EndOfTurn, Outcome.Regenerate);
staticText = "Regenerate {this}";
this("{this}");
}
public RegenerateSourceEffect(String targetName) {
super(Duration.EndOfTurn, Outcome.Regenerate);
staticText = "Regenerate " + targetName;
staticText = "regenerate " + targetName;
}
public RegenerateSourceEffect(final RegenerateSourceEffect effect) {

View file

@ -72,7 +72,7 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl {
return staticText;
}
StringBuilder sb = new StringBuilder();
sb.append("Regenerate ");
sb.append("regenerate ");
Target target = mode.getTargets().get(0);
if (target != null) {
if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) {
@ -82,4 +82,4 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl {
}
return sb.toString();
}
}
}

View file

@ -102,6 +102,7 @@ public class SacrificeEffect extends OneShotEffect {
sb.append(CardUtil.addArticle(filter.getMessage()));
} else {
sb.append(CardUtil.numberToText(count.toString(), "a"));
sb.append(" ");
sb.append(filter.getMessage());
}
staticText = sb.toString();

View file

@ -28,7 +28,8 @@ public class MustBeBlockedByAllSourceEffect extends RequirementEffect {
public MustBeBlockedByAllSourceEffect(Duration duration, FilterCreaturePermanent filter) {
super(duration);
this.filter = filter;
staticText = "All " + filter.getMessage() + " able to block {this} do so";
staticText = "All " + filter.getMessage() + " able to block {this}"
+ (duration.equals(Duration.EndOfTurn) ? " this turn " : " ") + "do so";
}
public MustBeBlockedByAllSourceEffect(final MustBeBlockedByAllSourceEffect effect) {