diff --git a/Mage.Sets/src/mage/cards/c/CleansingMeditation.java b/Mage.Sets/src/mage/cards/c/CleansingMeditation.java
index 1c7a6a19ea6..31adc723dc5 100644
--- a/Mage.Sets/src/mage/cards/c/CleansingMeditation.java
+++ b/Mage.Sets/src/mage/cards/c/CleansingMeditation.java
@@ -9,6 +9,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
@@ -46,7 +47,7 @@ class CleansingMeditationEffect extends OneShotEffect {
public CleansingMeditationEffect() {
super(Outcome.DestroyPermanent);
- this.staticText = "Destroy all enchantments.
Threshold - If seven or more cards are in your graveyard, instead destroy all enchantments, then return all cards in your graveyard destroyed this way to the battlefield.";
+ this.staticText = "Destroy all enchantments.
" + AbilityWord.THRESHOLD.formatWord() + "If seven or more cards are in your graveyard, instead destroy all enchantments, then return all cards in your graveyard destroyed this way to the battlefield.";
}
public CleansingMeditationEffect(final CleansingMeditationEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/g/GibberingDescent.java b/Mage.Sets/src/mage/cards/g/GibberingDescent.java
index 906f0c3cf01..73ce58bff8a 100644
--- a/Mage.Sets/src/mage/cards/g/GibberingDescent.java
+++ b/Mage.Sets/src/mage/cards/g/GibberingDescent.java
@@ -1,15 +1,11 @@
-
package mage.cards.g;
-import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.condition.common.HellbentCondition;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.decorator.ConditionalContinuousRuleModifyingEffect;
import mage.abilities.effects.ContinuousRuleModifyingEffectImpl;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.LoseLifeTargetEffect;
import mage.abilities.effects.common.discard.DiscardTargetEffect;
import mage.abilities.keyword.MadnessAbility;
@@ -18,32 +14,28 @@ import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
-import mage.game.events.GameEvent.EventType;
+
+import java.util.UUID;
/**
- *
* @author emerald000
*/
public final class GibberingDescent extends CardImpl {
public GibberingDescent(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{4}{B}{B}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{4}{B}{B}");
// At the beginning of each player's upkeep, that player loses 1 life and discards a card.
- Effect effect = new LoseLifeTargetEffect(1);
- effect.setText("that player loses 1 life");
- Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, false, true);
- effect = new DiscardTargetEffect(1);
- effect.setText("and discards a card");
- ability.addEffect(effect);
+ Ability ability = new BeginningOfUpkeepTriggeredAbility(
+ Zone.BATTLEFIELD, new LoseLifeTargetEffect(1).setText("that player loses 1 life"),
+ TargetController.ANY, false, true
+ );
+ ability.addEffect(new DiscardTargetEffect(1).setText("and discards a card"));
this.addAbility(ability);
-
+
// Hellbent - Skip your upkeep step if you have no cards in hand.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousRuleModifyingEffect(
- new GibberingDescentSkipUpkeepEffect(),
- HellbentCondition.instance)));
-
+ this.addAbility(new SimpleStaticAbility(new GibberingDescentSkipUpkeepEffect()).setAbilityWord(AbilityWord.HELLBENT));
+
// Madness {2}{B}{B}
this.addAbility(new MadnessAbility(this, new ManaCostsImpl<>("{2}{B}{B}")));
}
@@ -62,7 +54,7 @@ class GibberingDescentSkipUpkeepEffect extends ContinuousRuleModifyingEffectImpl
GibberingDescentSkipUpkeepEffect() {
super(Duration.WhileOnBattlefield, Outcome.Neutral);
- this.staticText = "Hellbent - Skip your upkeep step if you have no cards in hand";
+ this.staticText = "skip your upkeep step if you have no cards in hand";
}
GibberingDescentSkipUpkeepEffect(final GibberingDescentSkipUpkeepEffect effect) {
@@ -78,9 +70,9 @@ class GibberingDescentSkipUpkeepEffect extends ContinuousRuleModifyingEffectImpl
public boolean checksEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.UPKEEP_STEP;
}
-
+
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
- return event.getPlayerId().equals(source.getControllerId());
+ return source.isControlledBy(event.getPlayerId()) && HellbentCondition.instance.apply(game, source);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/cards/l/LeaveNoTrace.java b/Mage.Sets/src/mage/cards/l/LeaveNoTrace.java
index 4e53026639e..d2e46889b32 100644
--- a/Mage.Sets/src/mage/cards/l/LeaveNoTrace.java
+++ b/Mage.Sets/src/mage/cards/l/LeaveNoTrace.java
@@ -1,12 +1,11 @@
-
package mage.cards.l;
-import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.filter.FilterPermanent;
@@ -14,6 +13,8 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetEnchantmentPermanent;
+import java.util.UUID;
+
/**
* @author Loki
*/
@@ -25,12 +26,12 @@ public final class LeaveNoTrace extends CardImpl {
}
public LeaveNoTrace(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}");
-
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}");
// Radiance - Destroy target enchantment and each other enchantment that shares a color with it.
this.getSpellAbility().addEffect(new LeaveNoTraceEffect());
this.getSpellAbility().addTarget(new TargetEnchantmentPermanent());
+ this.getSpellAbility().setAbilityWord(AbilityWord.RADIANCE);
}
private LeaveNoTrace(final LeaveNoTrace card) {
@@ -52,7 +53,7 @@ class LeaveNoTraceEffect extends OneShotEffect {
LeaveNoTraceEffect() {
super(Outcome.DestroyPermanent);
- staticText = "Radiance - Destroy target enchantment and each other enchantment that shares a color with it";
+ staticText = "Destroy target enchantment and each other enchantment that shares a color with it";
}
LeaveNoTraceEffect(final LeaveNoTraceEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/r/RakdosPitDragon.java b/Mage.Sets/src/mage/cards/r/RakdosPitDragon.java
index 79f9f607fd1..77bde17ecc3 100644
--- a/Mage.Sets/src/mage/cards/r/RakdosPitDragon.java
+++ b/Mage.Sets/src/mage/cards/r/RakdosPitDragon.java
@@ -1,8 +1,5 @@
-
-
package mage.cards.r;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
@@ -15,39 +12,42 @@ import mage.abilities.keyword.DoubleStrikeAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
-import mage.constants.SubType;
import mage.constants.Duration;
-import mage.constants.Zone;
+import mage.constants.SubType;
+
+import java.util.UUID;
/**
- *
* @author Loki
*/
public final class RakdosPitDragon extends CardImpl {
- public RakdosPitDragon (UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}{R}");
+ public RakdosPitDragon(UUID ownerId, CardSetInfo setInfo) {
+ super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
this.subtype.add(SubType.DRAGON);
this.power = new MageInt(3);
this.toughness = new MageInt(3);
+
// {R}{R}: Rakdos Pit Dragon gains flying until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.EndOfTurn),
- new ManaCostsImpl("{R}{R}")));
+ this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(
+ FlyingAbility.getInstance(), Duration.EndOfTurn
+ ), new ManaCostsImpl<>("{R}{R}")));
+
// {R}: Rakdos Pit Dragon gets +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
- new BoostSourceEffect(1, 0, Duration.EndOfTurn),
- new ManaCostsImpl("{R}")));
+ this.addAbility(new SimpleActivatedAbility(
+ new BoostSourceEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{R}")
+ ));
// Hellbent — Rakdos Pit Dragon has double strike as long as you have no cards in hand.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
+ this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(DoubleStrikeAbility.getInstance(), Duration.WhileOnBattlefield),
- HellbentCondition.instance,
- "Hellbent - Rakdos Pit Dragon has double strike as long as you have no cards in hand")));
+ HellbentCondition.instance, "{this} has double strike as long as you have no cards in hand"
+ )).setAbilityWord(AbilityWord.HELLBENT));
}
- public RakdosPitDragon (final RakdosPitDragon card) {
+ public RakdosPitDragon(final RakdosPitDragon card) {
super(card);
}
@@ -55,5 +55,4 @@ public final class RakdosPitDragon extends CardImpl {
public RakdosPitDragon copy() {
return new RakdosPitDragon(this);
}
-
}
diff --git a/Mage.Sets/src/mage/cards/r/RestForTheWeary.java b/Mage.Sets/src/mage/cards/r/RestForTheWeary.java
index 29833b941c2..0831b7caa70 100644
--- a/Mage.Sets/src/mage/cards/r/RestForTheWeary.java
+++ b/Mage.Sets/src/mage/cards/r/RestForTheWeary.java
@@ -1,29 +1,34 @@
-
package mage.cards.r;
-import java.util.UUID;
import mage.abilities.condition.common.LandfallCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.GainLifeTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.target.TargetPlayer;
import mage.watchers.common.LandfallWatcher;
+import java.util.UUID;
+
/**
- *
* @author Loki
*/
public final class RestForTheWeary extends CardImpl {
public RestForTheWeary(UUID ownerId, CardSetInfo setInfo) {
- super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{W}");
+ super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{W}");
// Target player gains 4 life.
// Landfall - If you had a land enter the battlefield under your control this turn, that player gains 8 life instead.
this.getSpellAbility().addWatcher(new LandfallWatcher());
- this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new GainLifeTargetEffect(8), new GainLifeTargetEffect(4), LandfallCondition.instance, "Target player gains 4 life.
Landfall - If you had a land enter the battlefield under your control this turn, that player gains 8 life instead"));
+ this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
+ new GainLifeTargetEffect(8), new GainLifeTargetEffect(4),
+ LandfallCondition.instance, "Target player gains 4 life.
" +
+ AbilityWord.LANDFALL.formatWord() + "If you had a land enter the battlefield " +
+ "under your control this turn, that player gains 8 life instead"
+ ));
this.getSpellAbility().addTarget(new TargetPlayer());
}
diff --git a/Mage.Sets/src/mage/cards/s/SearingBlaze.java b/Mage.Sets/src/mage/cards/s/SearingBlaze.java
index b6aa4a0a7f8..29213010319 100644
--- a/Mage.Sets/src/mage/cards/s/SearingBlaze.java
+++ b/Mage.Sets/src/mage/cards/s/SearingBlaze.java
@@ -1,14 +1,11 @@
-
package mage.cards.s;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
+import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.filter.StaticFilters;
@@ -20,8 +17,11 @@ import mage.target.TargetPermanent;
import mage.target.common.TargetPlayerOrPlaneswalker;
import mage.watchers.common.LandfallWatcher;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
/**
- *
* @author BetaSteward_at_googlemail.com
* @author North
*/
@@ -53,7 +53,10 @@ class SearingBlazeEffect extends OneShotEffect {
public SearingBlazeEffect() {
super(Outcome.Damage);
- staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to target creature that player or that planeswalker's controller controls. \nLandfall - If you had a land enter the battlefield under your control this turn, {this} deals 3 damage to that player or planeswalker and 3 damage to that creature instead.";
+ staticText = "{this} deals 1 damage to target player or planeswalker and 1 damage to target creature " +
+ "that player or that planeswalker's controller controls.
" + AbilityWord.LANDFALL.formatWord() +
+ "If you had a land enter the battlefield under your control this turn, {this} deals 3 damage " +
+ "to that player or planeswalker and 3 damage to that creature instead.";
}
public SearingBlazeEffect(final SearingBlazeEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/s/SinuousStriker.java b/Mage.Sets/src/mage/cards/s/SinuousStriker.java
index 080d79a3c57..7dd8401ee02 100644
--- a/Mage.Sets/src/mage/cards/s/SinuousStriker.java
+++ b/Mage.Sets/src/mage/cards/s/SinuousStriker.java
@@ -1,7 +1,7 @@
package mage.cards.s;
-import java.util.UUID;
import mage.MageInt;
+import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.mana.ManaCostsImpl;
@@ -10,15 +10,16 @@ import mage.abilities.keyword.EternalizeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.SubType;
import mage.constants.Duration;
-import mage.constants.Zone;
+import mage.constants.SubType;
+
+import java.util.UUID;
public final class SinuousStriker extends CardImpl {
- private static String rule = "Eternalize - {3}{U}{U}, Discard a card ({3}{U}{U}, Discard a card, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie";
+ private static final String rule = "Eternalize — {3}{U}{U}, Discard a card. ({3}{U}{U}, Discard a card, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie)";
- public SinuousStriker(UUID ownerId, CardSetInfo cardSetInfo){
+ public SinuousStriker(UUID ownerId, CardSetInfo cardSetInfo) {
super(ownerId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
subtype.add(SubType.NAGA);
subtype.add(SubType.WARRIOR);
@@ -27,19 +28,22 @@ public final class SinuousStriker extends CardImpl {
toughness = new MageInt(2);
//U : Sinious Striker gets +1/-1 until end of turn
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(+1, -1, Duration.EndOfTurn), new ManaCostsImpl("{U}")));
+ this.addAbility(new SimpleActivatedAbility(new BoostSourceEffect(
+ +1, -1, Duration.EndOfTurn
+ ), new ManaCostsImpl<>("{U}")));
//Eternalize 3UU, Discard a card
- EternalizeAbility ability = new EternalizeAbility(new ManaCostsImpl("{3}{U}{U}"), this, rule);
+ Ability ability = new EternalizeAbility(new ManaCostsImpl<>("{3}{U}{U}"), this, rule);
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
- public SinuousStriker(final SinuousStriker sinuousStriker){
+ private SinuousStriker(final SinuousStriker sinuousStriker) {
super(sinuousStriker);
}
- public SinuousStriker copy(){
+ @Override
+ public SinuousStriker copy() {
return new SinuousStriker(this);
}
}
diff --git a/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java b/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java
index d29838f9f16..072c76860f8 100644
--- a/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java
+++ b/Mage.Sets/src/mage/cards/s/SunscourgeChampion.java
@@ -1,9 +1,6 @@
-
package mage.cards.s;
-import java.util.UUID;
import mage.MageInt;
-import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.costs.common.DiscardCardCost;
@@ -13,19 +10,20 @@ import mage.abilities.keyword.EternalizeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.SubType;
import mage.constants.Outcome;
+import mage.constants.SubType;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.players.Player;
+import java.util.UUID;
+
/**
- *
* @author spjspj
*/
public final class SunscourgeChampion extends CardImpl {
-
- private static String rule = "Eternalize - {2}{W}{W}, Discard a card ({2}{W}{W}, Discard a card, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie";
+
+ private static final String rule = "Eternalize — {2}{W}{W}, Discard a card. ({2}{W}{W}, Discard a card, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie)";
public SunscourgeChampion(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
@@ -39,7 +37,7 @@ public final class SunscourgeChampion extends CardImpl {
this.addAbility(new EntersBattlefieldTriggeredAbility(new SunscourgeChampionEffect(), false));
// Eternalize - {2}{W}{W}, Discard a card.
- EternalizeAbility ability = new EternalizeAbility(new ManaCostsImpl("{2}{W}{W}"), this, rule);
+ Ability ability = new EternalizeAbility(new ManaCostsImpl<>("{2}{W}{W}"), this, rule);
ability.addCost(new DiscardCardCost());
this.addAbility(ability);
}
@@ -67,10 +65,9 @@ class SunscourgeChampionEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
- Permanent permanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
+ Permanent permanent = source.getSourcePermanentIfItStillExists(game);
Player controller = game.getPlayer(source.getControllerId());
- MageObject sourceObject = game.getObject(source.getSourceId());
- if (controller != null && permanent != null && sourceObject != null) {
+ if (controller != null && permanent != null) {
controller.gainLife(permanent.getPower().getValue(), game, source);
return true;
}