diff --git a/Mage.Sets/src/mage/cards/b/BloodcrazedPaladin.java b/Mage.Sets/src/mage/cards/b/BloodcrazedPaladin.java index c2dd87f0e3f..aea4a96fd7c 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcrazedPaladin.java +++ b/Mage.Sets/src/mage/cards/b/BloodcrazedPaladin.java @@ -1,12 +1,10 @@ - package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldAbility; import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.abilities.keyword.FlashAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -15,8 +13,9 @@ import mage.constants.SubType; import mage.counters.CounterType; import mage.watchers.common.CreaturesDiedWatcher; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class BloodcrazedPaladin extends CardImpl { @@ -33,10 +32,9 @@ public final class BloodcrazedPaladin extends CardImpl { this.addAbility(FlashAbility.getInstance()); // Bloodcrazed Paladin enters the battlefield with a +1/+1 counter on it for each creature that died this turn. - Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), - CreaturesDiedThisTurnCount.instance, true); - effect.setText("with a +1/+1 counter on it for each creature that died this turn."); - this.addAbility(new EntersBattlefieldAbility(effect), new CreaturesDiedWatcher()); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( + CounterType.P1P1.createInstance(0), CreaturesDiedThisTurnCount.instance, true + ).setText("with a +1/+1 counter on it for each creature that died this turn.")).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); } private BloodcrazedPaladin(final BloodcrazedPaladin card) { diff --git a/Mage.Sets/src/mage/cards/c/CanopyStalker.java b/Mage.Sets/src/mage/cards/c/CanopyStalker.java index 364733b781b..54a155814d3 100644 --- a/Mage.Sets/src/mage/cards/c/CanopyStalker.java +++ b/Mage.Sets/src/mage/cards/c/CanopyStalker.java @@ -6,6 +6,7 @@ import mage.abilities.common.SimpleStaticAbility; import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; import mage.abilities.effects.common.GainLifeEffect; import mage.abilities.effects.common.combat.MustBeBlockedByAtLeastOneSourceEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -34,7 +35,7 @@ public final class CanopyStalker extends CardImpl { this.addAbility(new DiesSourceTriggeredAbility( new GainLifeEffect(CreaturesDiedThisTurnCount.instance) .setText("you gain 1 life for each creature that died this turn") - ), new CreaturesDiedWatcher()); + ).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); } private CanopyStalker(final CanopyStalker card) { diff --git a/Mage.Sets/src/mage/cards/d/DiregrafRebirth.java b/Mage.Sets/src/mage/cards/d/DiregrafRebirth.java index 8aa2ec3b1a4..3634044f72d 100644 --- a/Mage.Sets/src/mage/cards/d/DiregrafRebirth.java +++ b/Mage.Sets/src/mage/cards/d/DiregrafRebirth.java @@ -5,8 +5,7 @@ import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.cost.SpellCostReductionSourceEffect; -import mage.abilities.hint.Hint; -import mage.abilities.hint.ValueHint; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.abilities.keyword.FlashbackAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -24,10 +23,6 @@ import java.util.UUID; */ public final class DiregrafRebirth extends CardImpl { - private static final Hint hint = new ValueHint( - "Creatures that died this turn", CreaturesDiedThisTurnCount.instance - ); - public DiregrafRebirth(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{B}{G}"); @@ -35,7 +30,7 @@ public final class DiregrafRebirth extends CardImpl { this.addAbility(new SimpleStaticAbility( Zone.ALL, new SpellCostReductionSourceEffect(CreaturesDiedThisTurnCount.instance) .setText("this spell costs {1} less to cast for each creature that died this turn") - ).addHint(hint).setRuleAtTheTop(true), new CreaturesDiedWatcher()); + ).addHint(CreaturesDiedThisTurnHint.instance).setRuleAtTheTop(true), new CreaturesDiedWatcher()); // Return target creature card from your graveyard to the battlefield. this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/g/GrizzlyGhoul.java b/Mage.Sets/src/mage/cards/g/GrizzlyGhoul.java new file mode 100644 index 00000000000..d92471330b7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GrizzlyGhoul.java @@ -0,0 +1,48 @@ +package mage.cards.g; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.watchers.common.CreaturesDiedWatcher; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class GrizzlyGhoul extends CardImpl { + + public GrizzlyGhoul(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{G}"); + + this.subtype.add(SubType.ZOMBIE); + this.subtype.add(SubType.BEAR); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + + // Grizzly Ghoul enters the battlefield with a +1/+1 counter on it for each creature that died this turn. + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect( + CounterType.P1P1.createInstance(0), CreaturesDiedThisTurnCount.instance, true + ).setText("with a +1/+1 counter on it for each creature that died this turn.")).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); + } + + private GrizzlyGhoul(final GrizzlyGhoul card) { + super(card); + } + + @Override + public GrizzlyGhoul copy() { + return new GrizzlyGhoul(this); + } +} diff --git a/Mage.Sets/src/mage/cards/k/KhabalGhoul.java b/Mage.Sets/src/mage/cards/k/KhabalGhoul.java index 26662050baa..50763d1a534 100644 --- a/Mage.Sets/src/mage/cards/k/KhabalGhoul.java +++ b/Mage.Sets/src/mage/cards/k/KhabalGhoul.java @@ -6,6 +6,7 @@ import mage.MageInt; import mage.abilities.common.BeginningOfEndStepTriggeredAbility; import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -28,7 +29,7 @@ public final class KhabalGhoul extends CardImpl { // At the beginning of each end step, put a +1/+1 counter on Khabal Ghoul for each creature that died this turn. this.addAbility(new BeginningOfEndStepTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(), - CreaturesDiedThisTurnCount.instance, true), TargetController.ANY, false), new CreaturesDiedWatcher()); + CreaturesDiedThisTurnCount.instance, true), TargetController.ANY, false).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); } private KhabalGhoul(final KhabalGhoul card) { diff --git a/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java b/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java index 1500d9f2ff8..d21c3ec2250 100644 --- a/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java +++ b/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java @@ -9,6 +9,7 @@ import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.DestroyAllEffect; import mage.abilities.effects.common.DoWhenCostPaid; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.abilities.keyword.HexproofFromArtifactsCreaturesAndEnchantments; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -41,7 +42,7 @@ public final class NevinyrralUrborgTyrant extends CardImpl { // When Nevinyrral, Urborg Tyrant enters the battlefield, create a tapped 2/2 black Zombie creature token for each creature that died this turn. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect( new ZombieToken(), CreaturesDiedThisTurnCount.instance, true, false - ).setText("create a tapped 2/2 black Zombie creature token for each creature that died this turn")), new CreaturesDiedWatcher()); + ).setText("create a tapped 2/2 black Zombie creature token for each creature that died this turn")).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); // When Nevinyrral dies, you may pay {1}. When you do, destroy all artifacts, creatures, and enchantments. this.addAbility(new DiesSourceTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/ScavengingGhoul.java b/Mage.Sets/src/mage/cards/s/ScavengingGhoul.java index 42cb90b7f1d..e9e60cf069e 100644 --- a/Mage.Sets/src/mage/cards/s/ScavengingGhoul.java +++ b/Mage.Sets/src/mage/cards/s/ScavengingGhoul.java @@ -9,6 +9,7 @@ import mage.abilities.costs.common.RemoveCountersSourceCost; import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; import mage.abilities.effects.common.RegenerateSourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.hint.common.CreaturesDiedThisTurnHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -32,7 +33,7 @@ public final class ScavengingGhoul extends CardImpl { // At the beginning of each end step, put a corpse counter on Scavenging Ghoul for each creature that died this turn. this.addAbility(new BeginningOfEndStepTriggeredAbility(new AddCountersSourceEffect(CounterType.CORPSE.createInstance(), - CreaturesDiedThisTurnCount.instance, true), TargetController.ANY, false), new CreaturesDiedWatcher()); + CreaturesDiedThisTurnCount.instance, true), TargetController.ANY, false).addHint(CreaturesDiedThisTurnHint.instance), new CreaturesDiedWatcher()); // Remove a corpse counter from Scavenging Ghoul: Regenerate Scavenging Ghoul. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateSourceEffect(), new RemoveCountersSourceCost(CounterType.CORPSE.createInstance()))); diff --git a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java index 7c0e60c7932..82947927400 100644 --- a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java +++ b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java @@ -94,6 +94,7 @@ public final class InnistradMidnightHunt extends ExpansionSet { cards.add(new SetCardInfo("Grafted Identity", 57, Rarity.RARE, mage.cards.g.GraftedIdentity.class)); cards.add(new SetCardInfo("Graveyard Glutton", 104, Rarity.RARE, mage.cards.g.GraveyardGlutton.class)); cards.add(new SetCardInfo("Graveyard Trespasser", 104, Rarity.RARE, mage.cards.g.GraveyardTrespasser.class)); + cards.add(new SetCardInfo("Grizzly Ghoul", 226, Rarity.UNCOMMON, mage.cards.g.GrizzlyGhoul.class)); cards.add(new SetCardInfo("Haunted Ridge", 263, Rarity.RARE, mage.cards.h.HauntedRidge.class)); cards.add(new SetCardInfo("Hedgewitch's Mask", 23, Rarity.COMMON, mage.cards.h.HedgewitchsMask.class)); cards.add(new SetCardInfo("Heirloom Mirror", 105, Rarity.UNCOMMON, mage.cards.h.HeirloomMirror.class)); diff --git a/Mage/src/main/java/mage/abilities/hint/common/CreaturesDiedThisTurnHint.java b/Mage/src/main/java/mage/abilities/hint/common/CreaturesDiedThisTurnHint.java new file mode 100644 index 00000000000..474b67bb150 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/hint/common/CreaturesDiedThisTurnHint.java @@ -0,0 +1,28 @@ +package mage.abilities.hint.common; + +import mage.abilities.Ability; +import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.game.Game; + +/** + * @author TheElk801 + */ +public enum CreaturesDiedThisTurnHint implements Hint { + instance; + + private static final Hint hint = new ValueHint( + "Creatures that died this turn", CreaturesDiedThisTurnCount.instance + ); + + @Override + public String getText(Game game, Ability ability) { + return hint.getText(game, ability); + } + + @Override + public CreaturesDiedThisTurnHint copy() { + return this; + } +}