From f7af14ffe9349f62a6645dc866bcb048f5677ff8 Mon Sep 17 00:00:00 2001 From: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com> Date: Fri, 4 Aug 2023 22:00:20 +0100 Subject: [PATCH] Add hints to some cards --- Mage.Sets/src/mage/cards/b/BloodlineKeeper.java | 5 +++-- Mage.Sets/src/mage/cards/b/BudokaGardener.java | 4 +++- Mage.Sets/src/mage/cards/c/ComplexAutomaton.java | 5 ++++- Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java | 8 +++++++- Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java | 9 ++++++--- Mage.Sets/src/mage/cards/e/EpicStruggle.java | 11 +++++++---- Mage.Sets/src/mage/cards/h/HellkiteTyrant.java | 7 +++++-- Mage.Sets/src/mage/cards/n/NineFingersKeene.java | 5 ++++- Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java | 5 +++-- Mage.Sets/src/mage/cards/s/StormTheVault.java | 9 +++++---- 10 files changed, 47 insertions(+), 21 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java index 7a6c4c9014c..365bc5f7c9f 100644 --- a/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java +++ b/Mage.Sets/src/mage/cards/b/BloodlineKeeper.java @@ -10,8 +10,10 @@ import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.TransformSourceEffect; +import mage.abilities.hint.ValueHint; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; @@ -52,7 +54,7 @@ public final class BloodlineKeeper extends CardImpl { new TransformSourceEffect(), new ManaCostsImpl<>("{B}"), new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4)); - this.addAbility(ability); + this.addAbility(ability.addHint(new ValueHint("Vampires you control", new PermanentsOnBattlefieldCount(filter)))); } private BloodlineKeeper(final BloodlineKeeper card) { @@ -63,5 +65,4 @@ public final class BloodlineKeeper extends CardImpl { public BloodlineKeeper copy() { return new BloodlineKeeper(this); } - } diff --git a/Mage.Sets/src/mage/cards/b/BudokaGardener.java b/Mage.Sets/src/mage/cards/b/BudokaGardener.java index aec37bcea69..7efb1d54b91 100644 --- a/Mage.Sets/src/mage/cards/b/BudokaGardener.java +++ b/Mage.Sets/src/mage/cards/b/BudokaGardener.java @@ -6,9 +6,11 @@ import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.FlipSourceEffect; +import mage.abilities.hint.ValueHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; @@ -40,7 +42,7 @@ public final class BudokaGardener extends CardImpl { // {T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutCardFromHandOntoBattlefieldEffect(StaticFilters.FILTER_CARD_LAND_A), new TapSourceCost()); ability.addEffect(new BudokaGardenerEffect()); - this.addAbility(ability); + this.addAbility(ability.addHint(new ValueHint("Lands you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND)))); } private BudokaGardener(final BudokaGardener card) { diff --git a/Mage.Sets/src/mage/cards/c/ComplexAutomaton.java b/Mage.Sets/src/mage/cards/c/ComplexAutomaton.java index 012152970da..2cde2374ab6 100644 --- a/Mage.Sets/src/mage/cards/c/ComplexAutomaton.java +++ b/Mage.Sets/src/mage/cards/c/ComplexAutomaton.java @@ -6,7 +6,9 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.hint.ValueHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -14,6 +16,7 @@ import mage.constants.ComparisonType; import mage.constants.SubType; import mage.constants.TargetController; import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledPermanent; import java.util.UUID; @@ -40,7 +43,7 @@ public final class ComplexAutomaton extends CardImpl { TargetController.YOU, false ), condition, "At the beginning of your upkeep, " + "if you control seven or more permanents, return {this} to its owner's hand." - )); + ).addHint(new ValueHint("Permanents you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent())))); } private ComplexAutomaton(final ComplexAutomaton card) { diff --git a/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java b/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java index e668150762e..6fda5d514b6 100644 --- a/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java +++ b/Mage.Sets/src/mage/cards/d/DragonmasterOutcast.java @@ -7,7 +7,9 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.ValueHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -15,6 +17,7 @@ import mage.constants.SubType; import mage.constants.ComparisonType; import mage.constants.TargetController; import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; import mage.game.permanent.token.DragonToken2; /** @@ -39,7 +42,10 @@ public final class DragonmasterOutcast extends CardImpl { // At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying. TriggeredAbility ability = new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new DragonToken2(), 1), TargetController.YOU, false); - this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 5), "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying.")); + this.addAbility(new ConditionalInterveningIfTriggeredAbility( + ability, new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 5), + "At the beginning of your upkeep, if you control six or more lands, create a 5/5 red Dragon creature token with flying." + ).addHint(new ValueHint("Lands you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND)))); } private DragonmasterOutcast(final DragonmasterOutcast card) { diff --git a/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java b/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java index 85b66729448..fb2925846ba 100644 --- a/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java +++ b/Mage.Sets/src/mage/cards/e/EmeriaTheSkyRuin.java @@ -4,7 +4,9 @@ package mage.cards.e; import java.util.UUID; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.abilities.hint.ValueHint; import mage.abilities.mana.WhiteManaAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -12,10 +14,10 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; import mage.filter.StaticFilters; +import mage.filter.common.FilterControlledPermanent; import mage.filter.common.FilterLandPermanent; import mage.game.Game; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.target.common.TargetCardInYourGraveyard; /** @@ -31,8 +33,9 @@ public final class EmeriaTheSkyRuin extends CardImpl { // Emeria, the Sky Ruin enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // At the beginning of your upkeep, if you control seven or more Plains, you may return target creature card from your graveyard to the battlefield. - this.addAbility(new EmeriaTheSkyRuinTriggeredAbility()); - // {tap}: Add {W}. + this.addAbility(new EmeriaTheSkyRuinTriggeredAbility() + .addHint(new ValueHint("Plains you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.PLAINS))))); + // {T}: Add {W}. this.addAbility(new WhiteManaAbility()); } diff --git a/Mage.Sets/src/mage/cards/e/EpicStruggle.java b/Mage.Sets/src/mage/cards/e/EpicStruggle.java index 8b74b3470ed..0d443988b79 100644 --- a/Mage.Sets/src/mage/cards/e/EpicStruggle.java +++ b/Mage.Sets/src/mage/cards/e/EpicStruggle.java @@ -5,13 +5,15 @@ import java.util.UUID; import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.WinGameSourceControllerEffect; +import mage.abilities.hint.ValueHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.ComparisonType; import mage.constants.TargetController; -import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.StaticFilters; /** * @@ -19,7 +21,7 @@ import mage.filter.common.FilterControlledCreaturePermanent; */ public final class EpicStruggle extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("if you control twenty or more creatures"); + //private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("if you control twenty or more creatures"); public EpicStruggle(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{G}{G}"); @@ -27,8 +29,9 @@ public final class EpicStruggle extends CardImpl { // At the beginning of your upkeep, if you control twenty or more creatures, you win the game. this.addAbility(new ConditionalInterveningIfTriggeredAbility( new BeginningOfUpkeepTriggeredAbility(new WinGameSourceControllerEffect(), TargetController.YOU, false), - new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 19), - "At the beginning of your upkeep, if you control twenty or more creatures, you win the game.")); + new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_CREATURE, ComparisonType.MORE_THAN, 19), + "At the beginning of your upkeep, if you control twenty or more creatures, you win the game." + ).addHint(new ValueHint("Creatures you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE)))); } private EpicStruggle(final EpicStruggle card) { diff --git a/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java b/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java index 58d67e57ccd..50eb2fe6e7e 100644 --- a/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java +++ b/Mage.Sets/src/mage/cards/h/HellkiteTyrant.java @@ -10,10 +10,12 @@ import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.WinGameSourceControllerEffect; +import mage.abilities.hint.ValueHint; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.TrampleAbility; import mage.cards.CardImpl; @@ -27,6 +29,7 @@ import mage.constants.Outcome; import mage.constants.SubLayer; import mage.constants.TargetController; import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; import mage.filter.common.FilterArtifactPermanent; import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; @@ -59,8 +62,8 @@ public final class HellkiteTyrant extends CardImpl { this.addAbility(new ConditionalInterveningIfTriggeredAbility( ability, new PermanentsOnTheBattlefieldCondition(new FilterArtifactPermanent(), ComparisonType.MORE_THAN, 19), - "At the beginning of your upkeep, if you control twenty or more artifacts, you win the game.")); - + "At the beginning of your upkeep, if you control twenty or more artifacts, you win the game." + ).addHint(new ValueHint("Artifacts you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT)))); } private HellkiteTyrant(final HellkiteTyrant card) { diff --git a/Mage.Sets/src/mage/cards/n/NineFingersKeene.java b/Mage.Sets/src/mage/cards/n/NineFingersKeene.java index 77628113e7e..83510be1d24 100644 --- a/Mage.Sets/src/mage/cards/n/NineFingersKeene.java +++ b/Mage.Sets/src/mage/cards/n/NineFingersKeene.java @@ -4,7 +4,9 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.OneShotEffect; +import mage.abilities.hint.ValueHint; import mage.abilities.keyword.MenaceAbility; import mage.abilities.keyword.WardAbility; import mage.cards.*; @@ -40,7 +42,8 @@ public final class NineFingersKeene extends CardImpl { this.addAbility(new WardAbility(new PayLifeCost(9), false)); // Whenever Nine-Fingers Keene deals combat damage to a player, look at the top nine cards of your library. You may put a Gate card from among them onto the battlefield. Then if you control nine or more Gates, put the rest into your hand. Otherwise, put the rest on the bottom of your library in a random order. - this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new NineFingersKeeneEffect(), false)); + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new NineFingersKeeneEffect(), false) + .addHint(new ValueHint("Gates you control", new PermanentsOnBattlefieldCount(new FilterControlledPermanent(SubType.GATE))))); } private NineFingersKeene(final NineFingersKeene card) { diff --git a/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java b/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java index 4fc0926c8db..45d21b3508d 100644 --- a/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java +++ b/Mage.Sets/src/mage/cards/o/OrochiEggwatcher.java @@ -38,9 +38,11 @@ import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.FlipSourceEffect; import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.hint.ValueHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -53,7 +55,6 @@ import mage.filter.StaticFilters; import mage.filter.common.FilterControlledCreaturePermanent; import mage.game.permanent.token.SnakeToken; import mage.game.permanent.token.TokenImpl; -import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetCreaturePermanent; /** @@ -77,7 +78,7 @@ public final class OrochiEggwatcher extends CardImpl { ability.addCost(new TapSourceCost()); ability.addEffect(new ConditionalOneShotEffect(new FlipSourceEffect(new ShidakoBroodmistress()), new PermanentsOnTheBattlefieldCondition(new FilterControlledCreaturePermanent(), ComparisonType.MORE_THAN, 9), "If you control ten or more creatures, flip {this}")); - this.addAbility(ability); + this.addAbility(ability.addHint(new ValueHint("Creatures you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE)))); } private OrochiEggwatcher(final OrochiEggwatcher card) { diff --git a/Mage.Sets/src/mage/cards/s/StormTheVault.java b/Mage.Sets/src/mage/cards/s/StormTheVault.java index 4645d50f06d..228c4329460 100644 --- a/Mage.Sets/src/mage/cards/s/StormTheVault.java +++ b/Mage.Sets/src/mage/cards/s/StormTheVault.java @@ -7,8 +7,10 @@ import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.common.DealCombatDamageControlledTriggeredAbility; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.TransformSourceEffect; +import mage.abilities.hint.ValueHint; import mage.abilities.keyword.TransformAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -39,11 +41,10 @@ public final class StormTheVault extends CardImpl { this.addAbility(new ConditionalInterveningIfTriggeredAbility( new BeginningOfEndStepTriggeredAbility(new TransformSourceEffect(), TargetController.YOU, false), new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT, ComparisonType.MORE_THAN, 4), - "At the beginning of your end step, if you control five or more artifacts, transform {this}")); - + "At the beginning of your end step, if you control five or more artifacts, transform {this}" + ).addHint(new ValueHint("Artifacts you control", new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT)))); } - private StormTheVault(final StormTheVault card) { super(card); } @@ -52,4 +53,4 @@ public final class StormTheVault extends CardImpl { public StormTheVault copy() { return new StormTheVault(this); } -} \ No newline at end of file +}