diff --git a/Mage.Sets/src/mage/cards/d/DraconicIntervention.java b/Mage.Sets/src/mage/cards/d/DraconicIntervention.java
index eb91ebc9e73..b47ec3ba5bd 100644
--- a/Mage.Sets/src/mage/cards/d/DraconicIntervention.java
+++ b/Mage.Sets/src/mage/cards/d/DraconicIntervention.java
@@ -50,7 +50,7 @@ public final class DraconicIntervention extends CardImpl {
this.getSpellAbility().addWatcher(new DamagedByWatcher(false));
// Exile Draconic Intervention.
- this.getSpellAbility().addEffect(new ExileSpellEffect());
+ this.getSpellAbility().addEffect(new ExileSpellEffect().concatBy("
"));
}
private DraconicIntervention(final DraconicIntervention card) {
diff --git a/Mage.Sets/src/mage/cards/d/DualCasting.java b/Mage.Sets/src/mage/cards/d/DualCasting.java
index f2c9db7c7f3..b2b6b238179 100644
--- a/Mage.Sets/src/mage/cards/d/DualCasting.java
+++ b/Mage.Sets/src/mage/cards/d/DualCasting.java
@@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent;
* @author Loki
*/
public final class DualCasting extends CardImpl {
- private static final FilterSpell filter = new FilterSpell("instant or sorcery spell");
+ private static final FilterSpell filter = new FilterSpell("instant or sorcery spell you control");
static {
filter.add(Predicates.or(
diff --git a/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java b/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java
index 19456c56bea..af8f76575a4 100644
--- a/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java
+++ b/Mage.Sets/src/mage/cards/f/FlamescrollCelebrant.java
@@ -58,7 +58,7 @@ public final class FlamescrollCelebrant extends ModalDoubleFacesCard {
this.getRightHalfCard().getSpellAbility().addEffect(new RevelInSilenceEffect());
// Exile Revel in Silence.
- this.getRightHalfCard().getSpellAbility().addEffect(new ExileSpellEffect());
+ this.getRightHalfCard().getSpellAbility().addEffect(new ExileSpellEffect().concatBy("
"));
}
private FlamescrollCelebrant(final FlamescrollCelebrant card) {
diff --git a/Mage.Sets/src/mage/cards/r/ReconstructHistory.java b/Mage.Sets/src/mage/cards/r/ReconstructHistory.java
index 7ec7d69bf1e..e0cc3077f95 100644
--- a/Mage.Sets/src/mage/cards/r/ReconstructHistory.java
+++ b/Mage.Sets/src/mage/cards/r/ReconstructHistory.java
@@ -55,7 +55,7 @@ public final class ReconstructHistory extends CardImpl {
));
// Exile Reconstruct History.
- this.getSpellAbility().addEffect(new ExileSpellEffect());
+ this.getSpellAbility().addEffect(new ExileSpellEffect().concatBy("
"));
}
private ReconstructHistory(final ReconstructHistory card) {
diff --git a/Mage.Sets/src/mage/cards/s/StrixhavenStadium.java b/Mage.Sets/src/mage/cards/s/StrixhavenStadium.java
index f45535b02f5..9d7c3283876 100644
--- a/Mage.Sets/src/mage/cards/s/StrixhavenStadium.java
+++ b/Mage.Sets/src/mage/cards/s/StrixhavenStadium.java
@@ -39,7 +39,7 @@ public final class StrixhavenStadium extends CardImpl {
// Whenever a creature you control deals combat damage to an opponent, put a point counter on Strixhaven Stadium. Then if it has ten or more point counters on it, remove them all and that player loses the game.
ability = new DealsDamageToAPlayerAllTriggeredAbility(
Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.POINT.createInstance()),
- StaticFilters.FILTER_CONTROLLED_CREATURE, false, SetTargetPointer.PLAYER,
+ StaticFilters.FILTER_CONTROLLED_A_CREATURE, false, SetTargetPointer.PLAYER,
true, true, TargetController.OPPONENT
);
ability.addEffect(new StrixhavenStadiumEffect());
diff --git a/Mage.Sets/src/mage/cards/t/TenuredInkcaster.java b/Mage.Sets/src/mage/cards/t/TenuredInkcaster.java
index fb46b35a567..214c2467164 100644
--- a/Mage.Sets/src/mage/cards/t/TenuredInkcaster.java
+++ b/Mage.Sets/src/mage/cards/t/TenuredInkcaster.java
@@ -25,7 +25,7 @@ import java.util.UUID;
public final class TenuredInkcaster extends CardImpl {
private static final FilterCreaturePermanent filter
- = new FilterCreaturePermanent("a creature you control with a +1/+1 counter on it");
+ = new FilterCreaturePermanent("creature you control with a +1/+1 counter on it");
static {
filter.add(TargetController.YOU.getControllerPredicate());
diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
index 0dce89ab8aa..806bd0e9453 100644
--- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
+++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
@@ -1372,7 +1372,7 @@ public class VerifyCardDataTest {
.replace("", "")
.replace("", "");
- return newRule;
+ return newRule.trim();
}
@Test
diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java
index 5a9377fe137..d3d9182b3ce 100644
--- a/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/common/ExileFromGraveCost.java
@@ -38,9 +38,7 @@ public class ExileFromGraveCost extends CostImpl {
+ CardUtil.numberToText(target.getMaxNumberOfTargets()))
+ ' ' + target.getTargetName();
} else {
- this.text = "exile "
- + (target.getTargetName().startsWith("card ") ? "a " : "")
- + target.getTargetName();
+ this.text = "exile " + CardUtil.addArticle(target.getTargetName());
}
if (!this.text.endsWith(" from your graveyard")) {
this.text = this.text + " from your graveyard";
diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java
index f7c9826f3f1..d110f15104a 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/ExileSpellEffect.java
@@ -13,7 +13,7 @@ import mage.players.Player;
*/
public class ExileSpellEffect extends OneShotEffect {
- private ExileSpellEffect() {
+ public ExileSpellEffect() {
super(Outcome.Exile);
staticText = "Exile {this}";
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutInHandEffect.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutInHandEffect.java
index b90c77c9277..f34d46931d2 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutInHandEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutInHandEffect.java
@@ -105,10 +105,7 @@ public class SearchLibraryPutInHandEffect extends SearchEffect {
sb.append(" and put them into your hand. If you do, shuffle");
}
} else {
- if (!target.getTargetName().startsWith("a ") && !target.getTargetName().startsWith("an ")) {
- sb.append("a ");
- }
- sb.append(target.getTargetName());
+ sb.append(CardUtil.addArticle(target.getTargetName()));
if (forceShuffle) {
sb.append(revealCards ? ", reveal it, put it" : ", put that card");
sb.append(" into your hand, then shuffle");
diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutOnLibraryEffect.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutOnLibraryEffect.java
index 1c1a86dbe41..231c007b189 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutOnLibraryEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryPutOnLibraryEffect.java
@@ -73,7 +73,7 @@ public class SearchLibraryPutOnLibraryEffect extends SearchEffect {
if (reveal) {
sb.append(", reveal it");
}
- sb.append(", then shuffle and put that card on top of it");
+ sb.append(", then shuffle and put that card on top");
staticText = sb.toString();
}
}
diff --git a/Mage/src/main/java/mage/util/CardUtil.java b/Mage/src/main/java/mage/util/CardUtil.java
index 2060293d645..8388e4fe26e 100644
--- a/Mage/src/main/java/mage/util/CardUtil.java
+++ b/Mage/src/main/java/mage/util/CardUtil.java
@@ -911,6 +911,13 @@ public final class CardUtil {
}
}
+ public static String addArticle(String text) {
+ if (text.startsWith("a ") || text.startsWith("an ")) {
+ return text;
+ }
+ return "aeiou".contains("" + text.charAt(0)) ? "an " + text : "a " + text;
+ }
+
public static Set getAllSelectedTargets(Ability ability, Game game) {
return ability.getModes().getSelectedModes()
.stream()
@@ -1275,7 +1282,7 @@ public final class CardUtil {
int res;
try {
res = Integer.parseInt(value);
- } catch(NumberFormatException ex) {
+ } catch (NumberFormatException ex) {
res = defaultValue;
}
return res;