mirror of
https://github.com/correl/mage.git
synced 2024-12-29 19:15:06 +00:00
[KHC] more text fixes
This commit is contained in:
parent
599309c980
commit
6ed259941a
14 changed files with 40 additions and 36 deletions
|
@ -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) {
|
||||
|
|
|
@ -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.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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}.";
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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"
|
||||
)
|
||||
));
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
@ -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<>();
|
||||
|
|
Loading…
Reference in a new issue