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;