From 0bf69493280f7a57e23ee934a9666de4e549c753 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 9 Sep 2020 09:45:45 -0400 Subject: [PATCH] [ZNR] Implemented Thundering Sparkmage --- Mage.Sets/src/mage/cards/c/CascadeSeer.java | 10 ++--- .../src/mage/cards/d/DranasSilencer.java | 3 +- .../src/mage/cards/m/MalakirBloodPriest.java | 3 +- .../mage/cards/s/SynchronizedSpellcraft.java | 4 +- .../src/mage/cards/t/ThunderingSparkmage.java | 45 +++++++++++++++++++ Mage.Sets/src/mage/sets/ZendikarRising.java | 1 + .../dynamicvalue/common/PartyCount.java | 6 ++- 7 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/t/ThunderingSparkmage.java diff --git a/Mage.Sets/src/mage/cards/c/CascadeSeer.java b/Mage.Sets/src/mage/cards/c/CascadeSeer.java index d3e48215d5..c77dc5f960 100644 --- a/Mage.Sets/src/mage/cards/c/CascadeSeer.java +++ b/Mage.Sets/src/mage/cards/c/CascadeSeer.java @@ -1,21 +1,21 @@ 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.PartyCount; import mage.abilities.effects.OneShotEffect; import mage.abilities.hint.common.PartyCountHint; -import mage.constants.Outcome; -import mage.constants.SubType; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.SubType; import mage.game.Game; import mage.players.Player; +import java.util.UUID; + /** * @author TheElk801 */ @@ -47,7 +47,7 @@ class CascadeSeerEffect extends OneShotEffect { CascadeSeerEffect() { super(Outcome.Benefit); - staticText = "scry X, where X is the number of creatures in your party"; + staticText = "scry X, where X is the number of creatures in your party. " + PartyCount.getReminder(); } private CascadeSeerEffect(final CascadeSeerEffect effect) { diff --git a/Mage.Sets/src/mage/cards/d/DranasSilencer.java b/Mage.Sets/src/mage/cards/d/DranasSilencer.java index 0e5f7f3861..0b1f5cdac2 100644 --- a/Mage.Sets/src/mage/cards/d/DranasSilencer.java +++ b/Mage.Sets/src/mage/cards/d/DranasSilencer.java @@ -35,7 +35,8 @@ public final class DranasSilencer extends CardImpl { // When Drana's Silencer enters the battlefield, target creature an opponent controls gets -X/-X until end of turn, where X is the number of creatures in your party. Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect( xValue, xValue, Duration.EndOfTurn, true - ).setText(" target creature an opponent controls gets -X/-X until end of turn, where X is the number of creatures in your party")); + ).setText(" target creature an opponent controls gets -X/-X until end of turn, " + + "where X is the number of creatures in your party. " + PartyCount.getReminder())); ability.addTarget(new TargetOpponentsCreaturePermanent()); this.addAbility(ability.addHint(PartyCountHint.instance)); } diff --git a/Mage.Sets/src/mage/cards/m/MalakirBloodPriest.java b/Mage.Sets/src/mage/cards/m/MalakirBloodPriest.java index de9fccc88d..48df5e1847 100644 --- a/Mage.Sets/src/mage/cards/m/MalakirBloodPriest.java +++ b/Mage.Sets/src/mage/cards/m/MalakirBloodPriest.java @@ -33,7 +33,8 @@ public final class MalakirBloodPriest extends CardImpl { ); ability.addEffect(new GainLifeEffect( PartyCount.instance, "and you gain X life, " + - "where X is your number of creatures in your party" + "where X is your number of creatures in your party. " + + PartyCount.getReminder() )); this.addAbility(ability.addHint(PartyCountHint.instance)); } diff --git a/Mage.Sets/src/mage/cards/s/SynchronizedSpellcraft.java b/Mage.Sets/src/mage/cards/s/SynchronizedSpellcraft.java index 429a8abd52..7480f1c7fd 100644 --- a/Mage.Sets/src/mage/cards/s/SynchronizedSpellcraft.java +++ b/Mage.Sets/src/mage/cards/s/SynchronizedSpellcraft.java @@ -45,8 +45,8 @@ class SynchronizedSpellcraftEffect extends OneShotEffect { SynchronizedSpellcraftEffect() { super(Outcome.Benefit); - staticText = "and X damage to that creature's controller, where X is the number of creatures in your party. " + - "(Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)"; + staticText = "and X damage to that creature's controller, " + + "where X is the number of creatures in your party. " + PartyCount.getReminder(); } private SynchronizedSpellcraftEffect(final SynchronizedSpellcraftEffect effect) { diff --git a/Mage.Sets/src/mage/cards/t/ThunderingSparkmage.java b/Mage.Sets/src/mage/cards/t/ThunderingSparkmage.java new file mode 100644 index 0000000000..360fecf8c8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/ThunderingSparkmage.java @@ -0,0 +1,45 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.PartyCount; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.target.common.TargetCreatureOrPlaneswalker; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class ThunderingSparkmage extends CardImpl { + + public ThunderingSparkmage(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.WIZARD); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Thundering Sparkmage enters the battlefield, it deals X damage to target creature or planeswalker, where X is the number of creatures in your party. + Ability ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(PartyCount.instance) + .setText("it deals X damage to target creature or planeswalker, " + + "where X is the number of creatures in your party. " + PartyCount.getReminder())); + ability.addTarget(new TargetCreatureOrPlaneswalker()); + this.addAbility(ability); + } + + private ThunderingSparkmage(final ThunderingSparkmage card) { + super(card); + } + + @Override + public ThunderingSparkmage copy() { + return new ThunderingSparkmage(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ZendikarRising.java b/Mage.Sets/src/mage/sets/ZendikarRising.java index 84a6f8daa3..73fdbac92f 100644 --- a/Mage.Sets/src/mage/sets/ZendikarRising.java +++ b/Mage.Sets/src/mage/sets/ZendikarRising.java @@ -322,6 +322,7 @@ public final class ZendikarRising extends ExpansionSet { cards.add(new SetCardInfo("Tazeem Raptor", 43, Rarity.COMMON, mage.cards.t.TazeemRaptor.class)); cards.add(new SetCardInfo("Tazri, Beacon of Unity", 44, Rarity.MYTHIC, mage.cards.t.TazriBeaconOfUnity.class)); cards.add(new SetCardInfo("Teeterpeak Ambusher", 169, Rarity.COMMON, mage.cards.t.TeeterpeakAmbusher.class)); + cards.add(new SetCardInfo("Thundering Sparkmage", 171, Rarity.UNCOMMON, mage.cards.t.ThunderingSparkmage.class)); cards.add(new SetCardInfo("Thwart the Grave", 130, Rarity.UNCOMMON, mage.cards.t.ThwartTheGrave.class)); cards.add(new SetCardInfo("Timbercrown Pathway", 261, Rarity.RARE, mage.cards.t.TimbercrownPathway.class)); cards.add(new SetCardInfo("Tuktuk Rubblefort", 173, Rarity.COMMON, mage.cards.t.TuktukRubblefort.class)); diff --git a/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java b/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java index 4493d05f58..61dd36c6be 100644 --- a/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java +++ b/Mage/src/main/java/mage/abilities/dynamicvalue/common/PartyCount.java @@ -124,7 +124,11 @@ public enum PartyCount implements DynamicValue { @Override public String getMessage() { - return "creature in your party. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)"; + return "creature in your party. " + getReminder(); + } + + public static String getReminder() { + return "(Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)"; } @Override