[MID] various text fixes

This commit is contained in:
Evan Kranzler 2021-09-26 14:34:32 -04:00
parent 8418c6a09a
commit a87b28f348
23 changed files with 108 additions and 68 deletions

View file

@ -26,7 +26,7 @@ public final class Bladebrand extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private Bladebrand(final Bladebrand card) {

View file

@ -24,7 +24,7 @@ import java.util.UUID;
*/
public final class FalkenrathPitFighter extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.VAMPIRE);
private static final FilterControlledPermanent filter = new FilterControlledPermanent(SubType.VAMPIRE, "Vampire");
public FalkenrathPitFighter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{R}");

View file

@ -1,15 +1,15 @@
package mage.cards.j;
import mage.Mana;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.ExileSourceFromGraveCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.mana.SimpleManaAbility;
import mage.abilities.mana.AnyColorManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -35,7 +35,7 @@ public final class JackOLantern extends CardImpl {
this.addAbility(ability);
// {1}, Exile Jack-o'-Lantern from your graveyard: Add one mana of any color.
ability = new SimpleManaAbility(Zone.GRAVEYARD, Mana.AnyMana(1), new GenericManaCost(1));
ability = new AnyColorManaAbility(Zone.GRAVEYARD, new GenericManaCost(1), StaticValue.get(1), false);
ability.addCost(new ExileSourceFromGraveCost());
this.addAbility(ability);
}

View file

@ -1,8 +1,5 @@
package mage.cards.k;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import mage.MageInt;
import mage.Mana;
import mage.ObjectColor;
@ -16,11 +13,11 @@ import mage.abilities.effects.common.counter.AddCountersAllEffect;
import mage.abilities.effects.mana.ManaEffect;
import mage.abilities.keyword.ProtectionAbility;
import mage.abilities.mana.ActivatedManaAbilityImpl;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.choices.Choice;
import mage.choices.ChoiceImpl;
import mage.constants.*;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
@ -29,14 +26,17 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
*
* @author weirddan455
*/
public final class KatildaDawnhartPrime extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent(SubType.WEREWOLF, "Werewolves");
private static final FilterControlledCreaturePermanent filter2 = new FilterControlledCreaturePermanent(SubType.HUMAN, "Human creatures you control");
private static final FilterPermanent filter2 = new FilterControlledCreaturePermanent(SubType.HUMAN, "Human creatures");
public KatildaDawnhartPrime(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{G}{W}");
@ -51,10 +51,16 @@ public final class KatildaDawnhartPrime extends CardImpl {
this.addAbility(new ProtectionAbility(filter));
// Human creatures you control have "{T}: Add one mana of any of this creature's colors."
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(new KatildaDawnhartPrimeManaAbility(), Duration.WhileOnBattlefield, filter2)));
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new KatildaDawnhartPrimeManaAbility(), Duration.WhileOnBattlefield, filter2
)));
// {4}{G}{W}, {T}: Put a +1/+1 counter on each creature you control.
this.addAbility(new SimpleActivatedAbility(new AddCountersAllEffect(CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE), new ManaCostsImpl<>("{4}{G}{W}")));
Ability ability = new SimpleActivatedAbility(new AddCountersAllEffect(
CounterType.P1P1.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE
), new ManaCostsImpl<>("{4}{G}{W}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
private KatildaDawnhartPrime(final KatildaDawnhartPrime card) {

View file

@ -9,6 +9,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@ -22,6 +23,7 @@ public final class MightOfTheOldWays extends CardImpl {
// Target creature gets +2/+2 until end of turn.
this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
// Coven Then if you control three or more creatures with different powers, draw a card.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(

View file

@ -9,6 +9,7 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.common.TargetControlledCreaturePermanent;
import java.util.UUID;
@ -28,7 +29,8 @@ public final class OdricsOutrider extends CardImpl {
// Whenever Odric's Outrider or another creature you control dies, put a +1/+1 counter on target creature you control.
Ability ability = new DiesThisOrAnotherCreatureTriggeredAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance()), false
new AddCountersTargetEffect(CounterType.P1P1.createInstance()),
false, StaticFilters.FILTER_CONTROLLED_CREATURE
);
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);

View file

@ -33,7 +33,7 @@ public final class OldStickfingers extends CardImpl {
this.addAbility(new CastSourceTriggeredAbility(new OldStickfingersEffect()));
// Old Stickfingers' power and toughness are equal to the number of creature cards in your graveyard.
DynamicValue value = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE);
DynamicValue value = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(value, Duration.EndOfGame)));
}

View file

@ -33,7 +33,7 @@ import java.util.UUID;
*/
public final class RootcoilCreeper extends CardImpl {
private static final FilterCard filter = new FilterOwnedCard("card with flashback you own in exile");
private static final FilterCard filter = new FilterOwnedCard("card with flashback you own from exile");
static {
filter.add(new AbilityPredicate(FlashbackAbility.class));
@ -51,10 +51,16 @@ public final class RootcoilCreeper extends CardImpl {
this.addAbility(new AnyColorManaAbility());
// {T}: Add two mana of any one color. Spend this mana only to cast spells from your graveyard.
this.addAbility(new ConditionalAnyColorManaAbility(2, new RootcoilCreeperManaBuilder()));
this.addAbility(new ConditionalAnyColorManaAbility(
new TapSourceCost(), 2, new RootcoilCreeperManaBuilder(), true
));
// {G}{U}, {T}, Exile Rootcoil Creeper: Return target card with flashback you own in exile to your hand.
Ability ability = new SimpleActivatedAbility(new ReturnToHandTargetEffect(), new ManaCostsImpl<>("{G}{U}"));
Ability ability = new SimpleActivatedAbility(
new ReturnToHandTargetEffect()
.setText("return target card with flashback you own in exile to your hand"),
new ManaCostsImpl<>("{G}{U}")
);
ability.addCost(new TapSourceCost());
ability.addCost(new ExileSourceCost());
ability.addTarget(new TargetCardInExile(filter));

View file

@ -18,6 +18,7 @@ import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.common.FilterUntappedCreature;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.target.TargetPermanent;
@ -28,8 +29,8 @@ import java.util.UUID;
*/
public final class SarythTheVipersFang extends CardImpl {
private static final FilterPermanent filterTapped = new FilterControlledCreaturePermanent("tapped creatures you control");
private static final FilterPermanent filterAbility = new FilterControlledPermanent("creature or land you control");
private static final FilterPermanent filterTapped = new FilterControlledCreaturePermanent("tapped creatures");
private static final FilterPermanent filterAbility = new FilterControlledPermanent("another target creature or land you control");
static {
filterTapped.add(TappedPredicate.TAPPED);
@ -37,6 +38,7 @@ public final class SarythTheVipersFang extends CardImpl {
CardType.CREATURE.getPredicate(),
CardType.LAND.getPredicate()
));
filterAbility.add(AnotherPredicate.instance);
}
public SarythTheVipersFang(UUID ownerId, CardSetInfo setInfo) {

View file

@ -38,7 +38,7 @@ public final class SlaughterSpecialist extends CardImpl {
// Whenever a creature an opponent controls dies, put a +1/+1 counter on Slaughter Specialist.
this.addAbility(new DiesCreatureTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
false, StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
false, StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE
));
}

View file

@ -12,7 +12,10 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.TargetController;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.filter.common.FilterLandCard;
@ -27,7 +30,7 @@ public final class SlogurkTheOverslime extends CardImpl {
public SlogurkTheOverslime(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{U}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.OOZE);
this.power = new MageInt(3);
@ -43,8 +46,10 @@ public final class SlogurkTheOverslime extends CardImpl {
));
// Remove three +1/+1 counters from Slogurk: Return it to its owner's hand.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance(3))));
this.addAbility(new SimpleActivatedAbility(
new ReturnToHandSourceEffect().setText("return it to its owner's hand"),
new RemoveCountersSourceCost(CounterType.P1P1.createInstance(3))
));
// When Slogurk leaves the battlefield, return up to three target land cards from your graveyard to your hand.
Ability ability = new LeavesBattlefieldTriggeredAbility(new ReturnToHandTargetEffect()

View file

@ -25,7 +25,7 @@ public final class Startle extends CardImpl {
this.getSpellAbility().addEffect(new CreateTokenEffect(new ZombieDecayedToken()));
// Draw a card.
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private Startle(final Startle card) {

View file

@ -5,6 +5,7 @@ import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.GetEmblemEffect;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.cards.CardImpl;
@ -13,11 +14,10 @@ import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.filter.FilterCard;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.command.emblems.TeferiWhoSlowsTheSunsetEmblem;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.Target;
import mage.target.common.TargetArtifactPermanent;
import mage.target.common.TargetCreaturePermanent;
@ -39,13 +39,17 @@ public final class TeferiWhoSlowsTheSunset extends CardImpl {
// +1: Choose up to one target artifact, up to one target creature, and up to one target land. Untap the chosen permanents you control. Tap the chosen permanents you don't control. You gain 2 life.
Ability ability = new LoyaltyAbility(new TeferiWhoSlowsTheSunsetEffect(), 1);
ability.addEffect(new GainLifeEffect(2));
ability.addTarget(new TargetArtifactPermanent());
ability.addTarget(new TargetCreaturePermanent());
ability.addTarget(new TargetLandPermanent());
this.addAbility(ability);
// 2: Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
this.addAbility(new LoyaltyAbility(new LookLibraryAndPickControllerEffect(StaticValue.get(3), false, StaticValue.get(1), new FilterCard("card"), false, false), -2));
this.addAbility(new LoyaltyAbility(new LookLibraryAndPickControllerEffect(
StaticValue.get(3), false, StaticValue.get(1),
StaticFilters.FILTER_CARD, false, false
), -2));
// 7: You get an emblem with "Untap all permanents you control during each opponent's untap step" and "You draw a card during each opponent's draw step."
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new TeferiWhoSlowsTheSunsetEmblem()), -7));
@ -67,7 +71,7 @@ class TeferiWhoSlowsTheSunsetEffect extends OneShotEffect {
super(Outcome.Benefit);
staticText = "Choose up to one target artifact, up to one target creature, and up to one target land. " +
"Untap the chosen permanents you control. " +
"Tap the chosen permanents you don't control. ";
"Tap the chosen permanents you don't control.";
}
private TeferiWhoSlowsTheSunsetEffect(final TeferiWhoSlowsTheSunsetEffect effect) {
@ -81,19 +85,17 @@ class TeferiWhoSlowsTheSunsetEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
for (Target target : source.getTargets()) {
Permanent targetPermanent = game.getPermanent(target.getFirstTarget());
if (targetPermanent != null) {
if (targetPermanent.getControllerId() == player.getId()) {
targetPermanent.untap(game);
} else {
targetPermanent.tap(source, game);
}
if (targetPermanent == null) {
continue;
}
if (targetPermanent.isControlledBy(source.getControllerId())) {
targetPermanent.untap(game);
} else {
targetPermanent.tap(source, game);
}
}
player.gainLife(2, game, source);
return true;
}
}

View file

@ -43,7 +43,7 @@ public final class TheMeathookMassacre extends CardImpl {
// Whenever a creature an opponent controls dies, you gain 1 life.
this.addAbility(new DiesCreatureTriggeredAbility(
new GainLifeEffect(1), false,
StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE
StaticFilters.FILTER_OPPONENTS_PERMANENT_A_CREATURE
));
}

View file

@ -1,9 +1,6 @@
package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -15,17 +12,17 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.constants.Zone;
import mage.filter.common.FilterInstantOrSorcerySpell;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class ThermoAlchemist extends CardImpl {
public ThermoAlchemist(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.SHAMAN);
this.power = new MageInt(0);
@ -33,11 +30,16 @@ public final class ThermoAlchemist extends CardImpl {
// Defender
this.addAbility(DefenderAbility.getInstance());
// {T}: Thermo-Alchemist deals 1 damage to each opponent.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(1, TargetController.OPPONENT), new TapSourceCost());
this.addAbility(ability);
this.addAbility(new SimpleActivatedAbility(
new DamagePlayersEffect(1, TargetController.OPPONENT), new TapSourceCost()
));
// Whenever you cast an instant or sorcery spell, untap Thermo-Alchemist.
this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), new FilterInstantOrSorcerySpell(), false));
this.addAbility(new SpellCastControllerTriggeredAbility(
new UntapSourceEffect(), StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false
));
}
private ThermoAlchemist(final ThermoAlchemist card) {

View file

@ -30,7 +30,7 @@ public final class WinterthornBlessing extends CardImpl {
this.getSpellAbility().addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance()).setTargetPointer(new FirstTargetPointer()));
this.getSpellAbility().addEffect(new TapTargetEffect().setTargetPointer(new SecondTargetPointer()).setText("tap up to one target creature you don't control"));
this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect().setTargetPointer(new SecondTargetPointer()).setText("that creature doesn't untap during its controller's next untap step"));
this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect().setTargetPointer(new SecondTargetPointer()).setText(", and that creature doesn't untap during its controller's next untap step"));
// Flashback {1}{G}{U}
this.addAbility(new FlashbackAbility(this, new ManaCostsImpl<>("{1}{G}{U}")));

View file

@ -58,7 +58,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "AFR"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MID"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages

View file

@ -4,7 +4,8 @@ import mage.MageObject;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.events.ZoneChangeEvent;
@ -14,14 +15,14 @@ import mage.game.events.ZoneChangeEvent;
*/
public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityImpl {
protected FilterCreaturePermanent filter;
protected FilterPermanent filter;
private boolean applyFilterOnSource = false;
public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional) {
this(effect, optional, new FilterCreaturePermanent());
this(effect, optional, StaticFilters.FILTER_PERMANENT_CREATURE);
}
public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional, FilterCreaturePermanent filter) {
public DiesThisOrAnotherCreatureTriggeredAbility(Effect effect, boolean optional, FilterPermanent filter) {
super(Zone.ALL, effect, optional); // Needs "ALL" if the source itself should trigger or multiple (incl. source go to grave)
this.filter = filter;
}
@ -63,7 +64,7 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI
}
return false;
}
@Override
public boolean isInUseableZone(Game game, MageObject source, GameEvent event) {
return TriggeredAbilityImpl.isInUseableZoneDiesTrigger(this, event, game);
@ -71,6 +72,6 @@ public class DiesThisOrAnotherCreatureTriggeredAbility extends TriggeredAbilityI
@Override
public String getTriggerPhrase() {
return "Whenever {this} or another " + filter.getMessage() + " dies, " ;
return "Whenever {this} or another " + filter.getMessage() + " dies, ";
}
}

View file

@ -44,6 +44,6 @@ public class DiscardHandCost extends CostImpl {
@Override
public String getText() {
return "Discard your hand";
return "discard your hand";
}
}

View file

@ -38,8 +38,9 @@ public class ReturnToHandChosenControlledPermanentEffect extends ReturnToHandCho
@Override
protected String getText() {
StringBuilder sb = new StringBuilder("return ");
StringBuilder sb = new StringBuilder("return");
if (!filter.getMessage().startsWith("another")) {
sb.append(' ');
if(filter.getMessage().startsWith("a")){
sb.append("an");
}

View file

@ -1,17 +1,18 @@
package mage.abilities.mana;
import java.util.ArrayList;
import java.util.List;
import mage.Mana;
import mage.abilities.costs.Cost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.mana.ManaEffect;
import mage.abilities.effects.mana.AddManaOfAnyColorEffect;
import mage.abilities.effects.mana.ManaEffect;
import mage.constants.Zone;
import mage.game.Game;
import java.util.ArrayList;
import java.util.List;
public class AnyColorManaAbility extends ActivatedManaAbilityImpl {
public AnyColorManaAbility() {
@ -28,14 +29,17 @@ public class AnyColorManaAbility extends ActivatedManaAbilityImpl {
}
/**
*
* @param cost
* @param netAmount dynamic value used during available mana calculation to
* set the max possible amount the source can produce
* @param setFlag
*/
public AnyColorManaAbility(Cost cost, DynamicValue netAmount, boolean setFlag) {
super(Zone.BATTLEFIELD, new AddManaOfAnyColorEffect(1, netAmount, setFlag), cost);
this(Zone.BATTLEFIELD, cost, netAmount, setFlag);
}
public AnyColorManaAbility(Zone zone, Cost cost, DynamicValue netAmount, boolean setFlag) {
super(zone, new AddManaOfAnyColorEffect(1, netAmount, setFlag), cost);
this.netMana.add(new Mana(0, 0, 0, 0, 0, 0, 1, 0));
}

View file

@ -389,6 +389,13 @@ public final class StaticFilters {
FILTER_OPPONENTS_PERMANENT_CREATURE.setLockedFilter(true);
}
public static final FilterCreaturePermanent FILTER_OPPONENTS_PERMANENT_A_CREATURE = new FilterCreaturePermanent("a creature an opponent controls");
static {
FILTER_OPPONENTS_PERMANENT_A_CREATURE.add(TargetController.OPPONENT.getControllerPredicate());
FILTER_OPPONENTS_PERMANENT_A_CREATURE.setLockedFilter(true);
}
public static final FilterPermanent FILTER_OPPONENTS_PERMANENT_ARTIFACT = new FilterPermanent("artifact an opponent controls");
static {
@ -447,7 +454,7 @@ public final class StaticFilters {
FILTER_CONTROLLED_ANOTHER_CREATURE.setLockedFilter(true);
}
public static final FilterControlledCreaturePermanent FILTER_CONTROLLED_UNTAPPED_CREATURES = new FilterControlledCreaturePermanent("untapped creature you control");
public static final FilterControlledCreaturePermanent FILTER_CONTROLLED_UNTAPPED_CREATURES = new FilterControlledCreaturePermanent("untapped creatures you control");
static {
FILTER_CONTROLLED_UNTAPPED_CREATURES.add(TappedPredicate.UNTAPPED);

View file

@ -16,7 +16,7 @@ import mage.game.Game;
public final class ConsumingBlobToken extends TokenImpl {
public ConsumingBlobToken() {
super("Ooze", "green Ooze creature token with \"This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1.\"");
super("Ooze", "green Ooze creature token with \"This creature's power is equal to the number of card types among cards in your graveyard and its toughness is equal to that number plus 1\".");
setOriginalExpansionSetCode("MID");
cardType.add(CardType.CREATURE);
subtype.add(SubType.OOZE);