[BIG] Implement The Big Score

This commit is contained in:
theelk801 2024-04-03 20:45:38 -04:00
parent d6efb5d7cd
commit c51b299707
3 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,82 @@
package mage.cards.a;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.mana.AnyColorManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.FilterSpell;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.MonocoloredPredicate;
import mage.game.Game;
import mage.game.stack.Spell;
import java.util.Optional;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class AncientCornucopia extends CardImpl {
private static final FilterSpell filter = new FilterSpell("a spell that's one or more colors");
static {
filter.add(Predicates.not(MonocoloredPredicate.instance));
}
public AncientCornucopia(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{G}");
// Whenever you cast a spell that's one or more colors, you may gain 1 life for each of that spell's colors. Do this only once each turn.
this.addAbility(new SpellCastControllerTriggeredAbility(
new GainLifeEffect(AncientCornucopiaValue.instance), filter, false
).setDoOnlyOnceEachTurn(true));
// {T}: Add one mana of any color.
this.addAbility(new AnyColorManaAbility());
}
private AncientCornucopia(final AncientCornucopia card) {
super(card);
}
@Override
public AncientCornucopia copy() {
return new AncientCornucopia(this);
}
}
enum AncientCornucopiaValue implements DynamicValue {
instance;
@Override
public int calculate(Game game, Ability sourceAbility, Effect effect) {
return Optional
.ofNullable(effect.getValue("spellCast"))
.map(Spell.class::cast)
.map(spell -> spell.getColor(game))
.map(ObjectColor::getColorCount)
.orElse(0);
}
@Override
public AncientCornucopiaValue copy() {
return this;
}
@Override
public String getMessage() {
return "of that spell's colors. Do this only once each turn";
}
@Override
public String toString() {
return "1";
}
}

View file

@ -21,6 +21,7 @@ public final class TheBigScore extends ExpansionSet {
this.hasBasicLands = false;
this.hasBoosters = false;
cards.add(new SetCardInfo("Ancient Cornucopia", 16, Rarity.MYTHIC, mage.cards.a.AncientCornucopia.class));
cards.add(new SetCardInfo("Bristlebud Farmer", 17, Rarity.MYTHIC, mage.cards.b.BristlebudFarmer.class));
cards.add(new SetCardInfo("Collector's Cage", 1, Rarity.MYTHIC, mage.cards.c.CollectorsCage.class));
cards.add(new SetCardInfo("Esoteric Duplicator", 5, Rarity.MYTHIC, mage.cards.e.EsotericDuplicator.class));

View file

@ -52701,6 +52701,7 @@ Generous Plunderer|The Big Score|11|M|{1}{R}|Creature - Human Rogue|2|2|Menace$A
Legion Extruder|The Big Score|12|M|{1}{R}|Artifact|||When Legion Extruder enters the battlefield, it deals 2 damage to any target.${2}, {T}, Sacrifice another artifact: Create a 3/3 colorless Golem artifact creature token.|
Memory Vessel|The Big Score|13|M|{3}{R}{R}|Artifact|||{T}, Exile Memory Vessel: Each player exiles the top seven cards of their library. Until your next turn, players may play cards they exiled this way, and they can't play cards from their hand. Activate only as a sorcery.|
Molten Duplication|The Big Score|14|M|{1}{R}|Sorcery|||Create a token that's a copy of target artifact or creature you control, except it's an artifact in addition to its other types. It gains haste until end of turn. Sacrifice it at the beginning of the next end step.|
Ancient Cornucopia|The Big Score|16|M|{2}{G}|Artifact|||Whenever you cast a spell that's one or more colors, you may gain 1 life for each of that spell's colors. Do this only once each turn.${T}: Add one mana of any color.|
Bristlebud Farmer|The Big Score|17|M|{2}{G}{G}|Creature - Plant Druid|5|5|Trample$When Bristlebud Farmer enters the battlefield, create two Food tokens.$Whenever Bristlebud Farmer attacks, you may sacrifice a Food. If you do, mill three cards. You may put a permanent card from among them into your hand.|
Omenpath Journey|The Big Score|18|M|{3}{G}|Enchantment|||When Omenpath Journey enters the battlefield, search your library for up to five land cards that have different names, exile them, then shuffle.$At the beginning of your end step, choose a card at random exiled with Omenpath Journey and put it onto the battlefield tapped.|
Vaultborn Tyrant|The Big Score|20|M|{5}{G}{G}|Creature - Dinosaur|6|6|Trample$Whenever Vaultborn Tyrant or another creature with power 4 or greater enters the battlefield under your control, you gain 3 life and draw a card.$When Vaultborn Tyrant dies, if it's not a token, create a token that's a copy of it, except it's an artifact in addition to its other types.|