mirror of
https://github.com/magefree/mage.git
synced 2026-01-26 21:29:17 -08:00
[CMM] Implement Sparkshaper Visionary (#10692)
This commit is contained in:
parent
e57d5d02c9
commit
2b3f775aaf
2 changed files with 101 additions and 0 deletions
100
Mage.Sets/src/mage/cards/s/SparkshaperVisionary.java
Normal file
100
Mage.Sets/src/mage/cards/s/SparkshaperVisionary.java
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.TriggeredAbility;
|
||||
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.HexproofAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.filter.common.FilterControlledPlaneswalkerPermanent;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Susucr
|
||||
*/
|
||||
public final class SparkshaperVisionary extends CardImpl {
|
||||
|
||||
public static final FilterControlledPermanent filter =
|
||||
new FilterControlledPlaneswalkerPermanent("planeswalkers you control");
|
||||
|
||||
public SparkshaperVisionary(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.WIZARD);
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// At the beginning of combat on your turn, choose any number of target planeswalkers you control. Until end of turn, they become 3/3 blue Bird creatures with flying, hexproof, and "Whenever this creature deals combat damage to a player, scry 1."
|
||||
TriggeredAbility triggeredAbility =
|
||||
new BeginningOfCombatTriggeredAbility(
|
||||
new BecomesCreatureTargetEffect(
|
||||
new SparkshaperVisionaryToken(),
|
||||
false, false, Duration.EndOfTurn,
|
||||
false, true, true
|
||||
).setText("choose any number of target planeswalkers you control. Until end of turn, "
|
||||
+ "they become 3/3 blue Bird creatures with flying, hexproof, and "
|
||||
+ "\"Whenever this creature deals combat damage to a player, scry 1.\""
|
||||
+ " <i>(They're no longer planeswalkers. Loyalty abilities can still be activated.)</i>"),
|
||||
TargetController.YOU,
|
||||
false
|
||||
);
|
||||
|
||||
triggeredAbility.addTarget(
|
||||
new TargetControlledPermanent(0, Integer.MAX_VALUE,
|
||||
filter, false
|
||||
)
|
||||
);
|
||||
|
||||
this.addAbility(triggeredAbility);
|
||||
}
|
||||
|
||||
private SparkshaperVisionary(final SparkshaperVisionary card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SparkshaperVisionary copy() {
|
||||
return new SparkshaperVisionary(this);
|
||||
}
|
||||
}
|
||||
|
||||
class SparkshaperVisionaryToken extends TokenImpl {
|
||||
|
||||
SparkshaperVisionaryToken() {
|
||||
super("", "3/3 blue Bird creatures with flying, hexproof, and "
|
||||
+ "\"Whenever this creature deals combat damage to a player, scry 1.\"");
|
||||
cardType.add(CardType.CREATURE);
|
||||
subtype.add(SubType.BIRD);
|
||||
color.setBlue(true);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(3);
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
this.addAbility(HexproofAbility.getInstance());
|
||||
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
new ScryEffect(1, false),
|
||||
false
|
||||
));
|
||||
}
|
||||
|
||||
private SparkshaperVisionaryToken(final SparkshaperVisionaryToken token) {
|
||||
super(token);
|
||||
}
|
||||
|
||||
public SparkshaperVisionaryToken copy() {
|
||||
return new SparkshaperVisionaryToken(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -581,6 +581,7 @@ public final class CommanderMasters extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Soul of New Phyrexia", 974, Rarity.MYTHIC, mage.cards.s.SoulOfNewPhyrexia.class));
|
||||
cards.add(new SetCardInfo("Sower of Discord", 187, Rarity.RARE, mage.cards.s.SowerOfDiscord.class));
|
||||
cards.add(new SetCardInfo("Spark Double", 856, Rarity.RARE, mage.cards.s.SparkDouble.class));
|
||||
cards.add(new SetCardInfo("Sparkshaper Visionary", 726, Rarity.RARE, mage.cards.s.SparkshaperVisionary.class));
|
||||
cards.add(new SetCardInfo("Spatial Contortion", 809, Rarity.UNCOMMON, mage.cards.s.SpatialContortion.class));
|
||||
cards.add(new SetCardInfo("Spectator Seating", 427, Rarity.RARE, mage.cards.s.SpectatorSeating.class));
|
||||
cards.add(new SetCardInfo("Spectral Grasp", 58, Rarity.COMMON, mage.cards.s.SpectralGrasp.class));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue