[MH1] various text fixes

This commit is contained in:
Evan Kranzler 2021-06-12 19:26:02 -04:00
parent df6acb697d
commit 9fd29bae06
24 changed files with 64 additions and 67 deletions

View file

@ -1,8 +1,9 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.CantBlockAbility;
import mage.abilities.keyword.CantBeBlockedSourceAbility;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
import mage.abilities.keyword.ChangelingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -27,8 +28,9 @@ public final class ChangelingOutcast extends CardImpl {
this.addAbility(new ChangelingAbility());
// Changeling Outcast can't block and can't be blocked.
this.addAbility(new CantBlockAbility());
this.addAbility(new CantBeBlockedSourceAbility());
Ability ability = new CantBlockAbility();
ability.addEffect(new CantBeBlockedSourceEffect().setText("and can't be blocked"));
this.addAbility(ability);
}
private ChangelingOutcast(final ChangelingOutcast card) {

View file

@ -25,7 +25,7 @@ public final class Exclude extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell(new FilterCreatureSpell()));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private Exclude(final Exclude card) {

View file

@ -28,7 +28,9 @@ public final class FirstSphereGargantua extends CardImpl {
this.toughness = new MageInt(4);
// When First-Sphere Gargantua enters the battlefield, you draw a card and you lose 1 life.
Ability ability = new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1));
Ability ability = new EntersBattlefieldTriggeredAbility(
new DrawCardSourceControllerEffect(1).setText("you draw a card")
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);

View file

@ -10,7 +10,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterArtifactOrEnchantmentPermanent;
import mage.filter.common.FilterOwnedCard;
import mage.filter.predicate.mageobject.ColorPredicate;
@ -45,10 +44,7 @@ public final class ForceOfVigor extends CardImpl {
// Destroy up to two target artifacts and/or enchantments.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(
0, 2,
StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT, false
));
this.getSpellAbility().addTarget(new TargetPermanent(0, 2, filter2, false));
}
private ForceOfVigor(final ForceOfVigor card) {

View file

@ -33,7 +33,7 @@ public final class GeomancersGambit extends CardImpl {
this.getSpellAbility().addTarget(new TargetLandPermanent());
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private GeomancersGambit(final GeomancersGambit card) {

View file

@ -1,31 +1,32 @@
package mage.cards.i;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.CantBlockAbility;
import mage.abilities.keyword.CantBeBlockedSourceAbility;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.UUID;
/**
*
* @author North
*/
public final class InkfathomInfiltrator extends CardImpl {
public InkfathomInfiltrator(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{U/B}{U/B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U/B}{U/B}");
this.subtype.add(SubType.MERFOLK);
this.subtype.add(SubType.ROGUE);
this.power = new MageInt(2);
this.toughness = new MageInt(1);
this.addAbility(new CantBlockAbility());
this.addAbility(new CantBeBlockedSourceAbility());
Ability ability = new CantBlockAbility();
ability.addEffect(new CantBeBlockedSourceEffect().setText("and can't be blocked"));
this.addAbility(ability);
}
private InkfathomInfiltrator(final InkfathomInfiltrator card) {

View file

@ -44,9 +44,9 @@ public final class RangerCaptainOfEos extends CardImpl {
this.toughness = new MageInt(3);
// When Ranger-Captain of Eos enters the battlefield, you may search your library for a creature card with converted mana cost 1 or less, reveal it, put it into your hand, then shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(
new TargetCardInLibrary(0, 1, filter), true
), true));
this.addAbility(new EntersBattlefieldTriggeredAbility(
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true), true
));
// Sacrifice Ranger-Captain of Eos: Your opponents can't cast noncreature spells this turn.
this.addAbility(new SimpleActivatedAbility(new RangerCaptainOfEosEffect(), new SacrificeSourceCost()));

View file

@ -1,7 +1,5 @@
package mage.cards.r;
import java.util.UUID;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
@ -14,23 +12,26 @@ import mage.constants.Duration;
import mage.constants.TimingRule;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author jeffwadsworth
*/
public final class RecklessCharge extends CardImpl {
public RecklessCharge(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{R}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{R}");
// Target creature gets +3/+0 and gains haste until end of turn.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addEffect(new BoostTargetEffect(3, 0)
.setText("target creature gets +3/+0"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(
HasteAbility.getInstance(), Duration.EndOfTurn
).setText("and gains haste until end of turn"));
// Flashback {2}{R}
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{2}{R}"), TimingRule.INSTANT));
this.addAbility(new FlashbackAbility(new ManaCostsImpl<>("{2}{R}"), TimingRule.INSTANT));
}
private RecklessCharge(final RecklessCharge card) {

View file

@ -25,7 +25,7 @@ public final class Shelter extends CardImpl {
this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn));
//
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private Shelter(final Shelter card) {

View file

@ -40,13 +40,13 @@ public final class SoulStrikeTechnique extends CardImpl {
// Enchanted creature gets +1/+1 and has vigilance.
ability = new SimpleStaticAbility(new BoostEnchantedEffect(1, 1));
ability.addEffect(new GainAbilityAttachedEffect(
VigilanceAbility.getInstance(), AttachmentType.AURA)
);
VigilanceAbility.getInstance(), AttachmentType.AURA
).setText("and has vigilance"));
this.addAbility(ability);
// When enchanted creature dies, manifest the top card of your library.
this.addAbility(new DiesAttachedTriggeredAbility(
new ManifestEffect(1), "enchanted"
new ManifestEffect(1), "enchanted creature"
));
}

View file

@ -50,7 +50,7 @@ public final class Soulherder extends CardImpl {
Ability ability = new BeginningOfEndStepTriggeredAbility(
new ExileTargetForSourceEffect(), TargetController.YOU, true
);
ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false).concatBy("then"));
ability.addEffect(new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, false).concatBy(","));
ability.addTarget(new TargetControlledCreaturePermanent(filter));
this.addAbility(ability);
}

View file

@ -40,7 +40,7 @@ public final class SwordOfFireAndIce extends CardImpl {
// Whenever equipped creature deals combat damage to a player, Sword of Fire
// and Ice deals 2 damage to any target and you draw a card.
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
new DamageTargetEffect(2), "equipped", false
new DamageTargetEffect(2), "equipped creature", false
);
ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and"));
ability.addTarget(new TargetAnyTarget());

View file

@ -51,7 +51,7 @@ public final class SwordOfHearthAndHome extends CardImpl {
// Whenever equipped creature deals combat damage to a player, exile up to one target creature you own, then search your library for a basic land card. Put both cards onto the battlefield under your control, then shuffle.
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
new SwordOfHearthAndHomeEffect(), "equipped", false
new SwordOfHearthAndHomeEffect(), "equipped creature", false
);
ability.addTarget(new TargetPermanent(0, 1, filter));
this.addAbility(ability);

View file

@ -40,7 +40,7 @@ public final class SwordOfLightAndShadow extends CardImpl {
// Whenever equipped creature deals combat damage to a player, you gain 3 life and you may return up to one target creature card from your graveyard to your hand.
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
new GainLifeEffect(3), "equipped", false
new GainLifeEffect(3), "equipped creature", false
);
ability.addEffect(new SwordOfLightAndShadowEffect());
ability.addTarget(new TargetCardInYourGraveyard(

View file

@ -42,7 +42,7 @@ public final class SwordOfSinewAndSteel extends CardImpl {
ability = new DealsDamageToAPlayerAttachedTriggeredAbility(
new DestroyTargetEffect(false, true)
.setText("destroy up to one target planeswalker and up to one target artifact."),
"equipped", false
"equipped creature", false
);
ability.addTarget(new TargetPlaneswalkerPermanent(0, 1));
ability.addTarget(new TargetArtifactPermanent(0, 1));

View file

@ -45,7 +45,7 @@ public final class SwordOfTruthAndJustice extends CardImpl {
// Whenever equipped creature deals combat damage to a player, put a +1/+1 counter on a creature you control, then proliferate.
this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(
new SwordOfTruthAndJusticeEffect(), "equipped", false
new SwordOfTruthAndJusticeEffect(), "equipped creature", false
));
// Equip {2}

View file

@ -18,7 +18,7 @@ import java.util.UUID;
*/
public final class TheFirstSliver extends CardImpl {
private static final FilterCard filter = new FilterCard("Sliver spells you cast");
private static final FilterCard filter = new FilterCard("Sliver spells");
static {
filter.add(SubType.SLIVER.getPredicate());

View file

@ -1,29 +1,30 @@
package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.CantBlockAbility;
import mage.abilities.keyword.CantBeBlockedSourceAbility;
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.UUID;
/**
* @author Loki
*/
public final class TormentedSoul extends CardImpl {
public TormentedSoul(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}");
this.subtype.add(SubType.SPIRIT);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
this.addAbility(new CantBlockAbility());
this.addAbility(new CantBeBlockedSourceAbility());
Ability ability = new CantBlockAbility();
ability.addEffect(new CantBeBlockedSourceEffect().setText("and can't be blocked"));
this.addAbility(ability);
}
private TormentedSoul(final TormentedSoul card) {
@ -34,5 +35,4 @@ public final class TormentedSoul extends CardImpl {
public TormentedSoul copy() {
return new TormentedSoul(this);
}
}

View file

@ -36,7 +36,7 @@ public final class TributeMage extends CardImpl {
// When Tribute Mage enters the battlefield, you may search your library for an artifact card with converted mana cost 2, reveal that card, put it into your hand, then shuffle your library.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(
new TargetCardInLibrary(0, 1, filter), true, true
new TargetCardInLibrary(filter), true, true
), true));
}

View file

@ -36,7 +36,7 @@ public final class UndeadAugur extends CardImpl {
// Whenever Undead Augur or another Zombie you control dies, you draw a card and you lose 1 life.
Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(
new DrawCardSourceControllerEffect(1).concatBy("you"), false, filter
new DrawCardSourceControllerEffect(1).setText("you draw a card"), false, filter
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);

View file

@ -76,7 +76,7 @@ class UrzaLordHighArtificerEffect extends OneShotEffect {
UrzaLordHighArtificerEffect() {
super(Outcome.Benefit);
this.staticText = "Shuffle your library, then exile the top card of your library. " +
this.staticText = "Shuffle your library, then exile the top card. " +
"Until end of turn, you may play that card without paying its mana cost";
}

View file

@ -1,28 +1,30 @@
package mage.cards.w;
import java.util.UUID;
import mage.abilities.effects.common.SacrificeEffect;
import mage.abilities.keyword.StormAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterAttackingCreature;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class WingShards extends CardImpl {
public WingShards(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}{W}");
private static final FilterPermanent filter = new FilterAttackingCreature("an attacking creature");
public WingShards(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}{W}");
// Target player sacrifices an attacking creature.
this.getSpellAbility().addEffect(new SacrificeEffect(new FilterAttackingCreature(), 1, "Target player"));
this.getSpellAbility().addEffect(new SacrificeEffect(filter, 1, "Target player"));
this.getSpellAbility().addTarget(new TargetPlayer());
// Storm
this.addAbility(new StormAbility());
}

View file

@ -56,7 +56,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "C21"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MH1"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages

View file

@ -1,12 +1,10 @@
package mage.abilities.common;
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.abilities.effects.common.combat.CantBlockSourceEffect;
/**
*
* @author maurer.it_at_gmail.com
*/
public class CantBlockAbility extends SimpleStaticAbility {
@ -19,11 +17,6 @@ public class CantBlockAbility extends SimpleStaticAbility {
super(ability);
}
@Override
public String getRule() {
return "{this} can't block.";
}
@Override
public CantBlockAbility copy() {
return new CantBlockAbility(this);