[MH3] Implement Devourer of Destiny

This commit is contained in:
theelk801 2024-05-13 12:33:01 -04:00
parent 43769e68f8
commit 2c1b1aa0ef
3 changed files with 91 additions and 0 deletions

View file

@ -0,0 +1,89 @@
package mage.cards.d;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.DelayedTriggeredAbility;
import mage.abilities.common.ChancellorAbility;
import mage.abilities.effects.common.CastSourceTriggeredAbility;
import mage.abilities.effects.common.ExileTargetEffect;
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.PutCards;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.ColorlessPredicate;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.target.TargetPermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class DevourerOfDestiny extends CardImpl {
private static final FilterPermanent filter = new FilterPermanent("permanent that's one or more colors");
static {
filter.add(Predicates.not(ColorlessPredicate.instance));
}
public DevourerOfDestiny(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{C}{C}");
this.subtype.add(SubType.ELDRAZI);
this.power = new MageInt(6);
this.toughness = new MageInt(6);
// You may reveal this card from your opening hand. If you do, at the beginning of your first upkeep, look at the top four cards of your library. You may put one of those cards back on top of your library. Exile the rest.
this.addAbility(new ChancellorAbility(
new DevourerOfDestinyTriggeredAbility(), "at the beginning of your first upkeep, " +
"look at the top four cards of your library. You may put one of those cards " +
"back on top of your library. Exile the rest"
));
// When you cast this spell, exile target permanent that's one or more colors.
Ability ability = new CastSourceTriggeredAbility(new ExileTargetEffect());
ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability);
}
private DevourerOfDestiny(final DevourerOfDestiny card) {
super(card);
}
@Override
public DevourerOfDestiny copy() {
return new DevourerOfDestiny(this);
}
}
class DevourerOfDestinyTriggeredAbility extends DelayedTriggeredAbility {
DevourerOfDestinyTriggeredAbility() {
super(new LookLibraryAndPickControllerEffect(4, 1, PutCards.TOP_ANY, PutCards.EXILED, true));
}
private DevourerOfDestinyTriggeredAbility(final DevourerOfDestinyTriggeredAbility ability) {
super(ability);
}
@Override
public boolean checkEventType(GameEvent event, Game game) {
return event.getType() == GameEvent.EventType.UPKEEP_STEP_PRE;
}
@Override
public boolean checkTrigger(GameEvent event, Game game) {
return true;
}
@Override
public DevourerOfDestinyTriggeredAbility copy() {
return new DevourerOfDestinyTriggeredAbility(this);
}
}

View file

@ -26,6 +26,7 @@ public final class ModernHorizons3 extends ExpansionSet {
cards.add(new SetCardInfo("Bloodstained Mire", 216, Rarity.RARE, mage.cards.b.BloodstainedMire.class));
cards.add(new SetCardInfo("Breaker of Creation", 1, Rarity.UNCOMMON, mage.cards.b.BreakerOfCreation.class));
cards.add(new SetCardInfo("Chthonian Nightmare", 83, Rarity.RARE, mage.cards.c.ChthonianNightmare.class));
cards.add(new SetCardInfo("Devourer of Destiny", 2, Rarity.RARE, mage.cards.d.DevourerOfDestiny.class));
cards.add(new SetCardInfo("Emrakul, the World Anew", 6, Rarity.MYTHIC, mage.cards.e.EmrakulTheWorldAnew.class));
cards.add(new SetCardInfo("Flare of Cultivation", 154, Rarity.RARE, mage.cards.f.FlareOfCultivation.class));
cards.add(new SetCardInfo("Flare of Denial", 62, Rarity.RARE, mage.cards.f.FlareOfDenial.class));

View file

@ -52708,6 +52708,7 @@ Swamp|Outlaws of Thunder Junction|274|C||Basic Land - Swamp|||({T}: Add {B}.)|
Mountain|Outlaws of Thunder Junction|275|C||Basic Land - Mountain|||({T}: Add {R}.)|
Forest|Outlaws of Thunder Junction|276|C||Basic Land - Forest|||({T}: Add {G}.)|
Breaker of Creation|Modern Horizons 3|1|U|{6}{C}{C}|Creature - Eldrazi|8|4|When you cast this spell, you gain 1 life for each colorless permanent you control.$Hexproof from each color$Annihilator 2|
Devourer of Destiny|Modern Horizons 3|2|R|{5}{C}{C}|Creature - Eldrazi|6|6|You may reveal this card from your opening hand. If you do, at the beginning of your first upkeep, look at the top four cards of your library. You may put one of those cards back on top of your library. Exile the rest.$When you cast this spell, exile target permanent that's one or more colors.|
Emrakul, the World Anew|Modern Horizons 3|6|M|{12}|Legendary Creature - Eldrazi|12|12|When you cast this spell, gain control of all creatures target player controls.$Flying, protection from spells and from permanents that were cast this turn$When Emrakul, the World Anew leaves the battlefield, sacrifice all creatures you control.$Madness--Pay six {C}.|
Herigast, Erupting Nullkite|Modern Horizons 3|8|M|{9}|Legendary Creature - Eldrazi Dragon|6|6|Emerge {6}{R}{R}$When you cast this spell, you may exile your hand. If you do, draw three cards.$Flying$Each creature spell you cast has emerge. The emerge cost is equal to its mana cost.|
It That Heralds the End|Modern Horizons 3|9|U|{1}{C}|Creature - Eldrazi Drone|2|2|Colorless spells you cast with mana value 7 or greater cost {1} less to cast.$Other colorless creatures you control get +1/+1.|