Grist, the Hunger Tide and other - added card hints (#13354)

Grist, the Hunger Tide
Songs of the Damned
Season of Loss
This commit is contained in:
Johannes Wolf 2025-02-16 18:52:20 +01:00 committed by GitHub
parent 3be8e3879c
commit 2853cf1b99
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 8 deletions

View file

@ -13,6 +13,7 @@ import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.DoWhenCostPaid; import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.abilities.effects.common.LoseLifeOpponentsEffect;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.*; import mage.constants.*;
@ -34,9 +35,6 @@ import java.util.UUID;
* @author TheElk801 * @author TheElk801
*/ */
public final class GristTheHungerTide extends CardImpl { public final class GristTheHungerTide extends CardImpl {
private static final DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
public GristTheHungerTide(UUID ownerId, CardSetInfo setInfo) { public GristTheHungerTide(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{B}{G}"); super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{1}{B}{G}");
@ -61,7 +59,10 @@ public final class GristTheHungerTide extends CardImpl {
), -2)); ), -2));
// 5: Each opponent loses life equal to the number of creature cards in your graveyard. // 5: Each opponent loses life equal to the number of creature cards in your graveyard.
this.addAbility(new LoyaltyAbility(new LoseLifeOpponentsEffect(xValue).setText("each opponent loses life equal to the number of creature cards in your graveyard"), -5)); DynamicValue creatureCardsInGraveyard = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
this.addAbility(new LoyaltyAbility(new LoseLifeOpponentsEffect(creatureCardsInGraveyard)
.setText("each opponent loses life equal to the number of creature cards in your graveyard"), -5)
.addHint(new ValueHint("Creature cards in your graveyard", creatureCardsInGraveyard)));
} }
private GristTheHungerTide(final GristTheHungerTide card) { private GristTheHungerTide(final GristTheHungerTide card) {

View file

@ -8,6 +8,7 @@ import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.LoseLifeOpponentsEffect; import mage.abilities.effects.common.LoseLifeOpponentsEffect;
import mage.abilities.effects.common.SacrificeAllEffect; import mage.abilities.effects.common.SacrificeAllEffect;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -22,7 +23,6 @@ import java.util.UUID;
* @author jimga150 * @author jimga150
*/ */
public final class SeasonOfLoss extends CardImpl { public final class SeasonOfLoss extends CardImpl {
public SeasonOfLoss(UUID ownerId, CardSetInfo setInfo) { public SeasonOfLoss(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{B}"); super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{B}");
@ -41,9 +41,11 @@ public final class SeasonOfLoss extends CardImpl {
this.getSpellAbility().addMode(mode2.withPawPrintValue(2)); this.getSpellAbility().addMode(mode2.withPawPrintValue(2));
// {P}{P}{P} -- Each opponent loses X life, where X is the number of creature cards in your graveyard. // {P}{P}{P} -- Each opponent loses X life, where X is the number of creature cards in your graveyard.
Mode mode3 = new Mode(new LoseLifeOpponentsEffect(new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES)) DynamicValue creatureCardsInGraveyard = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
Mode mode3 = new Mode(new LoseLifeOpponentsEffect(creatureCardsInGraveyard)
.setText("Each opponent loses X life, where X is the number of creature cards in your graveyard.")); .setText("Each opponent loses X life, where X is the number of creature cards in your graveyard."));
this.getSpellAbility().addMode(mode3.withPawPrintValue(3)); this.getSpellAbility().addMode(mode3.withPawPrintValue(3));
this.getSpellAbility().addHint(new ValueHint("Creature cards in your graveyard", creatureCardsInGraveyard));
} }
private SeasonOfLoss(final SeasonOfLoss card) { private SeasonOfLoss(final SeasonOfLoss card) {

View file

@ -2,8 +2,10 @@ package mage.cards.s;
import java.util.UUID; import java.util.UUID;
import mage.Mana; import mage.Mana;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
import mage.abilities.effects.mana.DynamicManaEffect; import mage.abilities.effects.mana.DynamicManaEffect;
import mage.abilities.hint.ValueHint;
import mage.cards.CardImpl; import mage.cards.CardImpl;
import mage.cards.CardSetInfo; import mage.cards.CardSetInfo;
import mage.constants.CardType; import mage.constants.CardType;
@ -14,13 +16,14 @@ import mage.filter.StaticFilters;
* @author fireshoes * @author fireshoes
*/ */
public final class SongsOfTheDamned extends CardImpl { public final class SongsOfTheDamned extends CardImpl {
public SongsOfTheDamned(UUID ownerId, CardSetInfo setInfo) { public SongsOfTheDamned(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}"); super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{B}");
// Add {B} for each creature card in your graveyard. // Add {B} for each creature card in your graveyard.
DynamicManaEffect effect = new DynamicManaEffect(Mana.BlackMana(1), new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE)); DynamicValue creatureCardsInGraveyard = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
DynamicManaEffect effect = new DynamicManaEffect(Mana.BlackMana(1), creatureCardsInGraveyard);
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addHint(new ValueHint("Creature cards in your graveyard", creatureCardsInGraveyard));
} }
private SongsOfTheDamned(final SongsOfTheDamned card) { private SongsOfTheDamned(final SongsOfTheDamned card) {