From aedc3dde2cd9b61fbea000f0743378035343e5a7 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 7 Feb 2019 12:02:46 +0400 Subject: [PATCH] Added creatures you control hints to cards --- .../src/mage/cards/a/AppealAuthority.java | 14 +++---- .../src/mage/cards/b/BattleSquadron.java | 4 +- .../src/mage/cards/b/BeguilerOfWills.java | 9 +++-- Mage.Sets/src/mage/cards/c/Camaraderie.java | 6 ++- .../mage/cards/c/ChancellorOfTheForge.java | 9 +++-- .../src/mage/cards/c/CraterhoofBehemoth.java | 17 ++++----- .../src/mage/cards/c/CrusaderOfOdric.java | 4 +- .../src/mage/cards/e/ElderOfLaurels.java | 2 + .../src/mage/cards/f/FoundryChampion.java | 2 + .../src/mage/cards/g/GeistHonoredMonk.java | 4 +- .../src/mage/cards/h/HarshSustenance.java | 2 + .../mage/cards/h/HuatliRadiantChampion.java | 7 ++-- Mage.Sets/src/mage/cards/j/JunkyoBell.java | 2 + Mage.Sets/src/mage/cards/k/KayasWrath.java | 2 + .../src/mage/cards/k/KolaghanForerunners.java | 12 +++--- Mage.Sets/src/mage/cards/m/MassiveRaid.java | 2 + .../src/mage/cards/m/MinionsMurmurs.java | 7 ++-- Mage.Sets/src/mage/cards/m/MobJustice.java | 2 + Mage.Sets/src/mage/cards/o/Outnumber.java | 9 +++-- .../cards/o/OviyaPashiriSageLifecrafter.java | 13 +++---- .../src/mage/cards/s/SeraphOfTheMasses.java | 20 ++++------ .../src/mage/cards/s/ShieldOfTheAvatar.java | 37 +++++++------------ .../src/mage/cards/s/SoulsurgeElemental.java | 18 ++++----- .../src/mage/cards/v/VeteranWarleader.java | 4 +- .../src/mage/cards/v/VoiceOfResurgence.java | 4 +- .../src/mage/cards/w/WayfaringTemple.java | 4 +- .../src/mage/cards/w/WestvaleCultLeader.java | 20 ++++------ .../src/mage/cards/x/XenagosTheReveler.java | 19 ++++------ 28 files changed, 129 insertions(+), 126 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AppealAuthority.java b/Mage.Sets/src/mage/cards/a/AppealAuthority.java index 2a66436ed4..3fd64be5f6 100644 --- a/Mage.Sets/src/mage/cards/a/AppealAuthority.java +++ b/Mage.Sets/src/mage/cards/a/AppealAuthority.java @@ -1,17 +1,14 @@ - package mage.cards.a; -import java.util.UUID; -import mage.abilities.dynamicvalue.DynamicValue; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.TapTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.AftermathAbility; import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.VigilanceAbility; -import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.SplitCard; import mage.constants.CardType; @@ -23,8 +20,9 @@ import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class AppealAuthority extends SplitCard { @@ -36,10 +34,10 @@ public final class AppealAuthority extends SplitCard { // Until end of turn, target creature gains trample and gets +X/+X, where X is the number of creatures you control. getLeftHalfCard().getSpellAbility().addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn) .setText("Until end of turn, target creature gains trample")); - DynamicValue controlledCreatures = new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control")); - getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(controlledCreatures, controlledCreatures, Duration.EndOfTurn, true) + getLeftHalfCard().getSpellAbility().addEffect(new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, true) .setText("and gets +X/+X, where X is the number of creatures you control")); getLeftHalfCard().getSpellAbility().addTarget(new TargetCreaturePermanent()); + getLeftHalfCard().getSpellAbility().addHint(CreaturesYouControlHint.instance); // Authority // Aftermath diff --git a/Mage.Sets/src/mage/cards/b/BattleSquadron.java b/Mage.Sets/src/mage/cards/b/BattleSquadron.java index 43ff8d9d8c..d5f534705d 100644 --- a/Mage.Sets/src/mage/cards/b/BattleSquadron.java +++ b/Mage.Sets/src/mage/cards/b/BattleSquadron.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -29,7 +30,8 @@ public final class BattleSquadron extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Battle Squadron's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); } public BattleSquadron(final BattleSquadron card) { diff --git a/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java b/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java index ca8fd468ce..bda675f792 100644 --- a/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java +++ b/Mage.Sets/src/mage/cards/b/BeguilerOfWills.java @@ -1,12 +1,11 @@ - package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.continuous.GainControlTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -18,14 +17,15 @@ import mage.game.Game; import mage.game.permanent.Permanent; import mage.target.TargetPermanent; +import java.util.UUID; + /** - * * @author North */ public final class BeguilerOfWills extends CardImpl { public BeguilerOfWills(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}"); this.subtype.add(SubType.HUMAN, SubType.WIZARD); this.power = new MageInt(1); @@ -36,6 +36,7 @@ public final class BeguilerOfWills extends CardImpl { new GainControlTargetEffect(Duration.Custom), new TapSourceCost()); ability.addTarget(new BeguilerOfWillsTarget()); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/Camaraderie.java b/Mage.Sets/src/mage/cards/c/Camaraderie.java index 9baba360db..1e0880911b 100644 --- a/Mage.Sets/src/mage/cards/c/Camaraderie.java +++ b/Mage.Sets/src/mage/cards/c/Camaraderie.java @@ -1,9 +1,9 @@ package mage.cards.c; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -13,8 +13,9 @@ import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class Camaraderie extends CardImpl { @@ -24,6 +25,7 @@ public final class Camaraderie extends CardImpl { // You gain X life and draw X cards, where X is the number of creatures you control. Creatures you control get +1/+1 until end of turn. this.getSpellAbility().addEffect(new CamaraderieEffect()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } public Camaraderie(final Camaraderie card) { diff --git a/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java b/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java index 9118e1f5d6..70285f2e54 100644 --- a/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java +++ b/Mage.Sets/src/mage/cards/c/ChancellorOfTheForge.java @@ -1,7 +1,5 @@ - package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.common.ChancellorAbility; @@ -9,6 +7,7 @@ import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -21,8 +20,9 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.token.GoblinToken; +import java.util.UUID; + /** - * * @author BetaSteward */ public final class ChancellorOfTheForge extends CardImpl { @@ -46,7 +46,8 @@ public final class ChancellorOfTheForge extends CardImpl { // When Chancellor of the Forge enters the battlefield, create X 1/1 red Goblin creature tokens with haste, where X is the number of creatures you control. DynamicValue value = new PermanentsOnBattlefieldCount(filter); - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(true), value), false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new GoblinToken(true), value), false) + .addHint(CreaturesYouControlHint.instance)); } public ChancellorOfTheForge(final ChancellorOfTheForge card) { diff --git a/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java b/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java index 516570b6a7..68aade0911 100644 --- a/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java +++ b/Mage.Sets/src/mage/cards/c/CraterhoofBehemoth.java @@ -1,27 +1,26 @@ - package mage.cards.c; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.HasteAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.TargetController; -import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.permanent.ControllerPredicate; +import java.util.UUID; + /** - * * @author North */ public final class CraterhoofBehemoth extends CardImpl { @@ -33,7 +32,7 @@ public final class CraterhoofBehemoth extends CardImpl { } public CraterhoofBehemoth(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{G}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{G}{G}{G}"); this.subtype.add(SubType.BEAST); this.power = new MageInt(5); @@ -43,8 +42,8 @@ public final class CraterhoofBehemoth extends CardImpl { // When Craterhoof Behemoth enters the battlefield, creatures you control gain trample and get +X/+X until end of turn, where X is the number of creatures you control. Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter)); - PermanentsOnBattlefieldCount controlledCreatures = new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control"), null); - ability.addEffect(new BoostControlledEffect(controlledCreatures, controlledCreatures, Duration.EndOfTurn, filter, false, true)); + ability.addEffect(new BoostControlledEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, filter, false, true)); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java b/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java index a14ae816bf..bab744a9a5 100644 --- a/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java +++ b/Mage.Sets/src/mage/cards/c/CrusaderOfOdric.java @@ -4,6 +4,7 @@ import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -27,7 +28,8 @@ public final class CrusaderOfOdric extends CardImpl { this.toughness = new MageInt(0); // Crusader of Odric's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); } public CrusaderOfOdric(final CrusaderOfOdric card) { diff --git a/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java b/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java index 0114e1f558..79873645d2 100644 --- a/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java +++ b/Mage.Sets/src/mage/cards/e/ElderOfLaurels.java @@ -5,6 +5,7 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -33,6 +34,7 @@ public final class ElderOfLaurels extends CardImpl { new BoostTargetEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, true), new ManaCostsImpl("{3}{G}")); ability.addTarget(new TargetCreaturePermanent()); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FoundryChampion.java b/Mage.Sets/src/mage/cards/f/FoundryChampion.java index 20fe37f3b7..bdc56fb7bf 100644 --- a/Mage.Sets/src/mage/cards/f/FoundryChampion.java +++ b/Mage.Sets/src/mage/cards/f/FoundryChampion.java @@ -8,6 +8,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -34,6 +35,7 @@ public final class FoundryChampion extends CardImpl { //When Foundry Champion enters the battlefield, it deals damage to any target equal to the number of creatures you control. Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(CreaturesYouControlCount.instance, "it")); ability.addTarget(new TargetAnyTarget()); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); //{R}: Foundry Champion gets +1/+0 until end of turn. diff --git a/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java b/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java index d06740974f..879fce467c 100644 --- a/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java +++ b/Mage.Sets/src/mage/cards/g/GeistHonoredMonk.java @@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.VigilanceAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -33,7 +34,8 @@ public final class GeistHonoredMonk extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Geist-Honored Monk's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); // When Geist-Honored Monk enters the battlefield, create two 1/1 white Spirit creature tokens with flying. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new SpiritWhiteToken("ISD"), 2))); diff --git a/Mage.Sets/src/mage/cards/h/HarshSustenance.java b/Mage.Sets/src/mage/cards/h/HarshSustenance.java index b7ed392d41..3f9cfd9000 100644 --- a/Mage.Sets/src/mage/cards/h/HarshSustenance.java +++ b/Mage.Sets/src/mage/cards/h/HarshSustenance.java @@ -4,6 +4,7 @@ import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -27,6 +28,7 @@ public final class HarshSustenance extends CardImpl { effect = new GainLifeEffect(CreaturesYouControlCount.instance); effect.setText("and you gain X life, where X is the number of creatures you control"); getSpellAbility().addEffect(effect); + getSpellAbility().addHint(CreaturesYouControlHint.instance); } public HarshSustenance(final HarshSustenance card) { diff --git a/Mage.Sets/src/mage/cards/h/HuatliRadiantChampion.java b/Mage.Sets/src/mage/cards/h/HuatliRadiantChampion.java index d873f78870..adc5c9483b 100644 --- a/Mage.Sets/src/mage/cards/h/HuatliRadiantChampion.java +++ b/Mage.Sets/src/mage/cards/h/HuatliRadiantChampion.java @@ -1,13 +1,12 @@ - package mage.cards.h; -import java.util.UUID; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.GetEmblemEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -19,8 +18,9 @@ import mage.filter.StaticFilters; import mage.game.command.emblems.HuatliRadiantChampionEmblem; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class HuatliRadiantChampion extends CardImpl { @@ -41,6 +41,7 @@ public final class HuatliRadiantChampion extends CardImpl { LoyaltyAbility ability2 = new LoyaltyAbility(new BoostTargetEffect(amount, amount, Duration.EndOfTurn, true) .setText("Target creature gets +X/+X until end of turn, where X is the number of creatures you control"), -1); ability2.addTarget(new TargetCreaturePermanent()); + ability2.addHint(CreaturesYouControlHint.instance); this.addAbility(ability2); // -8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may draw a card." diff --git a/Mage.Sets/src/mage/cards/j/JunkyoBell.java b/Mage.Sets/src/mage/cards/j/JunkyoBell.java index af47e08373..d1130ab462 100644 --- a/Mage.Sets/src/mage/cards/j/JunkyoBell.java +++ b/Mage.Sets/src/mage/cards/j/JunkyoBell.java @@ -8,6 +8,7 @@ import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.SacrificeTargetEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -37,6 +38,7 @@ public final class JunkyoBell extends CardImpl { true); ability.addTarget(new TargetControlledCreaturePermanent()); ability.addEffect(new JunkyoBellSacrificeEffect()); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/k/KayasWrath.java b/Mage.Sets/src/mage/cards/k/KayasWrath.java index d6e4145e90..d09c9904cd 100644 --- a/Mage.Sets/src/mage/cards/k/KayasWrath.java +++ b/Mage.Sets/src/mage/cards/k/KayasWrath.java @@ -3,6 +3,7 @@ package mage.cards.k; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -23,6 +24,7 @@ public final class KayasWrath extends CardImpl { // Destroy all creatures. You gain life equal to the number of creatures you controlled that were destroyed this way. this.getSpellAbility().addEffect(new KayasWrathEffect()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } private KayasWrath(final KayasWrath card) { diff --git a/Mage.Sets/src/mage/cards/k/KolaghanForerunners.java b/Mage.Sets/src/mage/cards/k/KolaghanForerunners.java index f43b8dece3..6fe1524aa3 100644 --- a/Mage.Sets/src/mage/cards/k/KolaghanForerunners.java +++ b/Mage.Sets/src/mage/cards/k/KolaghanForerunners.java @@ -1,30 +1,30 @@ - package mage.cards.k; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.SetPowerSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.DashAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.Zone; import mage.filter.common.FilterControlledCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class KolaghanForerunners extends CardImpl { public KolaghanForerunners(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}"); this.subtype.add(SubType.HUMAN); this.subtype.add(SubType.BERSERKER); this.power = new MageInt(0); @@ -35,7 +35,7 @@ public final class KolaghanForerunners extends CardImpl { // Kolaghan Forerunners' power is equal to the number of creatures you control. Effect effect = new SetPowerSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creatures you control")), Duration.EndOfGame); - this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)); + this.addAbility(new SimpleStaticAbility(Zone.ALL, effect).addHint(CreaturesYouControlHint.instance)); // Dash {2}{R} this.addAbility(new DashAbility(this, "{2}{R}")); diff --git a/Mage.Sets/src/mage/cards/m/MassiveRaid.java b/Mage.Sets/src/mage/cards/m/MassiveRaid.java index 6247bbdc85..15a636332a 100644 --- a/Mage.Sets/src/mage/cards/m/MassiveRaid.java +++ b/Mage.Sets/src/mage/cards/m/MassiveRaid.java @@ -2,6 +2,7 @@ package mage.cards.m; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -20,6 +21,7 @@ public final class MassiveRaid extends CardImpl { // Massive Raid deals damage to any target equal to the number of creatures you control. this.getSpellAbility().addEffect(new DamageTargetEffect(CreaturesYouControlCount.instance)); this.getSpellAbility().addTarget(new TargetAnyTarget()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } public MassiveRaid(final MassiveRaid card) { diff --git a/Mage.Sets/src/mage/cards/m/MinionsMurmurs.java b/Mage.Sets/src/mage/cards/m/MinionsMurmurs.java index f94253c5d9..94fb18394a 100644 --- a/Mage.Sets/src/mage/cards/m/MinionsMurmurs.java +++ b/Mage.Sets/src/mage/cards/m/MinionsMurmurs.java @@ -1,9 +1,8 @@ - package mage.cards.m; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -12,8 +11,9 @@ import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** - * * @author Derpthemeus */ public final class MinionsMurmurs extends CardImpl { @@ -23,6 +23,7 @@ public final class MinionsMurmurs extends CardImpl { // You draw X cards and you lose X life, where X is the number of creatures you control. this.getSpellAbility().addEffect(new MinionsMurmursEffect()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } public MinionsMurmurs(final MinionsMurmurs card) { diff --git a/Mage.Sets/src/mage/cards/m/MobJustice.java b/Mage.Sets/src/mage/cards/m/MobJustice.java index a01faf04fb..467506ca6f 100644 --- a/Mage.Sets/src/mage/cards/m/MobJustice.java +++ b/Mage.Sets/src/mage/cards/m/MobJustice.java @@ -3,6 +3,7 @@ package mage.cards.m; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -23,6 +24,7 @@ public final class MobJustice extends CardImpl { effect.setText("{this} deals damage to target player or planeswalker equal to the number of creatures you control"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } public MobJustice(final MobJustice card) { diff --git a/Mage.Sets/src/mage/cards/o/Outnumber.java b/Mage.Sets/src/mage/cards/o/Outnumber.java index 0fe1e20ed0..dd6d2d3d42 100644 --- a/Mage.Sets/src/mage/cards/o/Outnumber.java +++ b/Mage.Sets/src/mage/cards/o/Outnumber.java @@ -1,30 +1,31 @@ - package mage.cards.o; -import java.util.UUID; import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class Outnumber extends CardImpl { public Outnumber(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}"); // Outnumber deals damage to target creature equal to the number of creatures you control. Effect effect = new DamageTargetEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("the number of creatures you control"))); effect.setText("{this} deals damage to target creature equal to the number of creatures you control"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addHint(CreaturesYouControlHint.instance); } diff --git a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java index 323c43f20a..a0714ac140 100644 --- a/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java +++ b/Mage.Sets/src/mage/cards/o/OviyaPashiriSageLifecrafter.java @@ -1,7 +1,5 @@ - package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; @@ -9,21 +7,19 @@ import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Outcome; -import mage.constants.SuperType; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.StaticFilters; import mage.game.Game; import mage.game.permanent.token.OviyaPashiriSageLifecrafterToken; import mage.game.permanent.token.ServoToken; import mage.players.Player; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class OviyaPashiriSageLifecrafter extends CardImpl { @@ -43,6 +39,7 @@ public final class OviyaPashiriSageLifecrafter extends CardImpl { // {4}{G}, {T}: Create an X/X colorless Construct artifact creature token, where X is the number of creatures you control. ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new OviyaPashiriSageLifecrafterEffect(), new ManaCostsImpl("{4}{G}")); ability.addCost(new TapSourceCost()); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SeraphOfTheMasses.java b/Mage.Sets/src/mage/cards/s/SeraphOfTheMasses.java index ba526a9688..1aaa733038 100644 --- a/Mage.Sets/src/mage/cards/s/SeraphOfTheMasses.java +++ b/Mage.Sets/src/mage/cards/s/SeraphOfTheMasses.java @@ -1,31 +1,28 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.ConvokeAbility; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; + +import java.util.UUID; /** - * * @author LevelX2 */ public final class SeraphOfTheMasses extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control"); - public SeraphOfTheMasses(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}{W}"); this.subtype.add(SubType.ANGEL); this.power = new MageInt(0); @@ -36,9 +33,8 @@ public final class SeraphOfTheMasses extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // Seraph of the Masses's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.EndOfGame))); - - + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); } public SeraphOfTheMasses(final SeraphOfTheMasses card) { diff --git a/Mage.Sets/src/mage/cards/s/ShieldOfTheAvatar.java b/Mage.Sets/src/mage/cards/s/ShieldOfTheAvatar.java index fc8c6cfb44..7439718122 100644 --- a/Mage.Sets/src/mage/cards/s/ShieldOfTheAvatar.java +++ b/Mage.Sets/src/mage/cards/s/ShieldOfTheAvatar.java @@ -1,39 +1,35 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.PreventionEffectImpl; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.EquipAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.constants.*; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import java.util.UUID; + /** - * * @author emerald000 */ public final class ShieldOfTheAvatar extends CardImpl { public ShieldOfTheAvatar(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); this.subtype.add(SubType.EQUIPMENT); // If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ShieldOfTheAvatarPreventionEffect())); - + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ShieldOfTheAvatarPreventionEffect()) + .addHint(CreaturesYouControlHint.instance)); + // Equip {2} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); } @@ -49,9 +45,7 @@ public final class ShieldOfTheAvatar extends CardImpl { } class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl { - - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control"); - + ShieldOfTheAvatarPreventionEffect() { super(Duration.WhileOnBattlefield); this.staticText = "If a source would deal damage to equipped creature, prevent X of that damage, where X is the number of creatures you control."; @@ -76,14 +70,13 @@ class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl { boolean result = false; Permanent equipment = game.getPermanent(source.getSourceId()); if (equipment != null && equipment.getAttachedTo() != null) { - int numberOfCreaturesControlled = new PermanentsOnBattlefieldCount(filter).calculate(game, source, this); + int numberOfCreaturesControlled = CreaturesYouControlCount.instance.calculate(game, source, this); int toPrevent = Math.min(numberOfCreaturesControlled, event.getAmount()); GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, equipment.getAttachedTo(), source.getSourceId(), source.getControllerId(), toPrevent, false); if (!game.replaceEvent(preventEvent)) { if (event.getAmount() >= toPrevent) { event.setAmount(event.getAmount() - toPrevent); - } - else { + } else { event.setAmount(0); result = true; } @@ -101,10 +94,8 @@ class ShieldOfTheAvatarPreventionEffect extends PreventionEffectImpl { public boolean applies(GameEvent event, Ability source, Game game) { if (super.applies(event, source, game)) { Permanent equipment = game.getPermanent(source.getSourceId()); - if (equipment != null && equipment.getAttachedTo() != null - && event.getTargetId().equals(equipment.getAttachedTo())) { - return true; - } + return equipment != null && equipment.getAttachedTo() != null + && event.getTargetId().equals(equipment.getAttachedTo()); } return false; } diff --git a/Mage.Sets/src/mage/cards/s/SoulsurgeElemental.java b/Mage.Sets/src/mage/cards/s/SoulsurgeElemental.java index 6265728549..30c73c3ec6 100644 --- a/Mage.Sets/src/mage/cards/s/SoulsurgeElemental.java +++ b/Mage.Sets/src/mage/cards/s/SoulsurgeElemental.java @@ -1,29 +1,28 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.SetPowerSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; +import mage.constants.SubType; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; + +import java.util.UUID; /** - * * @author Loki */ public final class SoulsurgeElemental extends CardImpl { public SoulsurgeElemental(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); this.subtype.add(SubType.ELEMENTAL); this.power = new MageInt(0); @@ -33,8 +32,9 @@ public final class SoulsurgeElemental extends CardImpl { this.addAbility(FirstStrikeAbility.getInstance()); // Soulsurge Elemental's power is equal to the number of creatures you control. - Effect effect = new SetPowerSourceEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creatures you control")), Duration.EndOfGame); - this.addAbility(new SimpleStaticAbility(Zone.ALL, effect)); + Effect effect = new SetPowerSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame); + this.addAbility(new SimpleStaticAbility(Zone.ALL, effect) + .addHint(CreaturesYouControlHint.instance)); } public SoulsurgeElemental(final SoulsurgeElemental card) { diff --git a/Mage.Sets/src/mage/cards/v/VeteranWarleader.java b/Mage.Sets/src/mage/cards/v/VeteranWarleader.java index 8d3b38361c..84944b2fa0 100644 --- a/Mage.Sets/src/mage/cards/v/VeteranWarleader.java +++ b/Mage.Sets/src/mage/cards/v/VeteranWarleader.java @@ -11,6 +11,7 @@ import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.keyword.FirstStrikeAbility; import mage.abilities.keyword.TrampleAbility; import mage.abilities.keyword.VigilanceAbility; @@ -55,7 +56,8 @@ public final class VeteranWarleader extends CardImpl { // Veteran Warleader's power and toughness are each equal to the number of creatures you control. this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect( - CreaturesYouControlCount.instance, Duration.EndOfGame))); + CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); // Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java index 08b9cd0334..a3ec477ec0 100644 --- a/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java +++ b/Mage.Sets/src/mage/cards/v/VoiceOfResurgence.java @@ -1,4 +1,3 @@ - package mage.cards.v; import mage.MageInt; @@ -7,6 +6,7 @@ import mage.abilities.common.SpellCastOpponentTriggeredAbility; import mage.abilities.condition.common.MyTurnCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.abilities.meta.OrTriggeredAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -19,7 +19,6 @@ import mage.game.permanent.token.VoiceOfResurgenceToken; import java.util.UUID; /** - * * @author jeffwadsworth */ public final class VoiceOfResurgence extends CardImpl { @@ -39,6 +38,7 @@ public final class VoiceOfResurgence extends CardImpl { "Whenever an opponent casts a spell during your turn, "), new DiesTriggeredAbility(null, false)); ability.setLeavesTheBattlefieldTrigger(true); + ability.addHint(CreaturesYouControlHint.instance); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WayfaringTemple.java b/Mage.Sets/src/mage/cards/w/WayfaringTemple.java index 13085d5f77..ea77f210e9 100644 --- a/Mage.Sets/src/mage/cards/w/WayfaringTemple.java +++ b/Mage.Sets/src/mage/cards/w/WayfaringTemple.java @@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.PopulateEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -28,7 +29,8 @@ public final class WayfaringTemple extends CardImpl { this.toughness = new MageInt(0); // Wayfaring Temple's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame))); + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.EndOfGame)) + .addHint(CreaturesYouControlHint.instance)); // Whenever Wayfaring Temple deals combat damage to a player, populate. (Create a token that's a copy of a creature token you control.) this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new PopulateEffect(), false)); diff --git a/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java b/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java index 183b957665..64d5b69701 100644 --- a/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java +++ b/Mage.Sets/src/mage/cards/w/WestvaleCultLeader.java @@ -1,31 +1,24 @@ - package mage.cards.w; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.dynamicvalue.common.CreaturesYouControlCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.continuous.SetPowerToughnessSourceEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.SubType; -import mage.constants.Duration; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.constants.*; import mage.game.permanent.token.HumanClericToken; +import java.util.UUID; + /** - * * @author fireshoes */ public final class WestvaleCultLeader extends CardImpl { - final private static FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("creatures you control"); - public WestvaleCultLeader(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); this.subtype.add(SubType.HUMAN); @@ -38,7 +31,8 @@ public final class WestvaleCultLeader extends CardImpl { this.nightCard = true; // Westvale Cult Leader's power and toughness are each equal to the number of creatures you control. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(new PermanentsOnBattlefieldCount(filter), Duration.WhileOnBattlefield))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SetPowerToughnessSourceEffect(CreaturesYouControlCount.instance, Duration.WhileOnBattlefield)) + .addHint(CreaturesYouControlHint.instance)); // At the beginning of your end step, create a 1/1 white and black Human Cleric creature token. this.addAbility(new BeginningOfEndStepTriggeredAbility(new CreateTokenEffect(new HumanClericToken()), TargetController.YOU, false)); diff --git a/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java b/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java index e09453a139..a19ee5c37e 100644 --- a/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java +++ b/Mage.Sets/src/mage/cards/x/XenagosTheReveler.java @@ -1,26 +1,19 @@ - package mage.cards.x; -import java.util.LinkedHashSet; -import java.util.Set; -import java.util.UUID; import mage.Mana; import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.common.CreaturesYouControlHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.cards.Cards; import mage.cards.CardsImpl; import mage.choices.Choice; import mage.choices.ChoiceImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.SubType; -import mage.constants.SuperType; -import mage.constants.Zone; +import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.Predicates; @@ -30,8 +23,11 @@ import mage.game.permanent.token.XenagosSatyrToken; import mage.players.Player; import mage.target.TargetCard; +import java.util.LinkedHashSet; +import java.util.Set; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class XenagosTheReveler extends CardImpl { @@ -44,7 +40,8 @@ public final class XenagosTheReveler extends CardImpl { this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(3)); // +1: Add X mana in any combination of {R} and/or {G}, where X is the number of creatures you control. - this.addAbility(new LoyaltyAbility(new XenagosManaEffect(), +1)); + this.addAbility(new LoyaltyAbility(new XenagosManaEffect(), +1) + .addHint(CreaturesYouControlHint.instance)); // 0: Create a 2/2 red and green Satyr creature token with haste. this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new XenagosSatyrToken()), 0));