mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 03:22:00 -08:00
[DSK] Implement Marina Vendrell
This commit is contained in:
parent
5e8c63ad2c
commit
ec639d1172
9 changed files with 100 additions and 54 deletions
|
|
@ -13,6 +13,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.*;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledEnchantmentPermanent;
|
||||
import mage.filter.common.FilterEnchantmentCard;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
|
@ -45,7 +46,6 @@ public final class CalixDestinysHand extends CardImpl {
|
|||
}
|
||||
|
||||
private static final FilterPermanent filter3 = new FilterControlledEnchantmentPermanent();
|
||||
private static final FilterCard filter4 = new FilterEnchantmentCard("enchantment cards");
|
||||
|
||||
public CalixDestinysHand(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{G}{W}");
|
||||
|
|
@ -70,7 +70,7 @@ public final class CalixDestinysHand extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// −7: Return all enchantment cards from your graveyard to the battlefield.
|
||||
this.addAbility(new LoyaltyAbility(new ReturnFromYourGraveyardToBattlefieldAllEffect(filter4), -7));
|
||||
this.addAbility(new LoyaltyAbility(new ReturnFromYourGraveyardToBattlefieldAllEffect(StaticFilters.FILTER_CARD_ENCHANTMENTS), -7));
|
||||
}
|
||||
|
||||
private CalixDestinysHand(final CalixDestinysHand card) {
|
||||
|
|
|
|||
|
|
@ -1,45 +1,42 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.dynamicvalue.DynamicValue;
|
||||
import mage.abilities.dynamicvalue.common.CardsInAllGraveyardsCount;
|
||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.abilities.hint.ValueHint;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Loki (Mortivore), cbt33
|
||||
*/
|
||||
public final class Cantivore extends CardImpl {
|
||||
|
||||
static final FilterCard filter = new FilterCard("enchantment cards");
|
||||
|
||||
static {
|
||||
filter.add(CardType.ENCHANTMENT.getPredicate());
|
||||
}
|
||||
private static final DynamicValue xValue = new CardsInAllGraveyardsCount(StaticFilters.FILTER_CARD_ENCHANTMENTS);
|
||||
private static final Hint hint = new ValueHint("Enchantment cards in all graveyards", xValue);
|
||||
|
||||
public Cantivore(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
this.subtype.add(SubType.LHURGOYF);
|
||||
|
||||
this.power = new MageInt(0);
|
||||
this.toughness = new MageInt(0);
|
||||
|
||||
|
||||
// Vigilance
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Cantivore's power and toughness are each equal to the number of enchantment cards in all graveyards.
|
||||
DynamicValue value = (new CardsInAllGraveyardsCount(filter));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(value)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(xValue)).addHint(hint));
|
||||
}
|
||||
|
||||
private Cantivore(final Cantivore card) {
|
||||
|
|
|
|||
|
|
@ -1,36 +1,30 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.RevealLibraryPickControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.PutCards;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class KruphixsInsight extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("enchantment cards");
|
||||
|
||||
static {
|
||||
filter.add(CardType.ENCHANTMENT.getPredicate());
|
||||
}
|
||||
|
||||
public KruphixsInsight(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{G}");
|
||||
|
||||
// Reveal the top six cards of your library. Put up to three enchantment cards from among them into your hand
|
||||
// and the rest of the revealed cards into your graveyard.
|
||||
Effect effect = new RevealLibraryPickControllerEffect(6, 3, filter, PutCards.HAND, PutCards.GRAVEYARD, false);
|
||||
effect.setText("reveal the top six cards of your library. " +
|
||||
this.getSpellAbility().addEffect(new RevealLibraryPickControllerEffect(
|
||||
6, 3, StaticFilters.FILTER_CARD_ENCHANTMENTS,
|
||||
PutCards.HAND, PutCards.GRAVEYARD, false
|
||||
).setText("reveal the top six cards of your library. " +
|
||||
"Put up to three enchantment cards from among them into your hand " +
|
||||
"and the rest of the revealed cards into your graveyard");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
"and the rest of the revealed cards into your graveyard"));
|
||||
}
|
||||
|
||||
private KruphixsInsight(final KruphixsInsight card) {
|
||||
|
|
|
|||
58
Mage.Sets/src/mage/cards/m/MarinaVendrell.java
Normal file
58
Mage.Sets/src/mage/cards/m/MarinaVendrell.java
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.effects.common.LockOrUnlockRoomTargetEffect;
|
||||
import mage.abilities.effects.common.RevealLibraryPutIntoHandEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class MarinaVendrell extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.ROOM);
|
||||
|
||||
public MarinaVendrell(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{W}{U}{B}{R}{G}");
|
||||
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.WARLOCK);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(5);
|
||||
|
||||
// When Marina Vendrell enters, reveal the top seven cards of your library. Put all enchantment cards from among them into your hand and the rest on the bottom of your library in a random order.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new RevealLibraryPutIntoHandEffect(
|
||||
7, StaticFilters.FILTER_CARD_ENCHANTMENTS, Zone.LIBRARY, false
|
||||
)));
|
||||
|
||||
// {T}: Lock or unlock a door of target Room you control. Activate only as a sorcery.
|
||||
Ability ability = new ActivateAsSorceryActivatedAbility(new LockOrUnlockRoomTargetEffect(), new TapSourceCost());
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private MarinaVendrell(final MarinaVendrell card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MarinaVendrell copy() {
|
||||
return new MarinaVendrell(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,31 +1,24 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author LevelX2
|
||||
*/
|
||||
public final class PleaForGuidance extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("enchantment cards");
|
||||
static {
|
||||
filter.add(CardType.ENCHANTMENT.getPredicate());
|
||||
}
|
||||
|
||||
public PleaForGuidance(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{W}");
|
||||
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{W}");
|
||||
|
||||
// Search your library for up to two enchantment cards, reveal them, and put them into your hand. Then shuffle your library.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0,2, filter), true));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_ENCHANTMENTS), true));
|
||||
}
|
||||
|
||||
private PleaForGuidance(final PleaForGuidance card) {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import mage.abilities.effects.common.ReturnFromYourGraveyardToBattlefieldAllEffe
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterEnchantmentCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -13,13 +13,11 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class Replenish extends CardImpl {
|
||||
|
||||
private static final FilterEnchantmentCard filter = new FilterEnchantmentCard("enchantment cards");
|
||||
|
||||
public Replenish(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{W}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}");
|
||||
|
||||
// Return all enchantment cards from your graveyard to the battlefield.
|
||||
this.getSpellAbility().addEffect(new ReturnFromYourGraveyardToBattlefieldAllEffect(filter));
|
||||
this.getSpellAbility().addEffect(new ReturnFromYourGraveyardToBattlefieldAllEffect(StaticFilters.FILTER_CARD_ENCHANTMENTS));
|
||||
}
|
||||
|
||||
private Replenish(final Replenish card) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import mage.abilities.keyword.SuspendAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterEnchantmentCard;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -15,8 +15,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class ResurgentBelief extends CardImpl {
|
||||
|
||||
private static final FilterEnchantmentCard filter = new FilterEnchantmentCard("enchantment cards");
|
||||
|
||||
public ResurgentBelief(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "");
|
||||
|
||||
|
|
@ -26,7 +24,7 @@ public final class ResurgentBelief extends CardImpl {
|
|||
this.addAbility(new SuspendAbility(2, new ManaCostsImpl<>("{1}{W}"), this));
|
||||
|
||||
// Return all enchantment cards from your graveyard to the battlefield.
|
||||
this.getSpellAbility().addEffect(new ReturnFromYourGraveyardToBattlefieldAllEffect(filter));
|
||||
this.getSpellAbility().addEffect(new ReturnFromYourGraveyardToBattlefieldAllEffect(StaticFilters.FILTER_CARD_ENCHANTMENTS));
|
||||
}
|
||||
|
||||
private ResurgentBelief(final ResurgentBelief card) {
|
||||
|
|
|
|||
|
|
@ -203,6 +203,8 @@ public final class DuskmournHouseOfHorror extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Living Phone", 20, Rarity.COMMON, mage.cards.l.LivingPhone.class));
|
||||
cards.add(new SetCardInfo("Malevolent Chandelier", 252, Rarity.COMMON, mage.cards.m.MalevolentChandelier.class));
|
||||
cards.add(new SetCardInfo("Manifest Dread", 189, Rarity.COMMON, mage.cards.m.ManifestDread.class));
|
||||
cards.add(new SetCardInfo("Marina Vendrell", 221, Rarity.RARE, mage.cards.m.MarinaVendrell.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Marina Vendrell", 360, Rarity.RARE, mage.cards.m.MarinaVendrell.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Marina Vendrell's Grimoire", 308, Rarity.RARE, mage.cards.m.MarinaVendrellsGrimoire.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Marina Vendrell's Grimoire", 64, Rarity.RARE, mage.cards.m.MarinaVendrellsGrimoire.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Marvin, Murderous Mimic", 253, Rarity.RARE, mage.cards.m.MarvinMurderousMimic.class, NON_FULL_USE_VARIOUS));
|
||||
|
|
|
|||
|
|
@ -61,6 +61,12 @@ public final class StaticFilters {
|
|||
FILTER_CARD_ENCHANTMENT.setLockedFilter(true);
|
||||
}
|
||||
|
||||
public static final FilterCard FILTER_CARD_ENCHANTMENTS = new FilterEnchantmentCard("enchantment cards");
|
||||
|
||||
static {
|
||||
FILTER_CARD_ENCHANTMENTS.setLockedFilter(true);
|
||||
}
|
||||
|
||||
public static final FilterArtifactCard FILTER_CARD_ARTIFACT = new FilterArtifactCard();
|
||||
|
||||
static {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue