[THB] various text fixes

This commit is contained in:
Evan Kranzler 2020-10-06 20:12:06 -04:00
parent d3484ddc5d
commit 5187636672
13 changed files with 44 additions and 26 deletions

View file

@ -24,7 +24,7 @@ import java.util.UUID;
*/ */
public final class AphemiaTheCacophony extends CardImpl { public final class AphemiaTheCacophony extends CardImpl {
private static final FilterCard filter = new FilterEnchantmentCard(); private static final FilterCard filter = new FilterEnchantmentCard("an enchantment card");
public AphemiaTheCacophony(UUID ownerId, CardSetInfo setInfo) { public AphemiaTheCacophony(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}"); super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}");

View file

@ -47,7 +47,7 @@ public final class NyxHerald extends CardImpl {
); );
ability.addEffect(new GainAbilityTargetEffect( ability.addEffect(new GainAbilityTargetEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn TrampleAbility.getInstance(), Duration.EndOfTurn
).setText("and gains trample")); ).setText("and gains trample until end of turn"));
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -56,7 +56,7 @@ public final class ProteanThaumaturge extends CardImpl {
Ability ability = new ConstellationAbility(new CopyPermanentEffect( Ability ability = new ConstellationAbility(new CopyPermanentEffect(
StaticFilters.FILTER_PERMANENT_CREATURE, StaticFilters.FILTER_PERMANENT_CREATURE,
new ProteanThaumaturgeApplyToPermanent(), true new ProteanThaumaturgeApplyToPermanent(), true
).setText("have {this} become a copy of another target creature, except it has this ability"), true, false); ).setText("{this} become a copy of another target creature, except it has this ability"), true, false);
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
return ability; return ability;
} }

View file

@ -29,7 +29,8 @@ public final class RageScarredBerserker extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// When Rage-Scarred Berserker enters the battlefield, target creature you control gets +1/+0 and gains indestructible until end of turn. // When Rage-Scarred Berserker enters the battlefield, target creature you control gets +1/+0 and gains indestructible until end of turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 0)); Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 0)
.setText("target creature you control gets +1/+0"));
ability.addEffect(new GainAbilityTargetEffect( ability.addEffect(new GainAbilityTargetEffect(
IndestructibleAbility.getInstance(), Duration.EndOfTurn IndestructibleAbility.getInstance(), Duration.EndOfTurn
).setText("and gains indestructible until end of turn")); ).setText("and gains indestructible until end of turn"));

View file

@ -46,7 +46,7 @@ public final class SionaCaptainOfThePyleas extends CardImpl {
StaticValue.get(7), false, StaticValue.get(1), filter, StaticValue.get(7), false, StaticValue.get(1), filter,
Zone.LIBRARY, false, true, false, Zone.HAND, Zone.LIBRARY, false, true, false, Zone.HAND,
true, false, false true, false, false
).setBackInRandomOrder(true).setText("Look at the top seven cards of your library. " + ).setBackInRandomOrder(true).setText("look at the top seven cards of your library. " +
"You may reveal an Aura card from among them and put it into your hand. " + "You may reveal an Aura card from among them and put it into your hand. " +
"Put the rest on the bottom of your library in a random order.") "Put the rest on the bottom of your library in a random order.")
)); ));

View file

@ -99,6 +99,6 @@ class SkophosMazeWardenTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever another creature becomes the target of an ability of a land you control " + return "Whenever another creature becomes the target of an ability of a land you control " +
"named Labyrinth of Skophos, you may have {this} fight that creature"; "named Labyrinth of Skophos, you may have {this} fight that creature.";
} }
} }

View file

@ -1,6 +1,5 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
@ -20,12 +19,24 @@ import mage.filter.predicate.Predicates;
import mage.filter.predicate.permanent.AnotherPredicate; import mage.filter.predicate.permanent.AnotherPredicate;
import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class SkophosWarleader extends CardImpl { public final class SkophosWarleader extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledPermanent("another creature or an enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
filter.add(AnotherPredicate.instance);
}
public SkophosWarleader(UUID ownerId, CardSetInfo setInfo) { public SkophosWarleader(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}");
@ -35,9 +46,6 @@ public final class SkophosWarleader extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// {R}, Sacrifice another creature or enchantment: Skophos Warleader gets +1/+0 and gains menace until end of turn. // {R}, Sacrifice another creature or enchantment: Skophos Warleader gets +1/+0 and gains menace until end of turn.
FilterControlledPermanent filter = new FilterControlledPermanent("another creature or enchantment");
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
filter.add(AnotherPredicate.instance);
Ability ability = new SimpleActivatedAbility( Ability ability = new SimpleActivatedAbility(
new BoostSourceEffect(1, 0, Duration.EndOfTurn) new BoostSourceEffect(1, 0, Duration.EndOfTurn)
.setText("{this} gets +1/+0"), .setText("{this} gets +1/+0"),

View file

@ -1,6 +1,5 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl; import mage.abilities.TriggeredAbilityImpl;
@ -23,12 +22,24 @@ import mage.game.Game;
import mage.game.events.GameEvent; import mage.game.events.GameEvent;
import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/** /**
*
* @author LevelX2 * @author LevelX2
*/ */
public final class SlaughterPriestOfMogis extends CardImpl { public final class SlaughterPriestOfMogis extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledPermanent("another creature or an enchantment");
static {
filter.add(Predicates.or(
CardType.CREATURE.getPredicate(),
CardType.ENCHANTMENT.getPredicate()
));
filter.add(AnotherPredicate.instance);
}
public SlaughterPriestOfMogis(UUID ownerId, CardSetInfo setInfo) { public SlaughterPriestOfMogis(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{R}");
@ -41,9 +52,6 @@ public final class SlaughterPriestOfMogis extends CardImpl {
this.addAbility(new SlaughterPriestOfMogisAbility()); this.addAbility(new SlaughterPriestOfMogisAbility());
// {2}, Sacrifice another creature or enchantment: Slaughter-Priest of Mogis gains first strike until end of turn. // {2}, Sacrifice another creature or enchantment: Slaughter-Priest of Mogis gains first strike until end of turn.
FilterControlledPermanent filter = new FilterControlledPermanent("another creature or enchantment");
filter.add(Predicates.or(CardType.CREATURE.getPredicate(), CardType.ENCHANTMENT.getPredicate()));
filter.add(AnotherPredicate.instance);
Ability ability = new SimpleActivatedAbility( Ability ability = new SimpleActivatedAbility(
new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn), new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn),
new GenericManaCost(2)); new GenericManaCost(2));

View file

@ -46,7 +46,7 @@ public final class SwimmerInNightmares extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield), new BoostSourceEffect(3, 0, Duration.WhileOnBattlefield),
SwimmerInNightmaresCondition.instance, SwimmerInNightmaresCondition.instance,
"{this} +3/+0 as long as there are ten or more cards in a single graveyard" "{this} gets +3/+0 as long as there are ten or more cards in a single graveyard"
)).addHint(new ValueHint("Max cards in single graveyard", SwimmerInNightmaresCardsInSingleGraveyardValue.instance))); )).addHint(new ValueHint("Max cards in single graveyard", SwimmerInNightmaresCardsInSingleGraveyardValue.instance)));
// Swimmer in Nightmares can't be blocked as long as you control an Ashiok planeswalker. // Swimmer in Nightmares can't be blocked as long as you control an Ashiok planeswalker.
@ -77,8 +77,9 @@ enum SwimmerInNightmaresCardsInSingleGraveyardValue implements DynamicValue {
.stream() .stream()
.map(game::getPlayer) .map(game::getPlayer)
.map(Player::getGraveyard) .map(Player::getGraveyard)
.map(HashSet::size) .mapToInt(HashSet::size)
.mapToInt(x -> x).max().orElse(0); .max()
.orElse(0);
} }
@Override @Override

View file

@ -29,7 +29,7 @@ public final class TreacherousBlessing extends CardImpl {
)); ));
// When Treacherous Blessing becomes the target of a spell or ability, sacrifice it. // When Treacherous Blessing becomes the target of a spell or ability, sacrifice it.
this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect())); this.addAbility(new BecomesTargetTriggeredAbility(new SacrificeSourceEffect().setText("sacrifice it")));
} }
private TreacherousBlessing(final TreacherousBlessing card) { private TreacherousBlessing(final TreacherousBlessing card) {

View file

@ -102,6 +102,6 @@ class WolfwillowHavenTriggeredAbility extends TriggeredManaAbility {
@Override @Override
public String getRule() { public String getRule() {
return "Whenever enchanted land is tapped for mana, its controller adds an additional {G}"; return "Whenever enchanted land is tapped for mana, its controller adds an additional {G}.";
} }
} }

View file

@ -72,7 +72,7 @@ public class VerifyCardDataTest {
private static final String SKIP_LIST_SAMPLE_DECKS = "SAMPLE_DECKS"; private static final String SKIP_LIST_SAMPLE_DECKS = "SAMPLE_DECKS";
private static final List<String> evergreenKeywords = Arrays.asList( private static final List<String> evergreenKeywords = Arrays.asList(
"flying", "lifelink", "menace", "trample", "haste", "first strike", "hexproof", "flying", "lifelink", "menace", "trample", "haste", "first strike", "hexproof",
"deathtouch", "double strike", "indestructible", "reach", "flash", "defender" "deathtouch", "double strike", "indestructible", "reach", "flash", "defender", "vigilance"
); );
static { static {
@ -1487,7 +1487,7 @@ public class VerifyCardDataTest {
} }
} }
if (!isAbilityFounded) { if (!isAbilityFounded && cardRules[i].length() > 0) {
isFine = false; isFine = false;
warn(card, "card ability can't be found in ref [" + card.getName() + ": " + cardRules[i] + "]"); warn(card, "card ability can't be found in ref [" + card.getName() + ": " + cardRules[i] + "]");
cardRules[i] = "- " + cardRules[i]; cardRules[i] = "- " + cardRules[i];

View file

@ -30,13 +30,13 @@ public class ExileFromGraveCost extends CostImpl {
target.setNotTarget(true); target.setNotTarget(true);
this.addTarget(target); this.addTarget(target);
if (target.getMaxNumberOfTargets() > 1) { if (target.getMaxNumberOfTargets() > 1) {
this.text = "Exile " this.text = "exile "
+ (target.getNumberOfTargets() == 1 && target.getMaxNumberOfTargets() == Integer.MAX_VALUE ? "one or more" + (target.getNumberOfTargets() == 1 && target.getMaxNumberOfTargets() == Integer.MAX_VALUE ? "one or more"
: ((target.getNumberOfTargets() < target.getMaxNumberOfTargets() ? "up to " : "")) : ((target.getNumberOfTargets() < target.getMaxNumberOfTargets() ? "up to " : ""))
+ CardUtil.numberToText(target.getMaxNumberOfTargets())) + CardUtil.numberToText(target.getMaxNumberOfTargets()))
+ ' ' + target.getTargetName(); + ' ' + target.getTargetName();
} else { } else {
this.text = "Exile " this.text = "exile "
+ (target.getTargetName().startsWith("card ") ? "a ":"") + (target.getTargetName().startsWith("card ") ? "a ":"")
+ target.getTargetName(); + target.getTargetName();
} }
@ -54,7 +54,7 @@ public class ExileFromGraveCost extends CostImpl {
public ExileFromGraveCost(TargetCardInASingleGraveyard target) { public ExileFromGraveCost(TargetCardInASingleGraveyard target) {
target.setNotTarget(true); target.setNotTarget(true);
this.addTarget(target); this.addTarget(target);
this.text = "Exile " + target.getTargetName(); this.text = "exile " + target.getTargetName();
} }
public ExileFromGraveCost(final ExileFromGraveCost cost) { public ExileFromGraveCost(final ExileFromGraveCost cost) {