text fixes

This commit is contained in:
xenohedron 2023-12-06 22:27:48 -05:00
parent 6c5d5b8a90
commit 9e1645a1bc
23 changed files with 56 additions and 45 deletions

View file

@ -38,7 +38,8 @@ public final class Aleatory extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Draw a card at the beginning of the next turn's upkeep. // Draw a card at the beginning of the next turn's upkeep.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
} }
private Aleatory(final Aleatory card) { private Aleatory(final Aleatory card) {

View file

@ -48,9 +48,9 @@ public final class AvengingAngel extends CardImpl {
class AvengingAngelEffect extends OneShotEffect { class AvengingAngelEffect extends OneShotEffect {
public AvengingAngelEffect() { AvengingAngelEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
this.staticText = "you may put it on the top of its owner's library"; this.staticText = "you may put it on top of its owner's library";
} }
private AvengingAngelEffect(final AvengingAngelEffect effect) { private AvengingAngelEffect(final AvengingAngelEffect effect) {
@ -74,4 +74,4 @@ class AvengingAngelEffect extends OneShotEffect {
} }
return false; return false;
} }
} }

View file

@ -1,4 +1,3 @@
package mage.cards.b; package mage.cards.b;
import java.util.UUID; import java.util.UUID;
@ -31,8 +30,10 @@ public final class BattleflightEagle extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// When Battleflight Eagle enters the battlefield, target creature gets +2/+2 and gains flying until end of turn. // When Battleflight Eagle enters the battlefield, target creature gets +2/+2 and gains flying until end of turn.
Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(2, 2, Duration.EndOfTurn)); Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(2, 2, Duration.EndOfTurn)
ability.addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); .setText("target creature gets +2/+2"));
ability.addEffect(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains flying until end of turn"));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -23,7 +23,8 @@ public final class BlessedWine extends CardImpl {
this.getSpellAbility().addEffect(new GainLifeEffect(1)); this.getSpellAbility().addEffect(new GainLifeEffect(1));
// Draw a card at the beginning of the next turn's upkeep. // Draw a card at the beginning of the next turn's upkeep.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
} }
private BlessedWine(final BlessedWine card) { private BlessedWine(final BlessedWine card) {

View file

@ -25,7 +25,8 @@ public final class BoneHarvest extends CardImpl {
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, Integer.MAX_VALUE, StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD)); this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, Integer.MAX_VALUE, StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD));
// Draw a card at the beginning of the next turn's upkeep. // Draw a card at the beginning of the next turn's upkeep.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
} }
private BoneHarvest(final BoneHarvest card) { private BoneHarvest(final BoneHarvest card) {

View file

@ -25,7 +25,7 @@ import java.util.UUID;
public final class CullingScales extends CardImpl { public final class CullingScales extends CardImpl {
private static final FilterPermanent filterNonlandPermanentWithLowestCmc = new FilterNonlandPermanent( private static final FilterPermanent filterNonlandPermanentWithLowestCmc = new FilterNonlandPermanent(
"nonland permanent with the lowest mana value (<i>If two or more permanents are tied for lowest cost, target any one of them.</i>)" "target nonland permanent with the lowest mana value (<i>If two or more permanents are tied for lowest cost, target any one of them.</i>)"
); );
static { static {

View file

@ -40,7 +40,7 @@ public final class DuskLegionSergeant extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// {1}{B}, Sacrifice Dusk Legion Sergeant: Each nontoken Vampire creature you control gains persist until end of turn. // {1}{B}, Sacrifice Dusk Legion Sergeant: Each nontoken Vampire creature you control gains persist until end of turn.
Ability ability = new SimpleActivatedAbility(new GainAbilityControlledEffect( Ability ability = new SimpleActivatedAbility(new GainAbilityControlledEffect(

View file

@ -1,4 +1,3 @@
package mage.cards.e; package mage.cards.e;
import java.util.UUID; import java.util.UUID;
@ -29,7 +28,8 @@ public final class EmbalmedBrawler extends CardImpl {
// Amplify 1 // Amplify 1
this.addAbility(new AmplifyAbility(AmplifyEffect.AmplifyFactor.Amplify1)); this.addAbility(new AmplifyAbility(AmplifyEffect.AmplifyFactor.Amplify1));
// Whenever Embalmed Brawler attacks or blocks, you lose 1 life for each +1/+1 counter on it. // Whenever Embalmed Brawler attacks or blocks, you lose 1 life for each +1/+1 counter on it.
this.addAbility(new AttacksOrBlocksTriggeredAbility(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.P1P1)), false)); this.addAbility(new AttacksOrBlocksTriggeredAbility(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.P1P1))
.setText("you lose 1 life for each +1/+1 counter on it"), false));
} }
private EmbalmedBrawler(final EmbalmedBrawler card) { private EmbalmedBrawler(final EmbalmedBrawler card) {

View file

@ -115,8 +115,7 @@ class EstridTheMaskedGraveyardEffect extends OneShotEffect {
public EstridTheMaskedGraveyardEffect() { public EstridTheMaskedGraveyardEffect() {
super(Outcome.PutCardInPlay); super(Outcome.PutCardInPlay);
this.staticText = "put the top seven cards of your library " this.staticText = "mill seven cards. Return all non-Aura enchantment cards "
+ "into your graveyard. Return all non-Aura enchantment cards "
+ "from your graveyard to the battlefield, " + "from your graveyard to the battlefield, "
+ "then do the same for Aura cards"; + "then do the same for Aura cards";
} }

View file

@ -34,7 +34,7 @@ public final class FiremaneAvenger extends CardImpl {
// Battalion - Whenever Firemane Avenger and at least two other creatures attack, Firemane Avenger deals 3 damage to any target and you gain 3 life. // Battalion - Whenever Firemane Avenger and at least two other creatures attack, Firemane Avenger deals 3 damage to any target and you gain 3 life.
Ability ability = new BattalionAbility(new DamageTargetEffect(3)); Ability ability = new BattalionAbility(new DamageTargetEffect(3));
ability.addTarget(new TargetAnyTarget()); ability.addTarget(new TargetAnyTarget());
ability.addEffect(new GainLifeEffect(3)); ability.addEffect(new GainLifeEffect(3).concatBy("and"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -1,4 +1,3 @@
package mage.cards.f; package mage.cards.f;
import java.util.UUID; import java.util.UUID;
@ -8,7 +7,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.filter.FilterPermanent; import mage.filter.common.FilterLandPermanent;
/** /**
* *
@ -16,17 +15,14 @@ import mage.filter.FilterPermanent;
*/ */
public final class Fruition extends CardImpl { public final class Fruition extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("for each Forest on the battlefield"); private static final FilterLandPermanent filter = new FilterLandPermanent(SubType.FOREST, "Forest");
static {
filter.add(SubType.FOREST.getPredicate());
}
public Fruition(UUID ownerId, CardSetInfo setInfo) { public Fruition(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}"); super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{G}");
// You gain 1 life for each Forest on the battlefield. // You gain 1 life for each Forest on the battlefield.
this.getSpellAbility().addEffect(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter))); this.getSpellAbility().addEffect(new GainLifeEffect(new PermanentsOnBattlefieldCount(filter))
.setText("you gain 1 life for each Forest on the battlefield"));
} }
private Fruition(final Fruition card) { private Fruition(final Fruition card) {

View file

@ -1,9 +1,9 @@
package mage.cards.h; package mage.cards.h;
import java.util.UUID; import java.util.UUID;
import mage.abilities.common.AsEntersBattlefieldAbility;
import mage.abilities.common.BeginningOfDrawTriggeredAbility; import mage.abilities.common.BeginningOfDrawTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.discard.DiscardHandControllerEffect; import mage.abilities.effects.common.discard.DiscardHandControllerEffect;
import mage.cards.CardImpl; import mage.cards.CardImpl;
@ -21,9 +21,10 @@ public final class HeightenedAwareness extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}"); super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}");
// As Heightened Awareness enters the battlefield, discard your hand. // As Heightened Awareness enters the battlefield, discard your hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new DiscardHandControllerEffect())); this.addAbility(new AsEntersBattlefieldAbility(new DiscardHandControllerEffect()));
// At the beginning of your draw step, draw an additional card. // At the beginning of your draw step, draw an additional card.
this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1), this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1)
.setText("draw an additional card"),
TargetController.YOU, false)); TargetController.YOU, false));
} }

View file

@ -50,8 +50,8 @@ public final class Homarid extends CardImpl {
// As long as there are exactly three tide counters on Homarid, it gets +1/+1. // As long as there are exactly three tide counters on Homarid, it gets +1/+1.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.TIDE, 3, 3), new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), new SourceHasCounterCondition(CounterType.TIDE, 3, 3),
"As long as there are exactly three tide counter on {this}, it gets +1/+1."))); "As long as there are exactly three tide counters on {this}, it gets +1/+1.")));
// Whenever there are four tide counters on Homarid, remove all tide counters from it. // Whenever there are four or more tide counters on Homarid, remove all tide counters from it.
this.addAbility(new HomaridTriggeredAbility(new RemoveAllCountersSourceEffect(CounterType.TIDE))); this.addAbility(new HomaridTriggeredAbility(new RemoveAllCountersSourceEffect(CounterType.TIDE)));
} }
@ -67,9 +67,9 @@ public final class Homarid extends CardImpl {
class HomaridTriggeredAbility extends StateTriggeredAbility { class HomaridTriggeredAbility extends StateTriggeredAbility {
public HomaridTriggeredAbility(Effect effect) { HomaridTriggeredAbility(Effect effect) {
super(Zone.BATTLEFIELD, effect); super(Zone.BATTLEFIELD, effect);
setTriggerPhrase("Whenever there are four tide counters on {this}, "); setTriggerPhrase("Whenever there are four or more tide counters on {this}, ");
} }
private HomaridTriggeredAbility(final HomaridTriggeredAbility ability) { private HomaridTriggeredAbility(final HomaridTriggeredAbility ability) {
@ -83,6 +83,6 @@ class HomaridTriggeredAbility extends StateTriggeredAbility {
@Override @Override
public boolean checkTrigger(GameEvent event, Game game) { public boolean checkTrigger(GameEvent event, Game game) {
return new CountersSourceCount(CounterType.TIDE).calculate(game, this, null) == 4; return new CountersSourceCount(CounterType.TIDE).calculate(game, this, null) >= 4;
} }
} }

View file

@ -37,8 +37,12 @@ public final class KrarkClanGrunt extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn), new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); // Sacrifice an artifact: Krark-Clan Grunt gets +1/+0 and gains first strike until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 0, Duration.EndOfTurn)
.setText("{this} gets +1/+0"), new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addEffect(new GainAbilitySourceEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains first strike until end of turn"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -40,7 +40,7 @@ public final class LeadPipe extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// Equip {2} // Equip {2}
this.addAbility(new EquipAbility(2)); this.addAbility(new EquipAbility(2, false));
} }
private LeadPipe(final LeadPipe card) { private LeadPipe(final LeadPipe card) {

View file

@ -35,8 +35,12 @@ public final class Megatog extends CardImpl {
this.power = new MageInt(3); this.power = new MageInt(3);
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.EndOfTurn), new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)); // Sacrifice an artifact: Megatog gets +3/+3 and gains trample until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(3, 3, Duration.EndOfTurn)
.setText("{this} gets +3/+3"), new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addEffect(new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains trample until end of turn"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -56,7 +56,7 @@ class PriceOfBetrayalEffect extends OneShotEffect {
PriceOfBetrayalEffect() { PriceOfBetrayalEffect() {
super(Outcome.AIDontUseIt); super(Outcome.AIDontUseIt);
staticText = "Remove up to five counters from target artifact, creature, planeswalker or opponent."; staticText = "Remove up to five counters from target artifact, creature, planeswalker, or opponent.";
} }
private PriceOfBetrayalEffect(final PriceOfBetrayalEffect effect) { private PriceOfBetrayalEffect(final PriceOfBetrayalEffect effect) {

View file

@ -20,10 +20,10 @@ public final class RhysticSyphon extends CardImpl {
public RhysticSyphon(UUID ownerId, CardSetInfo setInfo) { public RhysticSyphon(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{B}"); super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}{B}");
// Unless target player pays {3}, they lose 5 life and you gain 5 life. // Unless target player pays {3}, that player loses 5 life and you gain 5 life.
DoUnlessTargetPlayerOrTargetsControllerPaysEffect effect = new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new LoseLifeTargetEffect(5), new ManaCostsImpl<>("{3}")); DoUnlessTargetPlayerOrTargetsControllerPaysEffect effect = new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new LoseLifeTargetEffect(5), new ManaCostsImpl<>("{3}"));
effect.addEffect(new GainLifeEffect(5)); effect.addEffect(new GainLifeEffect(5));
effect.setText("Unless target player pays {3}, they lose 5 life and you gain 5 life"); effect.setText("Unless target player pays {3}, that player loses 5 life and you gain 5 life");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());
} }

View file

@ -102,7 +102,7 @@ class AddGlobeCountersAbility extends TriggeredAbilityImpl {
class SnowMercyCost extends CostImpl { class SnowMercyCost extends CostImpl {
SnowMercyCost() { SnowMercyCost() {
this.text = "{t}, {q}, {t}, {q}, {t}"; this.text = "{T}, {Q}, {T}, {Q}, {T}";
} }
private SnowMercyCost(final SnowMercyCost cost) { private SnowMercyCost(final SnowMercyCost cost) {

View file

@ -27,7 +27,7 @@ public final class SoldierReplica extends CardImpl {
this.subtype.add(SubType.SOLDIER); this.subtype.add(SubType.SOLDIER);
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3), new ManaCostsImpl<>("{1}{W}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(3, "it"), new ManaCostsImpl<>("{1}{W}"));
ability.addCost(new SacrificeSourceCost()); ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature())); ability.addTarget(new TargetCreaturePermanent(new FilterAttackingOrBlockingCreature()));
this.addAbility(ability); this.addAbility(ability);

View file

@ -29,7 +29,8 @@ public final class SpireBarrage extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}"); super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}");
// Spire Barrage deals damage to any target equal to the number of Mountains you control. // Spire Barrage deals damage to any target equal to the number of Mountains you control.
this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter))); this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter))
.setText("{this} deals damage to any target equal to the number of Mountains you control"));
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
} }

View file

@ -27,7 +27,8 @@ public final class TouchOfDeath extends CardImpl {
this.getSpellAbility().addEffect(new GainLifeEffect(1)); this.getSpellAbility().addEffect(new GainLifeEffect(1));
// Draw a card at the beginning of the next turn's upkeep. // Draw a card at the beginning of the next turn's upkeep.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
new DrawCardSourceControllerEffect(1)), false).concatBy("<br>"));
} }
private TouchOfDeath(final TouchOfDeath card) { private TouchOfDeath(final TouchOfDeath card) {

View file

@ -14,6 +14,7 @@ public class SourcePhaseInTriggeredAbility extends TriggeredAbilityImpl {
public SourcePhaseInTriggeredAbility(Effect effect, boolean optional) { public SourcePhaseInTriggeredAbility(Effect effect, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional); super(Zone.BATTLEFIELD, effect, optional);
setTriggerPhrase("Whenever {this} phases in, "); setTriggerPhrase("Whenever {this} phases in, ");
this.replaceRuleText = true;
} }
protected SourcePhaseInTriggeredAbility(final SourcePhaseInTriggeredAbility ability) { protected SourcePhaseInTriggeredAbility(final SourcePhaseInTriggeredAbility ability) {