[ZNR] Implemented Umara Mystic

This commit is contained in:
Evan Kranzler 2020-09-04 10:36:11 -04:00
parent 90f5e1671f
commit 88f6ea6ee9
4 changed files with 62 additions and 13 deletions

View file

@ -0,0 +1,47 @@
package mage.cards.u;
import mage.MageInt;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class UmaraMystic extends CardImpl {
public UmaraMystic(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{R}");
this.subtype.add(SubType.MERFOLK);
this.subtype.add(SubType.WIZARD);
this.power = new MageInt(1);
this.toughness = new MageInt(3);
// Flying
this.addAbility(FlyingAbility.getInstance());
// Whenever you cast an instant, sorcery, or Wizard spell, Umara Mystic gets +2/+0 until end of turn.
this.addAbility(new SpellCastControllerTriggeredAbility(
new BoostSourceEffect(2, 0, Duration.EndOfTurn),
StaticFilters.FILTER_SPELL_INSTANT_SORCERY_WIZARD, false
));
}
private UmaraMystic(final UmaraMystic card) {
super(card);
}
@Override
public UmaraMystic copy() {
return new UmaraMystic(this);
}
}

View file

@ -8,8 +8,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
import mage.filter.StaticFilters;
import java.util.UUID;
@ -18,16 +17,6 @@ import java.util.UUID;
*/
public final class WindriderWizard extends CardImpl {
private static final FilterSpell filter = new FilterSpell("an instant, sorcery, or Wizard spell");
static {
filter.add(Predicates.or(
CardType.INSTANT.getPredicate(),
CardType.SORCERY.getPredicate(),
SubType.WIZARD.getPredicate()
));
}
public WindriderWizard(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
@ -41,7 +30,8 @@ public final class WindriderWizard extends CardImpl {
// Whenever you cast an instant, sorcery, or Wizard spell, you may draw a card. If you do, discard a card.
this.addAbility(new SpellCastControllerTriggeredAbility(
new DrawDiscardControllerEffect(1, 1, true), filter, false
new DrawDiscardControllerEffect(1, 1, true),
StaticFilters.FILTER_SPELL_INSTANT_SORCERY_WIZARD, false
));
}

View file

@ -153,6 +153,7 @@ public final class ZendikarRising extends ExpansionSet {
cards.add(new SetCardInfo("Taunting Arbormage", 212, Rarity.UNCOMMON, mage.cards.t.TauntingArbormage.class));
cards.add(new SetCardInfo("Tazri, Beacon of Unity", 44, Rarity.MYTHIC, mage.cards.t.TazriBeaconOfUnity.class));
cards.add(new SetCardInfo("Timbercrown Pathway", 261, Rarity.RARE, mage.cards.t.TimbercrownPathway.class));
cards.add(new SetCardInfo("Umara Mystic", 238, Rarity.UNCOMMON, mage.cards.u.UmaraMystic.class));
cards.add(new SetCardInfo("Windrider Wizard", 87, Rarity.UNCOMMON, mage.cards.w.WindriderWizard.class));
cards.add(new SetCardInfo("Zulaport Duelist", 88, Rarity.COMMON, mage.cards.z.ZulaportDuelist.class));

View file

@ -593,6 +593,17 @@ public final class StaticFilters {
FILTER_SPELLS_INSTANT_OR_SORCERY.setLockedFilter(true);
}
public static final FilterSpell FILTER_SPELL_INSTANT_SORCERY_WIZARD = new FilterSpell("an instant, sorcery, or Wizard spell");
static {
FILTER_SPELL_INSTANT_SORCERY_WIZARD.add(Predicates.or(
CardType.INSTANT.getPredicate(),
CardType.SORCERY.getPredicate(),
SubType.WIZARD.getPredicate()
));
FILTER_SPELL_INSTANT_SORCERY_WIZARD.setLockedFilter(true);
}
public static final FilterCreaturePermanent FILTER_CREATURE_TOKENS = new FilterCreaturePermanent("creature tokens");
static {