From 4af6db7ad0811f4d306bccbac5aea550141b1ff5 Mon Sep 17 00:00:00 2001 From: PurpleCrowbar <26198472+PurpleCrowbar@users.noreply.github.com> Date: Sun, 25 Feb 2024 21:06:18 +0000 Subject: [PATCH] Amend Case of the Shifting Visage hint --- .../mage/cards/c/CaseOfTheShiftingVisage.java | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/CaseOfTheShiftingVisage.java b/Mage.Sets/src/mage/cards/c/CaseOfTheShiftingVisage.java index 374ff188c6a..29300aa33ae 100644 --- a/Mage.Sets/src/mage/cards/c/CaseOfTheShiftingVisage.java +++ b/Mage.Sets/src/mage/cards/c/CaseOfTheShiftingVisage.java @@ -8,15 +8,17 @@ import mage.abilities.condition.Condition; import mage.abilities.condition.common.CardsInControllerGraveyardCondition; import mage.abilities.condition.common.SolvedSourceCondition; import mage.abilities.decorator.ConditionalTriggeredAbility; -import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.effects.common.CopyTargetSpellEffect; import mage.abilities.effects.keyword.SurveilEffect; -import mage.abilities.hint.ValueHint; +import mage.abilities.hint.common.CaseSolvedHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.*; +import mage.filter.StaticFilters; import mage.filter.common.FilterCreatureSpell; import mage.filter.predicate.Predicates; +import mage.game.Game; +import mage.players.Player; import java.util.UUID; @@ -45,7 +47,7 @@ public final class CaseOfTheShiftingVisage extends CardImpl { ), SolvedSourceCondition.SOLVED, null); this.addAbility(new CaseAbility(initialAbility, toSolveCondition, solvedAbility) - .addHint(new ValueHint("Cards in your graveyard", new CardsInControllerGraveyardCount()))); + .addHint(new CaseOfTheShiftingVisageHint(toSolveCondition))); } private CaseOfTheShiftingVisage(final CaseOfTheShiftingVisage card) { @@ -57,3 +59,30 @@ public final class CaseOfTheShiftingVisage extends CardImpl { return new CaseOfTheShiftingVisage(this); } } + +class CaseOfTheShiftingVisageHint extends CaseSolvedHint { + + CaseOfTheShiftingVisageHint(Condition condition) { + super(condition); + } + + private CaseOfTheShiftingVisageHint(final CaseOfTheShiftingVisageHint hint) { + super(hint); + } + + @Override + public CaseOfTheShiftingVisageHint copy() { + return new CaseOfTheShiftingVisageHint(this); + } + + @Override + public String getConditionText(Game game, Ability source) { + UUID playerId = source.getControllerId(); + Player player = game.getPlayer(playerId); + if (player == null) { + return ""; + } + int value = player.getGraveyard().count(StaticFilters.FILTER_CARD, playerId, source, game); + return "Cards in graveyard: " + value + " (need 15)."; + } +}