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; } }