[SLD] some more text fixes

This commit is contained in:
Evan Kranzler 2022-02-19 12:59:37 -05:00
parent ac56e8dd24
commit 82b67a2548
13 changed files with 33 additions and 33 deletions

View file

@ -13,6 +13,7 @@ import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget; import mage.target.targetpointer.FixedTarget;
import mage.util.GameLog; import mage.util.GameLog;
import java.util.Optional;
import java.util.UUID; import java.util.UUID;
/** /**
@ -75,10 +76,12 @@ class AmuletOfVigorTriggeredAbility extends TriggeredAbilityImpl {
@Override @Override
public String getRule() { public String getRule() {
// that triggers depends on stack order, so make each trigger unique with extra info // that triggers depends on stack order, so make each trigger unique with extra info
String triggeredInfo = ""; return "Whenever a permanent enters the battlefield tapped and under your control, untap it."
if (this.getEffects().get(0).getTargetPointer() != null) { + Optional
triggeredInfo = " Triggered permanent: " + this.getEffects().get(0).getTargetPointer().getData("triggeredName") + "."; .of(this.getEffects().get(0).getTargetPointer())
} .map(targetPointer -> targetPointer.getData("triggeredName"))
return "Whenever a permanent enters the battlefield tapped and under your control, untap it." + triggeredInfo; .filter(s -> s != null && !s.isEmpty())
.map(s -> " Triggered permanent: " + s)
.orElse("");
} }
} }

View file

@ -1,7 +1,5 @@
package mage.cards.g; package mage.cards.g;
import java.util.UUID;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect; import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -9,22 +7,21 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/** /**
*
* @author emerald000 * @author emerald000
*/ */
public final class GrimTutor extends CardImpl { public final class GrimTutor extends CardImpl {
public GrimTutor(UUID ownerId, CardSetInfo setInfo) { public GrimTutor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
// Search your library for a card and put that card into your hand, then shuffle your library. // Search your library for a card and put that card into your hand, then shuffle your library.
TargetCardInLibrary target = new TargetCardInLibrary(); this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary()));
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(target).setText("search your library for a card and put that card into your hand, then shuffle"));
// You lose 3 life. // You lose 3 life.
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3)); this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3));
} }
private GrimTutor(final GrimTutor card) { private GrimTutor(final GrimTutor card) {

View file

@ -49,7 +49,7 @@ class KayaBaneOfTheDeadEffect extends AsThoughEffectImpl {
KayaBaneOfTheDeadEffect() { KayaBaneOfTheDeadEffect() {
super(AsThoughEffectType.HEXPROOF, Duration.WhileOnBattlefield, Outcome.Benefit); super(AsThoughEffectType.HEXPROOF, Duration.WhileOnBattlefield, Outcome.Benefit);
staticText = "your opponents and permanents with hexproof your oppponents control " + staticText = "your opponents and permanents your opponents control with hexproof " +
"can be the targets of spells and abilities you control as though they didn't have hexproof"; "can be the targets of spells and abilities you control as though they didn't have hexproof";
} }

View file

@ -72,7 +72,7 @@ class MeanderingTowershellEffect extends OneShotEffect {
public MeanderingTowershellEffect() { public MeanderingTowershellEffect() {
super(Outcome.Detriment); super(Outcome.Detriment);
this.staticText = "exile it. Return it to the battlefield under your control tapped and attacking at the beginning of the next declare attackers step on your next turn"; this.staticText = "exile it. Return it to the battlefield under your control tapped and attacking at the beginning of the declare attackers step on your next turn";
} }
public MeanderingTowershellEffect(final MeanderingTowershellEffect effect) { public MeanderingTowershellEffect(final MeanderingTowershellEffect effect) {

View file

@ -120,7 +120,7 @@ class PathOfAncestryTriggeredAbility extends DelayedTriggeredAbility {
@Override @Override
public String getRule() { public String getRule() {
return "When that mana is spent to cast a creature spell that shares a creature type with your commander," + return "When that mana is spent to cast a creature spell that shares a creature type with your commander, " +
"scry 1. " + "scry 1. " +
"<i>(Look at the top card of your library. You may put that card on the bottom of your library.)</i>"; "<i>(Look at the top card of your library. You may put that card on the bottom of your library.)</i>";
} }

View file

@ -1,8 +1,5 @@
package mage.cards.s; package mage.cards.s;
import java.util.UUID;
import mage.MageInt; import mage.MageInt;
import mage.MageObject; import mage.MageObject;
import mage.abilities.Ability; import mage.abilities.Ability;
@ -19,6 +16,8 @@ import mage.game.permanent.Permanent;
import mage.game.stack.Spell; import mage.game.stack.Spell;
import mage.players.Player; import mage.players.Player;
import java.util.UUID;
/** /**
* @author maxlebedev * @author maxlebedev
*/ */
@ -52,7 +51,7 @@ class ChooseNumberEffect extends OneShotEffect {
public ChooseNumberEffect() { public ChooseNumberEffect() {
super(Outcome.Detriment); super(Outcome.Detriment);
staticText = setText(); staticText = "choose a number";
} }
public ChooseNumberEffect(final ChooseNumberEffect effect) { public ChooseNumberEffect(final ChooseNumberEffect effect) {
@ -67,7 +66,7 @@ class ChooseNumberEffect extends OneShotEffect {
game.getState().setValue(source.getSourceId().toString(), numberChoice); game.getState().setValue(source.getSourceId().toString(), numberChoice);
Permanent permanent = game.getPermanentEntering(source.getSourceId()); Permanent permanent = game.getPermanentEntering(source.getSourceId());
if(permanent != null) { if (permanent != null) {
permanent.addInfo("chosen players", "<font color = 'blue'>Chosen Number: " + numberChoice + "</font>", game); permanent.addInfo("chosen players", "<font color = 'blue'>Chosen Number: " + numberChoice + "</font>", game);
game.informPlayers(permanent.getLogName() + ", chosen number: " + numberChoice); game.informPlayers(permanent.getLogName() + ", chosen number: " + numberChoice);
@ -80,10 +79,6 @@ class ChooseNumberEffect extends OneShotEffect {
public ChooseNumberEffect copy() { public ChooseNumberEffect copy() {
return new ChooseNumberEffect(this); return new ChooseNumberEffect(this);
} }
private String setText() {
return "Choose a number. Noncreature spells with mana value equal to the chosen number can't be cast";
}
} }
class SanctumPrelateReplacementEffect extends ContinuousRuleModifyingEffectImpl { class SanctumPrelateReplacementEffect extends ContinuousRuleModifyingEffectImpl {

View file

@ -42,7 +42,7 @@ public final class SliverOverlord extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), new ManaCostsImpl("{3}"))); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true, true), new ManaCostsImpl("{3}")));
// {3}: Gain control of target Sliver. // {3}: Gain control of target Sliver.
Ability ability = (new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainControlTargetEffect(Duration.EndOfGame), new ManaCostsImpl("{3}"))); Ability ability = (new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainControlTargetEffect(Duration.Custom), new ManaCostsImpl("{3}")));
Target target = new TargetPermanent(new FilterCreaturePermanent(SubType.SLIVER,"Sliver")); Target target = new TargetPermanent(new FilterCreaturePermanent(SubType.SLIVER,"Sliver"));
ability.addTarget(target); ability.addTarget(target);
this.addAbility(ability); this.addAbility(ability);

View file

@ -6,7 +6,7 @@ import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; import mage.abilities.effects.ContinuousRuleModifyingEffectImpl;
import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ChooseACardNameEffect; import mage.abilities.effects.common.ChooseACardNameEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.cards.*; import mage.cards.*;
import mage.constants.*; import mage.constants.*;
import mage.game.Game; import mage.game.Game;
@ -39,7 +39,7 @@ public final class TamiyoCollectorOfTales extends CardImpl {
this.addAbility(new LoyaltyAbility(new TamiyoCollectorOfTalesEffect(), 1)); this.addAbility(new LoyaltyAbility(new TamiyoCollectorOfTalesEffect(), 1));
// -3: Return target card from your graveyard to your hand. // -3: Return target card from your graveyard to your hand.
Ability ability = new LoyaltyAbility(new ReturnToHandTargetEffect(), -3); Ability ability = new LoyaltyAbility(new ReturnFromGraveyardToHandTargetEffect(), -3);
ability.addTarget(new TargetCardInYourGraveyard()); ability.addTarget(new TargetCardInYourGraveyard());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -108,7 +108,7 @@ class WrexialTheRisenDeepTriggeredAbility extends TriggeredAbilityImpl {
return "Whenever {this} deals combat damage to a player, " return "Whenever {this} deals combat damage to a player, "
+ "you may cast target instant or sorcery card " + "you may cast target instant or sorcery card "
+ "from that player's graveyard without paying its mana cost. " + "from that player's graveyard without paying its mana cost. "
+ "If that spell would be put into a graveyard this turn, exile it instead"; + "If that spell would be put into a graveyard this turn, exile it instead.";
} }
} }

View file

@ -84,7 +84,8 @@ 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", "vigilance" "deathtouch", "double strike", "indestructible", "reach", "flash", "defender", "vigilance",
"plainswalk", "islandwalk", "swampwalk", "mountainwalk", "forestwalk"
); );
static { static {

View file

@ -93,7 +93,7 @@ public class DontUntapInControllersUntapStepAllEffect extends ContinuousRuleModi
StringBuilder sb = new StringBuilder(filter.getMessage()).append(" don't untap during "); StringBuilder sb = new StringBuilder(filter.getMessage()).append(" don't untap during ");
switch(targetController) { switch(targetController) {
case ANY: case ANY:
sb.append("their controller's "); sb.append("their controllers' ");
break; break;
default: default:
throw new RuntimeException("Type of TargetController not supported yet!"); throw new RuntimeException("Type of TargetController not supported yet!");

View file

@ -7,6 +7,8 @@ import mage.abilities.Mode;
import mage.abilities.TriggeredAbility; import mage.abilities.TriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.abilities.mana.SimpleManaAbility;
import mage.constants.*; import mage.constants.*;
import mage.filter.FilterPermanent; import mage.filter.FilterPermanent;
import mage.game.Game; import mage.game.Game;
@ -136,7 +138,10 @@ public class GainAbilityAllEffect extends ContinuousEffectImpl {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
boolean quotes = forceQuotes || (ability instanceof SimpleActivatedAbility) || (ability instanceof TriggeredAbility); boolean quotes = forceQuotes
|| ability instanceof SimpleActivatedAbility
||ability instanceof ActivatedManaAbilityImpl
|| ability instanceof TriggeredAbility;
boolean each = filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("each"); boolean each = filter.getMessage().toLowerCase(Locale.ENGLISH).startsWith("each");
if (excludeSource && !each) { if (excludeSource && !each) {
sb.append("other "); sb.append("other ");

View file

@ -18,7 +18,6 @@ public class EnterAttributeAddChosenSubtypeEffect extends OneShotEffect {
public EnterAttributeAddChosenSubtypeEffect() { public EnterAttributeAddChosenSubtypeEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "{this} is the chosen type in addition to its other types";
} }
public EnterAttributeAddChosenSubtypeEffect(final EnterAttributeAddChosenSubtypeEffect effect) { public EnterAttributeAddChosenSubtypeEffect(final EnterAttributeAddChosenSubtypeEffect effect) {