[KHC] more text fixes

This commit is contained in:
Evan Kranzler 2021-02-01 22:47:20 -05:00
parent 599309c980
commit 6ed259941a
14 changed files with 40 additions and 36 deletions

View file

@ -19,8 +19,8 @@ public final class AmbitionsCost extends CardImpl {
// You draw three cards and you lose 3 life.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3).setText("you draw three cards"));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3).concatBy("and"));
}
public AmbitionsCost(final AmbitionsCost card) {

View file

@ -144,7 +144,7 @@ class ArcaneArtisanLeavesBattlefieldTriggeredAbility extends ZoneChangeTriggered
@Override
public String getRule() {
return "When {this} leaves the battlefield, exile all tokens created with it at the beginning of the next end step";
return "When {this} leaves the battlefield, exile all tokens created with it at the beginning of the next end step.";
}
}

View file

@ -53,7 +53,7 @@ class CosmicInterventionReplacementEffect extends ReplacementEffectImpl {
CosmicInterventionReplacementEffect() {
super(Duration.EndOfTurn, Outcome.Benefit);
staticText = "If a permanent you control would be put into a graveyard from the battlefield this turn, exile it instead. Return it to the battlefield under its owner's control at the beginning of the next end step";
staticText = "If a permanent you control would be put into a graveyard from the battlefield this turn, exile it instead. Return it to the battlefield under its owner's control at the beginning of the next end step";
}
private CosmicInterventionReplacementEffect(final CosmicInterventionReplacementEffect effect) {

View file

@ -20,7 +20,7 @@ import mage.game.permanent.token.ElfToken;
*/
public final class ElvishPromenade extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Elves you control");
private static final FilterControlledPermanent filter = new FilterControlledPermanent("Elf you control");
static {
filter.add(SubType.ELF.getPredicate());

View file

@ -28,7 +28,7 @@ public final class FarhavenElf extends CardImpl {
this.toughness = new MageInt(1);
// When Farhaven Elf enters the battlefield, you may search your library for a basic land card and put it onto the battlefield tapped. If you do, shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, false), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
}
public FarhavenElf(final FarhavenElf card) {

View file

@ -55,7 +55,7 @@ class HarvestSeasonEffect extends OneShotEffect {
HarvestSeasonEffect() {
super(Outcome.Benefit);
this.staticText = "Search your library for up to X basic land cards, where X is the number of tapped creatures you control,"
+ " and put those card onto the battlefield tapped, then shuffle your library.";
+ " and put those cards onto the battlefield tapped, then shuffle your library.";
}
HarvestSeasonEffect(final HarvestSeasonEffect effect) {

View file

@ -1,10 +1,10 @@
package mage.cards.h;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.Condition;
import mage.abilities.condition.common.SourceHasAnyCountersCondition;
import mage.abilities.condition.common.SourceMatchesFilterCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
@ -18,17 +18,15 @@ import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.constants.*;
import mage.counters.CounterType;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ZoneChangeEvent;
import java.util.UUID;
/**
* @author jeffwadsworth
*/
@ -42,6 +40,9 @@ public final class HeroOfBretagard extends CardImpl {
filter2.add(new SourceHasAnyCountersCondition(10));
}
private static final Condition condition = new SourceMatchesFilterCondition(filter);
private static final Condition condition2 = new SourceMatchesFilterCondition(filter2);
public HeroOfBretagard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
@ -54,23 +55,24 @@ public final class HeroOfBretagard extends CardImpl {
this.addAbility(new HeroOfBretagardTriggeredAbility(new HeroOfBretagardEffect()));
// As long as Hero of Bretagard has five or more counters on it, it has flying and is an Angel in addition to its other types.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield),
new SourceMatchesFilterCondition(filter),
"As long as Hero of Bretagard has five or more counters on it, it has flying ")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(Duration.WhileOnBattlefield, SubType.ANGEL), new SourceMatchesFilterCondition(filter),
"and is an Angel in addition to its other types.")));
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield
), condition, "As long as {this} has five or more counters on it, it has flying"
));
ability.addEffect(new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(
Duration.WhileOnBattlefield, SubType.ANGEL
), condition, "and is an Angel in addition to its other types."));
this.addAbility(ability);
// As long as Hero of Bretagard has ten or more counters on it, it has indestructible and is a God in addition to its other types.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield),
new SourceMatchesFilterCondition(filter2),
"As long as Hero of Bretagard has ten or more counters on it, it has indestructible ")));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,
new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(Duration.WhileOnBattlefield, SubType.GOD), new SourceMatchesFilterCondition(filter2),
"and is a God in addition to its other types.")));
ability = new SimpleStaticAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect(
IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield
), condition2, "As long as {this} has ten or more counters on it, it has indestructible"));
ability.addEffect(new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(
Duration.WhileOnBattlefield, SubType.GOD
), condition2, "and is a God in addition to its other types."));
this.addAbility(ability);
}
private HeroOfBretagard(final HeroOfBretagard card) {
@ -139,7 +141,7 @@ class HeroOfBretagardTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you exile one or more cards from your hand and/or permanents from the battlefield, put that many +1/+1 counters on {this}";
return "Whenever you exile one or more cards from your hand and/or permanents from the battlefield, put that many +1/+1 counters on {this}.";
}
}

View file

@ -22,7 +22,7 @@ import mage.game.permanent.token.ElfToken;
*/
public final class ImperiousPerfect extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Elf creatures");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Elves");
static {
filter.add(SubType.ELF.getPredicate());

View file

@ -18,7 +18,7 @@ import mage.game.permanent.token.ElfToken;
*/
public final class LysAlanaHuntmaster extends CardImpl {
private static final FilterSpell filter = new FilterSpell("Elf spell");
private static final FilterSpell filter = new FilterSpell("an Elf spell");
static {
filter.add(SubType.ELF.getPredicate());

View file

@ -51,7 +51,7 @@ class PactOfTheSerpentEffect extends OneShotEffect {
PactOfTheSerpentEffect() {
super(Outcome.Benefit);
staticText = "Target player draws X cards and loses X life, " +
"where X is the number of creature they control of the chosen type";
"where X is the number of creatures they control of the chosen type";
}
private PactOfTheSerpentEffect(final PactOfTheSerpentEffect effect) {

View file

@ -66,7 +66,7 @@ class RanarTheEverWatchfulCostReductionEffect extends CostModificationEffectImpl
RanarTheEverWatchfulCostReductionEffect() {
super(Duration.WhileOnBattlefield, Outcome.Neutral, CostModificationType.REDUCE_COST);
staticText = "The first card you foretell each turn costs 0 to foretell";
staticText = "The first card you foretell each turn costs {0} to foretell";
}
private RanarTheEverWatchfulCostReductionEffect(RanarTheEverWatchfulCostReductionEffect effect) {

View file

@ -48,7 +48,7 @@ public final class StoicFarmer extends CardImpl {
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter)),
condition, "search your library for a basic Plains card and reveal it. " +
"If an opponent controls more lands than you, put it onto the battlefield tapped. " +
"Otherwise, put it into your hand. Then shuffle your library"
"Otherwise put it into your hand. Then shuffle your library"
)
));

View file

@ -16,6 +16,7 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.predicate.permanent.UntappedPredicate;
import mage.game.permanent.token.ThopterColorlessToken;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetCreaturePermanent;
@ -26,9 +27,10 @@ import mage.target.common.TargetCreaturePermanent;
*/
public final class WhirlerRogue extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifacts");
private static final FilterControlledPermanent filter = new FilterControlledPermanent("untapped artifacts you control");
static {
filter.add(UntappedPredicate.instance);
filter.add(CardType.ARTIFACT.getPredicate());
}

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 = "KHM"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "KHC"; // 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<>();