diff --git a/Mage.Sets/src/mage/cards/a/AngelicArmaments.java b/Mage.Sets/src/mage/cards/a/AngelicArmaments.java
index 21bfe3fb16..0c9d148409 100644
--- a/Mage.Sets/src/mage/cards/a/AngelicArmaments.java
+++ b/Mage.Sets/src/mage/cards/a/AngelicArmaments.java
@@ -32,10 +32,10 @@ public final class AngelicArmaments extends CardImpl {
).setText(", has flying"));
ability.addEffect(new AddCardColorAttachedEffect(
ObjectColor.WHITE, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT
- ).setText(", and is"));
+ ).setText(","));
ability.addEffect(new AddCardSubtypeAttachedEffect(
SubType.ANGEL, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT
- ).setText("white Angel in addition to its other colors and types").concatBy("a"));
+ ).setText("is a white Angel in addition to its other colors and types").concatBy("and"));
this.addAbility(ability);
// Equip {4}
diff --git a/Mage.Sets/src/mage/cards/a/ArmillarySphere.java b/Mage.Sets/src/mage/cards/a/ArmillarySphere.java
index e28e2322c2..d82098889a 100644
--- a/Mage.Sets/src/mage/cards/a/ArmillarySphere.java
+++ b/Mage.Sets/src/mage/cards/a/ArmillarySphere.java
@@ -27,7 +27,7 @@ public final class ArmillarySphere extends CardImpl {
// {2}, {tap}, Sacrifice Armillary Sphere: Search your library for up to two basic land cards, reveal them, and put them into your hand. Then shuffle your library.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true),
+ new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true),
new GenericManaCost(2));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/f/FlamekinHerald.java b/Mage.Sets/src/mage/cards/f/FlamekinHerald.java
index c1a79c8caf..1ba9d817f6 100644
--- a/Mage.Sets/src/mage/cards/f/FlamekinHerald.java
+++ b/Mage.Sets/src/mage/cards/f/FlamekinHerald.java
@@ -33,7 +33,7 @@ public final class FlamekinHerald extends CardImpl {
this.toughness = new MageInt(2);
// Commander spells you cast have cascade.
- this.addAbility(new SimpleStaticAbility(new GainAbilitySpellsEffect(new CascadeAbility(), filter)));
+ this.addAbility(new SimpleStaticAbility(new GainAbilitySpellsEffect(new CascadeAbility(false), filter)));
}
private FlamekinHerald(final FlamekinHerald card) {
diff --git a/Mage.Sets/src/mage/cards/i/IorRuinExpedition.java b/Mage.Sets/src/mage/cards/i/IorRuinExpedition.java
index 4f8cc8e27a..01407490bb 100644
--- a/Mage.Sets/src/mage/cards/i/IorRuinExpedition.java
+++ b/Mage.Sets/src/mage/cards/i/IorRuinExpedition.java
@@ -1,10 +1,8 @@
-
package mage.cards.i;
-import java.util.UUID;
-import mage.abilities.Ability;
import mage.abilities.common.LandfallAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@@ -12,25 +10,30 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
import mage.counters.CounterType;
+import java.util.UUID;
+
/**
- *
* @author Loki
*/
public final class IorRuinExpedition extends CardImpl {
public IorRuinExpedition(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{U}");
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
// Landfall - Whenever a land enters the battlefield under your control, you may put a quest counter on Ior Ruin Expedition.
this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
// Remove three quest counters from Ior Ruin Expedition and sacrifice it: Draw two cards.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(2), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+ this.addAbility(new SimpleActivatedAbility(
+ new DrawCardSourceControllerEffect(2),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
+ new SacrificeSourceCost(),
+ "Remove three quest counters from {this} and sacrifice it"
+ )
+ ));
}
public IorRuinExpedition(final IorRuinExpedition card) {
diff --git a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java
index 43c48b2969..624507d762 100644
--- a/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java
+++ b/Mage.Sets/src/mage/cards/k/KaradorGhostChieftain.java
@@ -99,7 +99,7 @@ class KaradorGhostChieftainCastFromGraveyardEffect extends AsThoughEffectImpl {
KaradorGhostChieftainCastFromGraveyardEffect() {
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.PutCreatureInPlay, true);
- staticText = "During each of your turns, you may cast a creature card from your graveyard";
+ staticText = "During each of your turns, you may cast a creature spell from your graveyard";
}
KaradorGhostChieftainCastFromGraveyardEffect(final KaradorGhostChieftainCastFromGraveyardEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/k/KhalniHeartExpedition.java b/Mage.Sets/src/mage/cards/k/KhalniHeartExpedition.java
index 31866c26c0..97b4bec1b9 100644
--- a/Mage.Sets/src/mage/cards/k/KhalniHeartExpedition.java
+++ b/Mage.Sets/src/mage/cards/k/KhalniHeartExpedition.java
@@ -1,9 +1,8 @@
-
-
package mage.cards.k;
import mage.abilities.common.LandfallAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@@ -12,7 +11,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary;
@@ -20,22 +18,25 @@ import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/**
- *
* @author Viserion
*/
public final class KhalniHeartExpedition extends CardImpl {
public KhalniHeartExpedition(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
- TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND);
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay),
- new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+
+ this.addAbility(new SimpleActivatedAbility(
+ new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(
+ 0, 2, StaticFilters.FILTER_CARD_BASIC_LAND
+ ), true, Outcome.PutLandInPlay),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
+ new SacrificeSourceCost(),
+ "Remove three quest counters from {this} and sacrifice it"
+ )
+ ));
}
public KhalniHeartExpedition(final KhalniHeartExpedition card) {
diff --git a/Mage.Sets/src/mage/cards/m/MakeshiftMunitions.java b/Mage.Sets/src/mage/cards/m/MakeshiftMunitions.java
index 905a2f3d75..366031bbcf 100644
--- a/Mage.Sets/src/mage/cards/m/MakeshiftMunitions.java
+++ b/Mage.Sets/src/mage/cards/m/MakeshiftMunitions.java
@@ -1,4 +1,3 @@
-
package mage.cards.m;
import mage.abilities.Ability;
@@ -9,32 +8,34 @@ import mage.abilities.effects.common.DamageTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
-import mage.filter.StaticFilters;
-import mage.target.common.TargetControlledPermanent;
+import mage.filter.common.FilterControlledPermanent;
+import mage.filter.predicate.Predicates;
import mage.target.common.TargetAnyTarget;
+import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
- *
* @author TheElk801
*/
public final class MakeshiftMunitions extends CardImpl {
+ private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifact or creature");
+ static {
+ filter.add(Predicates.or(
+ CardType.ARTIFACT.getPredicate(),
+ CardType.CREATURE.getPredicate()
+ ));
+ }
public MakeshiftMunitions(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
// {1}, Sacrifice an artifact or creature: Makeshift Munitions deals 1 damage to any target.
- Ability ability = new SimpleActivatedAbility(
- Zone.BATTLEFIELD,
- new DamageTargetEffect(1),
- new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_OR_CREATURE))
- );
+ Ability ability = new SimpleActivatedAbility(new DamageTargetEffect(1), new GenericManaCost(1));
+ ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter)));
ability.addTarget(new TargetAnyTarget());
- ability.addCost(new GenericManaCost(1));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/ManaDrain.java b/Mage.Sets/src/mage/cards/m/ManaDrain.java
index 129c19745f..94ee8c5b47 100644
--- a/Mage.Sets/src/mage/cards/m/ManaDrain.java
+++ b/Mage.Sets/src/mage/cards/m/ManaDrain.java
@@ -47,7 +47,7 @@ class ManaDrainCounterEffect extends OneShotEffect {
public ManaDrainCounterEffect() {
super(Outcome.Benefit);
- this.staticText = "Counter target spell. At the beginning of your next main phase, add X mana of {C}, where X is that spell's converted mana cost";
+ this.staticText = "Counter target spell. At the beginning of your next main phase, add an amount of {C} equal to that spell's converted mana cost";
}
public ManaDrainCounterEffect(final ManaDrainCounterEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/m/MerchantRaiders.java b/Mage.Sets/src/mage/cards/m/MerchantRaiders.java
index fb30b179b1..34aa7833f5 100644
--- a/Mage.Sets/src/mage/cards/m/MerchantRaiders.java
+++ b/Mage.Sets/src/mage/cards/m/MerchantRaiders.java
@@ -35,7 +35,10 @@ public final class MerchantRaiders extends CardImpl {
this.toughness = new MageInt(4);
// Whenever Merchant Raiders or another Pirate enters the battlefield under your control, tap up to one target creature. That creature doesn't untap during its controller's untap step for as long as you control Merchant Raiders.
- Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(new TapTargetEffect(), filter,false,true);
+ Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(
+ new TapTargetEffect().setText("up to one target creature"),
+ filter, false, true
+ );
ability.addEffect(new MerchantRaidersEffect());
ability.addTarget(new TargetCreaturePermanent(0, 1));
this.addAbility(ability, new MerchantRaidersWatcher());
diff --git a/Mage.Sets/src/mage/cards/m/MuldrothaTheGravetide.java b/Mage.Sets/src/mage/cards/m/MuldrothaTheGravetide.java
index a0db30df28..6cebb7a920 100644
--- a/Mage.Sets/src/mage/cards/m/MuldrothaTheGravetide.java
+++ b/Mage.Sets/src/mage/cards/m/MuldrothaTheGravetide.java
@@ -67,7 +67,7 @@ class MuldrothaTheGravetideCastFromGraveyardEffect extends AsThoughEffectImpl {
public MuldrothaTheGravetideCastFromGraveyardEffect() {
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.Benefit, true);
- staticText = "During each of your turns, you may play up to one permanent card of each permanent type from your graveyard. "
+ staticText = "During each of your turns, you may play a land and cast a permanent spell of each permanent type from your graveyard. "
+ "(If a card has multiple permanent types, choose one as you play it.)";
}
diff --git a/Mage.Sets/src/mage/cards/n/NecroticHex.java b/Mage.Sets/src/mage/cards/n/NecroticHex.java
index c43d66d55b..fc98c883a0 100644
--- a/Mage.Sets/src/mage/cards/n/NecroticHex.java
+++ b/Mage.Sets/src/mage/cards/n/NecroticHex.java
@@ -20,8 +20,8 @@ public final class NecroticHex extends CardImpl {
// Each player sacrifices six creatures.
this.getSpellAbility().addEffect(new SacrificeAllEffect(
- 2, StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT
- ));
+ 6, StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT
+ ).setText("each player sacrifices six creatures"));
// You create six tapped 2/2 black creature tokens.
this.getSpellAbility().addEffect(new CreateTokenEffect(
diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianRager.java b/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
index 98e5594f5b..c96f4a1448 100644
--- a/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
+++ b/Mage.Sets/src/mage/cards/p/PhyrexianRager.java
@@ -24,7 +24,7 @@ public final class PhyrexianRager extends CardImpl {
this.power = new MageInt(2);
this.toughness = new MageInt(2);
Ability ability = new EntersBattlefieldTriggeredAbility(
- new DrawCardSourceControllerEffect(1), false
+ new DrawCardSourceControllerEffect(1).setText("you draw a card"), false
);
ability.addEffect(new LoseLifeSourceControllerEffect(1).concatBy("and"));
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/p/PortRazer.java b/Mage.Sets/src/mage/cards/p/PortRazer.java
index 80232fb831..34dbf574d1 100644
--- a/Mage.Sets/src/mage/cards/p/PortRazer.java
+++ b/Mage.Sets/src/mage/cards/p/PortRazer.java
@@ -41,7 +41,8 @@ public final class PortRazer extends CardImpl {
"untap all creatures you control"
), false
);
- ability.addEffect(new AdditionalCombatPhaseEffect());
+ ability.addEffect(new AdditionalCombatPhaseEffect()
+ .setText("After this phase, there is an additional combat phase."));
this.addAbility(ability);
// Port Razer can't attack a player it has already attacked this turn.
diff --git a/Mage.Sets/src/mage/cards/q/QuestForAncientSecrets.java b/Mage.Sets/src/mage/cards/q/QuestForAncientSecrets.java
index 84bad475db..446f3fd3a9 100644
--- a/Mage.Sets/src/mage/cards/q/QuestForAncientSecrets.java
+++ b/Mage.Sets/src/mage/cards/q/QuestForAncientSecrets.java
@@ -1,45 +1,47 @@
-
package mage.cards.q;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
-import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.TargetController;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetPlayer;
+import java.util.UUID;
+
/**
- *
* @author North
*/
public final class QuestForAncientSecrets extends CardImpl {
public QuestForAncientSecrets(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}");
// Whenever a card is put into your graveyard from anywhere, you may put a quest counter on Quest for Ancient Secrets.
this.addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility(
- new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true, TargetController.YOU));
+ new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true, TargetController.YOU
+ ));
// Remove five quest counters from Quest for Ancient Secrets and sacrifice it: Target player shuffles their graveyard into their library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
+ Ability ability = new SimpleActivatedAbility(
new QuestForAncientSecretsEffect(),
- new RemoveCountersSourceCost(CounterType.QUEST.createInstance(5)));
- ability.addCost(new SacrificeSourceCost());
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(5)),
+ new SacrificeSourceCost(),
+ "Remove five quest counters from {this} and sacrifice it"
+ )
+ );
ability.addTarget(new TargetPlayer());
this.addAbility(ability);
}
@@ -56,12 +58,12 @@ public final class QuestForAncientSecrets extends CardImpl {
class QuestForAncientSecretsEffect extends OneShotEffect {
- public QuestForAncientSecretsEffect() {
+ QuestForAncientSecretsEffect() {
super(Outcome.Neutral);
this.staticText = "Target player shuffles their graveyard into their library";
}
- public QuestForAncientSecretsEffect(final QuestForAncientSecretsEffect effect) {
+ private QuestForAncientSecretsEffect(final QuestForAncientSecretsEffect effect) {
super(effect);
}
@@ -73,13 +75,11 @@ class QuestForAncientSecretsEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getFirstTarget());
- if (player != null) {
- for (Card card: player.getGraveyard().getCards(game)) {
- player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.GRAVEYARD, true, true);
- }
- player.shuffleLibrary(source, game);
- return true;
+ if (player == null) {
+ return false;
}
- return false;
+ player.putCardsOnBottomOfLibrary(player.getGraveyard(), game, source, false);
+ player.shuffleLibrary(source, game);
+ return true;
}
}
diff --git a/Mage.Sets/src/mage/cards/q/QuestForPureFlame.java b/Mage.Sets/src/mage/cards/q/QuestForPureFlame.java
index abd0c7e33f..dac44f7191 100644
--- a/Mage.Sets/src/mage/cards/q/QuestForPureFlame.java
+++ b/Mage.Sets/src/mage/cards/q/QuestForPureFlame.java
@@ -1,10 +1,9 @@
-
package mage.cards.q;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.ReplacementEffectImpl;
@@ -21,8 +20,9 @@ import mage.game.events.GameEvent;
import mage.game.events.GameEvent.EventType;
import mage.util.CardUtil;
+import java.util.UUID;
+
/**
- *
* @author jeffwadsworth
*/
public final class QuestForPureFlame extends CardImpl {
@@ -34,9 +34,14 @@ public final class QuestForPureFlame extends CardImpl {
this.addAbility(new QuestForPureFlameTriggeredAbility());
// Remove four quest counters from Quest for Pure Flame and sacrifice it: If any source you control would deal damage to a creature or player this turn, it deals double that damage to that creature or player instead.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new QuestForPureFlameEffect(), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(4)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+ this.addAbility(new SimpleActivatedAbility(
+ new QuestForPureFlameEffect(),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(4)),
+ new SacrificeSourceCost(),
+ "Remove four quest counters from {this} and sacrifice it"
+ )
+ ));
}
public QuestForPureFlame(final QuestForPureFlame card) {
@@ -51,11 +56,11 @@ public final class QuestForPureFlame extends CardImpl {
class QuestForPureFlameTriggeredAbility extends TriggeredAbilityImpl {
- public QuestForPureFlameTriggeredAbility() {
+ QuestForPureFlameTriggeredAbility() {
super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true);
}
- public QuestForPureFlameTriggeredAbility(final QuestForPureFlameTriggeredAbility ability) {
+ private QuestForPureFlameTriggeredAbility(final QuestForPureFlameTriggeredAbility ability) {
super(ability);
}
@@ -85,12 +90,13 @@ class QuestForPureFlameTriggeredAbility extends TriggeredAbilityImpl {
class QuestForPureFlameEffect extends ReplacementEffectImpl {
- public QuestForPureFlameEffect() {
+ QuestForPureFlameEffect() {
super(Duration.EndOfTurn, Outcome.Damage);
- staticText = "If any source you control would deal damage to a permanent or player this turn, it deals double that damage to that permanent or player instead";
+ staticText = "If any source you control would deal damage to a permanent or player this turn, " +
+ "it deals double that damage to that permanent or player instead";
}
- public QuestForPureFlameEffect(final QuestForPureFlameEffect effect) {
+ private QuestForPureFlameEffect(final QuestForPureFlameEffect effect) {
super(effect);
}
diff --git a/Mage.Sets/src/mage/cards/q/QuestForTheGemblades.java b/Mage.Sets/src/mage/cards/q/QuestForTheGemblades.java
index 8b8dbb8501..2fc6215ffd 100644
--- a/Mage.Sets/src/mage/cards/q/QuestForTheGemblades.java
+++ b/Mage.Sets/src/mage/cards/q/QuestForTheGemblades.java
@@ -1,9 +1,9 @@
-
package mage.cards.q;
-import java.util.UUID;
+import mage.abilities.Ability;
import mage.abilities.common.DealsDamageToACreatureAllTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
@@ -12,32 +12,34 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SetTargetPointer;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
+import java.util.UUID;
+
/**
- *
* @author North
*/
public final class QuestForTheGemblades extends CardImpl {
public QuestForTheGemblades(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{G}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}");
// Whenever a creature you control deals combat damage to a creature, you may put a quest counter on Quest for the Gemblades.
this.addAbility(new DealsDamageToACreatureAllTriggeredAbility(
- new AddCountersSourceEffect(CounterType.QUEST.createInstance()), false,
- StaticFilters.FILTER_CONTROLLED_A_CREATURE,
- SetTargetPointer.PERMANENT, true));
-
+ new AddCountersSourceEffect(CounterType.QUEST.createInstance()), false,
+ StaticFilters.FILTER_CONTROLLED_A_CREATURE, SetTargetPointer.PERMANENT, true
+ ));
+
// Remove a quest counter from Quest for the Gemblades and sacrifice it: Put four +1/+1 counters on target creature.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
+ Ability ability = new SimpleActivatedAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance(4)),
- new RemoveCountersSourceCost(CounterType.QUEST.createInstance()));
- ability.addCost(new SacrificeSourceCost());
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance()),
+ new SacrificeSourceCost(),
+ "Remove a quest counter from {this} and sacrifice it"
+ ));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java b/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java
index 4e75a75f0e..3d9eeaa33d 100644
--- a/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java
+++ b/Mage.Sets/src/mage/cards/q/QuestForTheGravelord.java
@@ -1,9 +1,9 @@
package mage.cards.q;
-import java.util.UUID;
import mage.abilities.common.DiesCreatureTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.CreateTokenEffect;
@@ -11,12 +11,12 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.permanent.token.QuestForTheGravelordZombieToken;
+import java.util.UUID;
+
/**
- *
* @author North
*/
public final class QuestForTheGravelord extends CardImpl {
@@ -26,12 +26,16 @@ public final class QuestForTheGravelord extends CardImpl {
// Whenever a creature dies, you may put a quest counter on Quest for the Gravelord.
this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
+
// Remove three quest counters from Quest for the Gravelord and sacrifice it: Create a 5/5 black Zombie Giant creature token.
- SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
+ this.addAbility(new SimpleActivatedAbility(
new CreateTokenEffect(new QuestForTheGravelordZombieToken()),
- new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
+ new SacrificeSourceCost(),
+ "Remove three quest counters from {this} and sacrifice it"
+ )
+ ));
}
public QuestForTheGravelord(final QuestForTheGravelord card) {
diff --git a/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java b/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java
index 5822c53777..9cee4d7b57 100644
--- a/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java
+++ b/Mage.Sets/src/mage/cards/q/QuestForTheHolyRelic.java
@@ -1,10 +1,9 @@
-
package mage.cards.q;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.OneShotEffect;
@@ -26,8 +25,9 @@ import mage.target.Target;
import mage.target.common.TargetCardInLibrary;
import mage.target.common.TargetControlledCreaturePermanent;
+import java.util.UUID;
+
/**
- *
* @author Loki, North
*/
public final class QuestForTheHolyRelic extends CardImpl {
@@ -36,11 +36,20 @@ public final class QuestForTheHolyRelic extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}");
// Whenever you cast a creature spell, you may put a quest counter on Quest for the Holy Relic.
- this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), StaticFilters.FILTER_SPELL_A_CREATURE, true));
+ this.addAbility(new SpellCastControllerTriggeredAbility(
+ new AddCountersSourceEffect(CounterType.QUEST.createInstance()),
+ StaticFilters.FILTER_SPELL_A_CREATURE, true
+ ));
+
// Remove five quest counters from Quest for the Holy Relic and sacrifice it: Search your library for an Equipment card, put it onto the battlefield, and attach it to a creature you control. Then shuffle your library.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new QuestForTheHolyRelicEffect(), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(5)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+ this.addAbility(new SimpleActivatedAbility(
+ new QuestForTheHolyRelicEffect(),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(5)),
+ new SacrificeSourceCost(),
+ "Remove five quest counters from {this} and sacrifice it"
+ ))
+ );
}
public QuestForTheHolyRelic(final QuestForTheHolyRelic card) {
@@ -55,12 +64,12 @@ public final class QuestForTheHolyRelic extends CardImpl {
class QuestForTheHolyRelicEffect extends OneShotEffect {
- public QuestForTheHolyRelicEffect() {
+ QuestForTheHolyRelicEffect() {
super(Outcome.PutCardInPlay);
this.staticText = "Search your library for an Equipment card, put it onto the battlefield, and attach it to a creature you control. Then shuffle your library";
}
- public QuestForTheHolyRelicEffect(final QuestForTheHolyRelicEffect effect) {
+ private QuestForTheHolyRelicEffect(final QuestForTheHolyRelicEffect effect) {
super(effect);
}
diff --git a/Mage.Sets/src/mage/cards/r/ReyavMasterSmith.java b/Mage.Sets/src/mage/cards/r/ReyavMasterSmith.java
index 3b399ada6b..e65546f633 100644
--- a/Mage.Sets/src/mage/cards/r/ReyavMasterSmith.java
+++ b/Mage.Sets/src/mage/cards/r/ReyavMasterSmith.java
@@ -45,7 +45,7 @@ public final class ReyavMasterSmith extends CardImpl {
this.addAbility(new AttacksCreatureYouControlTriggeredAbility(
new GainAbilityTargetEffect(
DoubleStrikeAbility.getInstance(), Duration.EndOfTurn,
- "that creature gains double strike until end of turn."
+ "that creature gains double strike until end of turn"
), false, filter, true
));
}
diff --git a/Mage.Sets/src/mage/cards/r/RingOfValkas.java b/Mage.Sets/src/mage/cards/r/RingOfValkas.java
index c783b1ca99..75323d2422 100644
--- a/Mage.Sets/src/mage/cards/r/RingOfValkas.java
+++ b/Mage.Sets/src/mage/cards/r/RingOfValkas.java
@@ -40,7 +40,7 @@ public final class RingOfValkas extends CardImpl {
// At the beginning of your upkeep, put a +1/+1 counter on equipped creature if it's red.
TriggeredAbility triggeredAbility = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new AddPlusOneCountersAttachedEffect(1), TargetController.YOU, false);
- ConditionalInterveningIfTriggeredAbility ability = new ConditionalInterveningIfTriggeredAbility(triggeredAbility, new AttachedToMatchesFilterCondition(filter), "At the beginning of your upkeep, put a +1/+1 counter on equipped creature if it's red");
+ ConditionalInterveningIfTriggeredAbility ability = new ConditionalInterveningIfTriggeredAbility(triggeredAbility, new AttachedToMatchesFilterCondition(filter), "At the beginning of your upkeep, put a +1/+1 counter on equipped creature if it's red.");
this.addAbility(ability);
// Equip {1}
diff --git a/Mage.Sets/src/mage/cards/s/SakashimasProtege.java b/Mage.Sets/src/mage/cards/s/SakashimasProtege.java
index 6e35d0bef4..e9033844e9 100644
--- a/Mage.Sets/src/mage/cards/s/SakashimasProtege.java
+++ b/Mage.Sets/src/mage/cards/s/SakashimasProtege.java
@@ -41,7 +41,7 @@ public final class SakashimasProtege extends CardImpl {
// You may have Sakashima's Protege enter the battlefield as a copy of any permanent that entered the battlefield this turn.
this.addAbility(new EntersBattlefieldAbility(new CopyPermanentEffect(filter)
- .setText("you may have {this} enter the battlefield as a copy of any permanent that entered the battlefield this turn"), true));
+ .setText("as a copy of any permanent that entered the battlefield this turn"), true));
}
private SakashimasProtege(final SakashimasProtege card) {
diff --git a/Mage.Sets/src/mage/cards/s/SlayersStronghold.java b/Mage.Sets/src/mage/cards/s/SlayersStronghold.java
index 7f8edeae99..7ccfdd5c40 100644
--- a/Mage.Sets/src/mage/cards/s/SlayersStronghold.java
+++ b/Mage.Sets/src/mage/cards/s/SlayersStronghold.java
@@ -31,7 +31,7 @@ public final class SlayersStronghold extends CardImpl {
// {R}{W}, {tap}: Target creature gets +2/+0 and gains vigilance and haste until end of turn.
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(
2, 0, Duration.EndOfTurn
- ).setText("target creatures gets +2/+0"), new ManaCostsImpl("{R}{W}"));
+ ).setText("target creature gets +2/+0"), new ManaCostsImpl("{R}{W}"));
ability.addEffect(new GainAbilityTargetEffect(
VigilanceAbility.getInstance(), Duration.EndOfTurn
).setText("and gains vigilance"));
diff --git a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java
index 73affa34bd..03748541d1 100644
--- a/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java
+++ b/Mage.Sets/src/mage/cards/s/SlurrkAllIngesting.java
@@ -22,7 +22,7 @@ import java.util.UUID;
*/
public final class SlurrkAllIngesting extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature you control");
static {
filter.add(CounterType.P1P1.getPredicate());
diff --git a/Mage.Sets/src/mage/cards/s/SoulOfEternity.java b/Mage.Sets/src/mage/cards/s/SoulOfEternity.java
index d24255d6de..af74bc4297 100644
--- a/Mage.Sets/src/mage/cards/s/SoulOfEternity.java
+++ b/Mage.Sets/src/mage/cards/s/SoulOfEternity.java
@@ -32,7 +32,7 @@ public final class SoulOfEternity extends CardImpl {
Zone.ALL,
new SetPowerToughnessSourceEffect(
ControllerLifeCount.instance, Duration.EndOfGame
- )
+ ).setText("{this}'s power and toughness are each equal to your life total")
));
// Encore {7}{W}{W}
diff --git a/Mage.Sets/src/mage/cards/s/SoulStairExpedition.java b/Mage.Sets/src/mage/cards/s/SoulStairExpedition.java
index ac94b6ff54..41a712c542 100644
--- a/Mage.Sets/src/mage/cards/s/SoulStairExpedition.java
+++ b/Mage.Sets/src/mage/cards/s/SoulStairExpedition.java
@@ -1,10 +1,9 @@
-
package mage.cards.s;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.LandfallAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
@@ -12,27 +11,35 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.Zone;
import mage.counters.CounterType;
-import mage.filter.common.FilterCreatureCard;
+import mage.filter.StaticFilters;
import mage.target.common.TargetCardInYourGraveyard;
+import java.util.UUID;
+
/**
- *
* @author North
*/
public final class SoulStairExpedition extends CardImpl {
public SoulStairExpedition(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}");
// Landfall - Whenever a land enters the battlefield under your control, you may put a quest counter on Soul Stair Expedition.
- this.addAbility(new LandfallAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
+ this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
+
// Remove three quest counters from Soul Stair Expedition and sacrifice it: Return up to two target creature cards from your graveyard to your hand.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
- ability.addCost(new SacrificeSourceCost());
- ability.addTarget(new TargetCardInYourGraveyard(0, 2, new FilterCreatureCard("creature cards from your graveyard")));
+ Ability ability = new SimpleActivatedAbility(
+ new ReturnToHandTargetEffect(),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
+ new SacrificeSourceCost(),
+ "Remove three quest counters from {this} and sacrifice it"
+ )
+ );
+ ability.addTarget(new TargetCardInYourGraveyard(
+ 0, 2, StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD
+ ));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/SoulsFire.java b/Mage.Sets/src/mage/cards/s/SoulsFire.java
index d100485ae4..7418c8d952 100644
--- a/Mage.Sets/src/mage/cards/s/SoulsFire.java
+++ b/Mage.Sets/src/mage/cards/s/SoulsFire.java
@@ -44,7 +44,7 @@ class SoulsFireEffect extends OneShotEffect {
public SoulsFireEffect() {
super(Outcome.Damage);
- this.staticText = "Target creature you control on the battlefield deals damage equal to its power to any target";
+ this.staticText = "Target creature you control deals damage equal to its power to any target";
}
public SoulsFireEffect(final SoulsFireEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/v/VividCrag.java b/Mage.Sets/src/mage/cards/v/VividCrag.java
index 9a4885cdca..87e1f2edaa 100644
--- a/Mage.Sets/src/mage/cards/v/VividCrag.java
+++ b/Mage.Sets/src/mage/cards/v/VividCrag.java
@@ -23,7 +23,7 @@ public final class VividCrag extends CardImpl {
public VividCrag(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Vivid Crag enters the battlefield tapped with two charge counters on it.
- Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it", null);
+ Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it.", null);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)));
this.addAbility(ability);
// {tap}: Add {R}.
diff --git a/Mage.Sets/src/mage/cards/v/VividCreek.java b/Mage.Sets/src/mage/cards/v/VividCreek.java
index dfdab9918e..ad7e9711fa 100644
--- a/Mage.Sets/src/mage/cards/v/VividCreek.java
+++ b/Mage.Sets/src/mage/cards/v/VividCreek.java
@@ -23,7 +23,7 @@ public final class VividCreek extends CardImpl {
public VividCreek(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Vivid Creek enters the battlefield tapped with two charge counters on it.
- Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it", null);
+ Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it.", null);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)));
this.addAbility(ability);
// {tap}: Add {U}.
diff --git a/Mage.Sets/src/mage/cards/v/VividGrove.java b/Mage.Sets/src/mage/cards/v/VividGrove.java
index 57feb8ccfb..6b33ae9f63 100644
--- a/Mage.Sets/src/mage/cards/v/VividGrove.java
+++ b/Mage.Sets/src/mage/cards/v/VividGrove.java
@@ -23,7 +23,7 @@ public final class VividGrove extends CardImpl {
public VividGrove(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Vivid Grove enters the battlefield tapped with two charge counters on it.
- Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it", null);
+ Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it.", null);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)));
this.addAbility(ability);
// {tap}: Add {G}.
diff --git a/Mage.Sets/src/mage/cards/v/VividMarsh.java b/Mage.Sets/src/mage/cards/v/VividMarsh.java
index e62a8308f9..4c64e03a1e 100644
--- a/Mage.Sets/src/mage/cards/v/VividMarsh.java
+++ b/Mage.Sets/src/mage/cards/v/VividMarsh.java
@@ -24,7 +24,7 @@ public final class VividMarsh extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Vivid Marsh enters the battlefield tapped with two charge counters on it.
- Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it", null);
+ Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it.", null);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)));
this.addAbility(ability);
// {tap}: Add {B}.
diff --git a/Mage.Sets/src/mage/cards/v/VividMeadow.java b/Mage.Sets/src/mage/cards/v/VividMeadow.java
index b894a3bc22..de92c65ac0 100644
--- a/Mage.Sets/src/mage/cards/v/VividMeadow.java
+++ b/Mage.Sets/src/mage/cards/v/VividMeadow.java
@@ -23,7 +23,7 @@ public final class VividMeadow extends CardImpl {
public VividMeadow(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// Vivid Meadow enters the battlefield tapped with two charge counters on it.
- Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it", null);
+ Ability ability = new EntersBattlefieldAbility(new TapSourceEffect(true), false, null, "{this} enters the battlefield tapped with two charge counters on it.", null);
ability.addEffect(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)));
this.addAbility(ability);
// {tap}: Add {W}.
diff --git a/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java b/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java
index 58e317fe83..25117b9998 100644
--- a/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java
+++ b/Mage.Sets/src/mage/cards/z/ZektarShrineExpedition.java
@@ -3,6 +3,7 @@ package mage.cards.z;
import mage.abilities.Ability;
import mage.abilities.common.LandfallAbility;
import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CompositeCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.effects.OneShotEffect;
@@ -12,7 +13,6 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
-import mage.constants.Zone;
import mage.counters.CounterType;
import mage.game.Game;
import mage.game.permanent.token.RedElementalWithTrampleAndHaste;
@@ -28,11 +28,16 @@ public final class ZektarShrineExpedition extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
// Landfall - Whenever a land enters the battlefield under your control, you may put a quest counter on Zektar Shrine Expedition.
- this.addAbility(new LandfallAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
+ this.addAbility(new LandfallAbility(new AddCountersSourceEffect(CounterType.QUEST.createInstance()), true));
// Remove three quest counters from Zektar Shrine Expedition and sacrifice it: Create a 7/1 red Elemental creature token with trample and haste. Exile it at the beginning of the next end step.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ZektarShrineExpeditionEffect(), new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)));
- ability.addCost(new SacrificeSourceCost());
- this.addAbility(ability);
+ this.addAbility(new SimpleActivatedAbility(
+ new ZektarShrineExpeditionEffect(),
+ new CompositeCost(
+ new RemoveCountersSourceCost(CounterType.QUEST.createInstance(3)),
+ new SacrificeSourceCost(),
+ "Remove three quest counters from {this} and sacrifice it"
+ )
+ ));
}
public ZektarShrineExpedition(final ZektarShrineExpedition card) {
@@ -47,12 +52,12 @@ public final class ZektarShrineExpedition extends CardImpl {
class ZektarShrineExpeditionEffect extends OneShotEffect {
- public ZektarShrineExpeditionEffect() {
+ ZektarShrineExpeditionEffect() {
super(Outcome.PutCreatureInPlay);
this.staticText = "Create a 7/1 red Elemental creature token with trample and haste. Exile it at the beginning of the next end step";
}
- public ZektarShrineExpeditionEffect(final ZektarShrineExpeditionEffect effect) {
+ private ZektarShrineExpeditionEffect(final ZektarShrineExpeditionEffect effect) {
super(effect);
}
@@ -63,7 +68,6 @@ class ZektarShrineExpeditionEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
-
CreateTokenEffect effect = new CreateTokenEffect(new RedElementalWithTrampleAndHaste());
if (effect.apply(game, source)) {
effect.exileTokensCreatedAtNextEndStep(game, source);
@@ -71,5 +75,4 @@ class ZektarShrineExpeditionEffect extends OneShotEffect {
}
return false;
}
-
}
diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
index 6047be8cfd..22ec4893f5 100644
--- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
+++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java
@@ -53,7 +53,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
- private static final String FULL_ABILITIES_CHECK_SET_CODE = "M20"; // check all abilities and output cards with wrong abilities texts;
+ private static final String FULL_ABILITIES_CHECK_SET_CODE = "CMR"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: fix sample decks if it contains errors like wrong card numbers
private static final HashMap> skipCheckLists = new HashMap<>();
diff --git a/Mage/src/main/java/mage/abilities/condition/common/IsPhaseCondition.java b/Mage/src/main/java/mage/abilities/condition/common/IsPhaseCondition.java
index 615c807c37..031fe43f52 100644
--- a/Mage/src/main/java/mage/abilities/condition/common/IsPhaseCondition.java
+++ b/Mage/src/main/java/mage/abilities/condition/common/IsPhaseCondition.java
@@ -25,7 +25,7 @@ public class IsPhaseCondition implements Condition {
@Override
public String toString() {
- return new StringBuilder("during ").append(turnPhase).toString();
+ return new StringBuilder("during ").append(turnPhase).toString().toLowerCase();
}
}
diff --git a/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java b/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java
index ca3571ea6b..4d221a0198 100644
--- a/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java
+++ b/Mage/src/main/java/mage/game/permanent/token/DragonEggDragonToken.java
@@ -18,7 +18,7 @@ import mage.constants.Zone;
public final class DragonEggDragonToken extends TokenImpl {
public DragonEggDragonToken() {
- super("Dragon", "2/2 red Dragon creature token with flying and \"{R}: This creature gets +1/+0 until end of turn");
+ super("Dragon", "2/2 red Dragon creature token with flying and \"{R}: This creature gets +1/+0 until end of turn.\"");
this.setOriginalExpansionSetCode("M14");
cardType.add(CardType.CREATURE);
color.setRed(true);