[EOE] some text fixes

This commit is contained in:
theelk801 2025-07-14 10:49:29 -04:00
parent 02119d2cb3
commit e949870bc7
72 changed files with 94 additions and 93 deletions

View file

@ -36,7 +36,7 @@ public final class AdelineResplendentCathar extends CardImpl {
// Adeline, Resplendent Cathar's power is equal to the number of creatures you control. // Adeline, Resplendent Cathar's power is equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerSourceEffect( this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerSourceEffect(
CreaturesYouControlCount.instance)).addHint(CreaturesYouControlHint.instance) CreaturesYouControlCount.PLURAL)).addHint(CreaturesYouControlHint.instance)
); );
// Whenever you attack, for each opponent, create a 1/1 white Human creature token that's tapped and attacking that player or a planeswalker they control. // Whenever you attack, for each opponent, create a 1/1 white Human creature token that's tapped and attacking that player or a planeswalker they control.

View file

@ -110,7 +110,7 @@ class AjaniNacatlAvengerZeroEffect extends OneShotEffect {
} }
ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility( ReflexiveTriggeredAbility reflexive = new ReflexiveTriggeredAbility(
new DamageTargetEffect(CreaturesYouControlCount.instance), new DamageTargetEffect(CreaturesYouControlCount.PLURAL),
false, false,
"When you do, if you control a red permanent other than {this}, " "When you do, if you control a red permanent other than {this}, "
+ "he deals damage equal to the number of creatures you control to any target.", + "he deals damage equal to the number of creatures you control to any target.",

View file

@ -31,7 +31,7 @@ public final class AjaniWiseCounselor extends CardImpl {
this.setStartingLoyalty(5); this.setStartingLoyalty(5);
// +2: You gain 1 life for each creature you control. // +2: You gain 1 life for each creature you control.
this.addAbility(new LoyaltyAbility(new GainLifeEffect(CreaturesYouControlCount.instance) this.addAbility(new LoyaltyAbility(new GainLifeEffect(CreaturesYouControlCount.PLURAL)
.setText("you gain 1 life for each creature you control"), 2)); .setText("you gain 1 life for each creature you control"), 2));
// 3: Creatures you control get +2/+2 until end of turn. // 3: Creatures you control get +2/+2 until end of turn.

View file

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

View file

@ -21,7 +21,7 @@ public final class AngelicExaltation extends CardImpl {
// Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of creatures you control. // Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of creatures you control.
this.addAbility(new AttacksAloneControlledTriggeredAbility( this.addAbility(new AttacksAloneControlledTriggeredAbility(
new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn), new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn),
true, false).addHint(CreaturesYouControlHint.instance)); true, false).addHint(CreaturesYouControlHint.instance));
} }

View file

@ -32,7 +32,7 @@ public final class AppealAuthority extends SplitCard {
// Until end of turn, target creature gains trample and gets +X/+X, where X is the number of creatures you control. // Until end of turn, target creature gains trample and gets +X/+X, where X is the number of creatures you control.
getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn) getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)
.setText("Until end of turn, target creature gains trample")); .setText("Until end of turn, target creature gains trample"));
getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn) getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn)
.setText("and gets +X/+X, where X is the number of creatures you control")); .setText("and gets +X/+X, where X is the number of creatures you control"));
getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent());
getLeftHalfCard().getSpellAbility().addHint(CreaturesYouControlHint.instance); getLeftHalfCard().getSpellAbility().addHint(CreaturesYouControlHint.instance);

View file

@ -12,7 +12,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.target.common.TargetControlledCreaturePermanent;
/** /**
* *
@ -26,7 +25,7 @@ public final class AshnodsAltar extends CardImpl {
// Sacrifice a creature: Add {C}{C}. // Sacrifice a creature: Add {C}{C}.
SacrificeTargetCost cost = new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE); SacrificeTargetCost cost = new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE);
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD,
new BasicManaEffect(Mana.ColorlessMana(2), CreaturesYouControlCount.instance), new BasicManaEffect(Mana.ColorlessMana(2), CreaturesYouControlCount.PLURAL),
cost)); cost));
} }

View file

@ -18,7 +18,7 @@ public final class BattleHymn extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}");
// Add {R} for each creature you control. // Add {R} for each creature you control.
this.getSpellAbility().addEffect(new DynamicManaEffect(Mana.RedMana(1), CreaturesYouControlCount.instance)); this.getSpellAbility().addEffect(new DynamicManaEffect(Mana.RedMana(1), CreaturesYouControlCount.SINGULAR));
} }
private BattleHymn(final BattleHymn card) { private BattleHymn(final BattleHymn card) {

View file

@ -29,7 +29,7 @@ public final class BattleSquadron extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Battle Squadron's power and toughness are each equal to the number of creatures you control. // Battle Squadron's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }

View file

@ -32,7 +32,7 @@ public final class BurrowguardMentor extends CardImpl {
// Burrowguard Mentor's power and toughness are each equal to the number of creatures you control. // Burrowguard Mentor's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(
Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance) Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL)
).addHint(CreaturesYouControlHint.instance)); ).addHint(CreaturesYouControlHint.instance));
} }

View file

@ -28,7 +28,7 @@ public final class CabarettiCharm extends CardImpl {
// Choose one // Choose one
// Cabaretti Charm deals damage equal to the number of creatures you control to target creature or planeswalker. // Cabaretti Charm deals damage equal to the number of creatures you control to target creature or planeswalker.
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.PLURAL)
.setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker")); .setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker"));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance); this.getSpellAbility().addHint(CreaturesYouControlHint.instance);

View file

@ -36,7 +36,7 @@ public final class ChancellorOfTheForge extends CardImpl {
this.addAbility(new ChancellorAbility(new ChancellorOfTheForgeDelayedTriggeredAbility(), abilityText)); this.addAbility(new ChancellorAbility(new ChancellorOfTheForgeDelayedTriggeredAbility(), abilityText));
// When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control. // When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGoblinHasteToken(), CreaturesYouControlCount.instance), false) this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new PhyrexianGoblinHasteToken(), CreaturesYouControlCount.PLURAL), false)
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }

View file

@ -23,7 +23,7 @@ public final class ChargeOfTheMites extends CardImpl {
// Choose one-- // Choose one--
// * Charge of the Mites deals damage equal to the number of creatures you control to target creature or planeswalker. // * Charge of the Mites deals damage equal to the number of creatures you control to target creature or planeswalker.
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.PLURAL)
.setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker")); .setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker"));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance); this.getSpellAbility().addHint(CreaturesYouControlHint.instance);

View file

@ -23,7 +23,7 @@ public final class ChorusOfMight extends CardImpl {
// Until end of turn, target creature gets +1/+1 for each creature you control and gains trample. // Until end of turn, target creature gets +1/+1 for each creature you control and gains trample.
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn) this.getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn)
.setText("until end of turn, target creature gets +1/+1 for each creature you control") .setText("until end of turn, target creature gets +1/+1 for each creature you control")
); );
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn) this.getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn)

View file

@ -23,7 +23,7 @@ public final class CoordinatedManeuver extends CardImpl {
// Choose one -- // Choose one --
// * Coordinated Maneuver deals damage equal to the number of creatures you control to target creature or planeswalker. // * Coordinated Maneuver deals damage equal to the number of creatures you control to target creature or planeswalker.
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.PLURAL)
.setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker")); .setText("{this} deals damage equal to the number of creatures you control to target creature or planeswalker"));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance); this.getSpellAbility().addHint(CreaturesYouControlHint.instance);

View file

@ -36,7 +36,7 @@ public final class CourtOfEmbereth extends CardImpl {
new CreateTokenEffect(new Knight31RedToken()) new CreateTokenEffect(new Knight31RedToken())
); );
ability.addEffect(new ConditionalOneShotEffect( ability.addEffect(new ConditionalOneShotEffect(
new DamagePlayersEffect(CreaturesYouControlCount.instance, TargetController.OPPONENT) new DamagePlayersEffect(CreaturesYouControlCount.PLURAL, TargetController.OPPONENT)
.setText("{this} deals X damage to each opponent, where X is the number of creatures you control"), .setText("{this} deals X damage to each opponent, where X is the number of creatures you control"),
MonarchIsSourceControllerCondition.instance MonarchIsSourceControllerCondition.instance
).concatBy("Then")); ).concatBy("Then"));

View file

@ -37,7 +37,7 @@ public final class CraterhoofBehemoth extends CardImpl {
TrampleAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES TrampleAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES
).setText("creatures you control gain trample")); ).setText("creatures you control gain trample"));
ability.addEffect(new BoostControlledEffect( ability.addEffect(new BoostControlledEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL,
Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES, false Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES, false
).setText("and get +X/+X until end of turn, where X is the number of creatures you control")); ).setText("and get +X/+X until end of turn, where X is the number of creatures you control"));
ability.addHint(CreaturesYouControlHint.instance); ability.addHint(CreaturesYouControlHint.instance);

View file

@ -27,7 +27,7 @@ public final class CrusaderOfOdric extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
// Crusader of Odric's power and toughness are each equal to the number of creatures you control. // Crusader of Odric's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }

View file

@ -22,7 +22,7 @@ public final class DenyTheWitch extends CardImpl {
// Counter target spell, activated ability, or triggered ability. Its controller loses life equal to the number of creatures you control. // Counter target spell, activated ability, or triggered ability. Its controller loses life equal to the number of creatures you control.
this.getSpellAbility().addEffect(new CounterTargetEffect().setText("Counter target spell, activated ability, or triggered ability")); this.getSpellAbility().addEffect(new CounterTargetEffect().setText("Counter target spell, activated ability, or triggered ability"));
this.getSpellAbility().addTarget(new TargetStackObject()); this.getSpellAbility().addTarget(new TargetStackObject());
this.getSpellAbility().addEffect(new LoseLifeTargetControllerEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addEffect(new LoseLifeTargetControllerEffect(CreaturesYouControlCount.PLURAL)
.setText("Its controller loses life equal to the number of creatures you control")); .setText("Its controller loses life equal to the number of creatures you control"));
this.getSpellAbility().addHint(CreaturesYouControlHint.instance); this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }

View file

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

View file

@ -2,7 +2,7 @@ package mage.cards.d;
import mage.MageInt; import mage.MageInt;
import mage.abilities.Ability; import mage.abilities.Ability;
import mage.abilities.common.AttacksTriggeredAbility; import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.common.EntersBattlefieldAbility;
import mage.abilities.costs.Cost; import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl; import mage.abilities.costs.CostImpl;
@ -51,9 +51,9 @@ public final class DyadrineSynthesisAmalgam extends CardImpl {
), "with a number of +1/+1 counters on it equal to the amount of mana spent to cast it")); ), "with a number of +1/+1 counters on it equal to the amount of mana spent to cast it"));
// Whenever you attack, you may remove a +1/+1 counter from each of two creatures you control. If you do, draw a card and create a 2/2 colorless Robot artifact creature token. // Whenever you attack, you may remove a +1/+1 counter from each of two creatures you control. If you do, draw a card and create a 2/2 colorless Robot artifact creature token.
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid( this.addAbility(new AttacksWithCreaturesTriggeredAbility(new DoIfCostPaid(
new DrawCardSourceControllerEffect(1), new DyadrineSynthesisAmalgamCost() new DrawCardSourceControllerEffect(1), new DyadrineSynthesisAmalgamCost()
).addEffect(new CreateTokenEffect(new RobotToken()).concatBy("and")))); ).addEffect(new CreateTokenEffect(new RobotToken()).concatBy("and")), 1));
} }
private DyadrineSynthesisAmalgam(final DyadrineSynthesisAmalgam card) { private DyadrineSynthesisAmalgam(final DyadrineSynthesisAmalgam card) {

View file

@ -30,7 +30,7 @@ public final class ElderOfLaurels extends CardImpl {
// {3}{G}: Target creature gets +X/+X until end of turn, where X is the number of creatures you control. // {3}{G}: Target creature gets +X/+X until end of turn, where X is the number of creatures you control.
SimpleActivatedAbility ability = new SimpleActivatedAbility( SimpleActivatedAbility ability = new SimpleActivatedAbility(
new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn), new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn),
new ManaCostsImpl<>("{3}{G}")); new ManaCostsImpl<>("{3}{G}"));
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
ability.addHint(CreaturesYouControlHint.instance); ability.addHint(CreaturesYouControlHint.instance);

View file

@ -40,7 +40,7 @@ public final class EvendoWakingHaven extends CardImpl {
// STATION 12+ // STATION 12+
// {G}, {T}: Add {G} for each creature you control. // {G}, {T}: Add {G} for each creature you control.
Ability ability = new DynamicManaAbility( Ability ability = new DynamicManaAbility(
Mana.GreenMana(1), CreaturesYouControlCount.instance, new ManaCostsImpl<>("{G}") Mana.GreenMana(1), CreaturesYouControlCount.SINGULAR, new ManaCostsImpl<>("{G}")
); );
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
this.addAbility(new StationLevelAbility(12).withLevelAbility(ability).addHint(CreaturesYouControlHint.instance)); this.addAbility(new StationLevelAbility(12).withLevelAbility(ability).addHint(CreaturesYouControlHint.instance));

View file

@ -26,8 +26,6 @@ import mage.game.Game;
import mage.game.stack.Spell; import mage.game.stack.Spell;
import mage.target.common.TargetCardInHand; import mage.target.common.TargetCardInHand;
import mage.target.common.TargetCardInLibrary; import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID; import java.util.UUID;
@ -47,7 +45,7 @@ public final class EverythingamajigE extends CardImpl {
// Sacrifice a creature: Add {C}{C} to your mana pool. // Sacrifice a creature: Add {C}{C} to your mana pool.
SacrificeTargetCost cost = new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE); SacrificeTargetCost cost = new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE);
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD,
new BasicManaEffect(Mana.ColorlessMana(2), CreaturesYouControlCount.instance), new BasicManaEffect(Mana.ColorlessMana(2), CreaturesYouControlCount.PLURAL),
cost)); cost));
// Urza's Hot Tub // Urza's Hot Tub

View file

@ -14,7 +14,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
import mage.target.common.TargetAnyTarget; import mage.target.common.TargetAnyTarget;
import java.util.UUID; import java.util.UUID;
@ -33,7 +32,7 @@ public final class FoundryChampion extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
//When Foundry Champion enters the battlefield, it deals damage to any target equal to the number of creatures you control. //When Foundry Champion enters the battlefield, it deals damage to any target equal to the number of creatures you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(CreaturesYouControlCount.instance, "it")); Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(CreaturesYouControlCount.PLURAL, "it"));
ability.addTarget(new TargetAnyTarget()); ability.addTarget(new TargetAnyTarget());
ability.addHint(CreaturesYouControlHint.instance); ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);

View file

@ -26,7 +26,7 @@ public final class FrontlineRush extends CardImpl {
// * Target creature gets +X/+X until end of turn, where X is the number of creatures you control. // * Target creature gets +X/+X until end of turn, where X is the number of creatures you control.
this.getSpellAbility().addMode(new Mode(new BoostTargetEffect( this.getSpellAbility().addMode(new Mode(new BoostTargetEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL
)).addTarget(new TargetCreaturePermanent())); )).addTarget(new TargetCreaturePermanent()));
} }

View file

@ -22,7 +22,7 @@ public final class GaeasCradle extends CardImpl {
// {T}: Add {G} for each creature you control. // {T}: Add {G} for each creature you control.
this.addAbility(new DynamicManaAbility( this.addAbility(new DynamicManaAbility(
Mana.GreenMana(1), CreaturesYouControlCount.instance Mana.GreenMana(1), CreaturesYouControlCount.SINGULAR
).addHint(CreaturesYouControlHint.instance)); ).addHint(CreaturesYouControlHint.instance));
} }

View file

@ -33,7 +33,7 @@ public final class GeistHonoredMonk extends CardImpl {
this.addAbility(VigilanceAbility.getInstance()); this.addAbility(VigilanceAbility.getInstance());
// Geist-Honored Monk's power and toughness are each equal to the number of creatures you control. // Geist-Honored Monk's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
// When Geist-Honored Monk enters the battlefield, create two 1/1 white Spirit creature tokens with flying. // When Geist-Honored Monk enters the battlefield, create two 1/1 white Spirit creature tokens with flying.

View file

@ -45,7 +45,7 @@ public final class GeneralLeoCristophe extends CardImpl {
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect());
ability.addTarget(new TargetCardInYourGraveyard(0, 1, filter)); ability.addTarget(new TargetCardInYourGraveyard(0, 1, filter));
ability.addEffect(new AddCountersSourceEffect( ability.addEffect(new AddCountersSourceEffect(
CounterType.P1P1.createInstance(), CreaturesYouControlCount.instance CounterType.P1P1.createInstance(), CreaturesYouControlCount.PLURAL
).setText("Then put a +1/+1 counter on {this} for each creature you control")); ).setText("Then put a +1/+1 counter on {this} for each creature you control"));
this.addAbility(ability.addHint(CreaturesYouControlHint.instance)); this.addAbility(ability.addHint(CreaturesYouControlHint.instance));
} }

View file

@ -23,7 +23,7 @@ public final class GetALegUp extends CardImpl {
// Until end of turn, target creature gets +1/+1 for each creature you control and gains reach. // Until end of turn, target creature gets +1/+1 for each creature you control and gains reach.
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn) this.getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn)
.setText("until end of turn, target creature gets +1/+1 for each creature you control")); .setText("until end of turn, target creature gets +1/+1 for each creature you control"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn) this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)

View file

@ -63,7 +63,7 @@ class GoblinLyreEffect extends OneShotEffect {
Player opponent = game.getPlayerOrPlaneswalkerController(getTargetPointer().getFirst(game, source)); Player opponent = game.getPlayerOrPlaneswalkerController(getTargetPointer().getFirst(game, source));
if (controller != null) { if (controller != null) {
if (controller.flipCoin(source, game, true)) { if (controller.flipCoin(source, game, true)) {
int damage = CreaturesYouControlCount.instance.calculate(game, source, this); int damage = CreaturesYouControlCount.PLURAL.calculate(game, source, this);
if (opponent != null) { if (opponent != null) {
return game.damagePlayerOrPermanent(source.getFirstTarget(), damage, source.getSourceId(), source, game, false, true) > 0; return game.damagePlayerOrPermanent(source.getFirstTarget(), damage, source.getSourceId(), source, game, false, true) > 0;
} }

View file

@ -21,11 +21,11 @@ public final class HarshSustenance extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}{B}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}{B}");
// Harsh Sustenance deals X damage to any target and you gain X life, where X is the number of creatures you control. // Harsh Sustenance deals X damage to any target and you gain X life, where X is the number of creatures you control.
Effect effect = new DamageTargetEffect(CreaturesYouControlCount.instance); Effect effect = new DamageTargetEffect(CreaturesYouControlCount.PLURAL);
effect.setText("{this} deals X damage to any target"); effect.setText("{this} deals X damage to any target");
getSpellAbility().addEffect(effect); getSpellAbility().addEffect(effect);
getSpellAbility().addTarget(new TargetAnyTarget()); getSpellAbility().addTarget(new TargetAnyTarget());
effect = new GainLifeEffect(CreaturesYouControlCount.instance); effect = new GainLifeEffect(CreaturesYouControlCount.PLURAL);
effect.setText("and you gain X life, where X is the number of creatures you control"); effect.setText("and you gain X life, where X is the number of creatures you control");
getSpellAbility().addEffect(effect); getSpellAbility().addEffect(effect);
getSpellAbility().addHint(CreaturesYouControlHint.instance); getSpellAbility().addHint(CreaturesYouControlHint.instance);

View file

@ -22,7 +22,7 @@ import java.util.UUID;
public final class HobbitsSting extends CardImpl { public final class HobbitsSting extends CardImpl {
private static final DynamicValue xValue = new AdditiveDynamicValue( private static final DynamicValue xValue = new AdditiveDynamicValue(
CreaturesYouControlCount.instance, CreaturesYouControlCount.PLURAL,
new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.FOOD)) new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.FOOD))
); );
private static final Hint hint = new ValueHint("Creatures and Foods you control", xValue); private static final Hint hint = new ValueHint("Creatures and Foods you control", xValue);

View file

@ -30,7 +30,7 @@ public final class HornOfValhalla extends AdventureCard {
// Equipped creature gets +1/+1 for each creature you control. // Equipped creature gets +1/+1 for each creature you control.
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect( this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL
).setText("equipped creature gets +1/+1 for each creature you control")).addHint(CreaturesYouControlHint.instance)); ).setText("equipped creature gets +1/+1 for each creature you control")).addHint(CreaturesYouControlHint.instance));
// Equip {3} // Equip {3}

View file

@ -1,7 +1,7 @@
package mage.cards.i; package mage.cards.i;
import mage.Mana; import mage.Mana;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.hint.common.CreaturesYouControlHint;
import mage.abilities.mana.DynamicManaAbility; import mage.abilities.mana.DynamicManaAbility;
import mage.abilities.mana.GreenManaAbility; import mage.abilities.mana.GreenManaAbility;
@ -9,7 +9,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SuperType; import mage.constants.SuperType;
import mage.filter.StaticFilters;
import java.util.UUID; import java.util.UUID;
@ -30,7 +29,9 @@ public final class ItlimocCradleOfTheSun extends CardImpl {
this.addAbility(new GreenManaAbility()); this.addAbility(new GreenManaAbility());
// {T}: Add {G} for each creature you control. // {T}: Add {G} for each creature you control.
this.addAbility(new DynamicManaAbility(Mana.GreenMana(1), new PermanentsOnBattlefieldCount(StaticFilters.FILTER_PERMANENT_CREATURE_CONTROLLED)).addHint(CreaturesYouControlHint.instance)); this.addAbility(new DynamicManaAbility(
Mana.GreenMana(1), CreaturesYouControlCount.SINGULAR
).addHint(CreaturesYouControlHint.instance));
} }
private ItlimocCradleOfTheSun(final ItlimocCradleOfTheSun card) { private ItlimocCradleOfTheSun(final ItlimocCradleOfTheSun card) {

View file

@ -32,7 +32,7 @@ public final class JunkyoBell extends CardImpl {
// At the beginning of your upkeep, you may have target creature you control get +X/+X until end of turn, // At the beginning of your upkeep, you may have target creature you control get +X/+X until end of turn,
// where X is the number of creatures you control. If you do, sacrifice that creature at the beginning of the next end step. // where X is the number of creatures you control. If you do, sacrifice that creature at the beginning of the next end step.
Ability ability = new BeginningOfUpkeepTriggeredAbility( Ability ability = new BeginningOfUpkeepTriggeredAbility(
new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn), true new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn), true
); );
ability.addTarget(new TargetControlledCreaturePermanent()); ability.addTarget(new TargetControlledCreaturePermanent());
ability.addEffect(new JunkyoBellSacrificeEffect()); ability.addEffect(new JunkyoBellSacrificeEffect());

View file

@ -23,7 +23,7 @@ public final class KingHaraldsRevenge extends CardImpl {
// Until end of turn, target creature gets +1/+1 for each creature you control and gains trample. It must be blocked this turn if able. // Until end of turn, target creature gets +1/+1 for each creature you control and gains trample. It must be blocked this turn if able.
this.getSpellAbility().addEffect(new BoostTargetEffect( this.getSpellAbility().addEffect(new BoostTargetEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn
).setText("until end of turn, target creature gets +1/+1 for each creature you control")); ).setText("until end of turn, target creature gets +1/+1 for each creature you control"));
this.getSpellAbility().addEffect(new GainAbilityTargetEffect( this.getSpellAbility().addEffect(new GainAbilityTargetEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn TrampleAbility.getInstance(), Duration.EndOfTurn

View file

@ -32,10 +32,10 @@ public final class LanternFlare extends CardImpl {
// Lantern Flare deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.] // Lantern Flare deals X damage to target creature or planeswalker and you gain X life. [X is the number of creatures you control.]
this.getSpellAbility().addEffect(new DamageTargetEffect( this.getSpellAbility().addEffect(new DamageTargetEffect(
CreaturesYouControlCount.instance CreaturesYouControlCount.PLURAL
).setText("{this} deals X damage to target creature or planeswalker")); ).setText("{this} deals X damage to target creature or planeswalker"));
this.getSpellAbility().addEffect(new GainLifeEffect( this.getSpellAbility().addEffect(new GainLifeEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.PLURAL,
"and you gain X life. [X is the number of creatures you control.]" "and you gain X life. [X is the number of creatures you control.]"
)); ));
this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetCreatureOrPlaneswalker());

View file

@ -63,7 +63,7 @@ public final class LifeOfTheParty extends CardImpl {
// Whenever Life of the Party attacks, it gets +X/+0 until end of turn, where X is the number of creatures you control. // Whenever Life of the Party attacks, it gets +X/+0 until end of turn, where X is the number of creatures you control.
this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect( this.addAbility(new AttacksTriggeredAbility(new BoostSourceEffect(
CreaturesYouControlCount.instance, StaticValue.get(0), CreaturesYouControlCount.PLURAL, StaticValue.get(0),
Duration.EndOfTurn, "it" Duration.EndOfTurn, "it"
).setText("it gets +X/+0 until end of turn, where X is the number of creatures you control")) ).setText("it gets +X/+0 until end of turn, where X is the number of creatures you control"))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));

View file

@ -19,7 +19,7 @@ public final class MassiveRaid extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}{R}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}{R}");
// Massive Raid deals damage to any target equal to the number of creatures you control. // Massive Raid deals damage to any target equal to the number of creatures you control.
this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance).setText("{this} deals damage to any target equal to the number of creatures you control")); this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.PLURAL).setText("{this} deals damage to any target equal to the number of creatures you control"));
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
this.getSpellAbility().addHint(CreaturesYouControlHint.instance); this.getSpellAbility().addHint(CreaturesYouControlHint.instance);
} }

View file

@ -20,7 +20,7 @@ public final class MobJustice extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}");
// Mob Justice deals damage to target player equal to the number of creatures you control. // Mob Justice deals damage to target player equal to the number of creatures you control.
Effect effect = new DamageTargetEffect(CreaturesYouControlCount.instance); Effect effect = new DamageTargetEffect(CreaturesYouControlCount.PLURAL);
effect.setText("{this} deals damage to target player or planeswalker equal to the number of creatures you control"); effect.setText("{this} deals damage to target player or planeswalker equal to the number of creatures you control");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());

View file

@ -23,7 +23,7 @@ public final class MooglesValor extends CardImpl {
// For each creature you control, create a 1/2 white Moogle creature token with lifelink. Then creatures you control gain indestructible until end of turn. // For each creature you control, create a 1/2 white Moogle creature token with lifelink. Then creatures you control gain indestructible until end of turn.
this.getSpellAbility().addEffect(new CreateTokenEffect( this.getSpellAbility().addEffect(new CreateTokenEffect(
new MoogleToken(), CreaturesYouControlCount.instance new MoogleToken(), CreaturesYouControlCount.PLURAL
).setText("for each creature you control, create a 1/2 white Moogle creature token with lifelink")); ).setText("for each creature you control, create a 1/2 white Moogle creature token with lifelink"));
this.getSpellAbility().addEffect(new GainAbilityControlledEffect( this.getSpellAbility().addEffect(new GainAbilityControlledEffect(
IndestructibleAbility.getInstance(), Duration.EndOfTurn, IndestructibleAbility.getInstance(), Duration.EndOfTurn,

View file

@ -39,7 +39,7 @@ public final class MoonshakerCavalry extends CardImpl {
StaticFilters.FILTER_PERMANENT_CREATURES StaticFilters.FILTER_PERMANENT_CREATURES
).setText("creatures you control gain flying")); ).setText("creatures you control gain flying"));
ability.addEffect(new BoostControlledEffect( ability.addEffect(new BoostControlledEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL, Duration.EndOfTurn
).setText("and get +X/+X until end of turn, where X is the number of creatures you control")); ).setText("and get +X/+X until end of turn, where X is the number of creatures you control"));
this.addAbility(ability.addHint(CreaturesYouControlHint.instance)); this.addAbility(ability.addHint(CreaturesYouControlHint.instance));
} }

View file

@ -8,7 +8,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.target.common.TargetControlledCreaturePermanent;
/** /**
* *
@ -22,7 +21,7 @@ public final class PhyrexianAltar extends CardImpl {
// Sacrifice a creature: Add one mana of any color. // Sacrifice a creature: Add one mana of any color.
this.addAbility(new AnyColorManaAbility( this.addAbility(new AnyColorManaAbility(
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE), new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE),
CreaturesYouControlCount.instance, CreaturesYouControlCount.PLURAL,
false false
)); ));
} }

View file

@ -43,7 +43,7 @@ public final class PollenShieldHare extends AdventureCard {
.setText("target creature you control gains vigilance") .setText("target creature you control gains vigilance")
); );
this.getSpellCard().getSpellAbility().addEffect( this.getSpellCard().getSpellAbility().addEffect(
new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance) new BoostTargetEffect(CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL)
.setText("and gets +X/+X until end of turn, where X is the number of creatures you control") .setText("and gets +X/+X until end of turn, where X is the number of creatures you control")
); );
this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent());

View file

@ -34,7 +34,7 @@ public final class ProtectTheNegotiators extends CardImpl {
)); ));
// Counter target spell unless its controller pays {1} for each creature you control. // Counter target spell unless its controller pays {1} for each creature you control.
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(CreaturesYouControlCount.PLURAL)
.setText("<br>Counter target spell unless its controller pays {1} for each creature you control.")); .setText("<br>Counter target spell unless its controller pays {1} for each creature you control."));
this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addTarget(new TargetSpell());
} }

View file

@ -39,7 +39,7 @@ public final class RinoaHeartilly extends CardImpl {
// Angelo Cannon -- Whenever Rinoa Heartilly attacks, another target creature you control gets +1/+1 until end of turn for each creature you control. // Angelo Cannon -- Whenever Rinoa Heartilly attacks, another target creature you control gets +1/+1 until end of turn for each creature you control.
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect( Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL
).setText("another target creature you control gets +1/+1 until end of turn for each creature you control")); ).setText("another target creature you control gets +1/+1 until end of turn for each creature you control"));
ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL)); ability.addTarget(new TargetPermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE_YOU_CONTROL));
this.addAbility(ability.withFlavorWord("Angelo Cannon").addHint(CreaturesYouControlHint.instance)); this.addAbility(ability.withFlavorWord("Angelo Cannon").addHint(CreaturesYouControlHint.instance));

View file

@ -29,7 +29,7 @@ public final class SaltRoadPackbeast extends CardImpl {
// This spell costs {1} less to cast for each creature you control. // This spell costs {1} less to cast for each creature you control.
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(
Zone.ALL, new SpellCostReductionForEachSourceEffect(1, CreaturesYouControlCount.instance) Zone.ALL, new SpellCostReductionForEachSourceEffect(1, CreaturesYouControlCount.SINGULAR)
).addHint(CreaturesYouControlHint.instance)); ).addHint(CreaturesYouControlHint.instance));
// When this creature enters, draw a card. // When this creature enters, draw a card.

View file

@ -17,7 +17,6 @@ import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.game.permanent.token.Gremlin11Token; import mage.game.permanent.token.Gremlin11Token;
import mage.game.permanent.token.GremlinToken;
import java.util.UUID; import java.util.UUID;
@ -31,7 +30,7 @@ public final class ScurryOfGremlins extends CardImpl {
// When Scurry of Gremlins enters the battlefield, create two 1/1 red Gremlin creature tokens. Then you get an amount of {E} equal to the number of creatures you control. // When Scurry of Gremlins enters the battlefield, create two 1/1 red Gremlin creature tokens. Then you get an amount of {E} equal to the number of creatures you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Gremlin11Token(), 2)); Ability ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new Gremlin11Token(), 2));
ability.addEffect(new GetEnergyCountersControllerEffect(CreaturesYouControlCount.instance) ability.addEffect(new GetEnergyCountersControllerEffect(CreaturesYouControlCount.PLURAL)
.setText("Then you get an amount of {E} equal to the number of creatures you control")); .setText("Then you get an amount of {E} equal to the number of creatures you control"));
this.addAbility(ability.addHint(CreaturesYouControlHint.instance)); this.addAbility(ability.addHint(CreaturesYouControlHint.instance));

View file

@ -32,7 +32,7 @@ public final class SeraphOfTheMasses extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Seraph of the Masses's power and toughness are each equal to the number of creatures you control. // Seraph of the Masses's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }

View file

@ -47,7 +47,7 @@ public final class SharpshooterElf extends CardImpl {
// Sharpshooter Elf's power is equal to the number of creatures you control. // Sharpshooter Elf's power is equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(
Zone.ALL, new SetBasePowerSourceEffect(CreaturesYouControlCount.instance) Zone.ALL, new SetBasePowerSourceEffect(CreaturesYouControlCount.PLURAL)
)); ));
// When Sharpshooter Elf enters the battlefield, it deals damage equal to its power to target creature with flying an opponent controls. // When Sharpshooter Elf enters the battlefield, it deals damage equal to its power to target creature with flying an opponent controls.

View file

@ -68,7 +68,7 @@ class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl {
boolean result = false; boolean result = false;
Permanent equipment = game.getPermanent(source.getSourceId()); Permanent equipment = game.getPermanent(source.getSourceId());
if (equipment != null && equipment.getAttachedTo() != null) { if (equipment != null && equipment.getAttachedTo() != null) {
int numberOfCreaturesControlled = CreaturesYouControlCount.instance.calculate(game, source, this); int numberOfCreaturesControlled = CreaturesYouControlCount.PLURAL.calculate(game, source, this);
int toPrevent = Math.min(numberOfCreaturesControlled, event.getAmount()); int toPrevent = Math.min(numberOfCreaturesControlled, event.getAmount());
GameEvent preventEvent = new PreventDamageEvent(event.getTargetId(), source.getSourceId(), source, source.getControllerId(), toPrevent, ((DamageEvent) event).isCombatDamage()); GameEvent preventEvent = new PreventDamageEvent(event.getTargetId(), source.getSourceId(), source, source.getControllerId(), toPrevent, ((DamageEvent) event).isCombatDamage());
if (!game.replaceEvent(preventEvent)) { if (!game.replaceEvent(preventEvent)) {

View file

@ -40,7 +40,7 @@ public final class SilverwingSquadron extends CardImpl {
// Silverwing Squadron's power and toughness are each equal to the number of creatures you control. // Silverwing Squadron's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(
Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance) Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL)
).addHint(CreaturesYouControlHint.instance)); ).addHint(CreaturesYouControlHint.instance));
// Whenever Silverwing Squadron attacks, create a number of 2/2 white Knight creature tokens with vigilance equal to the number of opponents you have. // Whenever Silverwing Squadron attacks, create a number of 2/2 white Knight creature tokens with vigilance equal to the number of opponents you have.

View file

@ -32,7 +32,7 @@ public final class SnowVilliers extends CardImpl {
this.addAbility(VigilanceAbility.getInstance()); this.addAbility(VigilanceAbility.getInstance());
// Snow Villiers's power is equal to the number of creatures you control. // Snow Villiers's power is equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(new SetBasePowerSourceEffect(CreaturesYouControlCount.instance))); this.addAbility(new SimpleStaticAbility(new SetBasePowerSourceEffect(CreaturesYouControlCount.PLURAL)));
} }
private SnowVilliers(final SnowVilliers card) { private SnowVilliers(final SnowVilliers card) {

View file

@ -31,7 +31,7 @@ public final class SoulsurgeElemental extends CardImpl {
this.addAbility(FirstStrikeAbility.getInstance()); this.addAbility(FirstStrikeAbility.getInstance());
// Soulsurge Elemental's power is equal to the number of creatures you control. // Soulsurge Elemental's power is equal to the number of creatures you control.
Effect effect = new SetBasePowerSourceEffect(CreaturesYouControlCount.instance); Effect effect = new SetBasePowerSourceEffect(CreaturesYouControlCount.PLURAL);
this.addAbility(new SimpleStaticAbility(Zone.ALL, effect) this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
} }

View file

@ -6,7 +6,6 @@ import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeSourceCost; import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.dynamicvalue.common.SourcePermanentPowerValue;
import mage.abilities.effects.Effect; import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.keyword.MobilizeAbility; import mage.abilities.keyword.MobilizeAbility;
@ -35,7 +34,7 @@ public final class StadiumHeadliner extends CardImpl {
this.addAbility(new MobilizeAbility(1)); this.addAbility(new MobilizeAbility(1));
// {1}{R}, Sacrifice this creature: It deals damage equal to the number of creatures you control to target creature. // {1}{R}, Sacrifice this creature: It deals damage equal to the number of creatures you control to target creature.
Effect effect = new DamageTargetEffect(CreaturesYouControlCount.instance); Effect effect = new DamageTargetEffect(CreaturesYouControlCount.PLURAL);
effect.setText("It deals damage equal to the number of creatures you control to target creature"); effect.setText("It deals damage equal to the number of creatures you control to target creature");
Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{R}")); Ability ability = new SimpleActivatedAbility(effect, new ManaCostsImpl<>("{1}{R}"));
ability.addCost(new SacrificeSourceCost()); ability.addCost(new SacrificeSourceCost());

View file

@ -31,7 +31,7 @@ public final class TheBattleOfBywater extends CardImpl {
// Destroy all creatures with power 3 or greater. Then create a Food token for each creature you control. // Destroy all creatures with power 3 or greater. Then create a Food token for each creature you control.
this.getSpellAbility().addEffect(new DestroyAllEffect(filter)); this.getSpellAbility().addEffect(new DestroyAllEffect(filter));
this.getSpellAbility().addEffect(new CreateTokenEffect( this.getSpellAbility().addEffect(new CreateTokenEffect(
new FoodToken(), CreaturesYouControlCount.instance new FoodToken(), CreaturesYouControlCount.PLURAL
).setText("Then create a Food token for each creature you control")); ).setText("Then create a Food token for each creature you control"));
} }

View file

@ -20,7 +20,6 @@ import mage.constants.Duration;
import mage.constants.SuperType; import mage.constants.SuperType;
import mage.constants.Zone; import mage.constants.Zone;
import mage.filter.StaticFilters; import mage.filter.StaticFilters;
import mage.target.common.TargetControlledCreaturePermanent;
/** /**
* *
@ -39,7 +38,7 @@ public final class Thermopod extends CardImpl {
this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect( this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(
HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{S}"))); HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{S}")));
// Sacrifice a creature: Add {R}. // Sacrifice a creature: Add {R}.
this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.RedMana(1), CreaturesYouControlCount.instance), this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.RedMana(1), CreaturesYouControlCount.PLURAL),
new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE))); new SacrificeTargetCost(StaticFilters.FILTER_PERMANENT_CREATURE)));
} }

View file

@ -30,7 +30,7 @@ import java.util.UUID;
*/ */
public final class ThrabenCharm extends CardImpl { public final class ThrabenCharm extends CardImpl {
private static final DynamicValue xValue = new MultipliedValue(CreaturesYouControlCount.instance, 2); private static final DynamicValue xValue = new MultipliedValue(CreaturesYouControlCount.PLURAL, 2);
public ThrabenCharm(UUID ownerId, CardSetInfo setInfo) { public ThrabenCharm(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}");

View file

@ -35,7 +35,7 @@ public final class TreeguardDuo extends CardImpl {
.setText("until end of turn, target creature you control gains vigilance") .setText("until end of turn, target creature you control gains vigilance")
); );
ability.addEffect(new BoostTargetEffect( ability.addEffect(new BoostTargetEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance CreaturesYouControlCount.PLURAL, CreaturesYouControlCount.PLURAL
).setText("and gets +X/+X, where X is the number of creatures you control")); ).setText("and gets +X/+X, where X is the number of creatures you control"));
ability.addTarget(new TargetControlledCreaturePermanent()); ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability.addHint(CreaturesYouControlHint.instance)); this.addAbility(ability.addHint(CreaturesYouControlHint.instance));

View file

@ -33,7 +33,7 @@ public final class VertexPaladin extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Vertex Paladin's power and toughness are each equal to the number of creatures you control. // Vertex Paladin's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL)));
} }
private VertexPaladin(final VertexPaladin card) { private VertexPaladin(final VertexPaladin card) {

View file

@ -46,7 +46,7 @@ public final class VeteranWarleader extends CardImpl {
// Veteran Warleader's power and toughness are each equal to the number of creatures you control. // Veteran Warleader's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect( this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(
CreaturesYouControlCount.instance)) CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
// Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn. // Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn.

View file

@ -23,7 +23,7 @@ public final class VisionsOfGlory extends CardImpl {
// Create a 1/1 white Human creature token for each creature you control. // Create a 1/1 white Human creature token for each creature you control.
this.getSpellAbility().addEffect(new CreateTokenEffect( this.getSpellAbility().addEffect(new CreateTokenEffect(
new HumanToken(), CreaturesYouControlCount.instance new HumanToken(), CreaturesYouControlCount.PLURAL
).setText("create a 1/1 white Human creature token for each creature you control")); ).setText("create a 1/1 white Human creature token for each creature you control"));
// Flashback {8}{W}{W}. This spell costs {X} less to cast this way, where X is the greatest mana value of a commander you own on the battlefield or in the command zone. // Flashback {8}{W}{W}. This spell costs {X} less to cast this way, where X is the greatest mana value of a commander you own on the battlefield or in the command zone.

View file

@ -28,7 +28,7 @@ public final class WayfaringTemple extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
// Wayfaring Temple's power and toughness are each equal to the number of creatures you control. // Wayfaring Temple's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
// Whenever Wayfaring Temple deals combat damage to a player, populate. (Create a token that's a copy of a creature token you control.) // Whenever Wayfaring Temple deals combat damage to a player, populate. (Create a token that's a copy of a creature token you control.)

View file

@ -31,7 +31,7 @@ public final class WestvaleCultLeader extends CardImpl {
this.nightCard = true; this.nightCard = true;
// Westvale Cult Leader's power and toughness are each equal to the number of creatures you control. // Westvale Cult Leader's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.instance)) this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(CreaturesYouControlCount.PLURAL))
.addHint(CreaturesYouControlHint.instance)); .addHint(CreaturesYouControlHint.instance));
// At the beginning of your end step, create a 1/1 white and black Human Cleric creature token. // At the beginning of your end step, create a 1/1 white and black Human Cleric creature token.

View file

@ -43,7 +43,7 @@ public final class WillOfTheMardu extends CardImpl {
this.getSpellAbility().addTarget(new TargetPlayer()); this.getSpellAbility().addTarget(new TargetPlayer());
// * Will of the Mardu deals damage to target creature equal to the number of creatures you control. // * Will of the Mardu deals damage to target creature equal to the number of creatures you control.
this.getSpellAbility().addMode(new Mode(new DamageTargetEffect(CreaturesYouControlCount.instance) this.getSpellAbility().addMode(new Mode(new DamageTargetEffect(CreaturesYouControlCount.PLURAL)
.setText("{this} deals damage to target creature equal to the number of creatures you control")).addTarget(new TargetCreaturePermanent())); .setText("{this} deals damage to target creature equal to the number of creatures you control")).addTarget(new TargetCreaturePermanent()));
this.getSpellAbility().addHint(WillOfTheMarduHint.instance); this.getSpellAbility().addHint(WillOfTheMarduHint.instance);
} }

View file

@ -30,7 +30,7 @@ public final class ZurgosVanguard extends CardImpl {
this.addAbility(new MobilizeAbility(1)); this.addAbility(new MobilizeAbility(1));
// This creature's power is equal to the number of creatures you control. // This creature's power is equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerSourceEffect(CreaturesYouControlCount.instance))); this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerSourceEffect(CreaturesYouControlCount.PLURAL)));
} }
private ZurgosVanguard(final ZurgosVanguard card) { private ZurgosVanguard(final ZurgosVanguard card) {

View file

@ -11,16 +11,25 @@ import mage.game.Game;
*/ */
public enum CreaturesYouControlCount implements DynamicValue { public enum CreaturesYouControlCount implements DynamicValue {
instance; PLURAL(true),
SINGULAR(false);
private final boolean plural;
CreaturesYouControlCount(boolean plural) {
this.plural = plural;
}
@Override @Override
public int calculate(Game game, Ability sourceAbility, Effect effect) { public int calculate(Game game, Ability sourceAbility, Effect effect) {
return game.getBattlefield().count(StaticFilters.FILTER_CONTROLLED_CREATURES, sourceAbility.getControllerId(), sourceAbility, game); return game.getBattlefield().count(
StaticFilters.FILTER_CONTROLLED_CREATURES,
sourceAbility.getControllerId(), sourceAbility, game
);
} }
@Override @Override
public CreaturesYouControlCount copy() { public CreaturesYouControlCount copy() {
return instance; return PLURAL;
} }
@Override @Override
@ -30,6 +39,6 @@ public enum CreaturesYouControlCount implements DynamicValue {
@Override @Override
public String getMessage() { public String getMessage() {
return "creatures you control"; return "creature" + (plural ? "s" : "") + " you control";
} }
} }

View file

@ -47,7 +47,7 @@ public class DifferentlyNamedPermanentCount implements DynamicValue {
@Override @Override
public String getMessage() { public String getMessage() {
return "differently named " + filter.getMessage(); return "the number of differently named " + filter.getMessage();
} }
@Override @Override

View file

@ -105,6 +105,9 @@ public class ReturnFromGraveyardToBattlefieldTargetEffect extends OneShotEffect
} }
sb.append(yourGrave ? " to" : " onto"); sb.append(yourGrave ? " to" : " onto");
sb.append(" the battlefield"); sb.append(" the battlefield");
if (!yourGrave) {
sb.append(" under your control");
}
if (tapped && attacking) { if (tapped && attacking) {
sb.append(" tapped and attacking"); sb.append(" tapped and attacking");
} else if (tapped) { } else if (tapped) {
@ -112,9 +115,6 @@ public class ReturnFromGraveyardToBattlefieldTargetEffect extends OneShotEffect
} else if (attacking) { } else if (attacking) {
sb.append(" attacking"); sb.append(" attacking");
} }
if (!yourGrave) {
sb.append(" under your control");
}
return sb.toString(); return sb.toString();
} }
} }

View file

@ -12,7 +12,7 @@ import mage.game.Game;
public enum CreaturesYouControlHint implements Hint { public enum CreaturesYouControlHint implements Hint {
instance; instance;
private static final Hint hint = new ValueHint("Creatures you control", CreaturesYouControlCount.instance); private static final Hint hint = new ValueHint("Creatures you control", CreaturesYouControlCount.PLURAL);
@Override @Override
public String getText(Game game, Ability ability) { public String getText(Game game, Ability ability) {

View file

@ -6,7 +6,6 @@ import mage.abilities.dynamicvalue.common.CreaturesYouControlCount;
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect; import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
import mage.constants.CardType; import mage.constants.CardType;
import mage.constants.SubType; import mage.constants.SubType;
import mage.constants.Zone;
/** /**
* @author spjspj * @author spjspj
@ -25,7 +24,7 @@ public final class VoiceOfResurgenceToken extends TokenImpl {
// This creature's power and toughness are each equal to the number of creatures you control. // This creature's power and toughness are each equal to the number of creatures you control.
this.addAbility(new SimpleStaticAbility(new SetBasePowerToughnessSourceEffect( this.addAbility(new SimpleStaticAbility(new SetBasePowerToughnessSourceEffect(
CreaturesYouControlCount.instance))); CreaturesYouControlCount.PLURAL)));
} }
private VoiceOfResurgenceToken(final VoiceOfResurgenceToken token) { private VoiceOfResurgenceToken(final VoiceOfResurgenceToken token) {