Implemented Vivien Reid

This commit is contained in:
Evan Kranzler 2018-06-11 21:28:43 -04:00
parent bd17d18ea1
commit a0fbeebf4e
6 changed files with 149 additions and 9 deletions

View file

@ -0,0 +1,80 @@
package mage.cards.v;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.LoyaltyAbility;
import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.effects.common.GetEmblemEffect;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterCard;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.AbilityPredicate;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.command.emblems.VivienReidEmblem;
import mage.target.TargetPermanent;
/**
*
* @author TheElk801
*/
public final class VivienReid extends CardImpl {
private static final FilterCard filter = new FilterCard("a creature or land card");
private static final FilterPermanent filter2 = new FilterPermanent("artifact, enchantment, or creature with flying");
static {
filter.add(Predicates.or(
new CardTypePredicate(CardType.CREATURE),
new CardTypePredicate(CardType.LAND)
));
filter2.add(Predicates.or(
new CardTypePredicate(CardType.ARTIFACT),
new CardTypePredicate(CardType.ENCHANTMENT),
Predicates.and(
new CardTypePredicate(CardType.CREATURE),
new AbilityPredicate(FlyingAbility.class)
)
));
}
public VivienReid(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{3}{G}{G}");
this.addSuperType(SuperType.LEGENDARY);
this.subtype.add(SubType.VIVIEN);
this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(5));
// +1: Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.
this.addAbility(new LoyaltyAbility(
new LookLibraryAndPickControllerEffect(
new StaticValue(4), false, new StaticValue(1), filter, false
), 1
));
// -3: Destroy target artifact, enchantment, or creature with flying.
Ability ability = new LoyaltyAbility(new DestroyTargetEffect());
ability.addTarget(new TargetPermanent(filter2));
this.addAbility(ability);
// -8: You get an emblem with "Creatures you control get +2/+2 and have vigilance, trample, and indestructible.
this.addAbility(new LoyaltyAbility(new GetEmblemEffect(new VivienReidEmblem()), -8));
}
public VivienReid(final VivienReid card) {
super(card);
}
@Override
public VivienReid copy() {
return new VivienReid(this);
}
}

View file

@ -115,6 +115,7 @@ public final class CoreSet2019 extends ExpansionSet {
cards.add(new SetCardInfo("Trusty Packbeast", 41, Rarity.COMMON, mage.cards.t.TrustyPackbeast.class));
cards.add(new SetCardInfo("Uncomfortable Chill", 82, Rarity.COMMON, mage.cards.u.UncomfortableChill.class));
cards.add(new SetCardInfo("Vampire Sovereign", 125, Rarity.UNCOMMON, mage.cards.v.VampireSovereign.class));
cards.add(new SetCardInfo("Vivien Reid", 208, Rarity.MYTHIC, mage.cards.v.VivienReid.class));
cards.add(new SetCardInfo("Volcanic Dragon", 167, Rarity.UNCOMMON, mage.cards.v.VolcanicDragon.class));
cards.add(new SetCardInfo("Walking Corpse", 126, Rarity.COMMON, mage.cards.w.WalkingCorpse.class));
cards.add(new SetCardInfo("Wall of Mist", 83, Rarity.COMMON, mage.cards.w.WallOfMist.class));

View file

@ -403,6 +403,7 @@ public enum SubType {
TIBALT("Tibalt", SubTypeSet.PlaneswalkerType),
UGIN("Ugin", SubTypeSet.PlaneswalkerType),
VENSER("Venser", SubTypeSet.PlaneswalkerType),
VIVIEN("Vivien", SubTypeSet.PlaneswalkerType),
VRASKA("Vraska", SubTypeSet.PlaneswalkerType),
WILL("Will", SubTypeSet.PlaneswalkerType),
XENAGOS("Xenagos", SubTypeSet.PlaneswalkerType),

View file

@ -1,4 +1,3 @@
package mage.game.command.emblems;
import mage.abilities.Ability;
@ -8,7 +7,7 @@ import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.StaticFilters;
import mage.game.command.Emblem;
/**
@ -16,16 +15,24 @@ import mage.game.command.Emblem;
* @author spjspj
*/
public class ElspethSunsChampionEmblem extends Emblem {
// -7: You get an emblem with "Creatures you control get +2/+2 and have flying."
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures");
public ElspethSunsChampionEmblem() {
this.setName("Emblem Elspeth");
this.setExpansionSetCodeForImage("THS");
Ability ability = new SimpleStaticAbility(Zone.COMMAND, new BoostControlledEffect(2, 2, Duration.EndOfGame, filter, false));
ability.addEffect(new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.EndOfGame, filter));
Ability ability = new SimpleStaticAbility(
Zone.COMMAND,
new BoostControlledEffect(
2, 2, Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES,
false
).setText("creatures you control get +2/+2")
);
ability.addEffect(new GainAbilityControlledEffect(
FlyingAbility.getInstance(),
Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("and have flying"));
this.getAbilities().add(ability);
}
}

View file

@ -0,0 +1,51 @@
package mage.game.command.emblems;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.IndestructibleAbility;
import mage.abilities.keyword.TrampleAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import mage.game.command.Emblem;
/**
*
* @author spjspj
*/
public class VivienReidEmblem extends Emblem {
// -8: You get an emblem with "Creatures you control get +2/+2 and have vigilance, trample, and indestructible.
public VivienReidEmblem() {
this.setName("Emblem Vivien");
this.setExpansionSetCodeForImage("M19");
Ability ability = new SimpleStaticAbility(
Zone.COMMAND,
new BoostControlledEffect(
2, 2, Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES,
false
).setText("creatures you control get +2/+2")
);
ability.addEffect(new GainAbilityControlledEffect(
VigilanceAbility.getInstance(),
Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("and have vigilance,"));
ability.addEffect(new GainAbilityControlledEffect(
TrampleAbility.getInstance(),
Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("trample,"));
ability.addEffect(new GainAbilityControlledEffect(
IndestructibleAbility.getInstance(),
Duration.EndOfGame,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("and indestructible"));
this.getAbilities().add(ability);
}
}

View file

@ -33666,7 +33666,7 @@ Rabid Bite|Core Set 2019|195|C|{1}{G}|Sorcery|||Target creature you control deal
Recollect|Core Set 2019|197|U|{2}{G}|Sorcery|||Return target card from your graveyard to your hand.|
Thornhide Wolves|Core Set 2019|204|C|{4}{G}|Creature - Wolf|4|5||
Titanic Growth|Core Set 2019|205|C|{1}{G}|Instant|||Target creature gets +4/+4 until end of turn.|
Vivien Reid|Core Set 2019|208|M|{3}{G}{G}|Legendary Planeswalker - Vivien|||+1: Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.$-3: Destroy target artifact, enchantment, or creature with flying.$-8: You get an emblem with "Creatures you control get +2/+2 and have vigilance, trample, and indestructible.|
Vivien Reid|Core Set 2019|208|M|{3}{G}{G}|Legendary Planeswalker - Vivien|5|+1: Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.$-3: Destroy target artifact, enchantment, or creature with flying.$-8: You get an emblem with "Creatures you control get +2/+2 and have vigilance, trample, and indestructible.|
Vivien's Invocation|Core Set 2019|209|R|{5}{G}{G}|Sorcery|||Look at the top seven cards of your library. You may put a creature card from among them onto the battlefield. Put the rest on the bottom of your library in a random order. When a creature is put onto the battlefield this way, it deals damage equals to its power to target creature an opponent controls.|
Wall of Vines|Core Set 2019|210|C|{G}|Creature - Plant Wall|0|3|Defender|
Desecrated Tomb|Core Set 2019|230|R|{3}|Artifact|||Whenever one or more creature cards leave your graveyard, create a 1/1 black Bat creature token with flying.|