[OTC] Implement Arcane Heist

This commit is contained in:
Susucre 2024-04-06 16:30:41 +02:00
parent a86b629abe
commit 993fa36a9d
2 changed files with 52 additions and 0 deletions

View file

@ -0,0 +1,51 @@
package mage.cards.a;
import mage.abilities.effects.common.CipherEffect;
import mage.abilities.effects.common.MayCastTargetCardEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.CastManaAdjustment;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
import mage.target.common.TargetCardInOpponentsGraveyard;
import java.util.UUID;
/**
* @author Susucr
*/
public final class ArcaneHeist extends CardImpl {
private static final FilterCard filter = new FilterCard("instant or sorcery card from an opponent's graveyard");
static {
filter.add(Predicates.or(
CardType.INSTANT.getPredicate(),
CardType.SORCERY.getPredicate()));
}
public ArcaneHeist(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}{U}");
// You may cast target instant or sorcery card from an opponent's graveyard without paying its mana cost. If that spell would be put into their graveyard, exile it instead.
this.getSpellAbility().addEffect(
new MayCastTargetCardEffect(CastManaAdjustment.WITHOUT_PAYING_MANA_COST, true)
.setText("You may cast target instant or sorcery card from an opponent's graveyard without paying its mana cost. "
+ "If that spell would be put into their graveyard, exile it instead.")
);
this.getSpellAbility().addTarget(new TargetCardInOpponentsGraveyard(filter));
// Cipher
this.getSpellAbility().addEffect(new CipherEffect());
}
private ArcaneHeist(final ArcaneHeist card) {
super(card);
}
@Override
public ArcaneHeist copy() {
return new ArcaneHeist(this);
}
}

View file

@ -29,6 +29,7 @@ public final class OutlawsOfThunderJunctionCommander extends ExpansionSet {
cards.add(new SetCardInfo("Angrath's Marauders", 153, Rarity.RARE, mage.cards.a.AngrathsMarauders.class));
cards.add(new SetCardInfo("Arcane Bombardment", 154, Rarity.MYTHIC, mage.cards.a.ArcaneBombardment.class));
cards.add(new SetCardInfo("Arcane Denial", 89, Rarity.COMMON, mage.cards.a.ArcaneDenial.class));
cards.add(new SetCardInfo("Arcane Heist", 13, Rarity.RARE, mage.cards.a.ArcaneHeist.class));
cards.add(new SetCardInfo("Arcane Signet", 252, Rarity.COMMON, mage.cards.a.ArcaneSignet.class));
cards.add(new SetCardInfo("Archmage Emeritus", 90, Rarity.RARE, mage.cards.a.ArchmageEmeritus.class));
cards.add(new SetCardInfo("Avenger of Zendikar", 187, Rarity.MYTHIC, mage.cards.a.AvengerOfZendikar.class));