diff --git a/Mage.Sets/src/mage/cards/a/AgelessSentinels.java b/Mage.Sets/src/mage/cards/a/AgelessSentinels.java
index fe9bd4e47b5..95e308c9f3e 100644
--- a/Mage.Sets/src/mage/cards/a/AgelessSentinels.java
+++ b/Mage.Sets/src/mage/cards/a/AgelessSentinels.java
@@ -87,7 +87,7 @@ public class AgelessSentinels extends CardImpl {
public AgelessSentinelsEffect() {
super(Duration.WhileOnBattlefield, Outcome.BecomeCreature);
- staticText = "it becomes a Bird Giant, ";
+ staticText = "it becomes a Bird Giant,";
}
public AgelessSentinelsEffect(final AgelessSentinelsEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/a/AlphaStatus.java b/Mage.Sets/src/mage/cards/a/AlphaStatus.java
index 3e106f9fabb..9701f4a5231 100644
--- a/Mage.Sets/src/mage/cards/a/AlphaStatus.java
+++ b/Mage.Sets/src/mage/cards/a/AlphaStatus.java
@@ -109,6 +109,6 @@ class AlphaStatusDynamicValue implements DynamicValue {
@Override
public String getMessage() {
- return "each other creature on the battlefield that shares a creature type with it";
+ return "other creature on the battlefield that shares a creature type with it";
}
}
diff --git a/Mage.Sets/src/mage/cards/a/AncientOoze.java b/Mage.Sets/src/mage/cards/a/AncientOoze.java
index b1d652fff1d..e6b1542c564 100644
--- a/Mage.Sets/src/mage/cards/a/AncientOoze.java
+++ b/Mage.Sets/src/mage/cards/a/AncientOoze.java
@@ -52,15 +52,17 @@ import mage.game.permanent.Permanent;
public class AncientOoze extends CardImpl {
public AncientOoze(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}");
this.subtype.add(SubType.OOZE);
- this.color.setGreen(true);
+ this.color.setGreen(true);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
- // Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
- this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)));
+ // Ancient Ooze's power and toughness are each equal to the total converted mana cost of other creatures you control.
+ this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new AncientOozePowerToughnessValue(), Duration.EndOfGame)
+ .setText("{this}'s power and toughness are each equal to the total converted mana cost of other creatures you control.")
+ ));
}
public AncientOoze(final AncientOoze card) {
@@ -74,12 +76,12 @@ public class AncientOoze extends CardImpl {
}
class AncientOozePowerToughnessValue implements DynamicValue {
-
+
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
int value = 0;
- for(Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)){
- if(creature != null && !sourceAbility.getSourceId().equals(creature.getId())){
+ for (Permanent creature : game.getBattlefield().getActivePermanents(new FilterControlledCreaturePermanent(), sourceAbility.getControllerId(), game)) {
+ if (creature != null && !sourceAbility.getSourceId().equals(creature.getId())) {
value += creature.getConvertedManaCost();
}
}
diff --git a/Mage.Sets/src/mage/cards/b/BlackCarriage.java b/Mage.Sets/src/mage/cards/b/BlackCarriage.java
index 98e36a38c46..1c6908c9afa 100644
--- a/Mage.Sets/src/mage/cards/b/BlackCarriage.java
+++ b/Mage.Sets/src/mage/cards/b/BlackCarriage.java
@@ -52,21 +52,21 @@ import mage.target.common.TargetControlledCreaturePermanent;
public class BlackCarriage extends CardImpl {
public BlackCarriage(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}{B}");
this.subtype.add(SubType.HORSE);
this.power = new MageInt(4);
this.toughness = new MageInt(4);
// Trample
this.addAbility(TrampleAbility.getInstance());
-
+
// Black Carriage doesn't untap during your untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
-
+
// Sacrifice a creature: Untap Black Carriage. Activate this ability only during your upkeep.
- this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
+ this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD,
new UntapSourceEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("a creature"))),
- new IsStepCondition(PhaseStep.UPKEEP), null));
+ new IsStepCondition(PhaseStep.UPKEEP), "Sacrifice a creature: Untap {this}. Activate this ability only during your upkeep."));
}
public BlackCarriage(final BlackCarriage card) {
diff --git a/Mage.Sets/src/mage/cards/b/BrownOuphe.java b/Mage.Sets/src/mage/cards/b/BrownOuphe.java
index 0e8014f0325..1810831dd07 100644
--- a/Mage.Sets/src/mage/cards/b/BrownOuphe.java
+++ b/Mage.Sets/src/mage/cards/b/BrownOuphe.java
@@ -53,7 +53,7 @@ import java.util.UUID;
*/
public class BrownOuphe extends CardImpl {
- private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
+ private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
static {
filter.add(new ArtifactSourcePredicate());
diff --git a/Mage.Sets/src/mage/cards/c/CabalConditioning.java b/Mage.Sets/src/mage/cards/c/CabalConditioning.java
index bd96b2cd0ff..5ac53f18b1b 100644
--- a/Mage.Sets/src/mage/cards/c/CabalConditioning.java
+++ b/Mage.Sets/src/mage/cards/c/CabalConditioning.java
@@ -42,10 +42,12 @@ import mage.target.TargetPlayer;
public class CabalConditioning extends CardImpl {
public CabalConditioning(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{6}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{6}{B}");
// Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.
- this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue()));
+ this.getSpellAbility().addEffect(new DiscardTargetEffect(new HighestConvertedManaCostValue())
+ .setText("Any number of target players each discard a number of cards equal to the highest converted mana cost among permanents you control.")
+ );
this.getSpellAbility().addTarget(new TargetPlayer(0, Integer.MAX_VALUE, false));
}
diff --git a/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java b/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java
index f8c2be4edd7..5022878c6fb 100644
--- a/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java
+++ b/Mage.Sets/src/mage/cards/c/ClergyOfTheHolyNimbus.java
@@ -53,7 +53,7 @@ import mage.game.permanent.Permanent;
public class ClergyOfTheHolyNimbus extends CardImpl {
public ClergyOfTheHolyNimbus(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{W}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.CLERIC);
this.power = new MageInt(1);
@@ -61,7 +61,7 @@ public class ClergyOfTheHolyNimbus extends CardImpl {
// If Clergy of the Holy Nimbus would be destroyed, regenerate it.
this.addAbility(new SimpleStaticAbility(Zone.ALL, new ClergyOfTheHolyNimbusReplacementEffect()));
-
+
// {1}: Clergy of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability.
this.addAbility(new ActivateOnlyByOpponentActivatedAbility(Zone.BATTLEFIELD, new CantBeRegeneratedSourceEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}")));
}
@@ -90,7 +90,7 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
Permanent ClergyOfTheHolyNimbus = game.getPermanent(event.getTargetId());
- if (ClergyOfTheHolyNimbus != null
+ if (ClergyOfTheHolyNimbus != null
&& event.getAmount() == 0) { // 1=noRegen
if (ClergyOfTheHolyNimbus.regenerate(source.getSourceId(), game)) {
game.informPlayers(source.getSourceObject(game).getName() + " has been regenerated.");
@@ -116,4 +116,4 @@ class ClergyOfTheHolyNimbusReplacementEffect extends ReplacementEffectImpl {
return new ClergyOfTheHolyNimbusReplacementEffect(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/cards/c/CoalitionFlag.java b/Mage.Sets/src/mage/cards/c/CoalitionFlag.java
index 811512b53e5..a5e996cd2d6 100644
--- a/Mage.Sets/src/mage/cards/c/CoalitionFlag.java
+++ b/Mage.Sets/src/mage/cards/c/CoalitionFlag.java
@@ -45,7 +45,7 @@ import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.target.TargetPermanent;
-import mage.target.common.TargetCreaturePermanent;
+import mage.target.common.TargetControlledCreaturePermanent;
/**
*
@@ -59,7 +59,7 @@ public class CoalitionFlag extends CardImpl {
this.subtype.add(SubType.AURA);
// Enchant creature you control
- TargetPermanent auraTarget = new TargetCreaturePermanent();
+ TargetPermanent auraTarget = new TargetControlledCreaturePermanent();
this.getSpellAbility().addTarget(auraTarget);
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
Ability ability = new EnchantAbility(auraTarget.getTargetName());
diff --git a/Mage.Sets/src/mage/cards/d/DaughterOfAutumn.java b/Mage.Sets/src/mage/cards/d/DaughterOfAutumn.java
index 07fa354c4a6..464864afe58 100644
--- a/Mage.Sets/src/mage/cards/d/DaughterOfAutumn.java
+++ b/Mage.Sets/src/mage/cards/d/DaughterOfAutumn.java
@@ -71,6 +71,7 @@ public class DaughterOfAutumn extends CardImpl {
// {W}: The next 1 damage that would be dealt to target white creature this turn is dealt to Daughter of Autumn instead.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DaughterOfAutumnPreventDamageTargetEffect(Duration.EndOfTurn, 1), new ManaCostsImpl("{W}"));
ability.addTarget(new TargetCreaturePermanent(filter));
+ this.addAbility(ability);
}
public DaughterOfAutumn(final DaughterOfAutumn card) {
diff --git a/Mage.Sets/src/mage/cards/d/DivineLight.java b/Mage.Sets/src/mage/cards/d/DivineLight.java
index 3035f362f88..ca3e4380ec4 100644
--- a/Mage.Sets/src/mage/cards/d/DivineLight.java
+++ b/Mage.Sets/src/mage/cards/d/DivineLight.java
@@ -50,10 +50,12 @@ public class DivineLight extends CardImpl {
}
public DivineLight(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{W}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{W}");
// Prevent all damage that would be dealt this turn to creatures you control.
- this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter));
+ this.getSpellAbility().addEffect(new PreventAllDamageToAllEffect(Duration.EndOfTurn, filter)
+ .setText("Prevent all damage that would be dealt this turn to creatures you control.")
+ );
}
public DivineLight(final DivineLight card) {
diff --git a/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java b/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java
index 41403091afd..9cb25e7bf99 100644
--- a/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java
+++ b/Mage.Sets/src/mage/cards/d/DwarvenPatrol.java
@@ -46,18 +46,18 @@ import mage.filter.predicate.mageobject.ColorPredicate;
/**
*
* @author LoneFox
-
+ *
*/
public class DwarvenPatrol extends CardImpl {
- private static final FilterSpell filter = new FilterSpell("nonred spell");
+ private static final FilterSpell filter = new FilterSpell("a nonred spell");
static {
filter.add(Predicates.not(new ColorPredicate(ObjectColor.RED)));
}
public DwarvenPatrol(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}");
this.subtype.add(SubType.DWARF);
this.power = new MageInt(4);
this.toughness = new MageInt(2);
diff --git a/Mage.Sets/src/mage/cards/g/GreatDefender.java b/Mage.Sets/src/mage/cards/g/GreatDefender.java
index d7c8a832402..101c127b17d 100644
--- a/Mage.Sets/src/mage/cards/g/GreatDefender.java
+++ b/Mage.Sets/src/mage/cards/g/GreatDefender.java
@@ -48,7 +48,9 @@ public class GreatDefender extends CardImpl {
// Target creature gets +0/+X until end of turn, where X is its converted mana cost.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
- this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true));
+ this.getSpellAbility().addEffect(new BoostTargetEffect(new StaticValue(0), new TargetConvertedManaCost(), Duration.EndOfTurn, true)
+ .setText("Target creature gets +0/+X until end of turn, where X is its converted mana cost.")
+ );
}
public GreatDefender(final GreatDefender card) {
diff --git a/Mage.Sets/src/mage/cards/i/IceCave.java b/Mage.Sets/src/mage/cards/i/IceCave.java
index 4a8234f99a4..188f79f42b2 100644
--- a/Mage.Sets/src/mage/cards/i/IceCave.java
+++ b/Mage.Sets/src/mage/cards/i/IceCave.java
@@ -52,11 +52,10 @@ import mage.players.Player;
public class IceCave extends CardImpl {
public IceCave(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{U}{U}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
// Whenever a player casts a spell, any other player may pay that spell's mana cost. If a player does, counter the spell. (Mana cost includes color.)
- this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_SPELL, false, SetTargetPointer.SPELL));
+ this.addAbility(new SpellCastAllTriggeredAbility(Zone.BATTLEFIELD, new IceCaveEffect(), StaticFilters.FILTER_A_SPELL, false, SetTargetPointer.SPELL));
}
public IceCave(final IceCave card) {
@@ -90,17 +89,17 @@ class IceCaveEffect extends OneShotEffect {
Player controller = game.getPlayer(source.getControllerId());
Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
Spell spell = (Spell) game.getStack().getStackObject(targetPointer.getFirst(game, source));
- if(sourcePermanent != null && spell != null && controller != null) {
+ if (sourcePermanent != null && spell != null && controller != null) {
Player spellController = game.getPlayer(spell.getControllerId());
Cost cost = new ManaCostsImpl(spell.getSpellAbility().getManaCosts().getText());
- if(spellController != null) {
+ if (spellController != null) {
for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) {
Player player = game.getPlayer(playerId);
- if(player != null && player != spellController) {
+ if (player != null && player != spellController) {
cost.clearPaid();
- if(cost.canPay(source, source.getSourceId(), player.getId(), game)
+ if (cost.canPay(source, source.getSourceId(), player.getId(), game)
&& player.chooseUse(outcome, "Pay " + cost.getText() + " to counter " + spell.getIdName() + '?', source, game)) {
- if(cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
+ if (cost.pay(source, game, source.getSourceId(), playerId, false, null)) {
game.informPlayers(player.getLogName() + " pays" + cost.getText() + " to counter " + spell.getIdName() + '.');
game.getStack().counter(spell.getId(), source.getSourceId(), game);
return true;
diff --git a/Mage.Sets/src/mage/cards/i/Illuminate.java b/Mage.Sets/src/mage/cards/i/Illuminate.java
index a357d8f9a42..9ee484a69ae 100644
--- a/Mage.Sets/src/mage/cards/i/Illuminate.java
+++ b/Mage.Sets/src/mage/cards/i/Illuminate.java
@@ -47,7 +47,7 @@ import mage.target.common.TargetCreaturePermanent;
public class Illuminate extends CardImpl {
public Illuminate(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
// Kicker {2}{R} and/or {3}{U}
KickerAbility kickerAbility = new KickerAbility("{2}{R}");
@@ -57,13 +57,13 @@ public class Illuminate extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(new ManacostVariableValue()));
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
- new DamageTargetControllerEffect(new ManacostVariableValue()),
- new KickedCostCondition("{2}{R}"),
- "If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
+ new DamageTargetControllerEffect(new ManacostVariableValue()),
+ new KickedCostCondition("{2}{R}"),
+ "If {this} was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
- new DrawCardSourceControllerEffect(new ManacostVariableValue()),
- new KickedCostCondition("{3}{U}"),
- "If {this} was kicked with its {3}{U} kicker, you draw X cards."));
+ new DrawCardSourceControllerEffect(new ManacostVariableValue()),
+ new KickedCostCondition("{3}{U}"),
+ " If {this} was kicked with its {3}{U} kicker, you draw X cards."));
}
diff --git a/Mage.Sets/src/mage/cards/j/Jilt.java b/Mage.Sets/src/mage/cards/j/Jilt.java
index 799208d43d5..2f3d30c68ec 100644
--- a/Mage.Sets/src/mage/cards/j/Jilt.java
+++ b/Mage.Sets/src/mage/cards/j/Jilt.java
@@ -53,11 +53,11 @@ import mage.target.targetpointer.SecondTargetPointer;
public class Jilt extends CardImpl {
public Jilt(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Kicker {1}{R}
this.addAbility(new KickerAbility("{1}{R}"));
-
+
// Return target creature to its owner's hand. If Jilt was kicked, it deals 2 damage to another target creature.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
Effect effect = new ConditionalOneShotEffect(
@@ -66,11 +66,11 @@ public class Jilt extends CardImpl {
"If {this} was kicked, it deals 2 damage to another target creature");
effect.setTargetPointer(new SecondTargetPointer());
this.getSpellAbility().addEffect(effect);
- Target target = new TargetCreaturePermanent(new FilterCreaturePermanent("Target Creature: returned to Hand"));
+ Target target = new TargetCreaturePermanent();
target.setTargetTag(1);
this.getSpellAbility().addTarget(target);
}
-
+
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof SpellAbility && KickedCondition.instance.apply(game, ability)) {
diff --git a/Mage.Sets/src/mage/cards/j/Jokulmorder.java b/Mage.Sets/src/mage/cards/j/Jokulmorder.java
index 87ce51cb027..3a785aa0716 100644
--- a/Mage.Sets/src/mage/cards/j/Jokulmorder.java
+++ b/Mage.Sets/src/mage/cards/j/Jokulmorder.java
@@ -59,26 +59,26 @@ import java.util.UUID;
public class Jokulmorder extends CardImpl {
public Jokulmorder(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{U}{U}{U}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}{U}{U}");
this.subtype.add(SubType.LEVIATHAN);
this.power = new MageInt(12);
this.toughness = new MageInt(12);
// Trample
this.addAbility(TrampleAbility.getInstance());
-
+
// Jokulmorder enters the battlefield tapped.
this.addAbility(new EntersBattlefieldTappedAbility());
-
+
// When Jokulmorder enters the battlefield, sacrifice it unless you sacrifice five lands.
Effect effect = new SacrificeSourceUnlessPaysEffect(
new SacrificeTargetCost(new TargetControlledPermanent(5, 5, new FilterControlledLandPermanent("five lands"), true)));
effect.setText("sacrifice it unless you sacrifice five lands");
this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false));
-
+
// Jokulmorder doesn't untap during your untap step.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect()));
-
+
// Whenever you play an Island, you may untap Jokulmorder.
this.addAbility(new JokulmorderTriggeredAbility());
}
@@ -122,6 +122,6 @@ class JokulmorderTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "When you play an Island, you may untap {this}";
+ return "Whenever you play an Island, you may untap {this}";
}
}
diff --git a/Mage.Sets/src/mage/cards/k/KarplusanMinotaur.java b/Mage.Sets/src/mage/cards/k/KarplusanMinotaur.java
index 8d21319da3f..a244cd23b10 100644
--- a/Mage.Sets/src/mage/cards/k/KarplusanMinotaur.java
+++ b/Mage.Sets/src/mage/cards/k/KarplusanMinotaur.java
@@ -32,20 +32,15 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl;
-import mage.abilities.TriggeredAbility;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.common.DamageTargetEffect;
-import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.CumulativeUpkeepAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
-import mage.constants.TargetController;
import mage.constants.Zone;
-import mage.counters.CounterType;
-import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.players.Player;
@@ -60,7 +55,7 @@ import mage.target.common.TargetOpponent;
public class KarplusanMinotaur extends CardImpl {
public KarplusanMinotaur(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
this.subtype.add(SubType.MINOTAUR);
this.subtype.add(SubType.WARRIOR);
this.power = new MageInt(3);
@@ -68,7 +63,7 @@ public class KarplusanMinotaur extends CardImpl {
// Cumulative upkeep-Flip a coin.
this.addAbility(new CumulativeUpkeepAbility(new KarplusanMinotaurCost()));
-
+
// Whenever you win a coin flip, Karplusan Minotaur deals 1 damage to target creature or player.
Ability abilityWin = new KarplusanMinotaurFlipWinTriggeredAbility();
abilityWin.addTarget(new TargetCreatureOrPlayer());
@@ -80,23 +75,22 @@ public class KarplusanMinotaur extends CardImpl {
abilityLose.addTarget(new TargetCreatureOrPlayer());
this.addAbility(abilityLose);
}
-
+
@Override
public void adjustTargets(Ability ability, Game game) {
if (ability instanceof KarplusanMinotaurFlipLoseTriggeredAbility) {
Player controller = game.getPlayer(ability.getControllerId());
- if(controller != null) {
+ if (controller != null) {
UUID opponentId = null;
- if(game.getOpponents(controller.getId()).size() > 1) {
+ if (game.getOpponents(controller.getId()).size() > 1) {
Target target = new TargetOpponent(true);
- if(controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
+ if (controller.chooseTarget(Outcome.Neutral, target, ability, game)) {
opponentId = target.getFirstTarget();
}
- }
- else {
+ } else {
opponentId = game.getOpponents(controller.getId()).iterator().next();
}
- if(opponentId != null) {
+ if (opponentId != null) {
ability.getTargets().get(0).setTargetController(opponentId);
}
}
@@ -171,12 +165,12 @@ class KarplusanMinotaurFlipLoseTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice";
+ return "Whenever you lose a coin flip, {this} deals 1 damage to target creature or player of an opponent's choice.";
}
}
class KarplusanMinotaurCost extends CostImpl {
-
+
KarplusanMinotaurCost() {
this.text = "Flip a coin";
}
@@ -188,7 +182,7 @@ class KarplusanMinotaurCost extends CostImpl {
controller.flipCoin(game);
this.paid = true;
return true;
- }
+ }
return false;
}
@@ -202,7 +196,7 @@ class KarplusanMinotaurCost extends CostImpl {
}
return false;
}
-
+
@Override
public KarplusanMinotaurCost copy() {
return new KarplusanMinotaurCost();
diff --git a/Mage.Sets/src/mage/cards/l/LastCaress.java b/Mage.Sets/src/mage/cards/l/LastCaress.java
index 3bc5473e34b..e4652239ec5 100644
--- a/Mage.Sets/src/mage/cards/l/LastCaress.java
+++ b/Mage.Sets/src/mage/cards/l/LastCaress.java
@@ -43,12 +43,12 @@ import mage.target.TargetPlayer;
public class LastCaress extends CardImpl {
public LastCaress(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{B}");
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{B}");
this.getSpellAbility().addEffect(new LoseLifeTargetEffect(1));
this.getSpellAbility().addTarget(new TargetPlayer());
- this.getSpellAbility().addEffect(new GainLifeEffect(1));
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
+ this.getSpellAbility().addEffect(new GainLifeEffect(1).setText("and you gain 1 life"));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("
Draw a card"));
}
public LastCaress(final LastCaress card) {
diff --git a/Mage.Sets/src/mage/cards/m/MinotaurTactician.java b/Mage.Sets/src/mage/cards/m/MinotaurTactician.java
index 27413e44db0..c3e1cfbbe5a 100644
--- a/Mage.Sets/src/mage/cards/m/MinotaurTactician.java
+++ b/Mage.Sets/src/mage/cards/m/MinotaurTactician.java
@@ -52,33 +52,33 @@ import java.util.UUID;
* @author fireshoes
*/
public class MinotaurTactician extends CardImpl {
-
+
private static final FilterControlledCreaturePermanent filterWhite = new FilterControlledCreaturePermanent();
private static final FilterControlledCreaturePermanent filterBlue = new FilterControlledCreaturePermanent();
-
+
static {
filterWhite.add(new ColorPredicate(ObjectColor.WHITE));
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 ruleBlue = "{this} gets +1/+1 as long as you control another white creature";
+
+ static final private String ruleBlue = "{this} gets +1/+1 as long as you control another blue creature";
public MinotaurTactician(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}");
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
this.subtype.add(SubType.MINOTAUR);
this.power = new MageInt(1);
this.toughness = new MageInt(1);
// Haste
this.addAbility(HasteAbility.getInstance());
-
+
// Minotaur Tactician gets +1/+1 as long as you control a white creature.
Condition conditionWhite = new PermanentsOnTheBattlefieldCondition(filterWhite);
Effect effectWhite = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionWhite, ruleWhite);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effectWhite));
-
+
// Minotaur Tactician gets +1/+1 as long as you control a blue creature.
Condition conditionBlue = new PermanentsOnTheBattlefieldCondition(filterBlue);
Effect effectBlue = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), conditionBlue, ruleBlue);
diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianEtchings.java b/Mage.Sets/src/mage/cards/p/PhyrexianEtchings.java
index 7734e59a99f..bbf7e70191d 100644
--- a/Mage.Sets/src/mage/cards/p/PhyrexianEtchings.java
+++ b/Mage.Sets/src/mage/cards/p/PhyrexianEtchings.java
@@ -28,11 +28,9 @@
package mage.cards.p;
import java.util.UUID;
-import mage.MageInt;
import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility;
import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility;
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.DrawCardSourceControllerEffect;
@@ -59,7 +57,9 @@ public class PhyrexianEtchings extends CardImpl {
this.addAbility(new BeginningOfYourEndStepTriggeredAbility(new DrawCardSourceControllerEffect(new CountersSourceCount(CounterType.AGE)), false));
// 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))));
+ 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")
+ ));
}
public PhyrexianEtchings(final PhyrexianEtchings card) {
diff --git a/Mage.Sets/src/mage/cards/r/RimefeatherOwl.java b/Mage.Sets/src/mage/cards/r/RimefeatherOwl.java
index 9e89292b850..2b6e660201a 100644
--- a/Mage.Sets/src/mage/cards/r/RimefeatherOwl.java
+++ b/Mage.Sets/src/mage/cards/r/RimefeatherOwl.java
@@ -135,6 +135,6 @@ class RimefeatherOwlEffect extends ContinuousEffectImpl {
@Override
public String getText(Mode mode) {
- return "All nonland permanents are legendary";
+ return "Permanents with ice counters on them are snow.";
}
}
diff --git a/Mage.Sets/src/mage/cards/r/RonomUnicorn.java b/Mage.Sets/src/mage/cards/r/RonomUnicorn.java
index bfcfb18f581..fe12934ca47 100644
--- a/Mage.Sets/src/mage/cards/r/RonomUnicorn.java
+++ b/Mage.Sets/src/mage/cards/r/RonomUnicorn.java
@@ -37,10 +37,9 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
-import mage.filter.StaticFilters;
-import mage.target.TargetPermanent;
import java.util.UUID;
+import mage.target.common.TargetEnchantmentPermanent;
/**
*
@@ -49,14 +48,14 @@ import java.util.UUID;
public class RonomUnicorn extends CardImpl {
public RonomUnicorn(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.UNICORN);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Sacrifice Ronom Unicorn: Destroy target enchantment.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new SacrificeSourceCost());
- ability.addTarget(new TargetPermanent(StaticFilters.ARTIFACT_OR_ENCHANTMENT_PERMANENT));
+ ability.addTarget(new TargetEnchantmentPermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/r/Rust.java b/Mage.Sets/src/mage/cards/r/Rust.java
index c1f5f4edc94..21dd121bf95 100644
--- a/Mage.Sets/src/mage/cards/r/Rust.java
+++ b/Mage.Sets/src/mage/cards/r/Rust.java
@@ -46,7 +46,7 @@ import mage.target.common.TargetActivatedOrTriggeredAbility;
*/
public class Rust extends CardImpl {
- private final static FilterStackObject filter = new FilterStackObject("ability from an artifact source");
+ private final static FilterStackObject filter = new FilterStackObject("activated ability from an artifact source");
static {
filter.add(new ArtifactSourcePredicate());
diff --git a/Mage.Sets/src/mage/cards/s/ShimmeringMirage.java b/Mage.Sets/src/mage/cards/s/ShimmeringMirage.java
index 273b7bcb0f0..47761a07bd3 100644
--- a/Mage.Sets/src/mage/cards/s/ShimmeringMirage.java
+++ b/Mage.Sets/src/mage/cards/s/ShimmeringMirage.java
@@ -43,13 +43,13 @@ import mage.target.common.TargetLandPermanent;
public class ShimmeringMirage extends CardImpl {
public ShimmeringMirage(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}");
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Target land becomes the basic land type of your choice until end of turn.
this.getSpellAbility().addEffect(new BecomesBasicLandTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetLandPermanent());
// Draw a card.
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("
Draw a card"));
}
public ShimmeringMirage(final ShimmeringMirage card) {
diff --git a/Mage.Sets/src/mage/cards/s/SurgingAether.java b/Mage.Sets/src/mage/cards/s/SurgingAether.java
index bb9a0b3a5f1..1db14c65ce8 100644
--- a/Mage.Sets/src/mage/cards/s/SurgingAether.java
+++ b/Mage.Sets/src/mage/cards/s/SurgingAether.java
@@ -42,13 +42,14 @@ import mage.target.TargetPermanent;
public class SurgingAether extends CardImpl {
public SurgingAether(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{3}{U}");
+ 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) {
diff --git a/Mage.Sets/src/mage/cards/t/TranquilPath.java b/Mage.Sets/src/mage/cards/t/TranquilPath.java
index de90b5056b4..04d214cd1e8 100644
--- a/Mage.Sets/src/mage/cards/t/TranquilPath.java
+++ b/Mage.Sets/src/mage/cards/t/TranquilPath.java
@@ -42,13 +42,12 @@ import mage.filter.common.FilterEnchantmentPermanent;
public class TranquilPath extends CardImpl {
public TranquilPath(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{G}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}");
// Destroy all enchantments.
this.getSpellAbility().addEffect(new DestroyAllEffect(new FilterEnchantmentPermanent("enchantments")));
// Draw a card.
- this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
+ this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("
Draw a card"));
}
public TranquilPath(final TranquilPath card) {
diff --git a/Mage.Sets/src/mage/cards/u/UnnaturalSelection.java b/Mage.Sets/src/mage/cards/u/UnnaturalSelection.java
index d069036dbfa..aabc4cf8ff4 100644
--- a/Mage.Sets/src/mage/cards/u/UnnaturalSelection.java
+++ b/Mage.Sets/src/mage/cards/u/UnnaturalSelection.java
@@ -45,7 +45,7 @@ import mage.target.common.TargetCreaturePermanent;
public class UnnaturalSelection extends CardImpl {
public UnnaturalSelection(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
// {1}: Choose a creature type other than Wall. Target creature becomes that type until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesChosenCreatureTypeTargetEffect(true), new GenericManaCost(1));
diff --git a/Mage/src/main/java/mage/abilities/effects/common/CantBeRegeneratedSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CantBeRegeneratedSourceEffect.java
index 5d21c6e346c..ad1aca55849 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/CantBeRegeneratedSourceEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/CantBeRegeneratedSourceEffect.java
@@ -78,7 +78,7 @@ public class CantBeRegeneratedSourceEffect extends ContinuousRuleModifyingEffect
return staticText;
}
StringBuilder sb = new StringBuilder();
- sb.append(" {this} can't be regenerated");
+ sb.append("{this} can't be regenerated");
if (!duration.toString().isEmpty()) {
sb.append(' ');
if (duration == Duration.EndOfTurn) {
diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileSourceEffect.java
index 60efb497e97..455d3a54664 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/ExileSourceEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/ExileSourceEffect.java
@@ -57,7 +57,7 @@ public class ExileSourceEffect extends OneShotEffect {
*/
public ExileSourceEffect(boolean toUniqueExileZone) {
super(Outcome.Exile);
- staticText = "Exile {this}";
+ staticText = "exile {this}";
this.toUniqueExileZone = toUniqueExileZone;
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/RevealLibraryPutIntoHandEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RevealLibraryPutIntoHandEffect.java
index 5d8965fde1a..d0b57104663 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/RevealLibraryPutIntoHandEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/RevealLibraryPutIntoHandEffect.java
@@ -117,7 +117,7 @@ public class RevealLibraryPutIntoHandEffect extends OneShotEffect {
}
private String setText() {
- StringBuilder sb = new StringBuilder("Reveal the top ");
+ StringBuilder sb = new StringBuilder("reveal the top ");
sb.append(CardUtil.numberToText(amountCards.toString())).append(" cards of your library. Put all ");
sb.append(filter.getMessage());
sb.append(" revealed this way into your hand and the rest ");
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java
index e8430823051..4d0bb0703e7 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesBasicLandTargetEffect.java
@@ -191,7 +191,7 @@ public class BecomesBasicLandTargetEffect extends ContinuousEffectImpl {
private String setText() {
StringBuilder sb = new StringBuilder();
if (chooseLandType) {
- sb.append("Target land becomes the basic land type of your choice ");
+ sb.append("Target land becomes the basic land type of your choice");
} else {
sb.append("Target land becomes a ");
int i = 1;
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesChosenCreatureTypeTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesChosenCreatureTypeTargetEffect.java
index 6a21fcf093b..d97d8f9ea9b 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesChosenCreatureTypeTargetEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesChosenCreatureTypeTargetEffect.java
@@ -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's type 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";
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java
index abf36d2d3a3..c437a9404fb 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorTargetEffect.java
@@ -52,12 +52,13 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
/**
* Set the color of a spell or permanent
- *
- * @param duration
+ *
+ * @param duration
*/
public BecomesColorTargetEffect(Duration duration) {
this(null, duration, null);
}
+
public BecomesColorTargetEffect(ObjectColor setColor, Duration duration) {
this(setColor, duration, null);
}
@@ -78,7 +79,7 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
Player controller = game.getPlayer(source.getControllerId());
if (controller == null) {
return;
- }
+ }
if (setColor == null) {
ChoiceColor choice = new ChoiceColor();
while (!choice.isChosen()) {
@@ -95,9 +96,8 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
if (!game.isSimulation()) {
game.informPlayers(controller.getLogName() + " has chosen the color: " + setColor.toString());
}
- }
-
-
+ }
+
super.init(source, game); //To change body of generated methods, choose Tools | Templates.
}
@@ -109,11 +109,11 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
}
if (setColor != null) {
boolean objectFound = false;
- for (UUID targetId :targetPointer.getTargets(game, source)) {
+ for (UUID targetId : targetPointer.getTargets(game, source)) {
MageObject targetObject = game.getObject(targetId);
if (targetObject != null) {
objectFound = true;
- targetObject.getColor(game).setColor(setColor);
+ targetObject.getColor(game).setColor(setColor);
}
}
if (!objectFound && this.getDuration() == Duration.Custom) {
@@ -143,7 +143,9 @@ public class BecomesColorTargetEffect extends ContinuousEffectImpl {
} else {
sb.append(setColor.getDescription());
}
- sb.append(' ').append(duration.toString());
+ if (!duration.toString().equals("")) {
+ sb.append(' ').append(duration.toString());
+ }
return sb.toString();
}
}
diff --git a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java
index 1e8c5adc2bc..46471af292f 100644
--- a/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/ProtectionAbility.java
@@ -32,7 +32,6 @@ import mage.MageObject;
import mage.ObjectColor;
import mage.abilities.StaticAbility;
import mage.cards.Card;
-import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.Filter;
import mage.filter.FilterCard;
@@ -90,7 +89,7 @@ public class ProtectionAbility extends StaticAbility {
@Override
public String getRule() {
- return "Protection from " + filter.getMessage() + (removeAuras ? "" : ". This effect doesn't remove auras.");
+ return "protection from " + filter.getMessage() + (removeAuras ? "" : ". This effect doesn't remove auras.");
}
public boolean canTarget(MageObject source, Game game) {
diff --git a/Mage/src/main/java/mage/abilities/keyword/RippleAbility.java b/Mage/src/main/java/mage/abilities/keyword/RippleAbility.java
index dde3a57961e..cf70a573362 100644
--- a/Mage/src/main/java/mage/abilities/keyword/RippleAbility.java
+++ b/Mage/src/main/java/mage/abilities/keyword/RippleAbility.java
@@ -56,13 +56,11 @@ public class RippleAbility extends TriggeredAbilityImpl {
return new RippleAbility(this);
}
-
@Override
public String getRule() {
- return "Ripple " + rippleNumber + " (When you cast this spell, you may reveal the top " + CardUtil.numberToText(rippleNumber) + " cards of your library. You may cast any revealed cards with the same name as this spell without paying their mana costs. Put the rest on the bottom of your library.)";
+ return "ripple " + rippleNumber + " (When you cast this spell, you may reveal the top " + CardUtil.numberToText(rippleNumber) + " cards of your library. You may cast any revealed cards with the same name as this spell without paying their mana costs. Put the rest on the bottom of your library.)";
}
-
}
class RippleEffect extends OneShotEffect {
@@ -84,13 +82,12 @@ class RippleEffect extends OneShotEffect {
return new RippleEffect(this);
}
-
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
MageObject sourceObject = game.getObject(source.getSourceId());
if (player != null) {
- if (!player.chooseUse(Outcome.Neutral, "Reveal " + rippleNumber + " cards from the top of your library?", source, game)){
+ if (!player.chooseUse(Outcome.Neutral, "Reveal " + rippleNumber + " cards from the top of your library?", source, game)) {
return true; //fizzle
}
// reveal to/**/p cards from library
@@ -123,4 +120,3 @@ class RippleEffect extends OneShotEffect {
}
}
-
diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java
index 42676a1b122..60c7d931a37 100644
--- a/Mage/src/main/java/mage/filter/StaticFilters.java
+++ b/Mage/src/main/java/mage/filter/StaticFilters.java
@@ -69,6 +69,7 @@ public final class StaticFilters {
= (FilterSpell) new FilterSpell("noncreature spell").add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
public static final FilterSpell FILTER_SPELL = new FilterSpell();
+ public static final FilterSpell FILTER_A_SPELL = new FilterSpell("a spell");
public static final FilterSpell FILTER_INSTANT_OR_SORCERY_SPELL = new FilterSpell("instant or sorcery spell");
public static final FilterSpell FILTER_INSTANT_OR_SORCERY_SPELLS = new FilterSpell("instant or sorcery spells");
diff --git a/Mage/src/main/java/mage/filter/common/FilterBlockingCreature.java b/Mage/src/main/java/mage/filter/common/FilterBlockingCreature.java
index 7e6aa117690..896517c0bf2 100644
--- a/Mage/src/main/java/mage/filter/common/FilterBlockingCreature.java
+++ b/Mage/src/main/java/mage/filter/common/FilterBlockingCreature.java
@@ -24,8 +24,7 @@
* 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.filter.common;
import mage.filter.predicate.permanent.BlockingPredicate;
@@ -37,7 +36,7 @@ import mage.filter.predicate.permanent.BlockingPredicate;
public class FilterBlockingCreature extends FilterCreaturePermanent {
public FilterBlockingCreature() {
- this("Blocking creature");
+ this("blocking creature");
}
public FilterBlockingCreature(String name) {