[ZNC] some text fixes

This commit is contained in:
Evan Kranzler 2021-02-02 10:14:44 -05:00
parent 144e2e933a
commit 16450f9952
20 changed files with 59 additions and 58 deletions

View file

@ -1,25 +1,25 @@
package mage.cards.a;
import java.util.UUID;
import mage.abilities.effects.common.ReturnToHandFromBattlefieldAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterAttackingCreature;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class Aetherize extends CardImpl {
public Aetherize(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
// Return all attacking creatures to their owners' hands.
this.getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(new FilterAttackingCreature("attacking creatures")));
this.getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(
StaticFilters.FILTER_ATTACKING_CREATURES
).setText("Return all attacking creatures to their owner's hand."));
}
public Aetherize(final Aetherize card) {

View file

@ -1,9 +1,8 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
import mage.abilities.keyword.EquipAbility;
@ -13,14 +12,17 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
* @author North
*/
public final class Bonehoard extends CardImpl {
private static final DynamicValue value = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
public Bonehoard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
this.subtype.add(SubType.EQUIPMENT);
@ -29,8 +31,7 @@ public final class Bonehoard extends CardImpl {
this.addAbility(new LivingWeaponAbility());
// Equipped creature gets +X/+X, where X is the number of creature cards in all graveyards.
CardsInAllGraveyardsCount value = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(value, value)));
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(value, value).setText("equipped creature gets +X/+X, where X is the number of creature cards in all graveyards")));
// Equip {2}
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2)));

View file

@ -46,7 +46,7 @@ class ExtractFromDarknessEffect extends OneShotEffect {
ExtractFromDarknessEffect() {
super(Outcome.PutCreatureInPlay);
staticText = "Put a creature card from a graveyard onto the battlefield under your control";
staticText = "Then you put a creature card from a graveyard onto the battlefield under your control";
}
private ExtractFromDarknessEffect(final ExtractFromDarknessEffect effect) {

View file

@ -66,7 +66,7 @@ class GontiLordOfLuxuryEffect extends OneShotEffect {
public GontiLordOfLuxuryEffect() {
super(Outcome.Benefit);
this.staticText = "look at the top four cards of target opponent's library, exile one of them face down, then put the rest on the bottom of that library in a random order. For as long as that card remains exiled, you may look at it, you may cast it, and you may spend mana as though it were mana of any type to cast it";
this.staticText = "look at the top four cards of target opponent's library, exile one of them face down, then put the rest on the bottom of that library in a random order. You may look at and cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any type to cast that spell";
}
private GontiLordOfLuxuryEffect(final GontiLordOfLuxuryEffect effect) {

View file

@ -1,31 +1,32 @@
package mage.cards.g;
import java.util.UUID;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class GroundAssault extends CardImpl {
public GroundAssault(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}{G}");
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND);
public GroundAssault(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}{G}");
// Ground Assault deals damage to target creature equal to the number of lands you control.
this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledLandPermanent())));
this.getSpellAbility().addEffect(new DamageTargetEffect(xValue).setText("{this} deals damage to target creature equal to the number of lands you control"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}
public GroundAssault(final GroundAssault card) {
private GroundAssault(final GroundAssault card) {
super(card);
}

View file

@ -32,7 +32,7 @@ public final class InspiringCall extends CardImpl {
// Draw a card for each creature you control with a +1/+1 counter on it. Those creatures gain indestructible until end of turn. <i>(Damage and effects that say "destroy" don't destroy them.)
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)));
Effect effect = new GainAbilityControlledEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, filter);
effect.setText("Those creatures gain indestructible until end of turn. <i>(Damage and effects that say \"destroy\" don't destroy them.)");
effect.setText("Those creatures gain indestructible until end of turn. <i>(Damage and effects that say \"destroy\" don't destroy them.)</i>");
this.getSpellAbility().addEffect(effect);
}

View file

@ -37,7 +37,7 @@ public final class KrosanVerge extends CardImpl {
// {2}, {T}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(new SearchLibraryPutInPlayEffect(
new KrosanVergeTarget(), true, Outcome.PutLandInPlay
), new GenericManaCost(2));
).setText("search your library for a Forest card and a Plains card, put them onto the battlefield tapped, then shuffle your library"), new GenericManaCost(2));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);

View file

@ -59,7 +59,7 @@ class LazavDimirMastermindEffect extends OneShotEffect {
LazavDimirMastermindEffect() {
super(Outcome.Copy);
staticText = "you may have {this} become a copy of that card except its name is Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it has hexproof and this ability";
staticText = "you may have {this} become a copy of that card, except its name is Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it has hexproof and this ability";
}
LazavDimirMastermindEffect(final LazavDimirMastermindEffect effect) {

View file

@ -26,7 +26,7 @@ import java.util.UUID;
public final class LivingTwister extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledLandPermanent("a tapped land you control");
= new FilterControlledLandPermanent("tapped land you control");
static {
filter.add(TappedPredicate.instance);

View file

@ -27,7 +27,7 @@ import mage.target.common.TargetControlledPermanent;
*/
public final class MultaniYavimayasAvatar extends CardImpl {
private static final FilterControlledLandPermanent LANDS_YOU_CONTROL_FILTER = new FilterControlledLandPermanent();
private static final FilterControlledLandPermanent LANDS_YOU_CONTROL_FILTER = new FilterControlledLandPermanent("lands you control");
private static final FilterLandCard LAND_FILTER = new FilterLandCard();
public MultaniYavimayasAvatar(UUID ownerId, CardSetInfo setInfo) {
@ -49,7 +49,7 @@ public final class MultaniYavimayasAvatar extends CardImpl {
DynamicValue powerToughnessValue = new AdditiveDynamicValue(graveyardCount, permanentsOnBattlefieldCount);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new BoostSourceEffect(powerToughnessValue, powerToughnessValue, Duration.WhileOnBattlefield)
.setText("{this} gets +1/+1 for each land you control and each land in your graveyard")
.setText("{this} gets +1/+1 for each land you control and each land card in your graveyard")
));
//{1}{G}, Return two lands you control to their owner's hand: Return Multani from your graveyard to your hand.

View file

@ -1,12 +1,10 @@
package mage.cards.n;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.keyword.BestowAbility;
@ -15,15 +13,17 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class Nighthowler extends CardImpl {
private static final DynamicValue graveCreatures = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
public Nighthowler(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}{B}");
this.subtype.add(SubType.HORROR);
@ -33,14 +33,15 @@ public final class Nighthowler extends CardImpl {
// Bestow {2}{B}{B}
this.addAbility(new BestowAbility(this, "{2}{B}{B}"));
// Nighthowler and enchanted creature each get +X/+X, where X is the number of creature cards in all graveyards.
DynamicValue graveCreatures = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_CREATURE);
Effect effect = new BoostSourceEffect(graveCreatures, graveCreatures, Duration.WhileOnBattlefield);
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
effect = new BoostEnchantedEffect(graveCreatures, graveCreatures, Duration.WhileOnBattlefield);
ability.addEffect(effect);
this.addAbility(ability);
// Nighthowler and enchanted creature each get +X/+X, where X is the number of creature cards in all graveyards.
Ability ability = new SimpleStaticAbility(new BoostSourceEffect(
graveCreatures, graveCreatures, Duration.WhileOnBattlefield
).setText("{this} and enchanted creature each get +X/+X"));
ability.addEffect(new BoostEnchantedEffect(
graveCreatures, graveCreatures, Duration.WhileOnBattlefield
).setText(", where X is the number of creature cards in all graveyards"));
this.addAbility(ability);
}
public Nighthowler(final Nighthowler card) {

View file

@ -39,7 +39,7 @@ public final class NotoriousThrong extends CardImpl {
// If Notorious Throng's prowl cost was paid, take an extra turn after this one.
Effect effect = new ConditionalOneShotEffect(new AddExtraTurnControllerEffect(), ProwlCostWasPaidCondition.instance);
effect.setText("If {this}'s prowl cost was paid, take an extra turn after this one.");
effect.setText("If this spell's prowl cost was paid, take an extra turn after this one.");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addHint(ProwlCostWasPaidHint.instance);
}

View file

@ -37,7 +37,7 @@ public final class Scaretiller extends CardImpl {
));
// Return target land card from your graveyard to the battlefield tapped.
Mode mode = new Mode(new ReturnFromGraveyardToBattlefieldTargetEffect(true));
Mode mode = new Mode(new ReturnFromGraveyardToBattlefieldTargetEffect(true, false));
mode.addTarget(new TargetCardInYourGraveyard(filter));
ability.addMode(mode);
this.addAbility(ability);

View file

@ -33,7 +33,7 @@ public final class Scytheclaw extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
// Whenever equipped creature deals combat damage to a player, that player loses half of their life, round up.
this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped", false, true));
this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new LoseHalfLifeTargetEffect(), "equipped creature", false, true));
// Equip {3}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));

View file

@ -1,34 +1,30 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.common.LandfallAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.common.FilterLandPermanent;
import mage.game.permanent.token.SaprolingToken;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class Sporemound extends CardImpl {
public Sporemound(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
this.subtype.add(SubType.FUNGUS);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Whenever a land enters the battlefield under your control, create a 1/1 green Saproling creature token.
Effect effect = new CreateTokenEffect(new SaprolingToken());
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(effect, new FilterLandPermanent("a land")));
this.addAbility(new LandfallAbility(new CreateTokenEffect(new SaprolingToken())));
}
public Sporemound(final Sporemound card) {

View file

@ -53,7 +53,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "KHC"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "ZNC"; // 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 HashMap<String, Set<String>> skipCheckLists = new HashMap<>();

View file

@ -53,7 +53,7 @@ public class PutCardIntoGraveFromAnywhereAllTriggeredAbility extends TriggeredAb
default:
sb.append('a');
}
sb.append(" graveyard, ");
sb.append(" graveyard from anywhere, ");
ruleText = sb.toString();
}

View file

@ -40,13 +40,13 @@ public class OpponentLostLifeCondition extends IntCompareCondition {
StringBuilder sb = new StringBuilder("if an opponent lost ");
switch (type) {
case MORE_THAN:
sb.append(value + 1).append(" or more life this turn ");
sb.append(value + 1).append(" or more life this turn");
break;
case EQUAL_TO:
sb.append(value).append(" life this turn ");
sb.append(value).append(" life this turn");
break;
case FEWER_THAN:
sb.append(" less than ").append(value).append(" life this turn ");
sb.append(" less than ").append(value).append(" life this turn");
break;
}
return sb.toString();

View file

@ -11,6 +11,8 @@ import mage.constants.TurnPhase;
import mage.game.Game;
import mage.game.events.GameEvent;
import java.util.Locale;
/**
* @author LevelX2
*/
@ -61,7 +63,7 @@ public class CastOnlyDuringPhaseStepSourceEffect extends ContinuousRuleModifying
private String setText() {
StringBuilder sb = new StringBuilder("cast this spell only during ");
if (turnPhase != null) {
sb.append(turnPhase.toString());
sb.append(turnPhase.toString().toLowerCase());
}
if (phaseStep != null) {
sb.append("the ").append(phaseStep.getStepText());

View file

@ -154,7 +154,7 @@ public class ProwlAbility extends StaticAbility implements AlternativeSourceCost
private void setReminderText(Card card) {
reminderText
= "(You may cast this for its prowl cost if you dealt combat damage to a "
+ "player this turn with a creature that shared a creature type with {this}";
+ "player this turn with a creature that shared a creature type with {this})";
}
@Override