fix more text

This commit is contained in:
xenohedron 2023-11-25 02:54:32 -05:00
parent 867a8f54b0
commit 81f97c3b0e
43 changed files with 85 additions and 73 deletions

View file

@ -38,7 +38,8 @@ public final class AltarOfShadows extends CardImpl {
// {7}, {tap}: Destroy target creature. Then put a charge counter on Altar of Shadows.
Ability destroyAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(7));
destroyAbility.addCost(new TapSourceCost());
destroyAbility.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true));
destroyAbility.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), true)
.concatBy("Then"));
destroyAbility.addTarget(new TargetCreaturePermanent());
this.addAbility(destroyAbility);
}

View file

@ -35,7 +35,7 @@ public final class BattleCry extends CardImpl {
this.getSpellAbility().addEffect(new UntapAllEffect(filter));
// Whenever a creature blocks this turn, it gets +0/+1 until end of turn.
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BattleCryTriggeredAbility()));
this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new BattleCryTriggeredAbility()).concatBy("<br>"));
}
private BattleCry(final BattleCry card) {

View file

@ -33,7 +33,7 @@ public final class BattleFrenzy extends CardImpl {
// Green creatures you control get +1/+1 until end of turn.
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter1));
// Nongreen creatures you control get +1/+0 until end of turn.
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter2));
this.getSpellAbility().addEffect(new BoostControlledEffect(1, 0, Duration.EndOfTurn, filter2).concatBy("<br>"));
}
private BattleFrenzy(final BattleFrenzy card) {

View file

@ -23,7 +23,7 @@ public final class BlindingFog extends CardImpl {
this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES));
// Creatures you control gain hexproof until end of turn.
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false));
this.getSpellAbility().addEffect(new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, false));
}
private BlindingFog(final BlindingFog card) {

View file

@ -33,7 +33,8 @@ public final class BloodcrazedHoplite extends CardImpl {
this.toughness = new MageInt(1);
// Heroic - Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it.
this.addAbility(new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), false)));
this.addAbility(new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), false))
.withRuleTextReplacement(true));
// Whenever a +1/+1 counter is put on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls.
Ability ability = new BloodcrazedHopliteTriggeredAbility();
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));

View file

@ -27,7 +27,7 @@ public final class BloodfireColossus extends CardImpl {
this.power = new MageInt(6);
this.toughness = new MageInt(6);
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6), new ColoredManaCost(ColoredManaSymbol.R));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(6, "it"), new ColoredManaCost(ColoredManaSymbol.R));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
}

View file

@ -38,7 +38,7 @@ public final class CallerOfTheHunt extends CardImpl {
// As an additional cost to cast Caller of the Hunt, choose a creature type.
// Caller of the Hunt's power and toughness are each equal to the number of creatures of the chosen type on the battlefield.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("as an additional cost to cast this spell, choose a creature type. \r"
this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("as an additional cost to cast this spell, choose a creature type.<br>"
+ "{this}'s power and toughness are each equal to the number of creatures of the chosen type on the battlefield")));
this.getSpellAbility().setCostAdjuster(CallerOfTheHuntAdjuster.instance);

View file

@ -97,6 +97,6 @@ class ChickenALaKingTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird";
return "Whenever a 6 is rolled on a six-sided die, put a +1/+1 counter on each Bird.";
}
}

View file

@ -34,7 +34,8 @@ public final class CinderShade extends CardImpl {
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{B}")));
// {R}, Sacrifice Cinder Shade: Cinder Shade deals damage equal to its power to target creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount()), new ManaCostsImpl<>("{R}"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new SourcePermanentPowerCount())
.setText("It deals damage equal to its power to target creature"), new ManaCostsImpl<>("{R}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);

View file

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

View file

@ -19,7 +19,7 @@ import mage.filter.common.FilterLandPermanent;
*/
public final class CrusadingKnight extends CardImpl {
private static final FilterLandPermanent swampFilter = new FilterLandPermanent("Swamp your opponent controls");
private static final FilterLandPermanent swampFilter = new FilterLandPermanent("Swamp your opponents control");
static {
swampFilter.add(SubType.SWAMP.getPredicate());
swampFilter.add(TargetController.OPPONENT.getControllerPredicate());

View file

@ -43,7 +43,8 @@ public final class DazzlingBeauty extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// 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 DazzlingBeauty(final DazzlingBeauty card) {

View file

@ -25,7 +25,8 @@ public final class Flare extends CardImpl {
this.getSpellAbility().addTarget(new TargetAnyTarget());
// 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 Flare(final Flare card) {

View file

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

View file

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

View file

@ -30,7 +30,8 @@ public final class Foxfire extends CardImpl {
this.getSpellAbility().addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, true).setText("and dealt by that creature this turn."));
// 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>"));
}

View file

@ -20,7 +20,7 @@ public final class GethsVerdict extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}{B}");
this.getSpellAbility().addEffect(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "Target player"));
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1));
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1).setText("and loses 1 life"));
this.getSpellAbility().addTarget(new TargetPlayer());
}

View file

@ -18,7 +18,7 @@ public final class GlimmerOfGenius extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
// Scry 2, then draw two card. You get {E}{E}.
this.getSpellAbility().addEffect(new ScryEffect(2));
this.getSpellAbility().addEffect(new ScryEffect(2, false));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).concatBy(", then"));
this.getSpellAbility().addEffect(new GetEnergyCountersControllerEffect(2));
}

View file

@ -35,7 +35,7 @@ public final class GuiltyConscience extends CardImpl {
this.addAbility(ability);
// Whenever enchanted creature deals damage, Guilty Conscience deals that much damage to that creature.
this.addAbility(new DealsDamageAttachedTriggeredAbility(Zone.BATTLEFIELD, new DamageAttachedEffect(SavedDamageValue.MUCH).setText("that much damage to that creature"), false));
this.addAbility(new DealsDamageAttachedTriggeredAbility(Zone.BATTLEFIELD, new DamageAttachedEffect(SavedDamageValue.MUCH).setText("{this} deals that much damage to that creature"), false));
}
private GuiltyConscience(final GuiltyConscience card) {

View file

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

View file

@ -30,7 +30,7 @@ public final class Heliophial extends CardImpl {
this.addAbility(new SunburstAbility(this));
// {2}, Sacrifice Heliophial: Heliophial deals damage equal to the number of charge counters on it to any target.
Effect effect = new DamageTargetEffect(new CountersSourceCount(CounterType.CHARGE));
effect.setText("{this} deals damage equal to the number of charge counters on it to any target");
effect.setText("it deals damage equal to the number of charge counters on it to any target");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}"));
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetAnyTarget());

View file

@ -45,7 +45,7 @@ class ImperialEdictEffect extends OneShotEffect {
ImperialEdictEffect() {
super(Outcome.Benefit);
this.staticText = "Target opponent chooses a creature they control. Destroy it.";
this.staticText = "Target opponent chooses a creature they control. Destroy that creature.";
}
private ImperialEdictEffect(final ImperialEdictEffect effect) {

View file

@ -12,13 +12,9 @@ import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.target.common.TargetLandPermanent;
import mage.target.targetpointer.FixedTarget;
@ -42,7 +38,7 @@ public final class InvaderParasite extends CardImpl {
this.addAbility(ability);
// Whenever a land with the same name as the exiled card enters the battlefield under an opponent's control, Invader Parasite deals 2 damage to that player.
this.addAbility(new InvaderParasiteTriggeredAbility());
this.addAbility(new InvaderParasiteTriggeredAbility().setAbilityWord(AbilityWord.IMPRINT));
}
private InvaderParasite(final InvaderParasite card) {

View file

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

View file

@ -1,4 +1,3 @@
package mage.cards.j;
import java.util.UUID;
@ -23,7 +22,7 @@ import mage.target.common.TargetCreaturePermanent;
*/
public final class JovensTools extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by walls");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("except by Walls");
static {
filter.add(Predicates.not(SubType.WALL.getPredicate()));
}

View file

@ -31,9 +31,9 @@ public final class LazotepPlating extends CardImpl {
Effect effect2 = new GainAbilityControlledEffect(
HexproofAbility.getInstance(), Duration.EndOfTurn
);
effect.setText("You and permanents you control gain hexproof until end of turn.");
effect2.setText("");
this.getSpellAbility().addEffect(effect);
effect.setText("You");
effect2.setText("and permanents you control gain hexproof until end of turn");
this.getSpellAbility().addEffect(effect.concatBy("<br>"));
this.getSpellAbility().addEffect(effect2);
}

View file

@ -19,7 +19,7 @@ import mage.filter.common.FilterLandPermanent;
*/
public final class MaraudingKnight extends CardImpl {
private static final FilterLandPermanent plainsFilter = new FilterLandPermanent("Plains your opponent controls");
private static final FilterLandPermanent plainsFilter = new FilterLandPermanent("Plains your opponents control");
static {
plainsFilter.add(SubType.PLAINS.getPredicate());
plainsFilter.add(TargetController.OPPONENT.getControllerPredicate());

View file

@ -25,7 +25,8 @@ public final class MindRavel extends CardImpl {
this.getSpellAbility().addTarget(new TargetPlayer());
// 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 MindRavel(final MindRavel card) {

View file

@ -33,7 +33,8 @@ public final class MortisDogs extends CardImpl {
// Whenever Mortis Dogs attacks, it gets +2/+0 until end of turn.
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn), false));
// When Mortis Dogs dies, target player loses life equal to its power.
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(new SourcePermanentPowerCount(false)));
Ability ability = new DiesSourceTriggeredAbility(new LoseLifeTargetEffect(new SourcePermanentPowerCount(false))
.setText("target player loses life equal to its power"));
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}

View file

@ -32,9 +32,9 @@ public final class OverloadedMageRing extends CardImpl {
this.color.setBlue(true);
this.nightCard = true;
// {1}, {T}, Sacrifice Overloaded Mage-Ring: Copy target spell you control.
// {1}, {T}, Sacrifice Overloaded Mage-Ring: Copy target spell you control. You may choose new targets for the copy.
Ability ability = new SimpleActivatedAbility(
new CopyTargetSpellEffect(false, false, false), new GenericManaCost(1)
new CopyTargetSpellEffect(false, false, true), new GenericManaCost(1)
);
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());

View file

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

View file

@ -1,16 +1,15 @@
package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility;
import mage.abilities.effects.Effect;
import mage.abilities.common.DealsDamageToOpponentTriggeredAbility;
import mage.abilities.effects.common.MillCardsTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import java.util.UUID;
/**
*
* @author LoneFox
@ -25,9 +24,8 @@ public final class ReefPirates extends CardImpl {
this.toughness = new MageInt(2);
// Whenever Reef Pirates deals damage to an opponent, that player puts the top card of their library into their graveyard.
Effect effect = new MillCardsTargetEffect(1);
effect.setText("that player mills a card");
this.addAbility(new DealsDamageToAPlayerTriggeredAbility(effect, false, true));
this.addAbility(new DealsDamageToOpponentTriggeredAbility(new MillCardsTargetEffect(1),
false, false, true));
}
private ReefPirates(final ReefPirates card) {

View file

@ -1,4 +1,3 @@
package mage.cards.s;
import java.util.UUID;
@ -30,7 +29,7 @@ public final class Sanctimony extends CardImpl {
// Whenever an opponent taps a Mountain for mana, you may gain 1 life.
this.addAbility(new TapForManaAllTriggeredAbility(new GainLifeEffect(1), filter, SetTargetPointer.NONE));
this.addAbility(new TapForManaAllTriggeredAbility(new GainLifeEffect(1), filter, SetTargetPointer.NONE, true));
}
private Sanctimony(final Sanctimony card) {

View file

@ -60,7 +60,7 @@ public final class SaprolingInfestation extends CardImpl {
@Override
public String getRule() {
return "Whenever a player kicks a spell, you creat a 1/1 green Saproling creature token.";
return "Whenever a player kicks a spell, you create a 1/1 green Saproling creature token.";
}
}
}

View file

@ -28,6 +28,7 @@ public final class SeasonsBeatings extends CardImpl {
// Family gathering - Each creature target player controls deals damage equal to its power to another random creature that player controls.
this.getSpellAbility().addEffect(new SeasonsBeatingsEffect());
this.getSpellAbility().withFlavorWord("Family gathering");
this.getSpellAbility().addTarget(new TargetPlayer());
}
@ -46,7 +47,7 @@ class SeasonsBeatingsEffect extends OneShotEffect {
SeasonsBeatingsEffect() {
super(Outcome.Damage);
staticText = "Family gathering <i>Each creature target player controls deals damage equal to its power to another random creature that player controls.</i>";
staticText = "Each creature target player controls deals damage equal to its power to another random creature that player controls";
}
private SeasonsBeatingsEffect(final SeasonsBeatingsEffect effect) {

View file

@ -22,8 +22,10 @@ public final class SnareTheSkies extends CardImpl {
// Target creature gets +1/+1 and gains reach until end of turn.
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addEffect(new BoostTargetEffect(1, 1, Duration.EndOfTurn)
.setText("target creature gets +1/+1"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains reach until end of turn"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}

View file

@ -29,7 +29,8 @@ public final class SoulRend extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// 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 SoulRend(final SoulRend card) {

View file

@ -26,7 +26,7 @@ public final class SurgeNode extends CardImpl {
public SurgeNode(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}");
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(6)), "{this} gets six charge counters"));
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(6)), "with six charge counters on it"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.CHARGE.createInstance()), new GenericManaCost(1));
ability.addCost(new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()));

View file

@ -1,4 +1,3 @@
package mage.cards.t;
import java.util.UUID;
@ -25,7 +24,7 @@ public final class TelimTorsEdict extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("permanent you own or control");
static {
filter.add(new TelimTorsEdictPredicate());
filter.add(TelimTorsEdictPredicate.instance);
}
public TelimTorsEdict(UUID ownerId, CardSetInfo setInfo) {
@ -36,7 +35,8 @@ public final class TelimTorsEdict extends CardImpl {
this.getSpellAbility().addTarget(new TargetPermanent(filter));
// 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 TelimTorsEdict(final TelimTorsEdict card) {
@ -49,18 +49,13 @@ public final class TelimTorsEdict extends CardImpl {
}
}
class TelimTorsEdictPredicate implements ObjectSourcePlayerPredicate<Permanent> {
public TelimTorsEdictPredicate() {
}
enum TelimTorsEdictPredicate implements ObjectSourcePlayerPredicate<Permanent> {
instance;
@Override
public boolean apply(ObjectSourcePlayer<Permanent> input, Game game) {
Permanent permanent = input.getObject();
UUID playerId = input.getPlayerId();
if (permanent.isControlledBy(playerId) || permanent.isOwnedBy(playerId)) {
return true;
}
return false;
return permanent.isControlledBy(playerId) || permanent.isOwnedBy(playerId);
}
}

View file

@ -22,8 +22,10 @@ public final class UncannySpeed extends CardImpl {
// Target creature gets +3/+0 and gains haste until end of turn.
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, Duration.EndOfTurn)
.setText("target creature gets +3/+0"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn)
.setText("and gains haste until end of turn"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
}

View file

@ -27,7 +27,8 @@ public final class Updraft extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// 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 Updraft(final Updraft card) {

View file

@ -226,7 +226,7 @@ public abstract class TriggeredAbilityImpl extends AbilityImpl implements Trigge
}
}
if (replaceRuleText && triggerPhrase != null) {
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |put an? [^ ]+ counter on |return |transform |untap )?\\{this\\}", "$1it");
superRule = superRule.replaceFirst("^((?:you may )?sacrifice |(put|remove) an? [^ ]+ counter (on|from) |return |transform |untap |regenerate )?\\{this\\}", "$1it");
}
sb.append(superRule);
if (triggersOnceEachTurn) {

View file

@ -24,7 +24,11 @@ public class TapForManaAllTriggeredAbility extends TriggeredAbilityImpl {
private final SetTargetPointer setTargetPointer;
public TapForManaAllTriggeredAbility(Effect effect, FilterPermanent filter, SetTargetPointer setTargetPointer) {
super(Zone.BATTLEFIELD, effect);
this(effect, filter, setTargetPointer, false);
}
public TapForManaAllTriggeredAbility(Effect effect, FilterPermanent filter, SetTargetPointer setTargetPointer, boolean optional) {
super(Zone.BATTLEFIELD, effect, optional);
this.filter = filter;
this.setTargetPointer = setTargetPointer;
setTriggerPhrase("Whenever " + filter.getMessage() + " for mana, ");