diff --git a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java
index 5ae9c6c9f1a..2226b904099 100644
--- a/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java
+++ b/Mage.Sets/src/mage/cards/p/PharikaGodOfAffliction.java
@@ -5,7 +5,6 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
@@ -20,7 +19,6 @@ import mage.filter.common.FilterCreatureCard;
import mage.game.Game;
import mage.game.permanent.token.PharikaSnakeToken;
import mage.players.Player;
-import mage.target.Target;
import mage.target.common.TargetCardInGraveyard;
import java.util.UUID;
@@ -30,7 +28,7 @@ import java.util.UUID;
*/
public final class PharikaGodOfAffliction extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.B, ColoredManaSymbol.G);
+ private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card from a graveyard");
public PharikaGodOfAffliction(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{B}{G}");
@@ -44,14 +42,13 @@ public final class PharikaGodOfAffliction extends CardImpl {
this.addAbility(IndestructibleAbility.getInstance());
// As long as your devotion to black and green is less than seven, Pharika isn't a creature.
- Effect effect = new LoseCreatureTypeSourceEffect(xValue, 7);
- effect.setText("As long as your devotion to black and green is less than seven, Pharika isn't a creature");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect).addHint(new ValueHint("Devotion to black and green", xValue)));
+ Effect effect = new LoseCreatureTypeSourceEffect(DevotionCount.BG, 7);
+ effect.setText("As long as your devotion to black and green is less than seven, {this} isn't a creature");
+ this.addAbility(new SimpleStaticAbility(effect).addHint(new ValueHint("Devotion to black and green", DevotionCount.BG)));
// {B}{G}: Exile target creature card from a graveyard. It's owner creates a 1/1 black and green Snake enchantment creature token with deathtouch.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PharikaExileEffect(), new ManaCostsImpl("{B}{G}"));
- Target target = new TargetCardInGraveyard(new FilterCreatureCard("a creature card from a graveyard"));
- ability.addTarget(target);
+ Ability ability = new SimpleActivatedAbility(new PharikaExileEffect(), new ManaCostsImpl("{B}{G}"));
+ ability.addTarget(new TargetCardInGraveyard(filter));
this.addAbility(ability);
}
@@ -68,31 +65,33 @@ public final class PharikaGodOfAffliction extends CardImpl {
class PharikaExileEffect extends OneShotEffect {
- public PharikaExileEffect() {
+ PharikaExileEffect() {
super(Outcome.PutCreatureInPlay);
staticText = "Exile target creature card from a graveyard. Its owner creates a 1/1 black and green Snake enchantment creature token with deathtouch";
}
- public PharikaExileEffect(final PharikaExileEffect effect) {
+ private PharikaExileEffect(final PharikaExileEffect effect) {
super(effect);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
- if (controller != null) {
- Card targetCard = game.getCard(source.getFirstTarget());
- if (targetCard != null) {
- if (game.getState().getZone(source.getFirstTarget()) == Zone.GRAVEYARD) {
- controller.moveCardToExileWithInfo(targetCard, null, "", source.getSourceId(), game, Zone.GRAVEYARD, true);
- }
- Player tokenController = game.getPlayer(targetCard.getOwnerId());
- if (tokenController != null) {
- return new PharikaSnakeToken().putOntoBattlefield(1, game, source.getSourceId(), tokenController.getId());
- }
- }
+ if (controller == null) {
+ return false;
}
- return false;
+ Card targetCard = game.getCard(source.getFirstTarget());
+ if (targetCard == null) {
+ return false;
+ }
+ if (game.getState().getZone(source.getFirstTarget()) == Zone.GRAVEYARD) {
+ controller.moveCards(targetCard, Zone.EXILED, source, game);
+ }
+ Player tokenController = game.getPlayer(targetCard.getOwnerId());
+ if (tokenController == null) {
+ return false;
+ }
+ return new PharikaSnakeToken().putOntoBattlefield(1, game, source.getSourceId(), tokenController.getId());
}
@Override
diff --git a/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java b/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java
index 2cbc41301cc..4ca2bb3d755 100644
--- a/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java
+++ b/Mage.Sets/src/mage/cards/p/PhenaxGodOfDeception.java
@@ -5,7 +5,6 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.common.TapSourceCost;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.dynamicvalue.common.SourcePermanentToughnessValue;
import mage.abilities.effects.Effect;
@@ -16,7 +15,10 @@ import mage.abilities.hint.ValueHint;
import mage.abilities.keyword.IndestructibleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
-import mage.constants.*;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.SubType;
+import mage.constants.SuperType;
import mage.filter.StaticFilters;
import mage.target.TargetPlayer;
@@ -27,8 +29,6 @@ import java.util.UUID;
*/
public final class PhenaxGodOfDeception extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.U, ColoredManaSymbol.B);
-
public PhenaxGodOfDeception(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{U}{B}");
addSuperType(SuperType.LEGENDARY);
@@ -41,18 +41,22 @@ public final class PhenaxGodOfDeception extends CardImpl {
this.addAbility(IndestructibleAbility.getInstance());
// As long as your devotion to blue and black is less than seven, Phenax isn't a creature.
- Effect effect = new LoseCreatureTypeSourceEffect(xValue, 7);
- effect.setText("As long as your devotion to blue and black is less than seven, Phenax isn't a creature");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect).addHint(new ValueHint("Devotion to blue and black", xValue)));
+ Effect effect = new LoseCreatureTypeSourceEffect(DevotionCount.UB, 7);
+ effect.setText("As long as your devotion to blue and black is less than seven, {this} isn't a creature");
+ this.addAbility(new SimpleStaticAbility(effect).addHint(new ValueHint("Devotion to blue and black", DevotionCount.UB)));
// Creatures you control have "{T}: Target player puts the top X cards of their library into their graveyard, where X is this creature's toughness."
- effect = new PutTopCardOfLibraryIntoGraveTargetEffect(SourcePermanentToughnessValue.getInstance());
- effect.setText("Target player puts the top X cards of their library into their graveyard, where X is this creature's toughness");
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
+ Ability ability = new SimpleActivatedAbility(
+ new PutTopCardOfLibraryIntoGraveTargetEffect(SourcePermanentToughnessValue.getInstance())
+ .setText("Target player puts the top X cards of their library into their graveyard, " +
+ "where X is this creature's toughness"), new TapSourceCost());
ability.addTarget(new TargetPlayer());
- effect = new GainAbilityControlledEffect(ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, false);
- effect.setText("Creatures you control have \"{T}: Target player puts the top X cards of their library into their graveyard, where X is this creature's toughness.\"");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
+ this.addAbility(new SimpleStaticAbility(
+ new GainAbilityControlledEffect(
+ ability, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, false
+ ).setText("Creatures you control have \"{T}: Target player puts the top X cards of their library " +
+ "into their graveyard, where X is this creature's toughness.\"")
+ ));
}
public PhenaxGodOfDeception(final PhenaxGodOfDeception card) {
diff --git a/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java b/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java
index 079d06e6980..850520ee256 100644
--- a/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java
+++ b/Mage.Sets/src/mage/cards/p/PurphorosGodOfTheForge.java
@@ -5,7 +5,6 @@ import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamagePlayersEffect;
@@ -32,8 +31,6 @@ public final class PurphorosGodOfTheForge extends CardImpl {
filter.add(AnotherPredicate.instance);
}
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.R);
-
public PurphorosGodOfTheForge(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{R}");
@@ -47,15 +44,19 @@ public final class PurphorosGodOfTheForge extends CardImpl {
this.addAbility(IndestructibleAbility.getInstance());
// As long as your devotion to red is less than five, Purphoros isn't a creature.
- Effect effect = new LoseCreatureTypeSourceEffect(xValue, 5);
- effect.setText("As long as your devotion to red is less than five, Purphoros isn't a creature.(Each {R} in the mana costs of permanents you control counts towards your devotion to red.)");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect).addHint(new ValueHint("Devotion to red", xValue)));
+ Effect effect = new LoseCreatureTypeSourceEffect(DevotionCount.R, 5);
+ effect.setText("As long as your devotion to red is less than five, {this} isn't a creature.");
+ this.addAbility(new SimpleStaticAbility(effect).addHint(new ValueHint("Devotion to red", DevotionCount.R)));
// Whenever another creature enters the battlefield under your control, Purphoros deals 2 damage to each opponent.
- this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new DamagePlayersEffect(2, TargetController.OPPONENT), filter));
+ this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
+ new DamagePlayersEffect(2, TargetController.OPPONENT), filter
+ ));
// {2}{R}: Creatures you control get +1/+0 until end of turn.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}")));
+ this.addAbility(new SimpleActivatedAbility(
+ new BoostControlledEffect(1, 0, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}")
+ ));
}
public PurphorosGodOfTheForge(final PurphorosGodOfTheForge card) {
diff --git a/Mage.Sets/src/mage/cards/r/ReverentHunter.java b/Mage.Sets/src/mage/cards/r/ReverentHunter.java
index 762a655df1d..88aafdf4fbd 100644
--- a/Mage.Sets/src/mage/cards/r/ReverentHunter.java
+++ b/Mage.Sets/src/mage/cards/r/ReverentHunter.java
@@ -2,14 +2,12 @@ package mage.cards.r;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.ColoredManaSymbol;
import mage.constants.SubType;
import mage.counters.CounterType;
@@ -20,8 +18,6 @@ import java.util.UUID;
*/
public final class ReverentHunter extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.G);
-
public ReverentHunter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add(SubType.HUMAN);
@@ -31,11 +27,9 @@ public final class ReverentHunter extends CardImpl {
this.toughness = new MageInt(1);
// When Reverent Hunter enters the battlefield, put a number of +1/+1 counters on it equal to your devotion to green.
- this.addAbility(
- new EntersBattlefieldTriggeredAbility(
- new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), xValue, true)
- ).addHint(new ValueHint("Devotion to green", xValue))
- );
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersSourceEffect(
+ CounterType.P1P1.createInstance(0), DevotionCount.G, true
+ )).addHint(new ValueHint("Devotion to green", DevotionCount.G)));
}
public ReverentHunter(final ReverentHunter card) {
diff --git a/Mage.Sets/src/mage/cards/s/Sanguimancy.java b/Mage.Sets/src/mage/cards/s/Sanguimancy.java
index fbedf639702..b2125881e7b 100644
--- a/Mage.Sets/src/mage/cards/s/Sanguimancy.java
+++ b/Mage.Sets/src/mage/cards/s/Sanguimancy.java
@@ -1,6 +1,5 @@
package mage.cards.s;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
@@ -9,7 +8,6 @@ import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.ColoredManaSymbol;
import java.util.UUID;
@@ -18,19 +16,17 @@ import java.util.UUID;
*/
public final class Sanguimancy extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.B);
-
public Sanguimancy(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{B}");
// You draw X cards and you lose X life, where X is your devotion to black.
- Effect effect = new DrawCardSourceControllerEffect(xValue);
+ Effect effect = new DrawCardSourceControllerEffect(DevotionCount.B);
effect.setText("You draw X cards");
this.getSpellAbility().addEffect(effect);
- effect = new LoseLifeSourceControllerEffect(xValue);
+ effect = new LoseLifeSourceControllerEffect(DevotionCount.B);
effect.setText("and you lose X life, where X is your devotion to black");
this.getSpellAbility().addEffect(effect);
- this.getSpellAbility().addHint(new ValueHint("Devotion to black", xValue));
+ this.getSpellAbility().addHint(new ValueHint("Devotion to black", DevotionCount.B));
}
public Sanguimancy(final Sanguimancy card) {
diff --git a/Mage.Sets/src/mage/cards/s/Skyreaping.java b/Mage.Sets/src/mage/cards/s/Skyreaping.java
index 39144af3a08..1477becee1d 100644
--- a/Mage.Sets/src/mage/cards/s/Skyreaping.java
+++ b/Mage.Sets/src/mage/cards/s/Skyreaping.java
@@ -1,6 +1,5 @@
package mage.cards.s;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageAllEffect;
@@ -9,7 +8,6 @@ import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.ColoredManaSymbol;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.AbilityPredicate;
@@ -26,17 +24,14 @@ public final class Skyreaping extends CardImpl {
filter.add(new AbilityPredicate(FlyingAbility.class));
}
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.G);
-
public Skyreaping(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
-
// Skyreaping deals damage to each creature with flying equal to your devotion to green.
- Effect effect = new DamageAllEffect(xValue, filter);
+ Effect effect = new DamageAllEffect(DevotionCount.G, filter);
effect.setText("{this} deals damage to each creature with flying equal to your devotion to green (Each {G} in the mana costs of permanents you control counts toward your devotion to green.)");
this.getSpellAbility().addEffect(effect);
- this.getSpellAbility().addHint(new ValueHint("Devotion to green", xValue));
+ this.getSpellAbility().addHint(new ValueHint("Devotion to green", DevotionCount.G));
}
public Skyreaping(final Skyreaping card) {
diff --git a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java
index 9eeaf731239..d265c94f0db 100644
--- a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java
+++ b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java
@@ -6,7 +6,6 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
@@ -27,8 +26,6 @@ import java.util.UUID;
public final class ThassaGodOfTheSea extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.U);
-
public ThassaGodOfTheSea(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{2}{U}");
addSuperType(SuperType.LEGENDARY);
@@ -40,21 +37,25 @@ public final class ThassaGodOfTheSea extends CardImpl {
// Indestructible
this.addAbility(IndestructibleAbility.getInstance());
- // As long as your devotion to white is less than five, Thassa isn't a creature.(Each {U} in the mana costs of permanents you control counts towards your devotion to white.)
- Effect effect = new LoseCreatureTypeSourceEffect(xValue, 5);
- effect.setText("As long as your devotion to blue is less than five, Thassa isn't a creature.(Each {U} in the mana costs of permanents you control counts towards your devotion to blue.)");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect).addHint(new ValueHint("Devotion to blue", xValue)));
+ // As long as your devotion to blue is less than five, Thassa isn't a creature.(Each {U} in the mana costs of permanents you control counts towards your devotion to white.)
+ Effect effect = new LoseCreatureTypeSourceEffect(DevotionCount.U, 5);
+ effect.setText("As long as your devotion to blue is less than five, {this} isn't a creature.");
+ this.addAbility(new SimpleStaticAbility(effect).addHint(new ValueHint("Devotion to blue", DevotionCount.U)));
// At the beginning of your upkeep, scry 1.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(
+ new ScryEffect(1), TargetController.YOU, false
+ ));
// {1}{U}: Target creature you control can't be blocked this turn.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{U}"));
+ Ability ability = new SimpleActivatedAbility(
+ new CantBeBlockedTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{1}{U}")
+ );
ability.addTarget(new TargetControlledCreaturePermanent());
this.addAbility(ability);
}
- public ThassaGodOfTheSea(final ThassaGodOfTheSea card) {
+ private ThassaGodOfTheSea(final ThassaGodOfTheSea card) {
super(card);
}
diff --git a/Mage.Sets/src/mage/cards/t/ThassasRebuff.java b/Mage.Sets/src/mage/cards/t/ThassasRebuff.java
index 61384c97cbc..03a0ae6ff18 100644
--- a/Mage.Sets/src/mage/cards/t/ThassasRebuff.java
+++ b/Mage.Sets/src/mage/cards/t/ThassasRebuff.java
@@ -1,13 +1,11 @@
package mage.cards.t;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.common.CounterUnlessPaysEffect;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.ColoredManaSymbol;
import mage.target.TargetSpell;
import java.util.UUID;
@@ -17,15 +15,13 @@ import java.util.UUID;
*/
public final class ThassasRebuff extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.U);
-
public ThassasRebuff(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}");
// Counter target spell unless its controller pays {X}, where X is your devotion to blue.
- this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(xValue));
+ this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(DevotionCount.U));
this.getSpellAbility().addTarget(new TargetSpell());
- this.getSpellAbility().addHint(new ValueHint("Devotion to blue", xValue));
+ this.getSpellAbility().addHint(new ValueHint("Devotion to blue", DevotionCount.U));
}
public ThassasRebuff(final ThassasRebuff card) {
diff --git a/Mage.Sets/src/mage/cards/t/ThunderousMight.java b/Mage.Sets/src/mage/cards/t/ThunderousMight.java
index dd716ea8e01..8a995bb4bef 100644
--- a/Mage.Sets/src/mage/cards/t/ThunderousMight.java
+++ b/Mage.Sets/src/mage/cards/t/ThunderousMight.java
@@ -2,7 +2,6 @@ package mage.cards.t;
import mage.abilities.Ability;
import mage.abilities.common.AttacksAttachedTriggeredAbility;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.AttachEffect;
@@ -22,8 +21,6 @@ import java.util.UUID;
*/
public final class ThunderousMight extends CardImpl {
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.R);
-
public ThunderousMight(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
this.subtype.add(SubType.AURA);
@@ -36,11 +33,11 @@ public final class ThunderousMight extends CardImpl {
this.addAbility(ability);
// Whenever enchanted creature attacks, it gets +X/+0 until end of turn, where X is your devotion to red.
- BoostEnchantedEffect effect = new BoostEnchantedEffect(xValue, new StaticValue(0), Duration.EndOfTurn);
+ BoostEnchantedEffect effect = new BoostEnchantedEffect(DevotionCount.R, new StaticValue(0), Duration.EndOfTurn);
effect.setText("it gets +X/+0 until end of turn, where X is your devotion to red");
effect.setLockedIn(true);
this.addAbility(new AttacksAttachedTriggeredAbility(effect, AttachmentType.AURA, false)
- .addHint(new ValueHint("Devotion to red", xValue)));
+ .addHint(new ValueHint("Devotion to red", DevotionCount.R)));
}
public ThunderousMight(final ThunderousMight card) {
diff --git a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java
index 9c264b6648d..8492eae939f 100644
--- a/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java
+++ b/Mage.Sets/src/mage/cards/x/XenagosGodOfRevels.java
@@ -4,7 +4,6 @@ import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
-import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.DevotionCount;
import mage.abilities.effects.ContinuousEffect;
import mage.abilities.effects.Effect;
@@ -37,8 +36,6 @@ public final class XenagosGodOfRevels extends CardImpl {
filter.add(AnotherPredicate.instance);
}
- private static final DynamicValue xValue = new DevotionCount(ColoredManaSymbol.R, ColoredManaSymbol.G);
-
public XenagosGodOfRevels(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{3}{R}{G}");
addSuperType(SuperType.LEGENDARY);
@@ -51,20 +48,22 @@ public final class XenagosGodOfRevels extends CardImpl {
this.addAbility(IndestructibleAbility.getInstance());
// As long as your devotion to red and green is less than seven, Xenagos isn't a creature.
- Effect effect = new LoseCreatureTypeSourceEffect(xValue, 7);
- effect.setText("As long as your devotion to red and green is less than seven, Xenagos isn't a creature");
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect).addHint(new ValueHint("Devotion to red and green", xValue)));
+ Effect effect = new LoseCreatureTypeSourceEffect(DevotionCount.RG, 7);
+ effect.setText("As long as your devotion to red and green is less than seven, {this} isn't a creature");
+ this.addAbility(new SimpleStaticAbility(effect).addHint(new ValueHint("Devotion to red and green", DevotionCount.RG)));
// At the beginning of combat on your turn, another target creature you control gains haste and gets +X/+X until end of turn, where X is that creature's power.
effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn);
effect.setText("another target creature you control gains haste");
- Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false, false);
+ Ability ability = new BeginningOfCombatTriggeredAbility(
+ Zone.BATTLEFIELD, effect, TargetController.YOU, false, false
+ );
ability.addEffect(new XenagosGodOfRevelsEffect());
ability.addTarget(new TargetControlledCreaturePermanent(1, 1, filter, false));
this.addAbility(ability);
}
- public XenagosGodOfRevels(final XenagosGodOfRevels card) {
+ private XenagosGodOfRevels(final XenagosGodOfRevels card) {
super(card);
}
@@ -76,12 +75,12 @@ public final class XenagosGodOfRevels extends CardImpl {
class XenagosGodOfRevelsEffect extends OneShotEffect {
- public XenagosGodOfRevelsEffect() {
+ XenagosGodOfRevelsEffect() {
super(Outcome.BoostCreature);
this.staticText = "and gets +X/+X until end of turn, where X is that creature's power";
}
- public XenagosGodOfRevelsEffect(final XenagosGodOfRevelsEffect effect) {
+ private XenagosGodOfRevelsEffect(final XenagosGodOfRevelsEffect effect) {
super(effect);
}
@@ -93,11 +92,12 @@ class XenagosGodOfRevelsEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Permanent targetCreature = game.getPermanent(getTargetPointer().getFirst(game, source));
- if (targetCreature != null) {
- ContinuousEffect effect = new BoostTargetEffect(targetCreature.getPower().getValue(), targetCreature.getPower().getValue(), Duration.EndOfTurn);
- effect.setTargetPointer(this.getTargetPointer());
- game.addEffect(effect, source);
+ if (targetCreature == null) {
+ return false;
}
+ ContinuousEffect effect = new BoostTargetEffect(targetCreature.getPower().getValue(), targetCreature.getPower().getValue(), Duration.EndOfTurn);
+ effect.setTargetPointer(this.getTargetPointer());
+ game.addEffect(effect, source);
return false;
}
}