[GRN] various text fixes

This commit is contained in:
Evan Kranzler 2021-10-12 10:16:20 -04:00
parent ac63d6e0c0
commit ce88658495
28 changed files with 61 additions and 67 deletions

View file

@ -32,7 +32,7 @@ public final class AssureAssemble extends SplitCard {
new GainAbilityTargetEffect(
IndestructibleAbility.getInstance(),
Duration.EndOfTurn
).setText("It gains indestructible until end of turn.")
).setText("That creature gains indestructible until end of turn.")
);
this.getLeftHalfCard().getSpellAbility().addTarget(
new TargetCreaturePermanent()

View file

@ -49,7 +49,7 @@ public final class CharnelTroll extends CardImpl {
)), false
).setText("exile a creature card from your graveyard. "
+ "If you do, put a +1/+1 counter on {this}."
+ " Otherwise sacrifice it."),
+ " Otherwise, sacrifice it."),
TargetController.YOU, false
));

View file

@ -36,8 +36,8 @@ public final class ConclaveGuildmage extends CardImpl {
new GainAbilityControlledEffect(
TrampleAbility.getInstance(),
Duration.EndOfTurn,
StaticFilters.FILTER_CONTROLLED_CREATURES
), new ManaCostsImpl("{G}")
StaticFilters.FILTER_PERMANENT_CREATURES
), new ManaCostsImpl<>("{G}")
);
ability.addCost(new TapSourceCost());
this.addAbility(ability);

View file

@ -1,33 +1,29 @@
package mage.cards.c;
import java.util.UUID;
import mage.abilities.effects.common.DamageAllEffect;
import mage.abilities.effects.common.combat.CantBlockAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.common.FilterOpponentsCreaturePermanent;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class CosmotronicWave extends CardImpl {
private static final FilterPermanent filter = new FilterOpponentsCreaturePermanent("creature your opponents control");
private static final FilterCreaturePermanent filter = new FilterOpponentsCreaturePermanent("creature your opponents control");
public CosmotronicWave(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}");
// Cosmotronic Wave deals 1 damage to each creature your opponents control. Creatures your opponents control can't block this turn.
this.getSpellAbility().addEffect(new DamageAllEffect(1, filter));
this.getSpellAbility().addEffect(new CantBlockAllEffect(
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE,
Duration.EndOfTurn
));
this.getSpellAbility().addEffect(new CantBlockAllEffect(filter, Duration.EndOfTurn).setText("Creatures your opponents control can't block this turn"));
}
private CosmotronicWave(final CosmotronicWave card) {

View file

@ -52,7 +52,7 @@ public final class DarkbladeAgent extends CardImpl {
), Duration.WhileOnBattlefield
), DarkbladeAgentCondition.instance,
"and \"Whenever this creature deals "
+ "combat damage to a player, draw a card.\""
+ "combat damage to a player, you draw a card.\""
));
this.addAbility(ability, new DarkbladeAgentWatcher());
}

View file

@ -23,7 +23,7 @@ public final class DazzlingLights extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Surveil 2.
this.getSpellAbility().addEffect(new SurveilEffect(2));
this.getSpellAbility().addEffect(new SurveilEffect(2).concatBy("<br>"));
}
private DazzlingLights(final DazzlingLights card) {

View file

@ -22,7 +22,7 @@ public final class DeadlyVisit extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Surveil 2.
this.getSpellAbility().addEffect(new SurveilEffect(2));
this.getSpellAbility().addEffect(new SurveilEffect(2).concatBy("<br>"));
}
private DeadlyVisit(final DeadlyVisit card) {

View file

@ -101,7 +101,7 @@ class EtrataTheSilencerTriggeredAbility extends TriggeredAbilityImpl {
+ "and put a hit counter on that card. "
+ "That player loses the game if they own three or more "
+ "exiled cards with hit counters on them. "
+ "{this}'s owner shuffles {this} into their library";
+ "{this}'s owner shuffles {this} into their library.";
}
}

View file

@ -1,6 +1,5 @@
package mage.cards.f;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
@ -13,11 +12,12 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.counters.CounterType;
import mage.filter.common.FilterInstantOrSorcerySpell;
import mage.filter.StaticFilters;
import mage.target.common.TargetAnyTarget;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class FiremindsResearch extends CardImpl {
@ -27,9 +27,8 @@ public final class FiremindsResearch extends CardImpl {
// Whenever you cast an instant or sorcery spell, put a charge counter on Firemind's Research.
this.addAbility(new SpellCastControllerTriggeredAbility(
new AddCountersSourceEffect(
CounterType.CHARGE.createInstance()
), new FilterInstantOrSorcerySpell(), false
new AddCountersSourceEffect(CounterType.CHARGE.createInstance()),
StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
));
// {1}{U}, Remove two charge counters from Firemind's Research: Draw a card.

View file

@ -1,22 +1,22 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.constants.SubType;
import mage.abilities.keyword.HasteAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class GolgariRaiders extends CardImpl {
@ -39,10 +39,9 @@ public final class GolgariRaiders extends CardImpl {
new CardsInControllerGraveyardCount(
StaticFilters.FILTER_CARD_CREATURE
), true
), "with a +1/+1 counter on it "
+ "for each creature card in your graveyard"
), null, AbilityWord.UNDERGROWTH.formatWord() + "{this} enters the battlefield " +
"with a +1/+1 counter on it for each creature card in your graveyard.", null
);
ability.setAbilityWord(AbilityWord.UNDERGROWTH);
this.addAbility(ability);
}

View file

@ -62,7 +62,7 @@ class GruesomeMenagerieEffect extends OneShotEffect {
super(Outcome.Benefit);
this.staticText = "Choose a creature card with mana value 1 "
+ "in your graveyard, then do the same for creature cards "
+ "with mana values 2 and 3. "
+ "with mana value 2 and 3. "
+ "Return those cards to the battlefield.";
}

View file

@ -70,6 +70,6 @@ class HaazdaMarshalTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever {this} and at least two other creatures attack, "
+ "create a 1/1 white Solider creature token with lifelink.";
+ "create a 1/1 white Soldier creature token with lifelink.";
}
}

View file

@ -29,7 +29,7 @@ public final class IntrusivePackbeast extends CardImpl {
this.addAbility(VigilanceAbility.getInstance());
// When Intrusive Packbeast enters the battlefield, tap up to two target creatures your opponents control.
Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect());
Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect().setText("tap up to two target creatures your opponents control"));
ability.addTarget(new TargetOpponentsCreaturePermanent(0, 2));
this.addAbility(ability);
}

View file

@ -35,7 +35,7 @@ public final class InvertInvent extends SplitCard {
// Invent
// Search your library for an instant card and/or a sorcery card, reveal them, put them into your hand, then shuffle your library.
this.getRightHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new InventTarget(), true));
this.getRightHalfCard().getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new InventTarget(), true).setText("search your library for an instant card and/or a sorcery card, reveal them, put them into your hand, then shuffle"));
}
private InvertInvent(final InvertInvent card) {

View file

@ -1,18 +1,19 @@
package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.effects.common.GainLifeEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class KraulForagers extends CardImpl {
@ -26,10 +27,9 @@ public final class KraulForagers extends CardImpl {
this.toughness = new MageInt(4);
// Undergrowth When Kraul Foragers enters the battlefield, you gain 1 life for each creature card in your graveyard.
this.addAbility(new EntersBattlefieldTriggeredAbility(
new GainLifeEffect(new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE)), false)
.withFlavorWord("Undergrowth")
);
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(
new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE)
).setText("you gain 1 life for each creature card in your graveyard"), false).setAbilityWord(AbilityWord.UNDERGROWTH));
}
private KraulForagers(final KraulForagers card) {

View file

@ -27,7 +27,7 @@ import mage.target.targetadjustment.TargetAdjuster;
*/
public final class LeagueGuildmage extends CardImpl {
private static final FilterSpell filter = new FilterInstantOrSorcerySpell("instant or sorcery you control with mana value X");
private static final FilterSpell filter = new FilterInstantOrSorcerySpell("instant or sorcery spell you control with mana value X");
static {
filter.add(TargetController.YOU.getControllerPredicate());

View file

@ -21,7 +21,7 @@ public final class MephiticVapors extends CardImpl {
this.getSpellAbility().addEffect(new BoostAllEffect(-1, -1, Duration.EndOfTurn));
// Surveil 2.
this.getSpellAbility().addEffect(new SurveilEffect(2));
this.getSpellAbility().addEffect(new SurveilEffect(2).concatBy("<br>"));
}
private MephiticVapors(final MephiticVapors card) {

View file

@ -44,7 +44,7 @@ public final class PriceOfFame extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Surveil 2.
this.getSpellAbility().addEffect(new SurveilEffect(2));
this.getSpellAbility().addEffect(new SurveilEffect(2).concatBy("<br>"));
}
private PriceOfFame(final PriceOfFame card) {

View file

@ -32,7 +32,7 @@ public final class RampagingMonument extends CardImpl {
// Rampaging Monument enters the battlefield with three +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(3)),
"{this} enters the battlefield with three +1/+1 counters on it"
"with three +1/+1 counters on it"
));
// Whenever you cast a multicolored spell, put a +1/+1 counter on Rampaging Monument.

View file

@ -22,7 +22,7 @@ public final class SinisterSabotage extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell());
// Surveil 1.
this.getSpellAbility().addEffect(new SurveilEffect(1));
this.getSpellAbility().addEffect(new SurveilEffect(1).concatBy("<br>"));
}
private SinisterSabotage(final SinisterSabotage card) {

View file

@ -1,20 +1,20 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.SubType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class SkylineScout extends CardImpl {
@ -29,10 +29,9 @@ public final class SkylineScout extends CardImpl {
// Whenever Skyline Scout attacks, you may pay {1}{W}. If you do, it gains flying until end of turn.
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(
new GainAbilitySourceEffect(
FlyingAbility.getInstance(),
Duration.EndOfTurn
), new ManaCostsImpl("{1}{W}")
new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)
.setText("it gains flying until end of turn"),
new ManaCostsImpl("{1}{W}")
), false));
}

View file

@ -30,7 +30,7 @@ public final class SmeltWardMinotaur extends CardImpl {
// Whenever you cast an instant or sorcery spell, target creature an opponent controls can't block this turn.
Ability ability = new SpellCastControllerTriggeredAbility(
new CantBlockTargetEffect(Duration.EndOfTurn),
StaticFilters.FILTER_SPELLS_INSTANT_OR_SORCERY, false
StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
);
ability.addTarget(new TargetOpponentsCreaturePermanent());
this.addAbility(ability);

View file

@ -1,6 +1,5 @@
package mage.cards.t;
import java.util.UUID;
import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect;
import mage.abilities.effects.keyword.SurveilEffect;
import mage.cards.CardImpl;
@ -11,8 +10,9 @@ import mage.filter.FilterCard;
import mage.filter.common.FilterNonlandCard;
import mage.target.common.TargetOpponent;
import java.util.UUID;
/**
*
* @author TheElk801
*/
public final class ThoughtErasure extends CardImpl {
@ -23,13 +23,11 @@ public final class ThoughtErasure extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{U}{B}");
// Target opponent reveals their hand. You choose a nonland card from it. That player discards that card.
this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect(
filter, TargetController.ANY
));
this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect(filter, TargetController.OPPONENT));
this.getSpellAbility().addTarget(new TargetOpponent());
// Surveil 1.
this.getSpellAbility().addEffect(new SurveilEffect(1));
this.getSpellAbility().addEffect(new SurveilEffect(1).concatBy("<br>"));
}
private ThoughtErasure(final ThoughtErasure card) {

View file

@ -24,7 +24,7 @@ public final class UndercityUprising extends CardImpl {
// Creatures you control gain deathtouch until end of turn. Then target creature you control fights target creature you don't control.
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(
DeathtouchAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_CONTROLLED_CREATURES
StaticFilters.FILTER_PERMANENT_CREATURES
));
this.getSpellAbility().addEffect(new FightTargetsEffect()
.setText("Then target creature you control fights target creature you don't control"));

View file

@ -22,7 +22,7 @@ public final class UnexplainedDisappearance extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Surveil 1.
this.getSpellAbility().addEffect(new SurveilEffect(1));
this.getSpellAbility().addEffect(new SurveilEffect(1).concatBy("<br>"));
}
private UnexplainedDisappearance(final UnexplainedDisappearance card) {

View file

@ -1,7 +1,5 @@
package mage.cards.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
@ -9,9 +7,11 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.filter.common.FilterInstantOrSorcerySpell;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
* @author Loki
@ -19,14 +19,14 @@ import mage.filter.common.FilterInstantOrSorcerySpell;
public final class WeeDragonauts extends CardImpl {
public WeeDragonauts(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}");
this.subtype.add(SubType.FAERIE);
this.subtype.add(SubType.WIZARD);
this.power = new MageInt(1);
this.toughness = new MageInt(3);
this.addAbility(FlyingAbility.getInstance());
this.addAbility(new SpellCastControllerTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn), new FilterInstantOrSorcerySpell(), false));
this.addAbility(new SpellCastControllerTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn), StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false));
}
private WeeDragonauts(final WeeDragonauts card) {

View file

@ -58,7 +58,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZNR"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "GRN"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages

View file

@ -42,6 +42,9 @@ public class CantBlockAllEffect extends RestrictionEffect {
@Override
public String getText(Mode mode) {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
StringBuilder sb = new StringBuilder();
sb.append(filter.getMessage()).append(" can't block");
if (this.duration == Duration.EndOfTurn) {