diff --git a/Mage.Sets/src/mage/cards/b/BladewheelChariot.java b/Mage.Sets/src/mage/cards/b/BladewheelChariot.java
index 7ea85da1175..aa6b22cf8aa 100644
--- a/Mage.Sets/src/mage/cards/b/BladewheelChariot.java
+++ b/Mage.Sets/src/mage/cards/b/BladewheelChariot.java
@@ -43,7 +43,7 @@ public final class BladewheelChariot extends CardImpl {
// Tap two other untapped artifacts you control: Bladewheel Chariot becomes an artifact creature until end of turn.
this.addAbility(new SimpleActivatedAbility(new AddCardTypeSourceEffect(
Duration.EndOfTurn, CardType.ARTIFACT, CardType.CREATURE
- ), new TapTargetCost(new TargetControlledPermanent(2, filter))));
+ ).setText("{this} becomes an artifact creature until end of turn"), new TapTargetCost(new TargetControlledPermanent(2, filter))));
// Crew 1
this.addAbility(new CrewAbility(1));
diff --git a/Mage.Sets/src/mage/cards/c/CapennaExpress.java b/Mage.Sets/src/mage/cards/c/CapennaExpress.java
index 10bad4bdfa1..a2c37f62643 100644
--- a/Mage.Sets/src/mage/cards/c/CapennaExpress.java
+++ b/Mage.Sets/src/mage/cards/c/CapennaExpress.java
@@ -31,7 +31,7 @@ public final class CapennaExpress extends CardImpl {
// Sacrifice a Treasure: Capenna Express becomes an artifact creature until end of turn.
this.addAbility(new SimpleActivatedAbility(new AddCardTypeSourceEffect(
Duration.EndOfTurn, CardType.ARTIFACT, CardType.CREATURE
- ), new SacrificeTargetCost(filter)));
+ ).setText("{this} becomes an artifact creature until end of turn"), new SacrificeTargetCost(filter)));
// Crew 3
this.addAbility(new CrewAbility(3));
diff --git a/Mage.Sets/src/mage/cards/g/GeodeGrotto.java b/Mage.Sets/src/mage/cards/g/GeodeGrotto.java
index 3506da7c2ac..9bcf1d2c4c3 100644
--- a/Mage.Sets/src/mage/cards/g/GeodeGrotto.java
+++ b/Mage.Sets/src/mage/cards/g/GeodeGrotto.java
@@ -34,9 +34,8 @@ public final class GeodeGrotto extends CardImpl {
this.addAbility(new RedManaAbility());
// {2}{R}, {T}: Until end of turn, target creature gains haste and gets +X/+0, where X is the number of artifacts you control. Activate only as a sorcery.
- Ability ability = new ActivateAsSorceryActivatedAbility(
- new GainAbilityTargetEffect(HasteAbility.getInstance()), new ManaCostsImpl<>("{2}{R}")
- );
+ Ability ability = new ActivateAsSorceryActivatedAbility(new GainAbilityTargetEffect(HasteAbility.getInstance())
+ .setText("Until end of turn, target creature gains haste"), new ManaCostsImpl<>("{2}{R}"));
ability.addCost(new TapSourceCost());
ability.addEffect(new BoostTargetEffect(
ArtifactYouControlCount.instance, StaticValue.get(0)
diff --git a/Mage.Sets/src/mage/cards/g/GutTrueSoulZealot.java b/Mage.Sets/src/mage/cards/g/GutTrueSoulZealot.java
index 5a0f1474e28..cce7e7ae953 100644
--- a/Mage.Sets/src/mage/cards/g/GutTrueSoulZealot.java
+++ b/Mage.Sets/src/mage/cards/g/GutTrueSoulZealot.java
@@ -34,7 +34,7 @@ public final class GutTrueSoulZealot extends CardImpl {
this.addAbility(new AttacksWithCreaturesTriggeredAbility(new DoIfCostPaid(
new CreateTokenEffect(
new SkeletonMenaceToken(), 1, true, true
- ).withAdditionalRules("(It can't be blocked except by two or more creatures.)"),
+ ).withAdditionalRules(" (It can't be blocked except by two or more creatures.)"),
new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_ARTIFACT_OR_OTHER_CREATURE)
), 1));
diff --git a/Mage.Sets/src/mage/cards/s/SinuousBenthisaur.java b/Mage.Sets/src/mage/cards/s/SinuousBenthisaur.java
index 1509e1727fe..8a443695b23 100644
--- a/Mage.Sets/src/mage/cards/s/SinuousBenthisaur.java
+++ b/Mage.Sets/src/mage/cards/s/SinuousBenthisaur.java
@@ -27,7 +27,7 @@ public final class SinuousBenthisaur extends CardImpl {
private static final FilterPermanent filter
= new FilterControlledPermanent(SubType.CAVE, "Caves you control");
- private static final FilterCard filterCard = new FilterCard("Cave cards");
+ private static final FilterCard filterCard = new FilterCard("plus the number of Cave cards");
static {
filterCard.add(SubType.CAVE.getPredicate());
@@ -47,7 +47,7 @@ public final class SinuousBenthisaur extends CardImpl {
// When Sinuous Benthisaur enters the battlefield, look at the top X cards of your library, where X is the number of Caves you control plus the number of Cave cards in your graveyard. Put two of those cards into your hand and the rest on the bottom of your library in a random order.
this.addAbility(new EntersBattlefieldTriggeredAbility(
- new LookLibraryAndPickControllerEffect(xValue, 2, PutCards.HAND, PutCards.BOTTOM_ANY)
+ new LookLibraryAndPickControllerEffect(xValue, 2, PutCards.HAND, PutCards.BOTTOM_RANDOM)
).addHint(new ValueHint("Caves count", xValue)));
}
@@ -59,4 +59,4 @@ public final class SinuousBenthisaur extends CardImpl {
public SinuousBenthisaur copy() {
return new SinuousBenthisaur(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/cards/s/SoulsOfTheLost.java b/Mage.Sets/src/mage/cards/s/SoulsOfTheLost.java
index cc7ab840497..9d910043916 100644
--- a/Mage.Sets/src/mage/cards/s/SoulsOfTheLost.java
+++ b/Mage.Sets/src/mage/cards/s/SoulsOfTheLost.java
@@ -25,7 +25,7 @@ import java.util.UUID;
*/
public final class SoulsOfTheLost extends CardImpl {
- private static final DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_PERMANENT);
+ private static final DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_PERMANENTS);
public SoulsOfTheLost(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
diff --git a/Mage.Sets/src/mage/cards/t/TheMillenniumCalendar.java b/Mage.Sets/src/mage/cards/t/TheMillenniumCalendar.java
index 5416d216305..b5b66b14eab 100644
--- a/Mage.Sets/src/mage/cards/t/TheMillenniumCalendar.java
+++ b/Mage.Sets/src/mage/cards/t/TheMillenniumCalendar.java
@@ -109,8 +109,6 @@ class TheMillenniumCalendarTriggeredAbility extends TriggeredAbilityImpl {
return true;
}
- private static final String infoKey = "number_untapped";
-
@Override
public String getRule() {
return "Whenever you untap one or more permanents during your untap step, "
@@ -126,7 +124,7 @@ class TheMillenniumCalendarStateTriggeredAbility extends StateTriggeredAbility {
public TheMillenniumCalendarStateTriggeredAbility() {
super(Zone.BATTLEFIELD, new SacrificeSourceEffect());
withRuleTextReplacement(true);
- addEffect(new LoseLifeOpponentsEffect(1000).concatBy("and"));
+ addEffect(new LoseLifeOpponentsEffect(1000).setText("and each opponent loses 1,000 life"));
setTriggerPhrase("When there are 1,000 or more time counters on {this}, ");
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenEffect.java
index 7bc3091a015..96eb67cfb98 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenEffect.java
@@ -160,7 +160,11 @@ public class CreateTokenEffect extends OneShotEffect {
String message = amount.getMessage();
if (!message.isEmpty()) {
if (amount.toString().equals("X")) {
- sb.append(", where X is ");
+ if (sb.toString().endsWith(".\"")) {
+ sb.replace(sb.length() - 2, sb.length(), ",\" where X is ");
+ } else {
+ sb.append(", where X is ");
+ }
} else {
sb.append(" for each ");
}
@@ -168,7 +172,7 @@ public class CreateTokenEffect extends OneShotEffect {
sb.append(message);
if (this.additionalRules != null) {
- sb.append(" " + this.additionalRules);
+ sb.append(this.additionalRules);
}
staticText = sb.toString();