[EOE] some text fixes

This commit is contained in:
theelk801 2025-07-19 08:31:24 -04:00
parent 7c4fecb950
commit bd07c24bee
9 changed files with 35 additions and 22 deletions

View file

@ -42,7 +42,8 @@ public final class CloseEncounter extends CardImpl {
this.getSpellAbility().addCost(new CloseEncounterCost());
// Close Encounter deals damage equal to the power of the chosen creature or card to target creature.
this.getSpellAbility().addEffect(new DamageTargetEffect(CloseEncounterValue.instance));
this.getSpellAbility().addEffect(new DamageTargetEffect(CloseEncounterValue.instance)
.setText("{this} deals damage equal to the power of the chosen creature or card to target creature"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}

View file

@ -2,7 +2,7 @@ package mage.cards.e;
import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.DiscardedByOpponentTriggeredAbility;
import mage.abilities.common.DiscardsACardOpponentTriggeredAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.keyword.DeathtouchAbility;
@ -38,9 +38,9 @@ public final class EntropicBattlecruiser extends CardImpl {
// STATION 1+
// Whenever an opponent discards a card, they lose 3 life.
this.addAbility(new StationLevelAbility(1).withLevelAbility(
new DiscardedByOpponentTriggeredAbility(new LoseLifeTargetEffect(3).setText("they lose 3 life"))
));
this.addAbility(new StationLevelAbility(1).withLevelAbility(new DiscardsACardOpponentTriggeredAbility(
new LoseLifeTargetEffect(3).setText("they lose 3 life"), false
)));
// STATION 8+
// Flying

View file

@ -19,7 +19,7 @@ public final class ExplosiveVegetation extends CardImpl {
// Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(
new TargetCardInLibrary(2, StaticFilters.FILTER_CARD_BASIC_LANDS), true
new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true
));
}

View file

@ -40,7 +40,7 @@ public final class HaliyaGuidedByLight extends CardImpl {
// Whenever Haliya or another creature or artifact you control enters, you gain 1 life.
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
new GainLifeEffect(1),
StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_OR_CREATURE,
StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE_OR_ARTIFACT,
false, false
));

View file

@ -22,9 +22,9 @@ public final class HymnOfTheFaller extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}");
// Surveil 1, then you draw a card and lose 1 life.
this.getSpellAbility().addEffect(new SurveilEffect(1));
this.getSpellAbility().addEffect(new SurveilEffect(1, false));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1, true).concatBy(", then"));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).setText("and you lose one life"));
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).setText("and lose 1 life"));
// Void -- If a nonland permanent left the battlefield this turn or a spell was warped this turn, draw another card.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(

View file

@ -40,7 +40,7 @@ public final class LarvalScoutlander extends CardImpl {
// When this Spacecraft enters, you may sacrifice a land or a Lander. If you do, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle.
this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid(
new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
2, StaticFilters.FILTER_CARD_BASIC_LANDS
0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS
), true), new SacrificeTargetCost(filter)
)));

View file

@ -28,7 +28,7 @@ public final class Lithobraking extends CardImpl {
new DamageAllEffect(2, StaticFilters.FILTER_PERMANENT_CREATURE), false
), new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_ARTIFACT),
"Sacrifice an artifact?"
));
).concatBy("Then"));
}
private Lithobraking(final Lithobraking card) {

View file

@ -5,7 +5,10 @@ import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterCard;
import mage.filter.StaticFilters;
import mage.filter.common.FilterNonlandCard;
import mage.filter.predicate.mageobject.PermanentPredicate;
import mage.target.common.TargetCardInYourGraveyard;
import mage.target.targetpointer.SecondTargetPointer;
@ -16,16 +19,21 @@ import java.util.UUID;
*/
public final class PullThroughTheWeft extends CardImpl {
private static final FilterCard filter = new FilterNonlandCard("nonland permanent cards from your graveyard");
static {
filter.add(PermanentPredicate.instance);
}
public PullThroughTheWeft(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}{G}");
// Return up to two target nonland permanent cards from your graveyard to your hand, then return up to two target land cards from your graveyard to the battlefield tapped.
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(
0, 2, StaticFilters.FILTER_CARDS_NON_LAND
));
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 2, filter));
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect(true)
.setTargetPointer(new SecondTargetPointer()).concatBy(", then"));
.setTargetPointer(new SecondTargetPointer())
.setText(", then return up to two target land cards from your graveyard to the battlefield tapped"));
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(
0, 2, StaticFilters.FILTER_CARD_LAND_FROM_YOUR_GRAVEYARD
));

View file

@ -48,14 +48,18 @@ public class FilterPermanentThisOrAnother extends FilterPermanent {
}
protected static String generateFilterMessage(FilterPermanent otherFilter) {
StringBuilder sb = new StringBuilder("{this} or another ");
// Remove the indefinite article from the beginning of the message:
String otherFilterMessage = otherFilter.getMessage();
if (otherFilterMessage.startsWith("a ")) {
otherFilterMessage = otherFilterMessage.substring(2);
} else if (otherFilterMessage.startsWith("an ")) {
otherFilterMessage = otherFilterMessage.substring(3);
String message = otherFilter.getMessage();
if (message.startsWith("a ")) {
sb.append(message.substring(2));
} else if (message.startsWith("an ")) {
sb.append(message.substring(3));
} else if (message.startsWith("another ")) {
sb.append(message.substring(8));
} else {
sb.append(message);
}
return "{this} or another " + otherFilterMessage;
return sb.toString();
}
}