mirror of
https://github.com/correl/mage.git
synced 2024-11-28 19:19:55 +00:00
[SLD] some more text fixes
This commit is contained in:
parent
ac56e8dd24
commit
82b67a2548
13 changed files with 33 additions and 33 deletions
|
@ -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("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,8 +7,9 @@ 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 {
|
||||||
|
@ -18,13 +17,11 @@ 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) {
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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) {
|
||||||
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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!");
|
||||||
|
|
|
@ -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 ");
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue