Text corrections from issue #6654 (WIP) (#6707)

* Collective restraint typo fix

* set text for EndlessSwarm. Add starts with vowel cond case to CountersSourceEffect

* Teferi's Curse, added text option to GainAbilityAttachEffect

* added set text to several cards. Implement reviewer suggestions in GainAbilityAttachedEffect

* Remove period from rule text (undo my lazy coding fix)
This commit is contained in:
Erik 2020-08-15 16:55:59 -04:00 committed by GitHub
parent 7c929767bb
commit 3d989b24ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 16 deletions

View file

@ -27,7 +27,7 @@ public final class AngelOfRenewal extends CardImpl {
// Flying
this.addAbility(FlyingAbility.getInstance());
// When Angel of Renewal enters the battlefield, you gain 1 life for each creature you control.
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(CreaturesYouControlCount.instance)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(CreaturesYouControlCount.instance).setText("you gain 1 life for each creature you control")));
}
public AngelOfRenewal(final AngelOfRenewal card) {

View file

@ -22,11 +22,11 @@ public final class BenedictionOfMoons extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}");
// You gain 1 life for each player.
this.getSpellAbility().addEffect(new GainLifeEffect(new PlayerCount()));
this.getSpellAbility().addEffect(new GainLifeEffect(new PlayerCount()).setText("you gain 1 life for each player"));
// Haunt
// When the creature Benediction of Moons haunts dies, you gain 1 life for each player.
this.addAbility(new HauntAbility(this, new GainLifeEffect(new PlayerCount())));
this.addAbility(new HauntAbility(this, new GainLifeEffect(new PlayerCount()).setText("you gain 1 life for each player")));
}

View file

@ -46,7 +46,7 @@ class CollectiveRestraintPayManaToAttackAllEffect extends CantAttackYouUnlessPay
CollectiveRestraintPayManaToAttackAllEffect() {
super(null, false);
staticText = "Creatures can't attack you unless their controller pays {X} for each creature they control that's attacking you, where X is the number of basic land types you control.";
staticText = "Creatures can't attack you unless their controller pays {X} for each creature they control that's attacking you, where X is the number of basic land types among lands you control.";
}
CollectiveRestraintPayManaToAttackAllEffect(CollectiveRestraintPayManaToAttackAllEffect effect) {

View file

@ -25,7 +25,7 @@ public final class DwarvenPriest extends CardImpl {
this.toughness = new MageInt(4);
// When Dwarven Priest enters the battlefield, you gain 1 life for each creature you control.
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(CreaturesYouControlCount.instance)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(CreaturesYouControlCount.instance).setText("you gain 1 life for each creature you control")));
}
public DwarvenPriest(final DwarvenPriest card) {

View file

@ -22,8 +22,8 @@ public final class EndlessSwarm extends CardImpl {
// Create a 1/1 green Snake creature token for each card in your hand.
this.getSpellAbility().addEffect(new CreateTokenEffect(new SnakeToken(), CardsInControllerHandCount.instance));
this.getSpellAbility().addEffect(new CreateTokenEffect(new SnakeToken(), CardsInControllerHandCount.instance).setText("create a 1/1 green Snake creature token for each card in your hand"));
// Epic
this.getSpellAbility().addEffect(new EpicEffect());

View file

@ -10,11 +10,7 @@ import mage.abilities.keyword.EnchantAbility;
import mage.abilities.keyword.PhasingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AttachmentType;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.target.TargetPermanent;
@ -45,7 +41,7 @@ public final class TeferisCurse extends CardImpl {
this.addAbility(ability);
// Enchanted permanent has phasing.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(PhasingAbility.getInstance(), AttachmentType.AURA)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(PhasingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield, null, "permanent")));
}
public TeferisCurse(final TeferisCurse card) {

View file

@ -15,6 +15,7 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
protected Ability ability;
protected AttachmentType attachmentType;
protected boolean independentEffect;
protected String targetObjectName;
public GainAbilityAttachedEffect(Ability ability, AttachmentType attachmentType) {
this(ability, attachmentType, Duration.WhileOnBattlefield);
@ -25,7 +26,12 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
}
public GainAbilityAttachedEffect(Ability ability, AttachmentType attachmentType, Duration duration, String rule) {
this(ability, attachmentType, duration, rule, "creature");
}
public GainAbilityAttachedEffect(Ability ability, AttachmentType attachmentType, Duration duration, String rule, String targetObjectName) {
super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
this.targetObjectName = targetObjectName;
this.ability = ability;
this.attachmentType = attachmentType;
switch (duration) {
@ -54,6 +60,7 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
ability.newId(); // This is needed if the effect is copied e.g. by a clone so the ability can be added multiple times to permanents
this.attachmentType = effect.attachmentType;
this.independentEffect = effect.independentEffect;
this.targetObjectName = effect.targetObjectName;
}
@Override
@ -96,13 +103,13 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
private void setText() {
StringBuilder sb = new StringBuilder();
sb.append(attachmentType.verb());
sb.append(" creature ");
sb.append(" " + targetObjectName + " ");
if (duration == Duration.WhileOnBattlefield) {
sb.append("has ");
} else {
sb.append("gains ");
}
sb.append(ability.getRule("this creature"));
sb.append(ability.getRule("this " + targetObjectName));
if (!duration.toString().isEmpty()) {
sb.append(' ').append(duration.toString());
}

View file

@ -135,7 +135,12 @@ public class AddCountersSourceEffect extends OneShotEffect {
} else if (amount.toString().equals("X") && amount.getMessage().isEmpty()) {
sb.append("X ");
} else {
sb.append("a ");
//if counter name starts with a vowel use 'an' instead of 'a'
if ("aeiou".indexOf(counter.getName().toLowerCase(Locale.ENGLISH).charAt(0)) >= 0 ){
sb.append("an ");
} else {
sb.append("a ");
}
plural = false;
}
sb.append(counter.getName().toLowerCase(Locale.ENGLISH)).append(" counter");