so many text fixes

This commit is contained in:
Evan Kranzler 2017-10-06 22:00:06 -04:00
parent bc2bfba02a
commit 0075535650
70 changed files with 163 additions and 126 deletions

View file

@ -56,7 +56,7 @@ import java.util.*;
*/
public class AdmiralBeckettBrass extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other Pirates you control");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Pirates you control");
private static final FilterNonlandPermanent filter2 = new FilterNonlandPermanent("nonland permanent controlled by a player who was dealt combat damage by three or more Pirates this turn");
static {

View file

@ -49,7 +49,7 @@ import mage.filter.predicate.permanent.ControllerPredicate;
*/
public class BellowingAegisaur extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each other creature you control");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));

View file

@ -54,7 +54,7 @@ import mage.target.common.TargetCreaturePermanent;
*/
public class CaptivatingCrew extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("target creature an opponent controls");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
static {
filter.add(new ControllerPredicate(TargetController.OPPONENT));

View file

@ -53,7 +53,7 @@ import mage.players.Player;
public class DarienKingOfKjeldor extends CardImpl {
public DarienKingOfKjeldor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}{W}");
addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.SOLDIER);
@ -74,6 +74,7 @@ public class DarienKingOfKjeldor extends CardImpl {
return new DarienKingOfKjeldor(this);
}
}
class DarienKingOfKjeldorTriggeredAbility extends TriggeredAbilityImpl {
public DarienKingOfKjeldorTriggeredAbility() {
@ -105,7 +106,7 @@ class DarienKingOfKjeldorTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you are dealt damage, you may create that many 1/1 white Soldier creature tokens.";
return "Whenever you're dealt damage, you may create that many 1/1 white Soldier creature tokens.";
}
}
@ -133,4 +134,4 @@ class DarienKingOfKjeldorEffect extends OneShotEffect {
}
return false;
}
}
}

View file

@ -65,7 +65,7 @@ import mage.players.Player;
public class DralnusPet extends CardImpl {
public DralnusPet(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{U}");
this.subtype.add(SubType.SHAPESHIFTER);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
@ -77,7 +77,7 @@ public class DralnusPet extends CardImpl {
this.addAbility(new KickerAbility(kickerCosts));
// If Dralnu's Pet was kicked, it enters the battlefield with flying and with X +1/+1 counters on it, where X is the discarded card's converted mana cost.
Ability ability = new EntersBattlefieldAbility(new DralnusPetEffect(), KickedCondition.instance,
"If {this} was kicked, it enters the battlefield with flying and with X +1/+1 counters on it, where X is the discarded card's converted mana cost", "");
"If {this} was kicked, it enters the battlefield with flying and with X +1/+1 counters on it, where X is the discarded card's converted mana cost.", "");
ability.addEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield));
this.addAbility(ability);
}

View file

@ -84,7 +84,7 @@ public class DreamcallerSiren extends CardImpl {
ability.addTarget(new TargetNonlandPermanent(0, 2, false));
this.addAbility(new ConditionalTriggeredAbility(ability,
new PermanentsOnTheBattlefieldCondition(filter),
"when {this} enters the battlefield, if you control another Pirate, tap up to two nonland permanents."));
"when {this} enters the battlefield, if you control another Pirate, tap up to two target nonland permanents."));
}
public DreamcallerSiren(final DreamcallerSiren card) {

View file

@ -46,7 +46,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
*/
public class DroverOfTheMighty extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("a Dinosaur");
private static final FilterPermanent filter = new FilterPermanent("Dinosaur");
static {
filter.add(new SubtypePredicate(SubType.DINOSAUR));

View file

@ -76,7 +76,7 @@ public class FathomFleetCaptain extends CardImpl {
this.addAbility(new ConditionalTriggeredAbility(
new AttacksTriggeredAbility(new DoIfCostPaid(new CreateTokenEffect(new PirateToken()), new GenericManaCost(2)), false),
new PermanentsOnTheBattlefieldCondition(filter),
"Whenever {this} attacks, if you control another nontoken Pirate, you may pay {2}. If you do, creature a 2/2 black Pirate creature token with menace"));
"Whenever {this} attacks, if you control another nontoken Pirate, you may pay {2}. If you do, create a 2/2 black Pirate creature token with menace"));
}
public FathomFleetCaptain(final FathomFleetCaptain card) {

View file

@ -48,7 +48,7 @@ import mage.filter.predicate.mageobject.SupertypePredicate;
*/
public class FreyalisesRadiance extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent();
private static final FilterPermanent filter = new FilterPermanent("snow permanents");
static {
filter.add(new SupertypePredicate(SuperType.SNOW));

View file

@ -32,6 +32,7 @@ import mage.abilities.dynamicvalue.common.DomainValue;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.target.common.TargetCreaturePermanent;
@ -43,12 +44,12 @@ import mage.target.common.TargetCreaturePermanent;
public class GaeasMight extends CardImpl {
public GaeasMight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{G}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{G}");
// Domain - Target creature gets +1/+1 until end of turn for each basic land type among lands you control.
this.getSpellAbility().addEffect(new BoostTargetEffect(new DomainValue(), new DomainValue(), Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().setAbilityWord(AbilityWord.DOMAIN);
}
public GaeasMight(final GaeasMight card) {

View file

@ -50,7 +50,7 @@ public class HierophantsChalice extends CardImpl {
// When Hierophant's Chalice enters the battlefield, target opponent loses 1 life and you gain 1 life.
Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(1), false);
ability.addEffect(new GainLifeEffect(1));
ability.addEffect(new GainLifeEffect(1).setText("and you gain one life."));
Target target = new TargetOpponent();
ability.addTarget(target);
this.addAbility(ability);

View file

@ -74,7 +74,9 @@ public class HuatliDinosaurKnight extends CardImpl {
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(4));
// +2: Put two +1/+1 counters on up to one target Dinosaur you control.
Ability ability = new LoyaltyAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)), 2);
Ability ability = new LoyaltyAbility(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2))
.setText("Put two +1/+1 counters on up to one target Dinosaur you control."), 2
);
ability.addTarget(new TargetCreaturePermanent(0, 1, filter, false));
this.addAbility(ability);

View file

@ -40,7 +40,7 @@ import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.SuperType;
import static mage.filter.StaticFilters.FILTER_PERMANENT_CREATURES;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
/**
@ -61,11 +61,11 @@ public class JaceIngeniousMindMage extends CardImpl {
this.addAbility(new LoyaltyAbility(new DrawCardSourceControllerEffect(1), 1));
// +1: Untap all creatures you control.
this.addAbility(new LoyaltyAbility(new UntapAllControllerEffect(FILTER_PERMANENT_CREATURES), 1));
this.addAbility(new LoyaltyAbility(new UntapAllControllerEffect(StaticFilters.FILTER_PERMANENT_CREATURES), 1));
// -9: Gain control of up to three target creatures.
Ability ability = new LoyaltyAbility(new GainControlTargetEffect(Duration.Custom), -9);
ability.addTarget(new TargetCreaturePermanent(0, 3));
ability.addTarget(new TargetCreaturePermanent(0, 3, StaticFilters.FILTER_PERMANENT_CREATURES, false));
this.addAbility(ability);
}

View file

@ -77,7 +77,7 @@ public class JacesSentinel extends CardImpl {
ability.addEffect(new ConditionalContinuousEffect(
new CantBeBlockedSourceEffect(),
new PermanentsOnTheBattlefieldCondition(filter),
"and has can't be blocked"));
"and can't be blocked"));
this.addAbility(ability);
}

View file

@ -122,6 +122,6 @@ class JokulmorderTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you play an Island, you may untap {this}";
return "Whenever you play an Island, you may untap {this}.";
}
}

View file

@ -28,7 +28,6 @@
package mage.cards.k;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
@ -36,7 +35,6 @@ import mage.abilities.effects.common.AttachEffect;
import mage.abilities.effects.common.continuous.ControlEnchantedEffect;
import mage.abilities.costs.OrCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.MultipliedValue;
import mage.abilities.dynamicvalue.common.CountersSourceCount;
import mage.abilities.effects.common.LoseLifeSourceControllerEffect;
@ -76,7 +74,9 @@ public class KrovikanWhispers extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
// When Krovikan Whispers is put into a graveyard from the battlefield, you lose 2 life for each age counter on it.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))));
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))
.setText("you lose 2 life for each age counter on it.")
));
}
public KrovikanWhispers(final KrovikanWhispers card) {
@ -88,4 +88,3 @@ public class KrovikanWhispers extends CardImpl {
return new KrovikanWhispers(this);
}
}

View file

@ -57,7 +57,7 @@ import mage.target.common.TargetCreatureOrPlayer;
public class LightningStorm extends CardImpl {
public LightningStorm(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{R}{R}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{R}{R}");
// Lightning Storm deals X damage to target creature or player, where X is 3 plus the number of charge counters on it.
Effect effect = new DamageTargetEffect(new LightningStormCountCondition(CounterType.CHARGE));
@ -67,7 +67,7 @@ public class LightningStorm extends CardImpl {
// Discard a land card: Put two charge counters on Lightning Storm. You may choose a new target for it. Any player may activate this ability but only if Lightning Storm is on the stack.
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.STACK,
new LightningStormAddCounterEffect(),
new DiscardTargetCost(new TargetCardInHand(new FilterLandCard())));
new DiscardTargetCost(new TargetCardInHand(new FilterLandCard("a land card"))));
ability.setMayActivate(TargetController.ANY);
ability.addEffect(new InfoEffect("Any player may activate this ability but only if {this} is on the stack"));
this.addAbility(ability);

View file

@ -49,7 +49,7 @@ import mage.target.TargetSpell;
*/
public class LookoutsDispersal extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent();
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Pirate");
static {
filter.add(new SubtypePredicate(SubType.PIRATE));

View file

@ -49,7 +49,7 @@ import mage.target.common.TargetCreatureOrPlayer;
*/
public class MakeshiftMunitions extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature you control");
private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature");
static {
filter.add(Predicates.or(

View file

@ -59,18 +59,18 @@ public class MaliciousAdvice extends CardImpl {
}
public MaliciousAdvice(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{U}{B}");
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}{B}");
// Tap X target artifacts, creatures, and/or lands. You lose X life.
Effect effect = new TapTargetEffect();
effect.setText("Tap X target artifacts, creatures, and/or lands");
effect.setText("X target artifacts, creatures, and/or lands");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(new ManacostVariableValue()));
}
@Override
public void adjustTargets(Ability ability, Game game) {
if(ability instanceof SpellAbility) {
if (ability instanceof SpellAbility) {
ability.getTargets().clear();
ability.addTarget(new TargetPermanent(ability.getManaCostsToPay().getX(), filter));
}

View file

@ -61,7 +61,7 @@ public class MaraudingLooter extends CardImpl {
RaidCondition.instance,
"<i>Raid</i> &mdash; At the beginning of your end step, "
+ "if you attacked with a creature this turn, "
+ "you may draw a card. If you do, discard a card");
+ "you may draw a card. If you do, discard a card.");
this.addAbility(ability, new PlayerAttackedWatcher());
}

View file

@ -30,7 +30,6 @@ package mage.cards.m;
import java.util.UUID;
import mage.abilities.Mode;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -57,7 +56,7 @@ public class MarchOfTheDrowned extends CardImpl {
// Choose one
// &amp;bull; Return target creature card from your graveyard to your hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard")));
// &amp;bull; Return two target Pirate cards from your graveyard to your hand.
Mode mode = new Mode();

View file

@ -46,7 +46,7 @@ import mage.constants.SubType;
public class MercurialKite extends CardImpl {
public MercurialKite(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}");
this.subtype.add(SubType.BIRD);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
@ -56,7 +56,7 @@ public class MercurialKite extends CardImpl {
// Whenever Mercurial Kite deals combat damage to a creature, tap that creature. That creature doesn't untap during its controller's next untap step.
Ability ability;
ability = new DealsDamageToACreatureTriggeredAbility(new TapTargetEffect("that creature"), true, false, true);
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect(". That creature"));
ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("That creature"));
this.addAbility(ability);
}

View file

@ -61,9 +61,9 @@ public class MinotaurTactician extends CardImpl {
filterBlue.add(new ColorPredicate(ObjectColor.BLUE));
}
static final private String ruleWhite = "{this} gets +1/+1 as long as you control another white creature";
static final private String ruleWhite = "{this} gets +1/+1 as long as you control a white creature";
static final private String ruleBlue = "{this} gets +1/+1 as long as you control another blue creature";
static final private String ruleBlue = "{this} gets +1/+1 as long as you control a blue creature";
public MinotaurTactician(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");

View file

@ -58,7 +58,7 @@ public class PhyrexianEtchings extends CardImpl {
// When Phyrexian Etchings is put into a graveyard from the battlefield, you lose 2 life for each age counter on it.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new LoseLifeSourceControllerEffect(new MultipliedValue(new CountersSourceCount(CounterType.AGE), 2))
.setText("When {this} is put into a graveyard from the battlefield, you lose 2 life for each age counter on it")
.setText("you lose 2 life for each age counter on it")
));
}

View file

@ -100,7 +100,7 @@ class PhyrexianTyrannyTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever a player draws a card, that player loses 2 life unless he or she pays {2}";
return "Whenever a player draws a card, that player loses 2 life unless he or she pays {2}.";
}
}

View file

@ -59,7 +59,7 @@ import mage.target.common.TargetCardInLibrary;
*/
public class PriestOfTheWakeningSun extends CardImpl {
private static final FilterCard filter = new FilterCard("a Dinosaur card");
private static final FilterCard filter = new FilterCard("Dinosaur card");
static {
filter.add(new SubtypePredicate(SubType.DINOSAUR));

View file

@ -58,7 +58,7 @@ public class RaidersWake extends CardImpl {
// Raid At the beginning of your end step, if you attacked with a creature this turn, target opponent discards a card.
Ability ability = new ConditionalTriggeredAbility(
new BeginningOfEndStepTriggeredAbility(new DiscardTargetEffect(1), TargetController.YOU, false), RaidCondition.instance,
"<i>Raid</i> - At the beginning of your end step, if you attacked with a creature this turn, target opponent discards a card");
"<i>Raid</i> - At the beginning of your end step, if you attacked with a creature this turn, target opponent discards a card.");
ability.addTarget(new TargetOpponent());
this.addAbility(ability, new PlayerAttackedWatcher());
}

View file

@ -45,7 +45,7 @@ import mage.target.common.TargetControlledPermanent;
*/
public class RavenGuildInitiate extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Bird you control");
private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Bird");
static {
filter.add(new SubtypePredicate(SubType.BIRD));

View file

@ -45,7 +45,7 @@ import mage.filter.predicate.mageobject.ColorPredicate;
/**
*
* @author LoneFox
*
*/
public class RazingSnidd extends CardImpl {
@ -56,7 +56,7 @@ public class RazingSnidd extends CardImpl {
}
public RazingSnidd(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{R}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{R}");
this.subtype.add(SubType.BEAST);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
@ -64,7 +64,7 @@ public class RazingSnidd extends CardImpl {
// When Razing Snidd enters the battlefield, return a black or red creature you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter), false));
// When Razing Snidd enters the battlefield, each player sacrifices a land.
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeAllEffect(1, new FilterControlledLandPermanent("a land")), false));
this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeAllEffect(1, new FilterControlledLandPermanent("land")), false));
}
public RazingSnidd(final RazingSnidd card) {

View file

@ -52,7 +52,7 @@ import mage.game.permanent.token.DinosaurToken;
*/
public class RegisaurAlpha extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("other Dinosaurss you control");
private static final FilterPermanent filter = new FilterPermanent("Dinosaurs");
static {
filter.add(new SubtypePredicate(SubType.DINOSAUR));

View file

@ -53,7 +53,7 @@ import mage.game.permanent.token.TreasureToken;
*/
public class RevelInRiches extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature an opponent controls");
private static final FilterPermanent filter2 = new FilterPermanent("Treasures");
static {

View file

@ -60,7 +60,7 @@ public class RiggingRunner extends CardImpl {
// Raid Rigging Runner enters the battlefield with a +1/+1 counter on it if you attacked with a creature this turn.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(1), false),
RaidCondition.instance,
"<i>Raid</i> &mdash; {this} enters the battlefield with a +1/+1 counter on it if you attacked with a creature this turn",
"<i>Raid</i> &mdash; {this} enters the battlefield with a +1/+1 counter on it if you attacked with a creature this turn.",
"{this} enters the battlefield with a +1/+1 counter"),
new PlayerAttackedWatcher());
}

View file

@ -87,7 +87,12 @@ public class RimefeatherOwl extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter2), Duration.EndOfGame)));
// {1}{snow}: Put an ice counter on target permanent.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.ICE.createInstance()), new ManaCostsImpl("{1}{S}"));
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new AddCountersTargetEffect(CounterType.ICE.createInstance())
.setText("Put an ice counter on target permanent."),
new ManaCostsImpl("{1}{S}")
);
ability.addTarget(new TargetPermanent());
this.addAbility(ability);

View file

@ -53,7 +53,7 @@ import mage.target.common.TargetControlledPermanent;
*/
public class RuthlessKnave extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledPermanent("three three Treasures");
private static final FilterControlledPermanent filter = new FilterControlledPermanent("three Treasures");
static {
filter.add(new SubtypePredicate(SubType.TREASURE));

View file

@ -48,7 +48,7 @@ import mage.target.common.TargetCreaturePermanent;
public class SamitePilgrim extends CardImpl {
public SamitePilgrim(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.CLERIC);
this.power = new MageInt(1);
@ -57,6 +57,7 @@ public class SamitePilgrim extends CardImpl {
// Domain - {T}: Prevent the next X damage that would be dealt to target creature this turn, where X is the number of basic land types among lands you control.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SamitePilgrimPreventDamageToTargetEffect(), new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
ability.setAbilityWord(AbilityWord.DOMAIN);
this.addAbility(ability);
}
@ -72,7 +73,6 @@ public class SamitePilgrim extends CardImpl {
class SamitePilgrimPreventDamageToTargetEffect extends PreventionEffectImpl {
public SamitePilgrimPreventDamageToTargetEffect() {
super(Duration.EndOfTurn, Integer.MAX_VALUE, false, true);
staticText = "Prevent the next X damage that would be dealt to target creature this turn, where X is the number of basic land types among lands you control.";

View file

@ -47,7 +47,7 @@ import mage.filter.predicate.mageobject.SubtypePredicate;
*/
public class SanctumSeeker extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a Vampire you control attacks");
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Vampire you control");
static {
filter.add(new SubtypePredicate(SubType.VAMPIRE));

View file

@ -58,7 +58,7 @@ public class ShipwreckLooter extends CardImpl {
Ability ability = new ConditionalTriggeredAbility(
new EntersBattlefieldTriggeredAbility(new DrawDiscardControllerEffect(1, 1, true)),
RaidCondition.instance,
"<i>Raid</i> - When {this} enters the battlefield,if you attacked with a creature this turn, you may draw a card. If you do, discard a card.");
"<i>Raid</i> - When {this} enters the battlefield, if you attacked with a creature this turn, you may draw a card. If you do, discard a card.");
this.addAbility(ability, new PlayerAttackedWatcher());
}

View file

@ -69,7 +69,7 @@ class SirensRuseEffect extends ExileTargetForSourceEffect {
SirensRuseEffect() {
super();
this.staticText = "Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card.";
this.staticText = "Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card.";
}
SirensRuseEffect(final SirensRuseEffect effect) {

View file

@ -37,7 +37,7 @@ import mage.util.CardUtil;
public class SkyshipWeatherlight extends CardImpl {
public SkyshipWeatherlight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
addSuperType(SuperType.LEGENDARY);
// When Skyship Weatherlight enters the battlefield, search your library for any number of artifact and/or creature cards and exile them. Then shuffle your library.
@ -73,7 +73,7 @@ class SkyshipWeatherlightEffect extends SearchEffect {
public SkyshipWeatherlightEffect() {
super(new TargetCardInLibrary(0, Integer.MAX_VALUE, filter), Outcome.Neutral);
this.staticText = "search your library for any number of artifact and/or creature cards and remove them from the game. Then shuffle your library";
this.staticText = "search your library for any number of artifact and/or creature cards and exile them. Then shuffle your library";
}
@ -114,7 +114,7 @@ class SkyshipWeatherlightEffect2 extends OneShotEffect {
public SkyshipWeatherlightEffect2() {
super(Outcome.ReturnToHand);
this.staticText = "Choose a card at random that was removed from the game with {this}. Put that card into your hand";
this.staticText = "Choose a card at random that was exiled with {this}. Put that card into its owner's hand";
}
public SkyshipWeatherlightEffect2(final SkyshipWeatherlightEffect2 effect) {

View file

@ -58,7 +58,7 @@ public class SnappingSailback extends CardImpl {
// Enrage Whenever Snapping Sailback is dealt damage, put a +1/+1 counter on it.
this.addAbility(new DealtDamageToSourceTriggeredAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))
.setText("put a +1/+1 counter on it"), false));
.setText("put a +1/+1 counter on it"), false, true));
}
public SnappingSailback(final SnappingSailback card) {

View file

@ -69,7 +69,7 @@ class SpellSwindleEffect extends OneShotEffect {
public SpellSwindleEffect() {
super(Outcome.Detriment);
staticText = "Counter target spell. Create X colorless Treasure artifact tokens, where X is that spell's converted mana cost. "
+ "They have \"{T}, Sacrifice this artifact: Add one mana of any color to your mana pool";
+ "They have \"{T}, Sacrifice this artifact: Add one mana of any color to your mana pool\"";
}
public SpellSwindleEffect(final SpellSwindleEffect effect) {

View file

@ -47,7 +47,7 @@ public class StarOfExtinction extends CardImpl {
// Destroy target land. Star of Extinction deals 20 damage to each creature and each planeswalker.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addEffect(new DamageAllEffect(20, new FilterCreatureOrPlaneswalkerPermanent("each creature and each planeswalker")));
this.getSpellAbility().addEffect(new DamageAllEffect(20, new FilterCreatureOrPlaneswalkerPermanent("creature and each planeswalker")));
this.getSpellAbility().addTarget(new TargetLandPermanent());
}

View file

@ -105,6 +105,16 @@ class SunbirdsInvocationTriggeredAbility extends SpellCastControllerTriggeredAbi
public SunbirdsInvocationTriggeredAbility copy() {
return new SunbirdsInvocationTriggeredAbility(this);
}
@Override
public String getRule() {
return "Whenever you cast a spell from your hand, "
+ "reveal the top X cards of your library, "
+ "where X is that spell's converted mana cost. "
+ "You may cast a card revealed this way with "
+ "converted mana cost X or less without paying its mana cost."
+ " Put the rest on the bottom of your library in a random order.";
}
}
class SunbirdsInvocationEffect extends OneShotEffect {

View file

@ -36,7 +36,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.StaticFilters;
import mage.filter.predicate.mageobject.ColorPredicate;
import mage.target.common.TargetCardInHand;
@ -47,18 +47,19 @@ import mage.target.common.TargetCardInHand;
public class Sunscour extends CardImpl {
private static final FilterCard filter = new FilterCard("two white cards");
static {
filter.add(new ColorPredicate(ObjectColor.WHITE));
}
public Sunscour(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{W}{W}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{W}{W}");
// You may exile two white cards from your hand rather than pay Sunscour's mana cost.
this.addAbility(new AlternativeCostSourceAbility(new ExileFromHandCost(new TargetCardInHand(2, filter))));
// Destroy all creatures.
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterCreaturePermanent()));
this.getSpellAbility().addEffect(new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES));
}
public Sunscour(final Sunscour card) {

View file

@ -44,12 +44,12 @@ public class SurgingAether extends CardImpl {
public SurgingAether(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
// Ripple 4
this.addAbility(new RippleAbility(4));
// Return target permanent to its owner's hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent());
// Ripple 4
this.addAbility(new RippleAbility(4));
}
public SurgingAether(final SurgingAether card) {

View file

@ -54,7 +54,7 @@ public class TempestCaller extends CardImpl {
this.toughness = new MageInt(3);
// When Tempest Caller enters the battlefield, tap all creatures target opponent controls.
Ability ability = new EntersBattlefieldTriggeredAbility(new TapAllTargetPlayerControlsEffect(new FilterCreaturePermanent("creatures target opponent controls")));
Ability ability = new EntersBattlefieldTriggeredAbility(new TapAllTargetPlayerControlsEffect(new FilterCreaturePermanent("creatures")));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
}

View file

@ -43,13 +43,12 @@ import mage.constants.CardType;
public class UrzasGuilt extends CardImpl {
public UrzasGuilt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}{B}");
// Each player draws two cards, then discards three cards, then loses 4 life.
this.getSpellAbility().addEffect(new DrawCardAllEffect(2));
Effect effect = new DiscardEachPlayerEffect(3, false);
effect.setText("then discards three cards");
effect.setText("then discards three cards,");
this.getSpellAbility().addEffect(effect);
effect = new LoseLifeAllPlayersEffect(4);
effect.setText("then loses 4 life");

View file

@ -128,6 +128,6 @@ class DrawCardIfCreatureTypeAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever you cast a creature spell of the chosen type, draw a card";
return "Whenever you cast a creature spell of the chosen type, draw a card.";
}
}

View file

@ -50,7 +50,7 @@ import mage.constants.Zone;
public class VeldraneOfSengir extends CardImpl {
public VeldraneOfSengir(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{B}{B}");
addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.ROGUE);
@ -58,8 +58,8 @@ public class VeldraneOfSengir extends CardImpl {
this.toughness = new MageInt(5);
// {1}{B}{B}: Veldrane of Sengir gets -3/-0 and gains forestwalk until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(-3, -0, Duration.EndOfTurn), new ManaCostsImpl("{1}{B}{B}"));
ability.addEffect(new GainAbilitySourceEffect(new ForestwalkAbility(false), Duration.EndOfTurn));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(-3, -0, Duration.EndOfTurn).setText("{this} gets -3/-0"), new ManaCostsImpl("{1}{B}{B}"));
ability.addEffect(new GainAbilitySourceEffect(new ForestwalkAbility(false), Duration.EndOfTurn).setText("and gains forestwalk until end of turn"));
this.addAbility(ability);
}

View file

@ -59,7 +59,7 @@ public class VerdantSunsAvatar extends CardImpl {
this.power = new MageInt(5);
this.toughness = new MageInt(5);
// When Verdant Sun's Avatar or another creature enters the battlefield under your control, you gain life equal to that creature's toughness.
// Whenever Verdant Sun's Avatar or another creature enters the battlefield under your control, you gain life equal to that creature's toughness.
this.addAbility(new VerdantSunsAvatarTriggeredAbility());
}
@ -104,7 +104,7 @@ class VerdantSunsAvatarTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "When {this} or another creature enters the battlefield under your control, " + super.getRule();
return "Whenever {this} or another creature enters the battlefield under your control, " + super.getRule();
}
@Override

View file

@ -90,7 +90,7 @@ class VraskaRelicSeekerDestroyEffect extends OneShotEffect {
VraskaRelicSeekerDestroyEffect() {
super(Outcome.Benefit);
this.staticText = "Destroy target artifact, creature, or enchantment. Create a colorless Treasure artifact token with \"{T}, Sacrfice this artifact. Add one mana of any color to your mana pool.\"";
this.staticText = "Destroy target artifact, creature, or enchantment. Create a colorless Treasure artifact token with \"{T}, Sacrifice this artifact. Add one mana of any color to your mana pool.\"";
}
VraskaRelicSeekerDestroyEffect(final VraskaRelicSeekerDestroyEffect effect) {

View file

@ -62,8 +62,14 @@ public class WakerOfTheWilds extends CardImpl {
this.toughness = new MageInt(3);
// {X}{G}{G}: Put X +1/+1 counters on target land you control. That land becomes a 0/0 Elemental creature with haste that's still a land.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), new ManacostVariableValue()), new ManaCostsImpl("{X}{G}{G}"));
Ability ability = new SimpleActivatedAbility(
Zone.BATTLEFIELD,
new AddCountersTargetEffect(
CounterType.P1P1.createInstance(0),
new ManacostVariableValue()
).setText("Put X +1/+1 counters on target land you control."),
new ManaCostsImpl("{X}{G}{G}")
);
Effect effect = new BecomesCreatureTargetEffect(new WallOfResurgenceToken(), false, true, Duration.Custom);
effect.setText("That land becomes a 0/0 Elemental creature with haste. It's still a land");
ability.addEffect(effect);

View file

@ -69,7 +69,7 @@ public class WaterspoutElemental extends CardImpl {
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandFromBattlefieldAllEffect(filter));
ability.addEffect(new SkipNextTurnSourceEffect());
this.addAbility(new ConditionalTriggeredAbility(ability, KickedCondition.instance,
"When {this} enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn"));
"When {this} enters the battlefield, if it was kicked, return all other creatures to their owners' hands and you skip your next turn."));
}
public WaterspoutElemental(final WaterspoutElemental card) {

View file

@ -47,7 +47,7 @@ public class CantBlockAbility extends SimpleStaticAbility {
@Override
public String getRule() {
return "{this} can't block";
return "{this} can't block.";
}
@Override

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.condition.common;
import mage.abilities.Ability;
@ -45,4 +44,8 @@ public enum RaidCondition implements Condition {
PlayerAttackedWatcher watcher = (PlayerAttackedWatcher) game.getState().getWatchers().get(PlayerAttackedWatcher.class.getSimpleName());
return watcher != null && watcher.getNumberOfAttackersCurrentTurn(source.getControllerId()) > 0;
}
public String toString() {
return "if you attacked with a creature this turn";
}
}

View file

@ -80,7 +80,6 @@ public class CantBeRegeneratedSourceEffect extends ContinuousRuleModifyingEffect
StringBuilder sb = new StringBuilder();
sb.append("{this} can't be regenerated");
if (!duration.toString().isEmpty()) {
sb.append(' ');
if (duration == Duration.EndOfTurn) {
sb.append(" this turn");
} else {

View file

@ -243,7 +243,7 @@ public class LookLibraryControllerEffect extends OneShotEffect {
sb.append(" cards ");
}
sb.append("of your Library");
sb.append("of your library");
if (numberLook == 0) {
sb.append(", where {X} is the number of cards ").append(numberOfCards.getMessage());
}

View file

@ -31,6 +31,7 @@ import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.PreventionEffectImpl;
import mage.constants.Duration;
import static mage.constants.Duration.EndOfTurn;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
@ -98,10 +99,19 @@ public class PreventAllDamageByAllPermanentsEffect extends PreventionEffectImpl
sb.append("combat ");
}
sb.append("damage ");
sb.append(duration.toString());
if (filter != null) {
sb.append(" dealt by ");
sb.append(filter.getMessage());
if (duration == EndOfTurn) {
if (filter != null) {
sb.append(filter.getMessage());
sb.append(" would deal this turn");
} else {
sb.append("that would be dealt this turn");
}
} else {
sb.append(duration.toString());
if (filter != null) {
sb.append(" dealt by ");
sb.append(filter.getMessage());
}
}
return sb.toString();
}

View file

@ -31,6 +31,7 @@ import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.PreventionEffectImpl;
import mage.constants.Duration;
import static mage.constants.Duration.EndOfTurn;
import mage.game.Game;
import mage.game.events.GameEvent;
@ -74,7 +75,12 @@ public class PreventDamageToSourceEffect extends PreventionEffectImpl {
} else {
sb.append("Prevent the next ").append(amountToPrevent).append(" damage that would be dealt to ");
}
sb.append("{source} ").append(duration.toString());
sb.append("{source} ");
if (duration == EndOfTurn) {
sb.append("this turn");
} else {
sb.append(duration.toString());
}
return sb.toString();
}
}

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common;
import java.util.List;
@ -60,10 +59,10 @@ public class TapAllTargetPlayerControlsEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(targetPointer.getFirst(game, source));
if(player != null) {
if (player != null) {
filter.add(new ControllerIdPredicate(player.getId()));
List<Permanent> permanents = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game);
for(Permanent p : permanents) {
for (Permanent p : permanents) {
p.tap(game);
}
return true;
@ -78,9 +77,9 @@ public class TapAllTargetPlayerControlsEffect extends OneShotEffect {
@Override
public String getText(Mode mode) {
if(staticText != null && !staticText.isEmpty()) {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
return "tap all " + filter.getMessage() + " target player controls";
return "tap all " + filter.getMessage() + " target " + mode.getTargets().get(0).getMessage() + " controls";
}
}

View file

@ -31,6 +31,7 @@ import mage.abilities.Ability;
import mage.abilities.effects.RestrictionEffect;
import mage.constants.AttachmentType;
import mage.constants.Duration;
import static mage.constants.Duration.EndOfTurn;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -61,7 +62,9 @@ public class CantBlockAttachedEffect extends RestrictionEffect {
if (!filter.getMessage().equals("creature")) {
sb.append(' ').append(filter.getMessage());
}
if (!duration.toString().isEmpty()) {
if (duration == EndOfTurn) {
sb.append("this turn");
} else if (!duration.toString().isEmpty()) {
sb.append(' ').append(duration.toString());
}
staticText = sb.toString();

View file

@ -26,7 +26,7 @@ public class BecomesChosenCreatureTypeTargetEffect extends OneShotEffect {
super(Outcome.BoostCreature);
this.nonWall = nonWall;
if(nonWall) {
staticText = "choose a creature type other than wall. Target creature becomes that type until end of turn";
staticText = "choose a creature type other than Wall. Target creature becomes that type until end of turn";
}
else {
staticText = "target creature becomes the creature type of your choice until end of turn";

View file

@ -138,7 +138,6 @@ public class BecomesCreatureAllEffect extends ContinuousEffectImpl {
if (duration.toString() != null && !duration.toString().isEmpty()) {
sb.append(duration.toString()).append(", ");
}
sb.append("all ");
sb.append(filter.getMessage());
if (duration.toString() != null && duration.toString().isEmpty()) {
sb.append(" are ");
@ -147,7 +146,7 @@ public class BecomesCreatureAllEffect extends ContinuousEffectImpl {
}
sb.append(token.getDescription());
if (type != null && !type.isEmpty()) {
sb.append(". They are still ").append(type);
sb.append(". They're still ").append(type);
}
return sb.toString();
}

View file

@ -53,7 +53,7 @@ public class GainAbilityControlledSpellsEffect extends ContinuousEffectImpl {
super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility);
this.ability = ability;
this.filter = filter;
staticText = filter.getMessage() + " you cast have " + ability.getRule();
staticText = filter.getMessage() + " you cast have " + ability.getRule() + '.';
}
public GainAbilityControlledSpellsEffect(final GainAbilityControlledSpellsEffect effect) {

View file

@ -36,6 +36,7 @@ import mage.filter.FilterPermanent;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.util.CardUtil;
/**
*
@ -82,7 +83,7 @@ public class AddCountersAllEffect extends OneShotEffect {
StringBuilder sb = new StringBuilder();
sb.append("put ");
if (counter.getCount() > 1) {
sb.append(Integer.toString(counter.getCount())).append(' ').append(counter.getName().toLowerCase()).append(" counters on each ");
sb.append(CardUtil.numberToText(counter.getCount(), "a")).append(' ').append(counter.getName().toLowerCase()).append(" counters on each ");
} else {
sb.append("a ").append(counter.getName().toLowerCase()).append(" counter on each ");
}

View file

@ -57,7 +57,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
super(Outcome.Benefit);
this.filter = filter;
this.forceToSearchBoth = forceToSearchBoth;
staticText = "search your library and" + (forceToSearchBoth ? "" : "/or ") + " graveyard for a card named " + filter.getMessage()
staticText = "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle your library" : "If you search your library this way, shuffle it");
}

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.keyword;
import mage.constants.Zone;
@ -40,7 +39,7 @@ import java.io.ObjectStreamException;
*/
public class DeathtouchAbility extends StaticAbility implements MageSingleton {
private static final DeathtouchAbility instance = new DeathtouchAbility();
private static final DeathtouchAbility instance = new DeathtouchAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
@ -56,7 +55,7 @@ public class DeathtouchAbility extends StaticAbility implements MageSingleton {
@Override
public String getRule() {
return "Deathtouch <i>(Any amount of damage this deals to a creature is enough to destroy it.)</i>";
return "deathtouch";
}
@Override
@ -64,6 +63,4 @@ public class DeathtouchAbility extends StaticAbility implements MageSingleton {
return instance;
}
}

View file

@ -24,11 +24,9 @@
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
*/
package mage.abilities.keyword;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.abilities.Ability;
import mage.abilities.EvasionAbility;
@ -45,7 +43,7 @@ import java.io.ObjectStreamException;
*/
public class FearAbility extends EvasionAbility implements MageSingleton {
private static final FearAbility instance = new FearAbility();
private static final FearAbility instance = new FearAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
@ -61,7 +59,7 @@ public class FearAbility extends EvasionAbility implements MageSingleton {
@Override
public String getRule() {
return "Fear";
return "fear";
}
@Override
@ -102,4 +100,4 @@ class FearEffect extends RestrictionEffect implements MageSingleton {
return new FearEffect(this);
}
}
}

View file

@ -32,15 +32,15 @@ import mage.constants.Zone;
import mage.abilities.StaticAbility;
/**
* OLD RULES:
* 700.4. If a permanent is indestructible, rules and effects can't destroy it. (See rule 701.6, "Destroy.")
* Such permanents are not destroyed by lethal damage, and they ignore the lethal-damage state-based action
* (see rule 704.5g). Rules or effects may cause an indestructible permanent to be sacrificed, put into a
* graveyard, or exiled. #
* OLD RULES: 700.4. If a permanent is indestructible, rules and effects can't
* destroy it. (See rule 701.6, "Destroy.") Such permanents are not destroyed by
* lethal damage, and they ignore the lethal-damage state-based action (see rule
* 704.5g). Rules or effects may cause an indestructible permanent to be
* sacrificed, put into a graveyard, or exiled. #
*
* 700.4a Although the text "[This permanent] is indestructible" is an ability, actually being
* indestructible is neither an ability nor a characteristic. It's just something that's true
* about a permanent.
* 700.4a Although the text "[This permanent] is indestructible" is an ability,
* actually being indestructible is neither an ability nor a characteristic.
* It's just something that's true about a permanent.
*
* NEW RULES
*
@ -48,10 +48,9 @@ import mage.abilities.StaticAbility;
*
*
*
*
*
* @author BetaSteward_at_googlemail.com
*/
public class IndestructibleAbility extends StaticAbility {
private static final IndestructibleAbility instance;
@ -79,7 +78,7 @@ public class IndestructibleAbility extends StaticAbility {
@Override
public String getRule() {
return "Indestructible";
return "indestructible";
}
}