[ONE] Implement Serum-Core Chimera (#10012)

This commit is contained in:
Merlingilb 2023-02-21 03:02:05 +01:00 committed by GitHub
parent 9ab63b73ca
commit 71f4d4b19d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 0 deletions

View file

@ -0,0 +1,66 @@
package mage.cards.s;
import mage.MageInt;
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.DiscardCardCost;
import mage.abilities.costs.common.RemoveCountersSourceCost;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.DoIfCostPaid;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
import mage.target.common.TargetCreatureOrPlaneswalker;
import java.util.UUID;
public class SerumCoreChimera extends CardImpl {
public SerumCoreChimera(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{R}");
this.addSubType(SubType.PHYREXIAN);
this.addSubType(SubType.CHIMERA);
this.power = new MageInt(2);
this.toughness = new MageInt(4);
//Flying
this.addAbility(FlyingAbility.getInstance());
//Whenever you cast a noncreature spell, put an oil counter on Serum-Core Chimera.
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.OIL.createInstance()),
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
//Remove three oil counters from Serum-Core Chimera: Draw a card. Then you may discard a nonland card. When you
//discard a card this way, Serum-Core Chimera deals 3 damage to target creature or planeswalker. Activate only
//as a sorcery.
ActivateAsSorceryActivatedAbility activateAsSorceryActivatedAbility = new ActivateAsSorceryActivatedAbility(
new DrawCardSourceControllerEffect(1).setText("Draw a card"),
new RemoveCountersSourceCost(CounterType.OIL.createInstance(3)));
ReflexiveTriggeredAbility reflexiveTriggeredAbility = new ReflexiveTriggeredAbility(
new DamageTargetEffect(3), false
);
reflexiveTriggeredAbility.addTarget(new TargetCreatureOrPlaneswalker());
activateAsSorceryActivatedAbility.addEffect(new DoWhenCostPaid(reflexiveTriggeredAbility,
new DiscardCardCost(StaticFilters.FILTER_CARD_A_NON_LAND), "Discard nonland card?")
.setText("Then you may discard a nonland card. When you discard a card this way, Serum-Core Chimera " +
"deals 3 damage to target creature or planeswalker."));
this.addAbility(activateAsSorceryActivatedAbility);
}
private SerumCoreChimera(final SerumCoreChimera card) {
super(card);
}
@Override
public SerumCoreChimera copy() {
return new SerumCoreChimera(this);
}
}

View file

@ -194,6 +194,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet {
cards.add(new SetCardInfo("Seachrome Coast", 258, Rarity.RARE, mage.cards.s.SeachromeCoast.class));
cards.add(new SetCardInfo("Serum Snare", 68, Rarity.UNCOMMON, mage.cards.s.SerumSnare.class));
cards.add(new SetCardInfo("Serum Sovereign", 405, Rarity.RARE, mage.cards.s.SerumSovereign.class));
cards.add(new SetCardInfo("Serum-Core Chimera", 215, Rarity.UNCOMMON, mage.cards.s.SerumCoreChimera.class));
cards.add(new SetCardInfo("Sheoldred's Edict", 108, Rarity.UNCOMMON, mage.cards.s.SheoldredsEdict.class));
cards.add(new SetCardInfo("Sheoldred's Headcleaver", 109, Rarity.COMMON, mage.cards.s.SheoldredsHeadcleaver.class));
cards.add(new SetCardInfo("Shrapnel Slinger", 148, Rarity.COMMON, mage.cards.s.ShrapnelSlinger.class));