[ZNR] Implemented Thundering Sparkmage

This commit is contained in:
Evan Kranzler 2020-09-09 09:45:45 -04:00
parent 725a310fa7
commit 0bf6949328
7 changed files with 62 additions and 10 deletions

View file

@ -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) {

View file

@ -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));
}

View file

@ -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));
}

View file

@ -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. " +
"<i>(Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)</i>";
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) {

View file

@ -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);
}
}

View file

@ -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));

View file

@ -124,7 +124,11 @@ public enum PartyCount implements DynamicValue {
@Override
public String getMessage() {
return "creature in your party. <i>(Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)</i>";
return "creature in your party. " + getReminder();
}
public static String getReminder() {
return "<i>(Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)</i>";
}
@Override