mirror of
https://github.com/magefree/mage.git
synced 2026-01-10 04:42:07 -08:00
followup text fixes
This commit is contained in:
parent
48cb43351b
commit
a9250ff28a
24 changed files with 52 additions and 43 deletions
|
|
@ -11,7 +11,6 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.predicate.mageobject.BasePowerPredicate;
|
||||
|
|
@ -24,7 +23,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public class BessSoulNourisher extends CardImpl {
|
||||
|
||||
static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creatures with base power and toughness 1/1");
|
||||
static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creatures you control with base power and toughness 1/1");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SacrificeOneOrMorePermanentsTriggeredAbility;
|
||||
|
|
@ -11,27 +10,33 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersAllEffect;
|
||||
import mage.constants.*;
|
||||
import mage.abilities.keyword.MenaceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.game.permanent.token.SquirrelToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Grath
|
||||
*/
|
||||
public final class CamelliaTheSeedmiser extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filterSquirrelCreatures =
|
||||
new FilterControlledCreaturePermanent("Squirrels");
|
||||
|
||||
private static final FilterControlledCreaturePermanent filterSquirrels =
|
||||
new FilterControlledCreaturePermanent("other Squirrel you control");
|
||||
|
||||
|
||||
static {
|
||||
filterSquirrelCreatures.add(SubType.SQUIRREL.getPredicate());
|
||||
filterSquirrelCreatures.add(AnotherPredicate.instance);
|
||||
filterSquirrels.add(SubType.SQUIRREL.getPredicate());
|
||||
filterSquirrels.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
|
@ -54,7 +59,7 @@ public final class CamelliaTheSeedmiser extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD,new GainAbilityControlledEffect(
|
||||
new MenaceAbility(false),
|
||||
Duration.WhileOnBattlefield,
|
||||
filterSquirrels,
|
||||
filterSquirrelCreatures,
|
||||
true
|
||||
)));
|
||||
// Whenever you sacrifice one or more Foods, create a 1/1 green Squirrel creature token.
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ class CourageousResolveWinLoseEffect extends ContinuousRuleModifyingEffectImpl {
|
|||
|
||||
CourageousResolveWinLoseEffect() {
|
||||
super(Duration.EndOfTurn, Outcome.Benefit, false, true);
|
||||
staticText = "you can't lose the game this turn, and your opponents can't win the game this turn.";
|
||||
staticText = ", you can't lose the game this turn, and your opponents can't win the game this turn";
|
||||
}
|
||||
|
||||
private CourageousResolveWinLoseEffect(final CourageousResolveWinLoseEffect effect) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class DemonicCounsel extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(), false),
|
||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true),
|
||||
DeliriumCondition.instance, "earch your library for a Demon card, reveal it, " +
|
||||
DeliriumCondition.instance, "search your library for a Demon card, reveal it, " +
|
||||
"put it into your hand, then shuffle.<br>" + AbilityWord.DELIRIUM.formatWord() +
|
||||
"If there are four or more card types among cards in your graveyard, " +
|
||||
"instead search your library for any card, put it into your hand, then shuffle."
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.permanent.token.TreasureToken;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -57,7 +56,7 @@ public final class ForgeNeverwinterCharlatan extends CardImpl {
|
|||
this.addAbility(new SacrificeOneOrMorePermanentsTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new CreateTokenEffect(new TreasureToken(), 1, true)
|
||||
.setText("you create a tapped Treasure token"),
|
||||
new FilterCreaturePermanent("creatures"), TargetController.ANY, SetTargetPointer.NONE, false
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES, TargetController.ANY, SetTargetPointer.NONE, false
|
||||
).setTriggersLimitEachTurn(1));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ class GixYawgmothPraetorExileEffect extends OneShotEffect {
|
|||
|
||||
GixYawgmothPraetorExileEffect() {
|
||||
super(Outcome.PlayForFree);
|
||||
this.staticText = "Exile the top X cards of target opponent's library. You may play land cards and cast spells from among cards exiled this way without paying their mana costs.";
|
||||
this.staticText = "Exile the top X cards of target opponent's library. You may play lands and cast spells from among cards exiled this way without paying their mana costs.";
|
||||
}
|
||||
|
||||
private GixYawgmothPraetorExileEffect(final GixYawgmothPraetorExileEffect effect) {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class InsidiousDreamsEffect extends OneShotEffect {
|
|||
|
||||
InsidiousDreamsEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Search your library for up to X cards. Then shuffle and put those cards on top of it in any order";
|
||||
this.staticText = "Search your library for up to X cards. Then shuffle and put those cards on top in any order";
|
||||
}
|
||||
|
||||
private InsidiousDreamsEffect(final InsidiousDreamsEffect effect) {
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ class KambalProfiteeringMayorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
&& controller.hasOpponent(zce.getPlayerId(), game)) // & under your opponent's control
|
||||
.map(ZoneChangeEvent::getTarget)
|
||||
.filter(Objects::nonNull)
|
||||
.filter(p -> p instanceof PermanentToken) // collect only tokens
|
||||
.filter(PermanentToken.class::isInstance) // collect only tokens
|
||||
.map(Permanent::getId)
|
||||
.collect(Collectors.toList());
|
||||
if (tokensIds.isEmpty()) {
|
||||
|
|
@ -116,7 +116,7 @@ class KambalProfiteeringMayorTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever one or more tokens enter the battlefield under your opponents' control, "
|
||||
return "Whenever one or more tokens your opponents control enter, "
|
||||
+ "for each of them, create a tapped token that's a copy of it. "
|
||||
+ "This ability triggers only once each turn.";
|
||||
}
|
||||
|
|
@ -152,4 +152,4 @@ class KambalProfiteeringMayorEffect extends OneShotEffect {
|
|||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class LimDulsVaultEffect extends OneShotEffect {
|
|||
super(Outcome.Benefit);
|
||||
this.staticText = "Look at the top five cards of your library. As many times as you choose, "
|
||||
+ "you may pay 1 life, put those cards on the bottom of your library in any order, then look at the top five cards of your library. "
|
||||
+ "Then shuffle and put the last cards you looked at this way on top of it in any order";
|
||||
+ "Then shuffle and put the last cards you looked at this way on top in any order";
|
||||
}
|
||||
|
||||
private LimDulsVaultEffect(final LimDulsVaultEffect effect) {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ class MockingbirdEffect extends OneShotEffect {
|
|||
|
||||
MockingbirdEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "as a copy of any creature on the battlefield with mana value less than or equal to the mana " +
|
||||
"spent to cast Mockingbird, except it is a Bird in addition to its other types and has flying.";
|
||||
staticText = "as a copy of any creature on the battlefield with mana value less than or equal to the amount of mana " +
|
||||
"spent to cast {this}, except it's a Bird in addition to its other types and has flying.";
|
||||
}
|
||||
|
||||
private MockingbirdEffect(final MockingbirdEffect effect) {
|
||||
|
|
@ -84,4 +84,4 @@ class MockingbirdEffect extends OneShotEffect {
|
|||
});
|
||||
return copyEffect.apply(game, source);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ public final class RuskoClockmaker extends CardImpl {
|
|||
);
|
||||
ability.addEffect(new LoseLifeOpponentsEffect(1));
|
||||
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private RuskoClockmaker(final RuskoClockmaker card) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -9,7 +9,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ import java.util.UUID;
|
|||
public final class SerraRedeemer extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterCreaturePermanent("another creature with power 2 or less");
|
||||
= new FilterControlledCreaturePermanent("another creature you control with power 2 or less");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
|
|
@ -40,7 +40,7 @@ public final class SerraRedeemer extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever another creature with power 2 or less you control enters, put two +1/+1 counters on that creature.
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
this.addAbility(new EntersBattlefieldAllTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)),
|
||||
filter, false, SetTargetPointer.PERMANENT
|
||||
));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -42,7 +41,8 @@ public final class SwordOfTheMeek extends CardImpl {
|
|||
// Equip {2}
|
||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(2), false));
|
||||
// Whenever a 1/1 creature you control enters, you may return Sword of the Meek from your graveyard to the battlefield, then attach it to that creature.
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.GRAVEYARD, new SwordOfTheMeekEffect(), filter, true, SetTargetPointer.PERMANENT));
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(Zone.GRAVEYARD, new SwordOfTheMeekEffect(), filter, true, SetTargetPointer.PERMANENT)
|
||||
.setTriggerPhrase("Whenever a 1/1 creature enters under your control, "));
|
||||
}
|
||||
|
||||
private SwordOfTheMeek(final SwordOfTheMeek card) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetOpponent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -27,7 +28,8 @@ public final class VengefulBloodwitch extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever this creature or another creature you control dies, target opponent loses 1 life and you gain 1 life.
|
||||
Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeTargetEffect(1), false);
|
||||
Ability ability = new DiesThisOrAnotherTriggeredAbility(new LoseLifeTargetEffect(1), false,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED);
|
||||
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
|
||||
ability.addTarget(new TargetOpponent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.cards.w;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
|
||||
import mage.abilities.effects.common.continuous.LoseAbilityAllEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -16,7 +14,8 @@ import mage.constants.SuperType;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.common.FilterControlledLandPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -39,7 +38,7 @@ public final class Whiteout extends CardImpl {
|
|||
this.getSpellAbility().addEffect(effect);
|
||||
|
||||
// Sacrifice a snow land: Return Whiteout from your graveyard to your hand.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), new SacrificeTargetCost(filter)));
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new SacrificeTargetCost(filter)));
|
||||
}
|
||||
|
||||
private Whiteout(final Whiteout card) {
|
||||
|
|
|
|||
|
|
@ -676,7 +676,7 @@ public class Mana implements Comparable<Mana>, Serializable, Copyable<Mana> {
|
|||
sbMana.append("{C}");
|
||||
}
|
||||
} else {
|
||||
sbMana.append(colorless).append("{C}");
|
||||
sbMana.append(CardUtil.numberToText(colorless)).append(" {C}");
|
||||
}
|
||||
|
||||
String colorsInOrder = getColorsInOrder();
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class SurvivalAbility extends TriggeredAbilityImpl {
|
|||
public SurvivalAbility(Effect effect, boolean optional) {
|
||||
super(Zone.BATTLEFIELD, effect, optional);
|
||||
setTriggerPhrase("At the beginning of your second main phase, if {this} is tapped, ");
|
||||
setAbilityWord(AbilityWord.SURVIVOR);
|
||||
setAbilityWord(AbilityWord.SURVIVAL);
|
||||
}
|
||||
|
||||
private SurvivalAbility(final SurvivalAbility ability) {
|
||||
|
|
|
|||
|
|
@ -71,16 +71,20 @@ public class EntersBattlefieldOneOrMoreTriggeredAbility extends TriggeredAbility
|
|||
}
|
||||
|
||||
private String generateTriggerPhrase() {
|
||||
StringBuilder sb = new StringBuilder("Whenever one or more " + this.filterPermanent.getMessage());
|
||||
StringBuilder sb = new StringBuilder("Whenever one or more " + filterPermanent.getMessage());
|
||||
switch (targetController) {
|
||||
case YOU:
|
||||
sb.append(" you control enter, ");
|
||||
if (filterPermanent.getMessage().contains("you control")) {
|
||||
sb.append(" enter, ");
|
||||
} else {
|
||||
sb.append(" you control enter, ");
|
||||
}
|
||||
break;
|
||||
case OPPONENT:
|
||||
sb.append(" enter under an opponent's control, ");
|
||||
break;
|
||||
default:
|
||||
throw new UnsupportedOperationException();
|
||||
throw new IllegalArgumentException("Unsupported TargetController in EntersBattlefieldOneOrMoreTriggeredAbility");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ public class SacrificeOneOrMorePermanentsTriggeredAbility extends TriggeredAbili
|
|||
targetControllerText = "an opponent sacrifices one or more ";
|
||||
break;
|
||||
case ANY:
|
||||
targetControllerText = "one or more players sacrifices one or more ";
|
||||
targetControllerText = "one or more players sacrifice one or more ";
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unsupported TargetController in SacrificePermanentTriggeredAbility: " + sacrificingPlayer);
|
||||
|
|
|
|||
|
|
@ -21,11 +21,11 @@ public enum EnergySpentOrLostThisTurnCount implements DynamicValue {
|
|||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "{E} spent or lost this turn";
|
||||
return "{E} you've paid or lost this turn";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "X";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class PermanentsEnterBattlefieldTappedEffect extends ReplacementEffectImp
|
|||
return staticText;
|
||||
}
|
||||
return filter.getMessage()
|
||||
+ " enter the battlefield tapped"
|
||||
+ " enter tapped"
|
||||
+ (duration == Duration.EndOfTurn ? " this turn" : "");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class ReturnFromGraveyardToBattlefieldWithCounterTargetEffect extends Ret
|
|||
sb.append(" counter");
|
||||
} else {
|
||||
sb.append(CardUtil.numberToText(counter.getCount()));
|
||||
sb.append(additional ? " additional" : " ");
|
||||
sb.append(additional ? " additional " : " ");
|
||||
sb.append(counter.getName());
|
||||
sb.append(" counters");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ public enum AbilityWord {
|
|||
SECRET_COUNCIL("Secret council"),
|
||||
SPELL_MASTERY("Spell mastery"),
|
||||
STRIVE("Strive"),
|
||||
SURVIVOR("Survivor"),
|
||||
SURVIVAL("Survival"),
|
||||
SWEEP("Sweep"),
|
||||
TEMPTING_OFFER("Tempting offer"),
|
||||
THRESHOLD("Threshold"),
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ public final class TheEleventhHourToken extends TokenImpl {
|
|||
}
|
||||
|
||||
public TheEleventhHourToken() {
|
||||
super("Human Token", "1/1 white Human creature token with \"Doctor spells you cast cost 1 less to cast.\"");
|
||||
super("Human Token", "1/1 white Human creature token with \"Doctor spells you cast cost {1} less to cast.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
color.setWhite(true);
|
||||
subtype.add(SubType.HUMAN);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue