mirror of
https://github.com/correl/mage.git
synced 2024-12-24 11:50:45 +00:00
[ZNR] Implemented Agadeem's Awakening / Agadeem, the Undercrypt
This commit is contained in:
parent
abeea6e299
commit
7ec6f5f575
4 changed files with 141 additions and 0 deletions
42
Mage.Sets/src/mage/cards/a/AgadeemTheUndercrypt.java
Normal file
42
Mage.Sets/src/mage/cards/a/AgadeemTheUndercrypt.java
Normal file
|
@ -0,0 +1,42 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.abilities.common.AsEntersBattlefieldAbility;
|
||||
import mage.abilities.costs.common.PayLifeCost;
|
||||
import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
|
||||
import mage.abilities.mana.BlackManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class AgadeemTheUndercrypt extends CardImpl {
|
||||
|
||||
public AgadeemTheUndercrypt(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
this.modalDFC = true;
|
||||
this.nightCard = true;
|
||||
|
||||
// As Agadeem, the Undercrypt enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.
|
||||
this.addAbility(new AsEntersBattlefieldAbility(
|
||||
new TapSourceUnlessPaysEffect(new PayLifeCost(3)),
|
||||
"you may pay 3 life. If you don't, it enters the battlefield tapped"
|
||||
));
|
||||
|
||||
// {T}: Add {B}.
|
||||
this.addAbility(new BlackManaAbility());
|
||||
}
|
||||
|
||||
private AgadeemTheUndercrypt(final AgadeemTheUndercrypt card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgadeemTheUndercrypt copy() {
|
||||
return new AgadeemTheUndercrypt(this);
|
||||
}
|
||||
}
|
93
Mage.Sets/src/mage/cards/a/AgadeemsAwakening.java
Normal file
93
Mage.Sets/src/mage/cards/a/AgadeemsAwakening.java
Normal file
|
@ -0,0 +1,93 @@
|
|||
package mage.cards.a;
|
||||
|
||||
import mage.MageObject;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreatureCard;
|
||||
import mage.game.Game;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class AgadeemsAwakening extends CardImpl {
|
||||
|
||||
public AgadeemsAwakening(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{B}{B}{B}");
|
||||
|
||||
this.modalDFC = true;
|
||||
this.secondSideCardClazz = mage.cards.a.AgadeemTheUndercrypt.class;
|
||||
|
||||
// Return from your graveyard to the battlefield any number of target creature cards that each have a different converted mana cost X or less.
|
||||
this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect().setText(
|
||||
"return from your graveyard to the battlefield any number of target creature cards " +
|
||||
"that each have a different converted mana cost X or less"
|
||||
));
|
||||
}
|
||||
|
||||
private AgadeemsAwakening(final AgadeemsAwakening card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgadeemsAwakening copy() {
|
||||
return new AgadeemsAwakening(this);
|
||||
}
|
||||
}
|
||||
|
||||
enum AgadeemsAwakeningAdjuster implements TargetAdjuster {
|
||||
instance;
|
||||
|
||||
@Override
|
||||
public void adjustTargets(Ability ability, Game game) {
|
||||
ability.getTargets().clear();
|
||||
ability.addTarget(new AgadeemsAwakeningTarget(ability.getManaCostsToPay().getX()));
|
||||
}
|
||||
}
|
||||
|
||||
class AgadeemsAwakeningTarget extends TargetCardInYourGraveyard {
|
||||
|
||||
private static final FilterCard filter
|
||||
= new FilterCreatureCard("creature cards that each have a different converted mana cost X or less");
|
||||
private final int xValue;
|
||||
|
||||
AgadeemsAwakeningTarget(int xValue) {
|
||||
super(0, Integer.MAX_VALUE, filter, true);
|
||||
this.xValue = xValue;
|
||||
}
|
||||
|
||||
private AgadeemsAwakeningTarget(final AgadeemsAwakeningTarget target) {
|
||||
super(target);
|
||||
this.xValue = target.xValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AgadeemsAwakeningTarget copy() {
|
||||
return new AgadeemsAwakeningTarget(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<UUID> possibleTargets(UUID sourceId, UUID playerId, Game game) {
|
||||
Set<UUID> possibleTargets = super.possibleTargets(sourceId, playerId, game);
|
||||
Set<Integer> cmcs = this.getTargets()
|
||||
.stream()
|
||||
.map(game::getCard)
|
||||
.map(MageObject::getConvertedManaCost)
|
||||
.collect(Collectors.toSet());
|
||||
possibleTargets.removeIf(uuid -> {
|
||||
Card card = game.getCard(uuid);
|
||||
return card != null && (cmcs.contains(card.getConvertedManaCost()) || card.getConvertedManaCost() > xValue);
|
||||
});
|
||||
return possibleTargets;
|
||||
}
|
||||
}
|
|
@ -13,6 +13,8 @@ import java.util.List;
|
|||
public final class ZendikarRising extends ExpansionSet {
|
||||
|
||||
private static final List<String> unfinished = Arrays.asList(
|
||||
"Agadeem's Awakening",
|
||||
"Agadeem, the Undercrypt",
|
||||
"Akoum Warrior",
|
||||
"Akoum Teeth",
|
||||
"Bala Ged Recovery",
|
||||
|
@ -98,6 +100,8 @@ public final class ZendikarRising extends ExpansionSet {
|
|||
|
||||
cards.add(new SetCardInfo("Acquisitions Expert", 89, Rarity.UNCOMMON, mage.cards.a.AcquisitionsExpert.class));
|
||||
cards.add(new SetCardInfo("Adventure Awaits", 177, Rarity.COMMON, mage.cards.a.AdventureAwaits.class));
|
||||
cards.add(new SetCardInfo("Agadeem's Awakening", 90, Rarity.MYTHIC, mage.cards.a.AgadeemsAwakening.class));
|
||||
cards.add(new SetCardInfo("Agadeem, the Undercrypt", 90, Rarity.MYTHIC, mage.cards.a.AgadeemTheUndercrypt.class));
|
||||
cards.add(new SetCardInfo("Akoum Hellhound", 133, Rarity.COMMON, mage.cards.a.AkoumHellhound.class));
|
||||
cards.add(new SetCardInfo("Akoum Teeth", 134, Rarity.UNCOMMON, mage.cards.a.AkoumTeeth.class));
|
||||
cards.add(new SetCardInfo("Akoum Warrior", 134, Rarity.UNCOMMON, mage.cards.a.AkoumWarrior.class));
|
||||
|
|
|
@ -38812,6 +38812,8 @@ Umara Wizard|Zendikar Rising|86|U|{4}{U}|Creature - Merfolk Wizard|4|3|Whenever
|
|||
Windrider Wizard|Zendikar Rising|87|U|{2}{U}|Creature - Human Wizard|2|2|Flying$Whenever you cast an instant, sorcery, or Wizard spell, you may draw a card. If you do, discard a card.|
|
||||
Zulaport Duelist|Zendikar Rising|88|C|{U}|Creature - Human Rogue|1|1|Flash$When Zulaport Duelist enters the battlefield, up to one target creature gets -2/-0 until end of turn. Its controller mills two cards.|
|
||||
Acquisitions Expert|Zendikar Rising|89|U|{1}{B}|Creature - Human Rogue|1|2|When Acquisitions Expert enters the battlefield, target opponent reveals a number of cards from their hand equal to the number of creatures in your party. You choose one of those cards. That player discards that card.|
|
||||
Agadeem's Awakening|Zendikar Rising|90|M|{X}{B}{B}{B}|Sorcery|||Return from your graveyard to the battlefield any number of target creature cards that each have a different converted mana cost X or less.|
|
||||
Agadeem, the Undercrypt|Zendikar Rising|90|M||Land|||As Agadeem, the Undercrypt enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.${T}: Add {B}.|
|
||||
Blackbloom Bog|Zendikar Rising|91|U||Land|||Blackbloom Bog enters the battlefield tapped.${T}: Add {B}.|
|
||||
Blackbloom Rogue|Zendikar Rising|91|U|{2}{B}|Creature - Human Rogue|2|3|Menace$Blackbloom Rogue gets +3/+0 as long as an opponent has eight or more cards in their graveyard.|
|
||||
Blood Beckoning|Zendikar Rising|92|C|{B}|Sorcery|||Kicker {3}$Return target creature card from your graveyard to your hand. If this spell was kicked, instead return two target creature cards from your graveyard to your hand.|
|
||||
|
|
Loading…
Reference in a new issue