From 474c9655a48c177a6c528e44fb4b9036310c53d9 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 22 Mar 2022 08:46:02 -0400 Subject: [PATCH] some additional text fixes --- .../src/mage/cards/a/ArchmagesCharm.java | 2 +- Mage.Sets/src/mage/cards/b/BladeSplicer.java | 3 +- .../src/mage/cards/b/BlisterstickShaman.java | 2 +- Mage.Sets/src/mage/cards/b/BondsOfFaith.java | 33 +++++++++++-------- Mage.Sets/src/mage/cards/d/Dismiss.java | 2 +- .../src/mage/cards/g/GoblinDarkDwellers.java | 2 +- Mage.Sets/src/mage/cards/h/HauntedDead.java | 2 +- .../src/mage/cards/k/KessigWolfrider.java | 3 +- .../src/mage/cards/s/StitchwingSkaab.java | 2 +- .../src/mage/cards/s/SvyelunOfSeaAndSky.java | 2 +- .../src/mage/cards/t/ThaliasLieutenant.java | 15 ++++----- .../src/mage/cards/u/UlvenwaldMysteries.java | 2 +- ...ditionalInterveningIfTriggeredAbility.java | 2 +- .../effects/common/ConjureCardEffect.java | 7 ++-- 14 files changed, 44 insertions(+), 35 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/ArchmagesCharm.java b/Mage.Sets/src/mage/cards/a/ArchmagesCharm.java index 51509613010..d74e8e6f61a 100644 --- a/Mage.Sets/src/mage/cards/a/ArchmagesCharm.java +++ b/Mage.Sets/src/mage/cards/a/ArchmagesCharm.java @@ -44,7 +44,7 @@ public final class ArchmagesCharm extends CardImpl { this.getSpellAbility().addMode(mode); // • Gain control of target nonland permanent with converted mana cost 1 or less. - mode = new Mode(new GainControlTargetEffect(Duration.EndOfGame, true)); + mode = new Mode(new GainControlTargetEffect(Duration.Custom, true)); mode.addTarget(new TargetPermanent(filter)); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/b/BladeSplicer.java b/Mage.Sets/src/mage/cards/b/BladeSplicer.java index 3fd48e080cf..a6290b2378e 100644 --- a/Mage.Sets/src/mage/cards/b/BladeSplicer.java +++ b/Mage.Sets/src/mage/cards/b/BladeSplicer.java @@ -21,10 +21,9 @@ import java.util.UUID; * @author Loki */ public final class BladeSplicer extends CardImpl { - private static final FilterPermanent filter = new FilterPermanent("Golem creatures"); + private static final FilterPermanent filter = new FilterPermanent("Golems"); static { - filter.add(CardType.CREATURE.getPredicate()); filter.add(SubType.GOLEM.getPredicate()); } diff --git a/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java b/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java index c21730c32ca..0f03c5173b0 100644 --- a/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java +++ b/Mage.Sets/src/mage/cards/b/BlisterstickShaman.java @@ -25,7 +25,7 @@ public final class BlisterstickShaman extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(1); - Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1)); + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(1, "it")); ability.addTarget(new TargetAnyTarget()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BondsOfFaith.java b/Mage.Sets/src/mage/cards/b/BondsOfFaith.java index 8a55f11cdfc..ff6b461f474 100644 --- a/Mage.Sets/src/mage/cards/b/BondsOfFaith.java +++ b/Mage.Sets/src/mage/cards/b/BondsOfFaith.java @@ -1,48 +1,55 @@ - package mage.cards.b; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; import mage.abilities.condition.InvertCondition; import mage.abilities.condition.common.EquippedHasSubtypeCondition; import mage.abilities.decorator.ConditionalContinuousEffect; import mage.abilities.decorator.ConditionalRestrictionEffect; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.combat.CantAttackBlockAttachedEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.*; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; import mage.target.TargetPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ public final class BondsOfFaith extends CardImpl { - private static final String rule = "Enchanted creature gets +2/+2 as long as it's a Human"; + private static final Condition condition1 = new EquippedHasSubtypeCondition(SubType.HUMAN); + private static final Condition condition2 = new InvertCondition(condition1); public BondsOfFaith(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); this.subtype.add(SubType.AURA); - // Enchant creature TargetPermanent auraTarget = new TargetCreaturePermanent(); this.getSpellAbility().addTarget(auraTarget); this.getSpellAbility().addEffect(new AttachEffect(Outcome.Neutral)); - Ability ability = new EnchantAbility(auraTarget.getTargetName()); - this.addAbility(ability); + this.addAbility(new EnchantAbility(auraTarget.getTargetName())); // Enchanted creature gets +2/+2 as long as it's a Human. Otherwise, it can't attack or block. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEquippedEffect(2, 2), new EquippedHasSubtypeCondition(SubType.HUMAN), rule))); - Effect effect = new ConditionalRestrictionEffect(new CantAttackBlockAttachedEffect(AttachmentType.AURA), new InvertCondition(new EquippedHasSubtypeCondition(SubType.HUMAN))); - effect.setText("Otherwise, it can't attack or block"); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect( + new BoostEquippedEffect(2, 2), condition1, + "Enchanted creature gets +2/+2 as long as it's a Human" + )); + ability.addEffect(new ConditionalRestrictionEffect( + new CantAttackBlockAttachedEffect(AttachmentType.AURA), + condition2, "Otherwise, it can't attack or block" + )); + this.addAbility(ability); } private BondsOfFaith(final BondsOfFaith card) { diff --git a/Mage.Sets/src/mage/cards/d/Dismiss.java b/Mage.Sets/src/mage/cards/d/Dismiss.java index d44576ef540..250610c941c 100644 --- a/Mage.Sets/src/mage/cards/d/Dismiss.java +++ b/Mage.Sets/src/mage/cards/d/Dismiss.java @@ -20,7 +20,7 @@ public final class Dismiss extends CardImpl { this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } private Dismiss(final Dismiss card) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java index d07ba81c428..7eaddbb3127 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java @@ -72,7 +72,7 @@ class GoblinDarkDwellersEffect extends OneShotEffect { super(Outcome.PlayForFree); this.staticText = "you may cast target instant or sorcery card with " + "mana value 3 or less from your graveyard without paying its mana cost. " - + "If that card would be put into your graveyard this turn, exile it instead"; + + "If that spell would be put into your graveyard this turn, exile it instead"; } GoblinDarkDwellersEffect(final GoblinDarkDwellersEffect effect) { diff --git a/Mage.Sets/src/mage/cards/h/HauntedDead.java b/Mage.Sets/src/mage/cards/h/HauntedDead.java index 66e36020724..63e94133207 100644 --- a/Mage.Sets/src/mage/cards/h/HauntedDead.java +++ b/Mage.Sets/src/mage/cards/h/HauntedDead.java @@ -35,7 +35,7 @@ public final class HauntedDead extends CardImpl { this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken()))); // {1}{B}, Discard two cards: Return Haunted Dead from your graveyard to the battlefield tapped. - Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{B}")); + Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false), new ManaCostsImpl("{1}{B}")); ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard("two cards")))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/k/KessigWolfrider.java b/Mage.Sets/src/mage/cards/k/KessigWolfrider.java index e0283feda87..cacc4724933 100644 --- a/Mage.Sets/src/mage/cards/k/KessigWolfrider.java +++ b/Mage.Sets/src/mage/cards/k/KessigWolfrider.java @@ -12,6 +12,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; +import mage.filter.StaticFilters; import mage.game.permanent.token.RedWolfToken; import mage.target.common.TargetCardInYourGraveyard; @@ -38,7 +39,7 @@ public final class KessigWolfrider extends CardImpl { new CreateTokenEffect(new RedWolfToken()), new ManaCostsImpl<>("{2}{R}") ); ability.addCost(new TapSourceCost()); - ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(3, 3))); + ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(3, 3, StaticFilters.FILTER_CARDS_FROM_YOUR_GRAVEYARD))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/StitchwingSkaab.java b/Mage.Sets/src/mage/cards/s/StitchwingSkaab.java index 5dd8e57f62c..ed2016f8481 100644 --- a/Mage.Sets/src/mage/cards/s/StitchwingSkaab.java +++ b/Mage.Sets/src/mage/cards/s/StitchwingSkaab.java @@ -34,7 +34,7 @@ public final class StitchwingSkaab extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // {1}{U}, Discard two cards: Return Stitchwing Skaab from your graveyard to the battlefield tapped. - Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true), new ManaCostsImpl("{1}{U}")); + Ability ability = new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(true, false), new ManaCostsImpl("{1}{U}")); ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, new FilterCard("two cards")))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SvyelunOfSeaAndSky.java b/Mage.Sets/src/mage/cards/s/SvyelunOfSeaAndSky.java index c52dc802825..39736d64df8 100644 --- a/Mage.Sets/src/mage/cards/s/SvyelunOfSeaAndSky.java +++ b/Mage.Sets/src/mage/cards/s/SvyelunOfSeaAndSky.java @@ -29,7 +29,7 @@ import java.util.UUID; */ public final class SvyelunOfSeaAndSky extends CardImpl { - private static final FilterPermanent filter = new FilterControlledPermanent(SubType.MERFOLK, "other Merfolk"); + private static final FilterPermanent filter = new FilterControlledPermanent(SubType.MERFOLK); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java b/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java index a5329812e5a..1b82f206f33 100644 --- a/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java +++ b/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java @@ -1,9 +1,7 @@ - package mage.cards.t; -import java.util.UUID; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.effects.common.counter.AddCountersAllEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; @@ -15,13 +13,14 @@ import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.mageobject.AnotherPredicate; +import java.util.UUID; + /** - * * @author fireshoes */ public final class ThaliasLieutenant extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Human you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Human"); static { filter.add(AnotherPredicate.instance); @@ -29,17 +28,17 @@ public final class ThaliasLieutenant extends CardImpl { } public ThaliasLieutenant(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.SOLDIER); this.power = new MageInt(1); this.toughness = new MageInt(1); // When Thalia's Lieutenant enters the battlefield, put +1/+1 counter on each other Human you control. - this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter), false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), filter).setText("put +1/+1 counter on each other Human you control"), false)); // Whenever another Human enters the battlefield under you control, put a +1/+1 counter on Thalia's Lieutenant. - this.addAbility(new EntersBattlefieldAllTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter)); + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter)); } private ThaliasLieutenant(final ThaliasLieutenant card) { diff --git a/Mage.Sets/src/mage/cards/u/UlvenwaldMysteries.java b/Mage.Sets/src/mage/cards/u/UlvenwaldMysteries.java index 6f2175bfb5f..10d274de9f5 100644 --- a/Mage.Sets/src/mage/cards/u/UlvenwaldMysteries.java +++ b/Mage.Sets/src/mage/cards/u/UlvenwaldMysteries.java @@ -25,7 +25,7 @@ import mage.game.permanent.token.HumanSoldierToken; */ public final class UlvenwaldMysteries extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nontoken creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a nontoken creature you control"); private static final FilterControlledPermanent filterClue = new FilterControlledPermanent("a Clue"); static { diff --git a/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java b/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java index e31ca94d96c..b1a0c45eb73 100644 --- a/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/decorator/ConditionalInterveningIfTriggeredAbility.java @@ -79,7 +79,7 @@ public class ConditionalInterveningIfTriggeredAbility extends TriggeredAbilityIm return ability.getRule(); } return (abilityWord != null ? abilityWord.formatWord() : "") + abilityText + - (abilityText.endsWith(".") || abilityText.endsWith("\"") ? "" : "."); + (abilityText.endsWith(".") || abilityText.endsWith("\"") || abilityText.endsWith(">") ? "" : "."); } @Override diff --git a/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java index ddb8bd59a17..60ad936be12 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ConjureCardEffect.java @@ -77,9 +77,11 @@ public class ConjureCardEffect extends OneShotEffect { StringBuilder sb = new StringBuilder("conjure "); sb.append(CardUtil.numberToText(amount, "a")); sb.append(' '); - sb.append(cardName); sb.append("card"); sb.append(amount > 1 ? "s " : " "); + sb.append("named "); + sb.append(cardName); + sb.append(' '); switch (zone) { case HAND: case GRAVEYARD: @@ -88,7 +90,8 @@ public class ConjureCardEffect extends OneShotEffect { case BATTLEFIELD: sb.append("onto the"); } - sb.append(zone); + sb.append(' '); + sb.append(zone.toString().toLowerCase()); return sb.toString(); } }